From 9096407fcbc8e8824ef0e7c36c0b0beb5c7de948 Mon Sep 17 00:00:00 2001 From: dgtlmoon Date: Fri, 2 Jan 2026 15:01:22 +0100 Subject: [PATCH] Multi-language / Translations support (#3696) --- Dockerfile | 3 + .../blueprint/backups/templates/overview.html | 14 +- .../blueprint/imports/templates/import.html | 41 +- .../settings/templates/notification-log.html | 2 +- .../settings/templates/settings.html | 32 +- .../blueprint/tags/templates/edit-tag.html | 18 +- .../tags/templates/groups-overview.html | 34 +- .../ui/templates/clear_all_history.html | 14 +- .../ui/templates/diff-offscreen-options.html | 6 +- .../blueprint/ui/templates/diff.html | 56 +- .../blueprint/ui/templates/edit.html | 172 +- .../blueprint/ui/templates/preview.html | 32 +- .../watchlist/templates/watch-overview.html | 85 +- changedetectionio/flask_app.py | 63 +- changedetectionio/forms.py | 256 +-- changedetectionio/languages.py | 103 + changedetectionio/processors/__init__.py | 23 +- .../processors/image_ssim_diff/forms.py | 29 +- .../processors/restock_diff/forms.py | 25 +- .../processors/restock_diff/processor.py | 7 +- changedetectionio/realtime/socket_server.py | 4 +- .../static/js/language-selector.js | 55 + .../static/styles/scss/styles.scss | 41 + changedetectionio/static/styles/styles.css | 2 +- changedetectionio/templates/_helpers.html | 8 +- changedetectionio/templates/base.html | 50 +- changedetectionio/templates/login.html | 4 +- .../translations/cs/LC_MESSAGES/messages.mo | Bin 0 -> 29733 bytes .../translations/cs/LC_MESSAGES/messages.po | 1965 ++++++++++++++++ .../translations/de/LC_MESSAGES/messages.mo | Bin 0 -> 31518 bytes .../translations/de/LC_MESSAGES/messages.po | 2011 ++++++++++++++++ .../translations/fr/LC_MESSAGES/messages.mo | Bin 0 -> 33876 bytes .../translations/fr/LC_MESSAGES/messages.po | 2033 +++++++++++++++++ .../translations/ko/LC_MESSAGES/messages.mo | Bin 0 -> 28631 bytes .../translations/ko/LC_MESSAGES/messages.po | 1928 ++++++++++++++++ .../translations/zh/LC_MESSAGES/messages.mo | Bin 0 -> 25498 bytes .../translations/zh/LC_MESSAGES/messages.po | 1928 ++++++++++++++++ .../zh_TW/LC_MESSAGES/messages.mo | Bin 0 -> 25564 bytes .../zh_TW/LC_MESSAGES/messages.po | 1928 ++++++++++++++++ requirements.txt | 2 + 40 files changed, 12523 insertions(+), 451 deletions(-) create mode 100644 changedetectionio/languages.py create mode 100644 changedetectionio/static/js/language-selector.js create mode 100644 changedetectionio/translations/cs/LC_MESSAGES/messages.mo create mode 100644 changedetectionio/translations/cs/LC_MESSAGES/messages.po create mode 100644 changedetectionio/translations/de/LC_MESSAGES/messages.mo create mode 100644 changedetectionio/translations/de/LC_MESSAGES/messages.po create mode 100644 changedetectionio/translations/fr/LC_MESSAGES/messages.mo create mode 100644 changedetectionio/translations/fr/LC_MESSAGES/messages.po create mode 100644 changedetectionio/translations/ko/LC_MESSAGES/messages.mo create mode 100644 changedetectionio/translations/ko/LC_MESSAGES/messages.po create mode 100644 changedetectionio/translations/zh/LC_MESSAGES/messages.mo create mode 100644 changedetectionio/translations/zh/LC_MESSAGES/messages.po create mode 100644 changedetectionio/translations/zh_TW/LC_MESSAGES/messages.mo create mode 100644 changedetectionio/translations/zh_TW/LC_MESSAGES/messages.po diff --git a/Dockerfile b/Dockerfile index c0d6a18d4..8598d8ccb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -113,6 +113,9 @@ EXPOSE 5000 # The actual flask app module COPY changedetectionio /app/changedetectionio +# Compile translation files for i18n support +RUN pybabel compile -d /app/changedetectionio/translations + # Also for OpenAPI validation wrapper - needs the YML RUN [ ! -d "/app/docs" ] && mkdir /app/docs COPY docs/api-spec.yaml /app/docs/api-spec.yaml diff --git a/changedetectionio/blueprint/backups/templates/overview.html b/changedetectionio/blueprint/backups/templates/overview.html index b07be4bd0..cc86150c7 100644 --- a/changedetectionio/blueprint/backups/templates/overview.html +++ b/changedetectionio/blueprint/backups/templates/overview.html @@ -3,31 +3,31 @@ {% from '_helpers.html' import render_simple_field, render_field %}
-

Backups

+

{{ _('Backups') }}

{% if backup_running %}

- A backup is running! + {{ _('A backup is running!') }}

{% endif %}

- Here you can download and request a new backup, when a backup is completed you will see it listed below. + {{ _('Here you can download and request a new backup, when a backup is completed you will see it listed below.') }}


{% if available_backups %} {% else %}

- No backups found. + {{ _('No backups found.') }}

{% endif %} - Create backup + {{ _('Create backup') }} {% if available_backups %} - Remove backups + {{ _('Remove backups') }} {% endif %}
diff --git a/changedetectionio/blueprint/imports/templates/import.html b/changedetectionio/blueprint/imports/templates/import.html index fbd7a4b65..dc623b9e7 100644 --- a/changedetectionio/blueprint/imports/templates/import.html +++ b/changedetectionio/blueprint/imports/templates/import.html @@ -6,9 +6,9 @@
@@ -17,11 +17,10 @@
- Enter one URL per line, and optionally add tags for each URL after a space, delineated by comma - (,): + {{ _('Enter one URL per line, and optionally add tags for each URL after a space, delineated by comma (,):') }}
-

Example: https://example.com tag1, tag2, last tag

- URLs which do not pass validation will stay in the textarea. +

{{ _('Example:') }} https://example.com tag1, tag2, last tag

+ {{ _('URLs which do not pass validation will stay in the textarea.') }}
{{ render_field(form.processor, class="processor") }} @@ -42,12 +41,12 @@
- Copy and Paste your Distill.io watch 'export' file, this should be a JSON file.
- This is experimental, supported fields are name, uri, tags, config:selections, the rest (including schedule) are ignored. + {{ _('Copy and Paste your Distill.io watch \'export\' file, this should be a JSON file.') }}
+ {{ _('This is') }} {{ _('experimental') }}, {{ _('supported fields are') }} name, uri, tags, config:selections, {{ _('the rest (including') }} schedule) {{ _('are ignored.') }}

- How to export? https://distill.io/docs/web-monitor/how-export-and-import-monitors/
- Be sure to set your default fetcher to Chrome if required.
+ {{ _('How to export?') }} https://distill.io/docs/web-monitor/how-export-and-import-monitors/
+ {{ _('Be sure to set your default fetcher to Chrome if required.') }}

@@ -89,32 +88,32 @@
- Table of custom column and data types mapping for the Custom mapping File mapping type. + {{ _('Table of custom column and data types mapping for the') }} {{ _('Custom mapping') }} {{ _('File mapping type.') }} - + {% for n in range(4) %} {% endfor %} - + {% for n in range(4) %} {% endfor %}
Column #{{ _('Column #') }}
Type{{ _('Type') }}
- + diff --git a/changedetectionio/blueprint/settings/templates/notification-log.html b/changedetectionio/blueprint/settings/templates/notification-log.html index ee76e2590..8738aaba3 100644 --- a/changedetectionio/blueprint/settings/templates/notification-log.html +++ b/changedetectionio/blueprint/settings/templates/notification-log.html @@ -4,7 +4,7 @@
-

Notification debug log

+

{{ _('Notification debug log') }}

    {% for log in logs|reverse %} diff --git a/changedetectionio/blueprint/settings/templates/settings.html b/changedetectionio/blueprint/settings/templates/settings.html index d822baf14..89f59ad13 100644 --- a/changedetectionio/blueprint/settings/templates/settings.html +++ b/changedetectionio/blueprint/settings/templates/settings.html @@ -18,21 +18,21 @@
    @@ -43,7 +43,7 @@
    {{ render_field(form.requests.form.time_between_check, class="time-check-widget") }} - Default recheck time for all watches, current system minimum is {{min_system_recheck_seconds}} seconds (more info). + {{ _('Default recheck time for all watches, current system minimum is') }} {{min_system_recheck_seconds}} {{ _('seconds') }} ({{ _('more info') }}).
    @@ -387,8 +387,8 @@ nav {% endfor %} {% endif %}
    -

    Python version: {{ python_version }}

    -

    Plugins active:

    +

    {{ _('Python version:') }} {{ python_version }}

    +

    {{ _('Plugins active:') }}

    {% if active_plugins %}
      {% for plugin in active_plugins %} @@ -396,14 +396,14 @@ nav {% endfor %}
    {% else %} -

    No plugins active

    +

    {{ _('No plugins active') }}

    {% endif %}
    {{ render_button(form.save_button) }} - Back - Clear Snapshot History + {{ _('Back') }} + {{ _('Clear Snapshot History') }}
    diff --git a/changedetectionio/blueprint/tags/templates/edit-tag.html b/changedetectionio/blueprint/tags/templates/edit-tag.html index e04ee9455..8a0260903 100644 --- a/changedetectionio/blueprint/tags/templates/edit-tag.html +++ b/changedetectionio/blueprint/tags/templates/edit-tag.html @@ -24,12 +24,12 @@ @@ -47,10 +47,10 @@
    -

    These settings are added to any existing watch configurations.

    +

    {{ _('These settings are') }} {{ _('added') }} {{ _('to any existing watch configurations.') }}

    {% include "edit/include_subtract.html" %}
    -

    Text filtering

    +

    {{ _('Text filtering') }}

    {% include "edit/text-options.html" %}
    @@ -70,18 +70,18 @@
    {{ render_checkbox_field(form.notification_screenshot) }} - Use with caution! This will easily fill up your email storage quota or flood other storages. + {{ _('Use with caution!') }} {{ _('This will easily fill up your email storage quota or flood other storages.') }}
    {% endif %}
    {% if has_default_notification_urls %}
    - Look out! - There are system-wide notification URLs enabled, this form will override notification settings for this watch only ‐ an empty Notification URL list here will still send notifications. + {{ _('Look out!') }} + {{ _('There are') }} {{ _('system-wide notification URLs enabled') }}, {{ _('this form will override notification settings for this watch only') }} ‐ {{ _('an empty Notification URL list here will still send notifications.') }}
    {% endif %} - Use system defaults + {{ _('Use system defaults') }} {{ render_common_settings_form(form, emailprefix, settings_application, extra_notification_token_placeholder_info) }}
    diff --git a/changedetectionio/blueprint/tags/templates/groups-overview.html b/changedetectionio/blueprint/tags/templates/groups-overview.html index dadf980ce..63c0253ed 100644 --- a/changedetectionio/blueprint/tags/templates/groups-overview.html +++ b/changedetectionio/blueprint/tags/templates/groups-overview.html @@ -8,17 +8,17 @@
    - Add a new organisational tag + {{ _('Add a new organisational tag') }}
    - {{ render_simple_field(form.name, placeholder="Watch group / tag") }} + {{ render_simple_field(form.name, placeholder=_("Watch group / tag")) }}
    - {{ render_simple_field(form.save_button, title="Save" ) }} + {{ render_simple_field(form.save_button, title=_("Save") ) }}

    -
    Groups allows you to manage filters and notifications for multiple watches under a single organisational tag.
    +
    {{ _('Groups allows you to manage filters and notifications for multiple watches under a single organisational tag.') }}
    @@ -28,8 +28,8 @@ - # Watches - Tag / Label name + {{ _('# Watches') }} + {{ _('Tag / Label name') }} @@ -39,7 +39,7 @@ ---> {% if not available_tags|length %} - No website organisational tags/groups configured + {{ _('No website organisational tags/groups configured') }} {% endif %} {% for uuid, tag in available_tags %} @@ -50,24 +50,24 @@ {{ "{:,}".format(tag_count[uuid]) if uuid in tag_count else 0 }} {{ tag.title }} - Edit  + {{ _('Edit') }}  Delete + data-confirm-title="{{ _('Delete Group?') }}" + data-confirm-message="{{ _('

    Are you sure you want to delete group %(title)s?

    This action cannot be undone.

    ', title=tag.title) }}" + data-confirm-button="{{ _('Delete') }}" + title="{{ _('Deletes and removes tag') }}">{{ _('Delete') }} Unlink - RSS Feed for this watch + data-confirm-title="{{ _('Unlink Group?') }}" + data-confirm-message="{{ _('

    Are you sure you want to unlink all watches from group %(title)s?

    The tag will be kept but watches will be removed from it.

    ', title=tag.title) }}" + data-confirm-button="{{ _('Unlink') }}" + title="{{ _('Keep the tag but unlink any watches') }}">{{ _('Unlink') }} + {{ _('RSS Feed for this watch') }} {% endfor %} diff --git a/changedetectionio/blueprint/ui/templates/clear_all_history.html b/changedetectionio/blueprint/ui/templates/clear_all_history.html index bcb57190f..9adc35762 100644 --- a/changedetectionio/blueprint/ui/templates/clear_all_history.html +++ b/changedetectionio/blueprint/ui/templates/clear_all_history.html @@ -9,13 +9,12 @@
    - This will remove version history (snapshots) for ALL watches, but keep - your list of URLs!
    - You may like to use the BACKUP link first.
    + {{ _('This will remove version history (snapshots) for ALL watches, but keep your list of URLs!') }}
    + {{ _('You may like to use the') }} {{ _('BACKUP') }} {{ _('link first.') }}

    - + Type in the word clear to confirm that you - understand.{{ _('Type in the word') }} {{ _('clear') }} {{ _('to confirm that you understand.') }}


    Cancel{{ _('Cancel') }}
    diff --git a/changedetectionio/blueprint/ui/templates/diff-offscreen-options.html b/changedetectionio/blueprint/ui/templates/diff-offscreen-options.html index 54a8d3fdf..3a36019ac 100644 --- a/changedetectionio/blueprint/ui/templates/diff-offscreen-options.html +++ b/changedetectionio/blueprint/ui/templates/diff-offscreen-options.html @@ -1,12 +1,12 @@ diff --git a/changedetectionio/blueprint/ui/templates/diff.html b/changedetectionio/blueprint/ui/templates/diff.html index 43db186eb..18bf410f1 100644 --- a/changedetectionio/blueprint/ui/templates/diff.html +++ b/changedetectionio/blueprint/ui/templates/diff.html @@ -25,7 +25,7 @@
    {% if versions|length >= 1 %} - + - + Words + {{ _('Words') }} + {{ _('Lines') }} + {{ _('Ignore Whitespace') }} + {{ _('Same/non-changed') }} + {{ _('Removed') }} + {{ _('Added') }} + {{ _('Replaced') }}
    {%- if versions|length >= 2 -%}
    - Keyboard: - ← Previous -   → Next + {{ _('Keyboard:') }} + ← {{ _('Previous') }} +   → {{ _('Next') }}
    {%- endif -%}
    -
    {{watch_a.error_text_ctime|format_seconds_ago}} seconds ago.
    +
    {{watch_a.error_text_ctime|format_seconds_ago}} {{ _('seconds ago.') }}
                 {{ last_error_text }}
             
    -
    {{watch_a.snapshot_error_screenshot_ctime|format_seconds_ago}} seconds ago
    - Current error-ing screenshot from most recent request +
    {{watch_a.snapshot_error_screenshot_ctime|format_seconds_ago}} {{ _('seconds ago') }}
    + {{ _('Current error-ing screenshot from most recent request') }}
    @@ -124,34 +124,34 @@
    {%- endif -%} {%- if password_enabled_and_share_is_off -%} -
    Pro-tip: You can enable "share access when password is enabled" from settings. +
    {{ _('Pro-tip: You can enable') }} {{ _('"share access when password is enabled"') }} {{ _('from settings.') }}
    {%- endif -%}
    {{ from_version|format_timestamp_timeago }} {%- if note -%}{{ note }}{%- endif -%} - Goto single snapshot + {{ _('Goto single snapshot') }}
    {{ content| diff_unescape_difference_spans }}
    - Tip: Highlight text to share or add to ignore lists. + {{ _('Tip:') }} {{ _('Highlight text to share or add to ignore lists.') }}
    - For now, Differences are performed on text, not graphically, only the latest screenshot is available. + {{ _('For now, Differences are performed on text, not graphically, only the latest screenshot is available.') }}
    {% if is_html_webdriver %} {% if screenshot %}
    {{watch_a.snapshot_screenshot_ctime|format_timestamp_timeago}}
    - Current screenshot from most recent request + {{ _('Current screenshot from most recent request') }} {% else %} - No screenshot available just yet! Try rechecking the page. + {{ _('No screenshot available just yet! Try rechecking the page.') }} {% endif %} {% else %} - Screenshot requires Playwright/WebDriver enabled + {{ _('Screenshot requires Playwright/WebDriver enabled') }} {% endif %}
    diff --git a/changedetectionio/blueprint/ui/templates/edit.html b/changedetectionio/blueprint/ui/templates/edit.html index d4bc275d6..b44e78e42 100644 --- a/changedetectionio/blueprint/ui/templates/edit.html +++ b/changedetectionio/blueprint/ui/templates/edit.html @@ -44,20 +44,20 @@ @@ -70,19 +70,19 @@
    {{ render_field(form.url, placeholder="https://...", required=true, class="m-d") }} -
    Some sites use JavaScript to create the content, for this you should use the Chrome/WebDriver Fetcher
    -
    Variables are supported in the URL (help and examples here).
    +
    {{ _('Some sites use JavaScript to create the content, for this you should') }} {{ _('use the Chrome/WebDriver Fetcher') }}
    +
    {{ _('Variables are supported in the URL') }} ({{ _('help and examples here') }}).
    {{ render_field(form.tags) }} - Organisational tag/group name used in the main listing page + {{ _('Organisational tag/group name used in the main listing page') }}
    {{ render_field(form.processor) }}
    {{ render_field(form.title, class="m-d", placeholder=watch.label) }} - Automatically uses the page title if found, you can also use your own title/description here + {{ _('Automatically uses the page title if found, you can also use your own title/description here') }}
    @@ -92,7 +92,7 @@ {{ render_field(form.time_between_check, class="time-check-widget") }} - The interval/amount of time between each check. + {{ _('The interval/amount of time between each check.') }}
    @@ -107,7 +107,7 @@
    {{ render_checkbox_field(form.filter_failure_notification_send) }} - Sends a notification when the filter can no longer be seen on the page, good for knowing when the page changed and your filter will not work anymore. + {{ _('Sends a notification when the filter can no longer be seen on the page, good for knowing when the page changed and your filter will not work anymore.') }}
    @@ -120,17 +120,17 @@
    {{ render_field(form.fetch_backend, class="fetch-backend") }} -

    Use the Basic method (default) where your watched site doesn't need Javascript to render.

    -

    The Chrome/Javascript method requires a network connection to a running WebDriver+Chrome server, set by the ENV var 'WEBDRIVER_URL'.

    - Tip: Connect using Bright Data and Oxylabs Proxies, find out more here. +

    {{ _('Use the') }} {{ _('Basic') }} {{ _('method (default) where your watched site doesn\'t need Javascript to render.') }}

    +

    {{ _('The') }} {{ _('Chrome/Javascript') }} {{ _('method requires a network connection to a running WebDriver+Chrome server, set by the ENV var \'WEBDRIVER_URL\'.') }}

    + {{ _('Tip:') }} {{ _('Connect using Bright Data and Oxylabs Proxies, find out more here.') }}
    {% if form.proxy %}
    -
    {{ form.proxy.label }} Check/Scan all
    +
    {{ form.proxy.label }} {{ _('Check/Scan all') }}
    {{ form.proxy(class="fetch-backend-proxy") }}
    - Choose a proxy for this watch + {{ _('Choose a proxy for this watch') }}
    {% endif %} @@ -140,31 +140,29 @@
    {{ render_field(form.webdriver_delay) }}
    - If you're having trouble waiting for the page to be fully rendered (text missing etc), try increasing the 'wait' time here. + {{ _('If you\'re having trouble waiting for the page to be fully rendered (text missing etc), try increasing the \'wait\' time here.') }}
    - This will wait n seconds before extracting the text. + {{ _('This will wait') }} n {{ _('seconds before extracting the text.') }} {% if using_global_webdriver_wait %} -
    Using the current global default settings +
    {{ _('Using the current global default settings') }} {% endif %}
    @@ -188,15 +186,15 @@ Cookie: foobar User-Agent: wonderbra 1.0 Math: {{ 1 + 1 }}") }} -
    Variables are supported in the request header values (help and examples here).
    +
    {{ _('Variables are supported in the request header values') }} ({{ _('help and examples here') }}).
    {% if has_extra_headers_file %} - Alert! Extra headers file found and will be added to this watch! + {{ _('Alert! Extra headers file found and will be added to this watch!') }} {% else %} - Headers can be also read from a file in your data-directory Read more here + {{ _('Headers can be also read from a file in your data-directory') }} {{ _('Read more here') }} {% endif %}
    - (Not supported by Selenium browser) + ({{ _('Not supported by Selenium browser') }})
    @@ -220,19 +218,19 @@ Math: {{ 1 + 1 }}") }} - +
    -

    Click here to Start

    +

    {{ _('Click here to Start') }}


    - Please allow 10-15 seconds for the browser to connect.
    + {{ _('Please allow 10-15 seconds for the browser to connect.') }}
    @@ -241,19 +239,19 @@ Math: {{ 1 + 1 }}") }}
    - Press "Play" to start. (?) + {{ _('Press "Play" to start.') }} (?) {{ render_field(form.browser_steps) }}
    {% else %} - Visual Selector data is not ready, watch needs to be checked atleast once. + {{ _('Visual Selector data is not ready, watch needs to be checked atleast once.') }} {% endif %} {% else %}

    - Sorry, this functionality only works with fetchers that support interactive Javascript (so far only Playwright based fetchers)
    - You need to Set the fetch method to one that supports interactive Javascript.
    + {{ _('Sorry, this functionality only works with fetchers that support interactive Javascript (so far only Playwright based fetchers)') }}
    + {{ _('You need to') }} {{ _('Set the fetch method') }} {{ _('to one that supports interactive Javascript.') }}

    {% endif %}
    @@ -268,18 +266,18 @@ Math: {{ 1 + 1 }}") }}
    {{ render_checkbox_field(form.notification_screenshot) }} - Use with caution! This will easily fill up your email storage quota or flood other storages. + {{ _('Use with caution!') }} {{ _('This will easily fill up your email storage quota or flood other storages.') }}
    {% endif %}
    {% if has_default_notification_urls %}
    - Look out! - There are system-wide notification URLs enabled, this form will override notification settings for this watch only ‐ an empty Notification URL list here will still send notifications. + {{ _('Look out!') }} + {{ _('There are') }} {{ _('system-wide notification URLs enabled') }}, {{ _('this form will override notification settings for this watch only') }} ‐ {{ _('an empty Notification URL list here will still send notifications.') }}
    {% endif %} - Use system defaults + {{ _('Use system defaults') }} {{ render_common_settings_form(form, emailprefix, settings_application, extra_notification_token_placeholder_info) }}
    @@ -296,23 +294,23 @@ Math: {{ 1 + 1 }}") }} {{ render_conditions_fieldlist_of_formfields_as_table(form.conditions) }}
    -

    Use the verify (✓) button to test if a condition passes against the current snapshot.

    - Read a quick tutorial about using conditional web page changes here.
    +

    {{ _('Use the verify (✓) button to test if a condition passes against the current snapshot.') }}

    + {{ _('Read a quick tutorial about') }} {{ _('using conditional web page changes here') }}.
- Activate preview + {{ _('Activate preview') }}
- Pro-tips:
+ {{ _('Pro-tips:') }}
  • - Use the preview page to see your filters and triggers highlighted. + {{ _('Use the preview page to see your filters and triggers highlighted.') }}
  • - Some sites use JavaScript to create the content, for this you should use the Chrome/WebDriver Fetcher + {{ _('Some sites use JavaScript to create the content, for this you should') }} {{ _('use the Chrome/WebDriver Fetcher') }}
@@ -320,30 +318,30 @@ Math: {{ 1 + 1 }}") }} {% include "edit/include_subtract.html" %}
-

Text filtering

- Limit trigger/ignore/block/extract to;
+

{{ _('Text filtering') }}

+ {{ _('Limit trigger/ignore/block/extract to;') }}
{{ render_checkbox_field(form.filter_text_added) }} {{ render_checkbox_field(form.filter_text_replaced) }} {{ render_checkbox_field(form.filter_text_removed) }} - Note: Depending on the length and similarity of the text on each line, the algorithm may consider an addition instead of replacement for example.
-  So it's always better to select Added+Replaced when you're interested in new content.
-  When content is merely moved in a list, it will also trigger an addition, consider enabling Only trigger when unique lines appear + {{ _('Note: Depending on the length and similarity of the text on each line, the algorithm may consider an') }} {{ _('addition') }} {{ _('instead of') }} {{ _('replacement') }} {{ _('for example.') }}
+  {{ _('So it\'s always better to select') }} {{ _('Added') }}+{{ _('Replaced') }} {{ _('when you\'re interested in new content.') }}
+  {{ _('When content is merely moved in a list, it will also trigger an') }} {{ _('addition') }}, {{ _('consider enabling') }} {{ _('Only trigger when unique lines appear') }}
{{ render_checkbox_field(form.check_unique_lines) }} - Good for websites that just move the content around, and you want to know when NEW content is added, compares new lines against all history for this watch. + {{ _('Good for websites that just move the content around, and you want to know when NEW content is added, compares new lines against all history for this watch.') }}
{{ render_checkbox_field(form.remove_duplicate_lines) }} - Remove duplicate lines of text + {{ _('Remove duplicate lines of text') }}
{{ render_checkbox_field(form.sort_text_alphabetically) }} - Helps reduce changes detected caused by sites shuffling lines around, combine with check unique lines below. + {{ _('Helps reduce changes detected caused by sites shuffling lines around, combine with') }} {{ _('check unique lines') }} {{ _('below.') }}
{{ render_checkbox_field(form.trim_text_whitespace) }} - Remove any whitespace before and after each line of text + {{ _('Remove any whitespace before and after each line of text') }}
{% include "edit/text-options.html" %}
@@ -357,10 +355,10 @@ Math: {{ 1 + 1 }}") }}
-

Loading...

+

{{ _('Loading...') }}

@@ -385,19 +383,19 @@ Math: {{ 1 + 1 }}") }} {% if capabilities.supports_screenshots and capabilities.supports_xpath_element_data %} {% if visual_selector_data_ready %} - The Visual Selector tool lets you select the text elements that will be used for the change detection. It automatically fills-in the filters in the "CSS/JSONPath/JQ/XPath Filters" box of the Filters & Triggers tab. Use Shift+Click to select multiple items. + {{ _('The Visual Selector tool lets you select the') }} {{ _('text') }} {{ _('elements that will be used for the change detection. It automatically fills-in the filters in the "CSS/JSONPath/JQ/XPath Filters" box of the') }} {{ _('Filters & Triggers') }} {{ _('tab. Use') }} {{ _('Shift+Click') }} {{ _('to select multiple items.') }} {% if watch['processor'] == 'image_ssim_diff' %}
- + {{ render_field(form.processor_config_bounding_box) }} {{ render_field(form.processor_config_selection_mode) }} @@ -405,9 +403,9 @@ Math: {{ 1 + 1 }}") }} {% endif %}
- Clear selection + {{ _('Clear selection') }} - One moment, fetching screenshot and element information.. + {{ _('One moment, fetching screenshot and element information..') }}
-
Currently: Loading...
+
{{ _('Currently:') }} {{ _('Loading...') }}
{% else %} - Visual Selector data is not ready, watch needs to be checked atleast once. + {{ _('Visual Selector data is not ready, watch needs to be checked atleast once.') }} {% endif %} {% else %}

- Sorry, this functionality only works with fetchers that support Javascript and screenshots (such as playwright etc).
- You need to Set the fetch method to one that supports Javascript and screenshots.
+ {{ _('Sorry, this functionality only works with fetchers that support Javascript and screenshots (such as playwright etc).') }}
+ {{ _('You need to') }} {{ _('Set the fetch method') }} {{ _('to one that supports Javascript and screenshots.') }}

{% endif %}
@@ -440,27 +438,27 @@ Math: {{ 1 + 1 }}") }} - + - + - + - + - + - + @@ -474,7 +472,7 @@ Math: {{ 1 + 1 }}") }} {% if watch.history_n %}

- Download latest HTML snapshot + {{ _('Download latest HTML snapshot') }}

{% endif %} @@ -487,19 +485,19 @@ Math: {{ 1 + 1 }}") }} class="pure-button button-error" data-requires-confirm data-confirm-type="danger" - data-confirm-title="Delete Watch?" - data-confirm-message="

Are you sure you want to delete the watch for:

{{ watch.get('url', 'this watch') }}

This action cannot be undone.

" - data-confirm-button="Delete">Delete + data-confirm-title="{{ _('Delete Watch?') }}" + data-confirm-message="

{{ _('Are you sure you want to delete the watch for:') }}

{{ watch.get('url', 'this watch') }}

{{ _('This action cannot be undone.') }}

" + data-confirm-button="{{ _('Delete') }}">{{ _('Delete') }} {% if watch.history_n %}Clear History{% endif %} + data-confirm-title="{{ _('Clear History?') }}" + data-confirm-message="

{{ _('Are you sure you want to clear all history for:') }}

{{ watch.get('url', 'this watch') }}

{{ _('This will remove all snapshots and previous versions. This action cannot be undone.') }}

" + data-confirm-button="{{ _('Clear History') }}">{{ _('Clear History') }}{% endif %} Clone & Edit - RSS Feed for this watch + class="pure-button">{{ _('Clone & Edit') }} + {{ _('RSS Feed for this watch') }} diff --git a/changedetectionio/blueprint/ui/templates/preview.html b/changedetectionio/blueprint/ui/templates/preview.html index b232ef2f9..b0a567655 100644 --- a/changedetectionio/blueprint/ui/templates/preview.html +++ b/changedetectionio/blueprint/ui/templates/preview.html @@ -19,7 +19,7 @@
- {% for version in versions|reverse %} @@ -28,27 +28,27 @@ {% endfor %} - +

- Keyboard: - ← Previous   - → Next + {{ _('Keyboard:') }} + ← {{ _('Previous') }}   + → {{ _('Next') }}
{% endif %}
@@ -56,17 +56,17 @@
-
{{ watch.error_text_ctime|format_seconds_ago }} seconds ago
+
{{ watch.error_text_ctime|format_seconds_ago }} {{ _('seconds ago') }}
             {{ last_error_text }}
         
-
{{ watch.snapshot_error_screenshot_ctime|format_seconds_ago }} seconds ago +
{{ watch.snapshot_error_screenshot_ctime|format_seconds_ago }} {{ _('seconds ago') }}
Current erroring screenshot from most recent request + alt="{{ _('Current erroring screenshot from most recent request') }}">
@@ -77,18 +77,18 @@
- For now, Differences are performed on text, not graphically, only the latest screenshot is available. + {{ _('For now, Differences are performed on text, not graphically, only the latest screenshot is available.') }}

{% if capabilities.supports_screenshots %} {% if screenshot %}
{{ watch.snapshot_screenshot_ctime|format_timestamp_timeago }}
- Current screenshot from most recent request + {{ _('Current screenshot from most recent request') }} {% else %} - No screenshot available just yet! Try rechecking the page. + {{ _('No screenshot available just yet! Try rechecking the page.') }} {% endif %} {% else %} - Screenshot requires a Content Fetcher ( Sockpuppetbrowser, selenium, etc ) that supports screenshots. + {{ _('Screenshot requires a Content Fetcher ( Sockpuppetbrowser, selenium, etc ) that supports screenshots.') }} {% endif %}
diff --git a/changedetectionio/blueprint/watchlist/templates/watch-overview.html b/changedetectionio/blueprint/watchlist/templates/watch-overview.html index 46370d218..4fad98ca1 100644 --- a/changedetectionio/blueprint/watchlist/templates/watch-overview.html +++ b/changedetectionio/blueprint/watchlist/templates/watch-overview.html @@ -28,11 +28,11 @@ document.addEventListener('DOMContentLoaded', function() {
- Add a new web page change detection watch + {{ _('Add a new web page change detection watch') }}
{{ render_nolabel_field(form.url, placeholder="https://...", required=true) }} - {{ render_nolabel_field(form.watch_submit_button, title="Watch this URL!" ) }} - {{ render_nolabel_field(form.edit_and_watch_submit_button, title="Edit first then Watch") }} + {{ render_nolabel_field(form.watch_submit_button, title=_("Watch this URL!") ) }} + {{ render_nolabel_field(form.edit_and_watch_submit_button, title=_("Edit first then Watch") ) }}
{{ render_field(form.tags, value=active_tag.title if active_tag_uuid else '', placeholder="Watch group / tag", class="transparent-field") }} @@ -42,7 +42,7 @@ document.addEventListener('DOMContentLoaded', function() {
- Create a shareable link Tip: You can also add 'shared' watches. More info + {{ _('Create a shareable link') }} {{ _("Tip: You can also add 'shared' watches.") }} {{ _('More info') }}
@@ -50,34 +50,34 @@ document.addEventListener('DOMContentLoaded', function() {
- - - - - - - - - + + + + + + + + + + data-confirm-title="{{ _('Clear Histories') }}" + data-confirm-message="{{ _('

Are you sure you want to clear history for the selected items?

This action cannot be undone.

') }}" + data-confirm-button="{{ _('OK') }}">{{ _('Clear/reset history') }} + data-confirm-title="{{ _('Delete Watches?') }}" + data-confirm-message="{{ _('

Are you sure you want to delete the selected watches?

This action cannot be undone.

') }}" + data-confirm-button="{{ _('Delete') }}">{{ _('Delete') }}
{%- if watches|length >= pagination.per_page -%} {{ pagination.info }} {%- endif -%} - {%- if search_q -%}
Searching "{{search_q}}"
{%- endif -%} + {%- if search_q -%}
{{ _('Searching') }} "{{search_q}}"
{%- endif -%}
- All + {{ _('All') }} {%- for uuid, tag in tags -%} @@ -115,19 +115,19 @@ document.addEventListener('DOMContentLoaded', function() {   -
+ {%- if any_has_restock_price_processor -%} - + {%- endif -%} - - + + {%- if not watches|length -%} - + {%- endif -%} @@ -210,20 +210,20 @@ document.addEventListener('DOMContentLoaded', function() { @@ -231,24 +231,24 @@ document.addEventListener('DOMContentLoaded', function() { {#last_checked becomes fetch-start-time#} @@ -257,22 +257,21 @@ document.addEventListener('DOMContentLoaded', function() {
Check count{{ _('Check count') }} {{ "{:,}".format( watch.check_count) }}
Consecutive filter failures{{ _('Consecutive filter failures') }} {{ "{:,}".format( watch.consecutive_filter_failures) }}
History length{{ _('History length') }} {{ "{:,}".format(watch.history|length) }}
Last fetch duration{{ _('Last fetch duration') }} {{ watch.fetch_time }}s
Notification alert count{{ _('Notification alert count') }} {{ watch.notification_alert_count }}
Server type reply{{ _('Server type reply') }} {{ watch.get('remote_server_reply') }}
Website {{ _('Website') }} Restock & Price{{ _('Restock & Price') }}Last Checked Last Changed {{ _('Last') }} {{ _('Checked') }} {{ _('Last') }} {{ _('Changed') }}
No website watches configured, please add a URL in the box above, or import a list.{{ _('No website watches configured, please add a URL in the box above, or') }} {{ _('import a list') }}.
{%- if watch['processor'] == 'restock_diff' -%} {%- if watch.has_restock_info -%} - + - {%- if watch['restock']['in_stock']-%} In stock {%- else-%} Not in stock {%- endif -%} + {%- if watch['restock']['in_stock']-%} {{ _('In stock') }} {%- else-%} {{ _('Not in stock') }} {%- endif -%} {%- endif -%} {%- if watch.get('restock') and watch['restock']['price'] != None -%} {%- if watch['restock']['price'] != None -%} - + {{ watch['restock']['price']|format_number_locale if watch['restock'].get('price') else '' }} {{ watch['restock'].get('currency','') }} {%- endif -%} {%- elif not watch.has_restock_info -%} - No information + {{ _('No information') }} {%- endif -%} {%- endif -%} {{watch|format_last_checked_time|safe}} {%- if watch.history_n >=2 and watch.last_changed >0 -%} {{watch.last_changed|format_timestamp_timeago}} {%- else -%} - Not yet + {{ _('Not yet') }} {%- endif -%}
{%- set target_attr = ' target="' ~ watch.uuid ~ '"' if datastore.data['settings']['application']['ui'].get('open_diff_in_new_tab') else '' -%} - - Recheck - Edit - - + + {{ _('Recheck') }} + {{ _('Edit') }} + +
    {%- if active_tag_uuid -%}
  • - Mark all viewed in '{{active_tag.title}}' + {{ _("Mark all viewed in '%(title)s'", title=active_tag.title) }}
  • {%- endif -%}
  • - Recheck - all {% if active_tag_uuid %} in '{{active_tag.title}}'{%endif%} + {{ _('Recheck all') }} {% if active_tag_uuid %} {{ _("in '%(title)s'", title=active_tag.title) }}{%endif%}
  • RSS Feed diff --git a/changedetectionio/flask_app.py b/changedetectionio/flask_app.py index 1ca0866fa..8a24a8fe8 100644 --- a/changedetectionio/flask_app.py +++ b/changedetectionio/flask_app.py @@ -23,6 +23,7 @@ from flask import ( render_template, request, send_from_directory, + session, url_for, ) from flask_compress import Compress as FlaskCompress @@ -34,6 +35,7 @@ from flask_cors import CORS # Make this a global singleton to avoid multiple signal objects watch_check_update = signal('watch_check_update', doc='Signal sent when a watch check is completed') from flask_wtf import CSRFProtect +from flask_babel import Babel, gettext, get_locale from loguru import logger from changedetectionio import __version__ @@ -41,6 +43,7 @@ from changedetectionio import queuedWatchMetaData from changedetectionio.api import Watch, WatchHistory, WatchSingleHistory, WatchHistoryDiff, CreateWatch, Import, SystemInfo, Tag, Tags, Notifications, WatchFavicon from changedetectionio.api.Search import Search from .time_handler import is_within_schedule +from changedetectionio.languages import get_available_languages, get_language_codes, get_flag_for_locale, get_timeago_locale datastore = None @@ -207,16 +210,26 @@ def _get_worker_status_info(): def _jinja2_filter_datetime(watch_obj, format="%Y-%m-%d %H:%M:%S"): if watch_obj['last_checked'] == 0: - return 'Not yet' + return gettext('Not yet') - return timeago.format(int(watch_obj['last_checked']), time.time()) + locale = get_timeago_locale(str(get_locale())) + try: + return timeago.format(int(watch_obj['last_checked']), time.time(), locale) + except: + # Fallback to English if locale not supported by timeago + return timeago.format(int(watch_obj['last_checked']), time.time(), 'en') @app.template_filter('format_timestamp_timeago') def _jinja2_filter_datetimestamp(timestamp, format="%Y-%m-%d %H:%M:%S"): if not timestamp: - return 'Not yet' + return gettext('Not yet') - return timeago.format(int(timestamp), time.time()) + locale = get_timeago_locale(str(get_locale())) + try: + return timeago.format(int(timestamp), time.time(), locale) + except: + # Fallback to English if locale not supported by timeago + return timeago.format(int(timestamp), time.time(), 'en') @app.template_filter('pagination_slice') @@ -230,7 +243,7 @@ def _jinja2_filter_pagination_slice(arr, skip): @app.template_filter('format_seconds_ago') def _jinja2_filter_seconds_precise(timestamp): if timestamp == False: - return 'Not yet' + return gettext('Not yet') return format(int(time.time()-timestamp), ',d') @@ -347,7 +360,33 @@ def changedetection_app(config=None, datastore_o=None): login_manager = flask_login.LoginManager(app) login_manager.login_view = 'login' app.secret_key = init_app_secret(config['datastore_path']) - + + # Initialize Flask-Babel for i18n support + available_languages = get_available_languages() + language_codes = get_language_codes() + + def get_locale(): + # 1. Try to get locale from session (user explicitly selected) + if 'locale' in session: + locale = session['locale'] + print(f"DEBUG: get_locale() returning from session: {locale}") + return locale + # 2. Fall back to Accept-Language header + locale = request.accept_languages.best_match(language_codes) + print(f"DEBUG: get_locale() returning from Accept-Language: {locale}") + return locale + + # Initialize Babel with locale selector + babel = Babel(app, locale_selector=get_locale) + + # Make i18n functions available to templates + app.jinja_env.globals.update( + _=gettext, + get_locale=get_locale, + get_flag_for_locale=get_flag_for_locale, + available_languages=available_languages + ) + # Set up a request hook to check authentication for all routes @app.before_request def check_authentication(): @@ -434,6 +473,18 @@ def changedetection_app(config=None, datastore_o=None): flask_login.logout_user() return redirect(url_for('watchlist.index')) + @app.route('/set-language/') + def set_language(locale): + """Set the user's preferred language in the session""" + # Validate the locale against available languages + if locale in language_codes: + session['locale'] = locale + else: + logger.error(f"Invalid locale {locale}, available: {language_codes}") + + # Redirect back to the page they came from, or home + return redirect(url_for('watchlist.index')) + # https://github.com/pallets/flask/blob/93dd1709d05a1cf0e886df6223377bdab3b077fb/examples/tutorial/flaskr/__init__.py#L39 # You can divide up the stuff like this @app.route('/login', methods=['GET', 'POST']) diff --git a/changedetectionio/forms.py b/changedetectionio/forms.py index 7829b7384..d44e9a69a 100644 --- a/changedetectionio/forms.py +++ b/changedetectionio/forms.py @@ -2,6 +2,7 @@ import os import re from loguru import logger from wtforms.widgets.core import TimeInput +from flask_babel import lazy_gettext as _l, gettext from changedetectionio.blueprint.rss import RSS_FORMAT_TYPES, RSS_TEMPLATE_TYPE_OPTIONS, RSS_TEMPLATE_HTML_DEFAULT from changedetectionio.conditions.form import ConditionFormRow @@ -9,6 +10,7 @@ from changedetectionio.notification_service import NotificationContextData from changedetectionio.processors.image_ssim_diff import SCREENSHOT_COMPARISON_THRESHOLD_OPTIONS, \ SCREENSHOT_COMPARISON_THRESHOLD_OPTIONS_DEFAULT from changedetectionio.strtobool import strtobool +from changedetectionio import processors from wtforms import ( BooleanField, @@ -58,8 +60,8 @@ valid_method = { default_method = 'GET' allow_simplehost = not strtobool(os.getenv('BLOCK_SIMPLEHOSTS', 'False')) -REQUIRE_ATLEAST_ONE_TIME_PART_MESSAGE_DEFAULT='At least one time interval (weeks, days, hours, minutes, or seconds) must be specified.' -REQUIRE_ATLEAST_ONE_TIME_PART_WHEN_NOT_GLOBAL_DEFAULT='At least one time interval (weeks, days, hours, minutes, or seconds) must be specified when not using global settings.' +REQUIRE_ATLEAST_ONE_TIME_PART_MESSAGE_DEFAULT=_l('At least one time interval (weeks, days, hours, minutes, or seconds) must be specified.') +REQUIRE_ATLEAST_ONE_TIME_PART_WHEN_NOT_GLOBAL_DEFAULT=_l('At least one time interval (weeks, days, hours, minutes, or seconds) must be specified when not using global settings.') class StringListField(StringField): widget = widgets.TextArea() @@ -159,7 +161,7 @@ class TimeStringField(Field): time_str = valuelist[0] # Simple validation for HH:MM format if not time_str or len(time_str.split(":")) != 2: - raise ValidationError("Invalid time format. Use HH:MM.") + raise ValidationError(_l("Invalid time format. Use HH:MM.")) self.data = time_str @@ -175,15 +177,15 @@ class validateTimeZoneName(object): from zoneinfo import available_timezones python_timezones = available_timezones() if field.data and field.data not in python_timezones: - raise ValidationError("Not a valid timezone name") + raise ValidationError(_l("Not a valid timezone name")) class ScheduleLimitDaySubForm(Form): - enabled = BooleanField("not set", default=True) - start_time = TimeStringField("Start At", default="00:00", validators=[validators.Optional()]) - duration = FormField(TimeDurationForm, label="Run duration") + enabled = BooleanField(_l("not set"), default=True) + start_time = TimeStringField(_l("Start At"), default="00:00", validators=[validators.Optional()]) + duration = FormField(TimeDurationForm, label=_l("Run duration")) class ScheduleLimitForm(Form): - enabled = BooleanField("Use time scheduler", default=False) + enabled = BooleanField(_l("Use time scheduler"), default=False) # Because the label for=""" doesnt line up/work with the actual checkbox monday = FormField(ScheduleLimitDaySubForm, label="") tuesday = FormField(ScheduleLimitDaySubForm, label="") @@ -193,7 +195,7 @@ class ScheduleLimitForm(Form): saturday = FormField(ScheduleLimitDaySubForm, label="") sunday = FormField(ScheduleLimitDaySubForm, label="") - timezone = StringField("Optional timezone to run in", + timezone = StringField(_l("Optional timezone to run in"), render_kw={"list": "timezones"}, validators=[validateTimeZoneName()] ) @@ -207,13 +209,13 @@ class ScheduleLimitForm(Form): **kwargs, ): super().__init__(formdata, obj, prefix, data, meta, **kwargs) - self.monday.form.enabled.label.text="Monday" - self.tuesday.form.enabled.label.text = "Tuesday" - self.wednesday.form.enabled.label.text = "Wednesday" - self.thursday.form.enabled.label.text = "Thursday" - self.friday.form.enabled.label.text = "Friday" - self.saturday.form.enabled.label.text = "Saturday" - self.sunday.form.enabled.label.text = "Sunday" + self.monday.form.enabled.label.text=_l("Monday") + self.tuesday.form.enabled.label.text = _l("Tuesday") + self.wednesday.form.enabled.label.text = _l("Wednesday") + self.thursday.form.enabled.label.text = _l("Thursday") + self.friday.form.enabled.label.text = _l("Friday") + self.saturday.form.enabled.label.text = _l("Saturday") + self.sunday.form.enabled.label.text = _l("Sunday") def validate_time_between_check_has_values(form): @@ -238,7 +240,7 @@ class RequiredTimeInterval(object): Use this with FormField(TimeBetweenCheckForm, validators=[RequiredTimeInterval()]). """ def __init__(self, message=None): - self.message = message or 'At least one time interval (weeks, days, hours, minutes, or seconds) must be specified.' + self.message = message or _l('At least one time interval (weeks, days, hours, minutes, or seconds) must be specified.') def __call__(self, form, field): if not validate_time_between_check_has_values(field.form): @@ -246,11 +248,11 @@ class RequiredTimeInterval(object): class TimeBetweenCheckForm(Form): - weeks = IntegerField('Weeks', validators=[validators.Optional(), validators.NumberRange(min=0, message="Should contain zero or more seconds")]) - days = IntegerField('Days', validators=[validators.Optional(), validators.NumberRange(min=0, message="Should contain zero or more seconds")]) - hours = IntegerField('Hours', validators=[validators.Optional(), validators.NumberRange(min=0, message="Should contain zero or more seconds")]) - minutes = IntegerField('Minutes', validators=[validators.Optional(), validators.NumberRange(min=0, message="Should contain zero or more seconds")]) - seconds = IntegerField('Seconds', validators=[validators.Optional(), validators.NumberRange(min=0, message="Should contain zero or more seconds")]) + weeks = IntegerField(_l('Weeks'), validators=[validators.Optional(), validators.NumberRange(min=0, message=_l("Should contain zero or more seconds"))]) + days = IntegerField(_l('Days'), validators=[validators.Optional(), validators.NumberRange(min=0, message=_l("Should contain zero or more seconds"))]) + hours = IntegerField(_l('Hours'), validators=[validators.Optional(), validators.NumberRange(min=0, message=_l("Should contain zero or more seconds"))]) + minutes = IntegerField(_l('Minutes'), validators=[validators.Optional(), validators.NumberRange(min=0, message=_l("Should contain zero or more seconds"))]) + seconds = IntegerField(_l('Seconds'), validators=[validators.Optional(), validators.NumberRange(min=0, message=_l("Should contain zero or more seconds"))]) # @todo add total seconds minimum validatior = minimum_seconds_recheck_time def __init__(self, formdata=None, obj=None, prefix="", data=None, meta=None, **kwargs): @@ -720,18 +722,16 @@ class ValidateStartsWithRegex(object): if not stripped: if self.allow_empty: continue - raise ValidationError(self.message or "Empty value not allowed.") + raise ValidationError(self.message or _l("Empty value not allowed.")) if not self.pattern.match(stripped): - raise ValidationError(self.message or "Invalid value.") + raise ValidationError(self.message or _l("Invalid value.")) class quickWatchForm(Form): - from . import processors - url = fields.URLField('URL', validators=[validateURL()]) tags = StringTagUUID('Group tag', [validators.Optional()]) - watch_submit_button = SubmitField('Watch', render_kw={"class": "pure-button pure-button-primary"}) - processor = RadioField(u'Processor', choices=processors.available_processors(), default="text_json_diff") - edit_and_watch_submit_button = SubmitField('Edit > Watch', render_kw={"class": "pure-button pure-button-primary"}) + watch_submit_button = SubmitField(_l('Watch'), render_kw={"class": "pure-button pure-button-primary"}) + processor = RadioField(_l('Processor'), choices=lambda: processors.available_processors(), default="text_json_diff") + edit_and_watch_submit_button = SubmitField(_l('Edit > Watch'), render_kw={"class": "pure-button pure-button-primary"}) # Common to a single watch and the global settings @@ -744,14 +744,14 @@ class commonSettingsForm(Form): self.notification_title.extra_notification_tokens = kwargs.get('extra_notification_tokens', {}) self.notification_urls.extra_notification_tokens = kwargs.get('extra_notification_tokens', {}) - fetch_backend = RadioField(u'Fetch Method', choices=content_fetchers.available_fetchers(), validators=[ValidateContentFetcherIsReady()]) - notification_body = TextAreaField('Notification Body', default='{{ watch_url }} had a change.', validators=[validators.Optional(), ValidateJinja2Template()]) - notification_format = SelectField('Notification format', choices=list(valid_notification_formats.items())) - notification_title = StringField('Notification Title', default='ChangeDetection.io Notification - {{ watch_url }}', validators=[validators.Optional(), ValidateJinja2Template()]) - notification_urls = StringListField('Notification URL List', validators=[validators.Optional(), ValidateAppRiseServers(), ValidateJinja2Template()]) - processor = RadioField( label=u"Processor - What do you want to achieve?", choices=processors.available_processors(), default="text_json_diff") - scheduler_timezone_default = StringField("Default timezone for watch check scheduler", render_kw={"list": "timezones"}, validators=[validateTimeZoneName()]) - webdriver_delay = IntegerField('Wait seconds before extracting text', validators=[validators.Optional(), validators.NumberRange(min=1, message="Should contain one or more seconds")]) + fetch_backend = RadioField(_l('Fetch Method'), choices=content_fetchers.available_fetchers(), validators=[ValidateContentFetcherIsReady()]) + notification_body = TextAreaField(_l('Notification Body'), default='{{ watch_url }} had a change.', validators=[validators.Optional(), ValidateJinja2Template()]) + notification_format = SelectField(_l('Notification format'), choices=list(valid_notification_formats.items())) + notification_title = StringField(_l('Notification Title'), default='ChangeDetection.io Notification - {{ watch_url }}', validators=[validators.Optional(), ValidateJinja2Template()]) + notification_urls = StringListField(_l('Notification URL List'), validators=[validators.Optional(), ValidateAppRiseServers(), ValidateJinja2Template()]) + processor = RadioField( label=_l("Processor - What do you want to achieve?"), choices=lambda: processors.available_processors(), default="text_json_diff") + scheduler_timezone_default = StringField(_l("Default timezone for watch check scheduler"), render_kw={"list": "timezones"}, validators=[validateTimeZoneName()]) + webdriver_delay = IntegerField(_l('Wait seconds before extracting text'), validators=[validators.Optional(), validators.NumberRange(min=1, message=_l("Should contain one or more seconds"))]) # Not true anymore but keep the validate_ hook for future use, we convert color tags # def validate_notification_urls(self, field): @@ -763,22 +763,21 @@ class commonSettingsForm(Form): class importForm(Form): - from . import processors - processor = RadioField(u'Processor', choices=processors.available_processors(), default="text_json_diff") - urls = TextAreaField('URLs') - xlsx_file = FileField('Upload .xlsx file', validators=[FileAllowed(['xlsx'], 'Must be .xlsx file!')]) - file_mapping = SelectField('File mapping', [validators.DataRequired()], choices={('wachete', 'Wachete mapping'), ('custom','Custom mapping')}) + processor = RadioField(_l('Processor'), choices=lambda: processors.available_processors(), default="text_json_diff") + urls = TextAreaField(_l('URLs')) + xlsx_file = FileField(_l('Upload .xlsx file'), validators=[FileAllowed(['xlsx'], _l('Must be .xlsx file!'))]) + file_mapping = SelectField(_l('File mapping'), [validators.DataRequired()], choices={('wachete', 'Wachete mapping'), ('custom','Custom mapping')}) class SingleBrowserStep(Form): - operation = SelectField('Operation', [validators.Optional()], choices=browser_step_ui_config.keys()) + operation = SelectField(_l('Operation'), [validators.Optional()], choices=browser_step_ui_config.keys()) # maybe better to set some - - + + {% if bottom_horizontal_offscreen_contents %} {% endif %} + + + + + + + + + diff --git a/changedetectionio/templates/login.html b/changedetectionio/templates/login.html index dac94dfa8..ee16ecd18 100644 --- a/changedetectionio/templates/login.html +++ b/changedetectionio/templates/login.html @@ -7,13 +7,13 @@
    - +
    - +
    diff --git a/changedetectionio/translations/cs/LC_MESSAGES/messages.mo b/changedetectionio/translations/cs/LC_MESSAGES/messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..392b4c6ab36b9e9880746fe485b4df4d7f1b89e6 GIT binary patch literal 29733 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 ANdN!< literal 0 HcmV?d00001 diff --git a/changedetectionio/translations/cs/LC_MESSAGES/messages.po b/changedetectionio/translations/cs/LC_MESSAGES/messages.po new file mode 100644 index 000000000..e3e53e8ad --- /dev/null +++ b/changedetectionio/translations/cs/LC_MESSAGES/messages.po @@ -0,0 +1,1965 @@ +# Czech translations for PROJECT. +# Copyright (C) 2026 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR , 2026. +# +msgid "" +msgstr "" +"Project-Id-Version: PROJECT VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2026-01-02 13:32+0100\n" +"PO-Revision-Date: 2026-01-02 11:40+0100\n" +"Last-Translator: FULL NAME \n" +"Language: cs\n" +"Language-Team: cs \n" +"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.17.0\n" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:241 +#: changedetectionio/flask_app.py:213 changedetectionio/flask_app.py:225 +#: changedetectionio/flask_app.py:246 +#: changedetectionio/realtime/socket_server.py:171 +msgid "Not yet" +msgstr "Ještě ne" + +#: changedetectionio/forms.py:62 changedetectionio/forms.py:242 +msgid "" +"At least one time interval (weeks, days, hours, minutes, or seconds) must" +" be specified." +msgstr "" + +#: changedetectionio/forms.py:63 +msgid "" +"At least one time interval (weeks, days, hours, minutes, or seconds) must" +" be specified when not using global settings." +msgstr "" + +#: changedetectionio/forms.py:163 +msgid "Invalid time format. Use HH:MM." +msgstr "Neplatný formát času. Použijte HH:MM." + +#: changedetectionio/forms.py:179 +msgid "Not a valid timezone name" +msgstr "Neplatný název časového pásma" + +#: changedetectionio/forms.py:182 +msgid "not set" +msgstr "Ještě ne" + +#: changedetectionio/forms.py:183 +msgid "Start At" +msgstr "NASTAVENÍ" + +#: changedetectionio/forms.py:184 +msgid "Run duration" +msgstr "Žádné informace" + +#: changedetectionio/forms.py:187 +msgid "Use time scheduler" +msgstr "Použijte časový plánovač" + +#: changedetectionio/forms.py:197 +msgid "Optional timezone to run in" +msgstr "Volitelné časové pásmo pro spuštění" + +#: changedetectionio/forms.py:211 +msgid "Monday" +msgstr "pondělí" + +#: changedetectionio/forms.py:212 +msgid "Tuesday" +msgstr "úterý" + +#: changedetectionio/forms.py:213 +msgid "Wednesday" +msgstr "středa" + +#: changedetectionio/forms.py:214 +msgid "Thursday" +msgstr "čtvrtek" + +#: changedetectionio/forms.py:215 +msgid "Friday" +msgstr "pátek" + +#: changedetectionio/forms.py:216 +msgid "Saturday" +msgstr "sobota" + +#: changedetectionio/forms.py:217 +msgid "Sunday" +msgstr "neděle" + +#: changedetectionio/forms.py:250 +msgid "Weeks" +msgstr "týdny" + +#: changedetectionio/forms.py:250 changedetectionio/forms.py:251 +#: changedetectionio/forms.py:252 changedetectionio/forms.py:253 +#: changedetectionio/forms.py:254 changedetectionio/forms.py:957 +msgid "Should contain zero or more seconds" +msgstr "Mělo by obsahovat nula nebo více sekund" + +#: changedetectionio/forms.py:251 +msgid "Days" +msgstr "Dny" + +#: changedetectionio/forms.py:252 +msgid "Hours" +msgstr "Heslo" + +#: changedetectionio/forms.py:253 +msgid "Minutes" +msgstr "Ztlumit" + +#: changedetectionio/forms.py:254 +msgid "Seconds" +msgstr "sekundy" + +#: changedetectionio/forms.py:459 +msgid "Notification Body and Title is required when a Notification URL is used" +msgstr "Při použití adresy URL oznámení je vyžadováno tělo a název oznámení" + +#: changedetectionio/forms.py:488 +#, python-format +msgid "'%s' is not a valid AppRise URL." +msgstr "'%s' není platná URL AppRise." + +#: changedetectionio/forms.py:561 changedetectionio/forms.py:580 +#, python-format +msgid "RegEx '%s' is not a valid regular expression." +msgstr "RegEx '%s' není platný regulární výraz." + +#: changedetectionio/forms.py:621 changedetectionio/forms.py:636 +#, python-format +msgid "'%s' is not a valid XPath expression. (%s)" +msgstr "'%s' není platný výraz XPath. (%s)" + +#: changedetectionio/forms.py:656 +#, python-format +msgid "'%s' is not a valid JSONPath expression. (%s)" +msgstr "'%s' není platný výraz JSONPath. (%s)" + +#: changedetectionio/forms.py:678 +#, python-format +msgid "'%s' is not a valid jq expression. (%s)" +msgstr "'%s' není platný výraz jq. (%s)" + +#: changedetectionio/forms.py:724 +msgid "Empty value not allowed." +msgstr "Prázdná hodnota není povolena." + +#: changedetectionio/forms.py:726 +msgid "Invalid value." +msgstr "Neplatná hodnota." + +#: changedetectionio/forms.py:733 +msgid "Watch" +msgstr "# Hodinky" + +#: changedetectionio/forms.py:734 changedetectionio/forms.py:768 +msgid "Processor" +msgstr "Procesor" + +#: changedetectionio/forms.py:735 +msgid "Edit > Watch" +msgstr "Nejprve upravte a poté sledujte" + +#: changedetectionio/forms.py:748 changedetectionio/forms.py:996 +msgid "Fetch Method" +msgstr "Nastavte metodu načítání" + +#: changedetectionio/forms.py:749 +msgid "Notification Body" +msgstr "Žádné informace" + +#: changedetectionio/forms.py:750 +msgid "Notification format" +msgstr "Žádné informace" + +#: changedetectionio/forms.py:751 +msgid "Notification Title" +msgstr "Žádné informace" + +#: changedetectionio/forms.py:752 +msgid "Notification URL List" +msgstr "Žádné informace" + +#: changedetectionio/forms.py:753 +msgid "Processor - What do you want to achieve?" +msgstr "Procesor – Čeho chcete dosáhnout?" + +#: changedetectionio/forms.py:754 +msgid "Default timezone for watch check scheduler" +msgstr "Výchozí časové pásmo pro plánovač kontroly hodinek" + +#: changedetectionio/forms.py:755 +msgid "Wait seconds before extracting text" +msgstr "sekund před extrahováním textu." + +#: changedetectionio/forms.py:755 +msgid "Should contain one or more seconds" +msgstr "Měl by obsahovat jednu nebo více sekund" + +#: changedetectionio/forms.py:769 +msgid "URLs" +msgstr "URL" + +#: changedetectionio/forms.py:770 +msgid "Upload .xlsx file" +msgstr "Nahrajte soubor .xlsx" + +#: changedetectionio/forms.py:770 +msgid "Must be .xlsx file!" +msgstr "Musí to být soubor .xlsx!" + +#: changedetectionio/forms.py:771 +msgid "File mapping" +msgstr "Typ mapování souboru." + +#: changedetectionio/forms.py:775 +msgid "Operation" +msgstr "Možnosti uživatelského rozhraní" + +#: changedetectionio/forms.py:778 +msgid "Selector" +msgstr "Režim výběru:" + +#: changedetectionio/forms.py:779 +msgid "value" +msgstr "Pauza" + +#: changedetectionio/forms.py:798 +msgid "Use global settings for time between check and scheduler." +msgstr "Použijte globální nastavení pro čas mezi kontrolou a plánovačem." + +#: changedetectionio/forms.py:800 +msgid "CSS/JSONPath/JQ/XPath Filters" +msgstr "CSS/xPath filtr" + +#: changedetectionio/forms.py:802 changedetectionio/forms.py:998 +msgid "Remove elements" +msgstr "Odebráno" + +#: changedetectionio/forms.py:804 +msgid "Extract text" +msgstr "Extrahujte data" + +#: changedetectionio/blueprint/imports/templates/import.html:106 +#: changedetectionio/forms.py:806 +msgid "Title" +msgstr "Titul" + +#: changedetectionio/forms.py:808 +msgid "Ignore lines containing" +msgstr "Ignorujte všechny odpovídající řádky" + +#: changedetectionio/forms.py:810 +msgid "Request body" +msgstr "Žádost" + +#: changedetectionio/forms.py:811 +msgid "Request method" +msgstr "Žádost" + +#: changedetectionio/forms.py:812 +msgid "Ignore status codes (process non-2xx status codes as normal)" +msgstr "Ignorovat stavové kódy (zpracovat stavové kódy jiné než 2xx jako normálně)" + +#: changedetectionio/forms.py:813 +msgid "Only trigger when unique lines appear in all history" +msgstr "Spustit pouze tehdy, když se objeví jedinečné čáry" + +#: changedetectionio/blueprint/ui/templates/edit.html:336 +#: changedetectionio/forms.py:814 +msgid "Remove duplicate lines of text" +msgstr "Odstraňte duplicitní řádky textu" + +#: changedetectionio/forms.py:815 +msgid "Sort text alphabetically" +msgstr "Seřadit text podle abecedy" + +#: changedetectionio/forms.py:816 changedetectionio/forms.py:1025 +msgid "Strip ignored lines" +msgstr "Odstraňte ignorované řádky" + +#: changedetectionio/forms.py:817 +msgid "Trim whitespace before and after text" +msgstr "Odstraňte všechny mezery před a za každým řádkem textu" + +#: changedetectionio/forms.py:819 +msgid "Added lines" +msgstr "Přihlášení" + +#: changedetectionio/forms.py:820 +msgid "Replaced/changed lines" +msgstr "Vyměněny/změněny řádky" + +#: changedetectionio/forms.py:821 +msgid "Removed lines" +msgstr "Odebráno" + +#: changedetectionio/forms.py:823 +msgid "Keyword triggers - Trigger/wait for text" +msgstr "Spouštěče klíčových slov – Spouštění/čekání na text" + +#: changedetectionio/forms.py:826 +msgid "Block change-detection while text matches" +msgstr "Blokovat detekci změn, když se text shoduje" + +#: changedetectionio/forms.py:827 +msgid "Execute JavaScript before change detection" +msgstr "Spusťte JavaScript před detekcí změn" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:17 +#: changedetectionio/forms.py:829 changedetectionio/forms.py:1053 +msgid "Save" +msgstr "Uložit" + +#: changedetectionio/forms.py:831 +msgid "Proxy" +msgstr "Proxy" + +#: changedetectionio/forms.py:833 +msgid "Send a notification when the filter can no longer be found on the page" +msgstr "Odeslat upozornění, když filtr již na stránce nelze najít" + +#: changedetectionio/blueprint/settings/templates/settings.html:22 +#: changedetectionio/blueprint/tags/templates/edit-tag.html:32 +#: changedetectionio/blueprint/ui/templates/edit.html:59 +#: changedetectionio/forms.py:834 +msgid "Notifications" +msgstr "Žádné informace" + +#: changedetectionio/forms.py:834 +msgid "Muted" +msgstr "Ztlumit" + +#: changedetectionio/forms.py:834 +msgid "On" +msgstr "žádný" + +#: changedetectionio/forms.py:835 +msgid "Attach screenshot to notification (where possible)" +msgstr "Připojte snímek obrazovky k oznámení (pokud je to možné)" + +#: changedetectionio/forms.py:837 +msgid "Match" +msgstr "# Hodinky" + +#: changedetectionio/forms.py:837 +msgid "Match all of the following" +msgstr "Spojte všechny následující položky" + +#: changedetectionio/forms.py:837 +msgid "Match any of the following" +msgstr "Přiřaďte kteroukoli z následujících možností" + +#: changedetectionio/forms.py:839 +msgid "Use page in list" +msgstr "V seznamu použijte stránku <title>" + +#: changedetectionio/forms.py:856 +msgid "Body must be empty when Request Method is set to GET" +msgstr "Když je metoda požadavku nastavena na GET, tělo musí být prázdné" + +#: changedetectionio/forms.py:865 changedetectionio/forms.py:879 +#: changedetectionio/forms.py:894 +#, python-format +msgid "Invalid template syntax configuration: %(error)s" +msgstr "Neplatná konfigurace syntaxe šablony: %(error)s" + +#: changedetectionio/forms.py:869 changedetectionio/forms.py:883 +#, python-format +msgid "Invalid template syntax: %(error)s" +msgstr "Neplatná syntaxe šablony: %(error)s" + +#: changedetectionio/forms.py:898 +#, python-format +msgid "Invalid template syntax in \"%(header)s\" header: %(error)s" +msgstr "" + +#: changedetectionio/forms.py:922 changedetectionio/forms.py:934 +msgid "Name" +msgstr "Zrušit ztlumení" + +#: changedetectionio/forms.py:923 +msgid "Proxy URL" +msgstr "Proxy URL" + +#: changedetectionio/forms.py:928 +msgid "Proxy URLs must start with http://, https:// or socks5://" +msgstr "Proxy URL musí začínat http://, https:// nebo socks5://" + +#: changedetectionio/forms.py:935 +msgid "Browser connection URL" +msgstr "Adresa URL připojení prohlížeče" + +#: changedetectionio/forms.py:940 +msgid "Browser URLs must start with wss:// or ws://" +msgstr "Adresy URL prohlížeče musí začínat wss:// nebo ws://" + +#: changedetectionio/forms.py:946 +msgid "Plaintext requests" +msgstr "Požadavky na prostý text" + +#: changedetectionio/forms.py:948 +msgid "Chrome requests" +msgstr "Žádost" + +#: changedetectionio/forms.py:954 +msgid "Default proxy" +msgstr "Výchozí proxy" + +#: changedetectionio/forms.py:955 +msgid "Random jitter seconds ± check" +msgstr "Náhodné jitter sekundy ± kontrola" + +#: changedetectionio/forms.py:959 +msgid "Number of fetch workers" +msgstr "Počet pracovníků aportů" + +#: changedetectionio/forms.py:962 +msgid "Should be between 1 and 50" +msgstr "Mělo by být mezi 1 a 50" + +#: changedetectionio/forms.py:964 +msgid "Requests timeout in seconds" +msgstr "Požaduje časový limit v sekundách" + +#: changedetectionio/forms.py:967 +msgid "Should be between 1 and 999" +msgstr "Mělo by být mezi 1 a 999" + +#: changedetectionio/forms.py:972 +msgid "Default User-Agent overrides" +msgstr "Výchozí přepisy User-Agent" + +#: changedetectionio/forms.py:978 +msgid "Both a name, and a Proxy URL is required." +msgstr "Je vyžadován název i adresa URL proxy." + +#: changedetectionio/forms.py:982 +msgid "Open 'History' page in a new tab" +msgstr "Otevřete stránku „Historie“ na nové kartě" + +#: changedetectionio/forms.py:983 +msgid "Realtime UI Updates Enabled" +msgstr "Aktualizace v reálném čase offline" + +#: changedetectionio/forms.py:984 +msgid "Favicons Enabled" +msgstr "zvážit povolení" + +#: changedetectionio/forms.py:985 +msgid "Use page <title> in watch overview list" +msgstr "Použijte stránku <title> v přehledu sledování" + +#: changedetectionio/forms.py:990 +msgid "API access token security check enabled" +msgstr "Kontrola zabezpečení přístupového tokenu API povolena" + +#: changedetectionio/forms.py:991 +msgid "Notification base URL override" +msgstr "Počet upozornění na upozornění" + +#: changedetectionio/forms.py:995 +msgid "Treat empty pages as a change?" +msgstr "Považovat prázdné stránky za změnu?" + +#: changedetectionio/forms.py:997 +msgid "Ignore Text" +msgstr "Text chyby" + +#: changedetectionio/forms.py:999 +msgid "Ignore whitespace" +msgstr "Ignorujte mezery" + +#: changedetectionio/forms.py:1006 +#: changedetectionio/processors/image_ssim_diff/forms.py:50 +msgid "Must be between 0 and 100" +msgstr "Musí být mezi 0 a 100" + +#: changedetectionio/forms.py:1013 +msgid "Pager size" +msgstr "Velikost pageru" + +#: changedetectionio/forms.py:1016 +msgid "Should be atleast zero (disabled)" +msgstr "Mělo by být alespoň nula (vypnuto)" + +#: changedetectionio/forms.py:1018 +msgid "RSS Content format" +msgstr "Formát obsahu RSS" + +#: changedetectionio/forms.py:1019 +msgid "RSS <description> body built from" +msgstr "RSS <description> tělo sestavené z" + +#: changedetectionio/forms.py:1020 +msgid "RSS \"System default\" template override" +msgstr "" + +#: changedetectionio/forms.py:1022 +msgid "Remove password" +msgstr "Heslo" + +#: changedetectionio/forms.py:1023 +msgid "Render anchor tag content" +msgstr "Vykreslit obsah kotvící značky" + +#: changedetectionio/forms.py:1024 +msgid "Allow anonymous access to watch history page when password is enabled" +msgstr "" +"Povolit anonymní přístup na stránku historie sledování, když je povoleno " +"hesloPovolit anonymní přístup na stránku historie sledování, když je " +"povoleno heslo" + +#: changedetectionio/forms.py:1026 +msgid "Hide muted watches from RSS feed" +msgstr "Skrýt ztlumené hodinky ze zdroje RSS" + +#: changedetectionio/forms.py:1029 +msgid "Enable RSS reader mode " +msgstr "Povolit režim čtečky RSS" + +#: changedetectionio/forms.py:1030 +msgid "Number of changes to show in watch RSS feed" +msgstr "Počet změn, které se mají zobrazit v kanálu RSS sledování" + +#: changedetectionio/forms.py:1032 changedetectionio/forms.py:1037 +msgid "Should contain zero or more attempts" +msgstr "Mělo by obsahovat nula nebo více pokusů" + +#: changedetectionio/forms.py:1034 +msgid "Number of times the filter can be missing before sending a notification" +msgstr "Kolikrát může filtr chybět před odesláním upozornění" + +#: changedetectionio/forms.py:1057 +msgid "RegEx to extract" +msgstr "RegEx k extrahování" + +#: changedetectionio/forms.py:1058 +msgid "Extract as CSV" +msgstr "Extrahujte data" + +#: changedetectionio/blueprint/backups/templates/overview.html:6 +msgid "Backups" +msgstr "ZÁLOHY" + +#: changedetectionio/blueprint/backups/templates/overview.html:9 +msgid "A backup is running!" +msgstr "Probíhá zálohování!" + +#: changedetectionio/blueprint/backups/templates/overview.html:13 +msgid "" +"Here you can download and request a new backup, when a backup is " +"completed you will see it listed below." +msgstr "" + +#: changedetectionio/blueprint/backups/templates/overview.html:19 +msgid "Mb" +msgstr "Mb" + +#: changedetectionio/blueprint/backups/templates/overview.html:24 +msgid "No backups found." +msgstr "Nebyly nalezeny žádné zálohy." + +#: changedetectionio/blueprint/backups/templates/overview.html:28 +msgid "Create backup" +msgstr "ZÁLOHY" + +#: changedetectionio/blueprint/backups/templates/overview.html:30 +msgid "Remove backups" +msgstr "ZÁLOHY" + +#: changedetectionio/blueprint/imports/templates/import.html:9 +msgid "URL List" +msgstr "Seznam adres URL" + +#: changedetectionio/blueprint/imports/templates/import.html:10 +msgid "Distill.io" +msgstr "Distill.io" + +#: changedetectionio/blueprint/imports/templates/import.html:11 +msgid ".XLSX & Wachete" +msgstr ".XLSX a Wachete" + +#: changedetectionio/blueprint/imports/templates/import.html:20 +msgid "" +"Enter one URL per line, and optionally add tags for each URL after a " +"space, delineated by comma (,):" +msgstr "" + +#: changedetectionio/blueprint/imports/templates/import.html:22 +msgid "Example:" +msgstr "Příklad:" + +#: changedetectionio/blueprint/imports/templates/import.html:23 +msgid "URLs which do not pass validation will stay in the textarea." +msgstr "URL, které neprojdou validací, zůstanou v textové oblasti." + +#: changedetectionio/blueprint/imports/templates/import.html:44 +msgid "" +"Copy and Paste your Distill.io watch 'export' file, this should be a JSON" +" file." +msgstr "" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "This is" +msgstr "Tohle je" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "experimental" +msgstr "experimentální" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "supported fields are" +msgstr "podporovaná pole jsou" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "the rest (including" +msgstr "zbytek (včetně" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "are ignored." +msgstr "jsou ignorovány." + +#: changedetectionio/blueprint/imports/templates/import.html:48 +msgid "How to export?" +msgstr "Jak exportovat?" + +#: changedetectionio/blueprint/imports/templates/import.html:49 +msgid "Be sure to set your default fetcher to Chrome if required." +msgstr "" +"V případě potřeby nezapomeňte nastavit výchozí nástroj pro načítání na " +"Chrome.V případě potřeby nezapomeňte nastavit výchozí načítání na " +"Chrome.V případě potřeby nezapomeňte nastavit výchozí nástroj pro " +"načítání na Chrome." + +#: changedetectionio/blueprint/imports/templates/import.html:91 +msgid "Table of custom column and data types mapping for the" +msgstr "Tabulka vlastního mapování sloupců a datových typů pro" + +#: changedetectionio/blueprint/imports/templates/import.html:91 +msgid "Custom mapping" +msgstr "Vlastní mapování" + +#: changedetectionio/blueprint/imports/templates/import.html:91 +msgid "File mapping type." +msgstr "Typ mapování souboru." + +#: changedetectionio/blueprint/imports/templates/import.html:95 +msgid "Column #" +msgstr "sloupec č." + +#: changedetectionio/blueprint/imports/templates/import.html:101 +msgid "Type" +msgstr "Typ" + +#: changedetectionio/blueprint/imports/templates/import.html:104 +msgid "none" +msgstr "žádný" + +#: changedetectionio/blueprint/imports/templates/import.html:105 +msgid "URL" +msgstr "URL" + +#: changedetectionio/blueprint/imports/templates/import.html:107 +msgid "CSS/xPath filter" +msgstr "CSS/xPath filtr" + +#: changedetectionio/blueprint/imports/templates/import.html:108 +msgid "Group / Tag name(s)" +msgstr "Sledovat skupinu / tag" + +#: changedetectionio/blueprint/imports/templates/import.html:109 +msgid "Recheck time (minutes)" +msgstr "Znovu zkontrolovat čas (minuty)" + +#: changedetectionio/blueprint/imports/templates/import.html:116 +msgid "Import" +msgstr "IMPORTOVAT" + +#: changedetectionio/blueprint/settings/templates/notification-log.html:7 +msgid "Notification debug log" +msgstr "Protokol ladění oznámení" + +#: changedetectionio/blueprint/settings/templates/settings.html:21 +#: changedetectionio/blueprint/tags/templates/edit-tag.html:27 +#: changedetectionio/blueprint/ui/templates/edit.html:47 +msgid "General" +msgstr "Generál" + +#: changedetectionio/blueprint/settings/templates/settings.html:23 +msgid "Fetching" +msgstr "Hledání" + +#: changedetectionio/blueprint/settings/templates/settings.html:24 +msgid "Global Filters" +msgstr "Globální filtry" + +#: changedetectionio/blueprint/settings/templates/settings.html:25 +msgid "UI Options" +msgstr "Možnosti uživatelského rozhraní" + +#: changedetectionio/blueprint/settings/templates/settings.html:26 +msgid "API" +msgstr "API" + +#: changedetectionio/blueprint/settings/templates/settings.html:27 +msgid "RSS" +msgstr "RSS" + +#: changedetectionio/blueprint/settings/templates/settings.html:28 +msgid "Time & Date" +msgstr "Čas a datum" + +#: changedetectionio/blueprint/settings/templates/settings.html:29 +msgid "CAPTCHA & Proxies" +msgstr "CAPTCHA a proxy" + +#: changedetectionio/blueprint/settings/templates/settings.html:35 +msgid "Info" +msgstr "Více informací" + +#: changedetectionio/blueprint/settings/templates/settings.html:46 +msgid "Default recheck time for all watches, current system minimum is" +msgstr "" +"Výchozí čas opětovné kontroly pro všechny hodinky, aktuální systémové " +"minimum jeVýchozí čas opětovné kontroly pro všechny hodinky, aktuální " +"systémové minimum jeVýchozí čas opětovné kontroly pro všechny hodinky, " +"aktuální systémové minimum je" + +#: changedetectionio/blueprint/settings/templates/settings.html:46 +msgid "seconds" +msgstr "sekundy" + +#: changedetectionio/blueprint/settings/templates/settings.html:46 +msgid "more info" +msgstr "Více informací" + +#: changedetectionio/blueprint/settings/templates/settings.html:390 +msgid "Python version:" +msgstr "Verze Pythonu:" + +#: changedetectionio/blueprint/settings/templates/settings.html:391 +msgid "Plugins active:" +msgstr "Pluginy aktivní:" + +#: changedetectionio/blueprint/settings/templates/settings.html:399 +msgid "No plugins active" +msgstr "Nejsou aktivní žádné pluginy" + +#: changedetectionio/blueprint/settings/templates/settings.html:405 +msgid "Back" +msgstr "ZÁLOHY" + +#: changedetectionio/blueprint/settings/templates/settings.html:406 +msgid "Clear Snapshot History" +msgstr "Vymazat/resetovat historii" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:28 +#: changedetectionio/blueprint/ui/templates/edit.html:56 +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "Filters & Triggers" +msgstr "Filtry a spouštěče" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:50 +msgid "These settings are" +msgstr "NASTAVENÍ" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:50 +msgid "added" +msgstr "přidáno" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:50 +msgid "to any existing watch configurations." +msgstr "do všech existujících konfigurací hodinek." + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:53 +#: changedetectionio/blueprint/ui/templates/edit.html:321 +msgid "Text filtering" +msgstr "Filtrování textu" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:269 +msgid "Use with caution!" +msgstr "Používejte opatrně!" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:269 +msgid "This will easily fill up your email storage quota or flood other storages." +msgstr "" +"Snadno tak zaplníte kvótu e-mailového úložiště nebo zahltíte další " +"úložiště.Snadno tak zaplníte kvótu e-mailového úložiště nebo zahltíte " +"další úložiště.Snadno tak zaplníte kvótu e-mailového úložiště nebo " +"zahltíte další úložiště." + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:80 +#: changedetectionio/blueprint/ui/templates/edit.html:276 +msgid "Look out!" +msgstr "ODHLÁSIT SE" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:80 +#: changedetectionio/blueprint/ui/templates/edit.html:276 +msgid "Lookout!" +msgstr "ODHLÁSIT SE" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "There are" +msgstr "Existují" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "system-wide notification URLs enabled" +msgstr "povoleny adresy URL pro upozornění v celém systému" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "this form will override notification settings for this watch only" +msgstr "tento formulář přepíše nastavení oznámení pouze pro tyto hodinky" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "an empty Notification URL list here will still send notifications." +msgstr "prázdný seznam adres URL upozornění zde bude stále odesílat upozornění." + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:84 +#: changedetectionio/blueprint/ui/templates/edit.html:280 +msgid "Use system defaults" +msgstr "Použít výchozí nastavení systému" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:11 +msgid "Add a new organisational tag" +msgstr "Přidejte novou značku organizace" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:14 +msgid "Watch group / tag" +msgstr "Sledovat skupinu / tag" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:21 +msgid "" +"Groups allows you to manage filters and notifications for multiple " +"watches under a single organisational tag." +msgstr "" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:31 +msgid "# Watches" +msgstr "# Hodinky" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:32 +msgid "Tag / Label name" +msgstr "Název štítku / štítku" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:42 +msgid "No website organisational tags/groups configured" +msgstr "Nejsou nakonfigurovány žádné organizační značky/skupiny webu" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:53 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:249 +msgid "Edit" +msgstr "Upravit" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:58 +msgid "Delete Group?" +msgstr "Smazat skupinu?" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:59 +#, python-format +msgid "" +"<p>Are you sure you want to delete group " +"<strong>%(title)s</strong>?</p><p>This action cannot be undone.</p>" +msgstr "" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:60 +#: changedetectionio/blueprint/tags/templates/groups-overview.html:61 +#: changedetectionio/blueprint/ui/templates/edit.html:490 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:73 +msgid "Delete" +msgstr "Vymazat" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:61 +msgid "Deletes and removes tag" +msgstr "Smaže a odstraní značku" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:66 +msgid "Unlink Group?" +msgstr "Odpojit skupinu?" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:67 +#, python-format +msgid "" +"<p>Are you sure you want to unlink all watches from group " +"<strong>%(title)s</strong>?</p><p>The tag will be kept but watches will " +"be removed from it.</p>" +msgstr "" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:68 +#: changedetectionio/blueprint/tags/templates/groups-overview.html:69 +msgid "Unlink" +msgstr "Odpojit" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:69 +msgid "Keep the tag but unlink any watches" +msgstr "Ponechte štítek, ale odpojte všechny hodinky" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:70 +#: changedetectionio/blueprint/ui/templates/edit.html:500 +msgid "RSS Feed for this watch" +msgstr "RSS kanál pro tyto hodinky" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:12 +msgid "" +"This will remove version history (snapshots) for ALL watches, but keep " +"your list of URLs!" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:13 +msgid "You may like to use the" +msgstr "Možná budete chtít použít" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:13 +msgid "BACKUP" +msgstr "ZÁLOHY" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:13 +msgid "link first." +msgstr "nejprve odkaz." + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:17 +msgid "Confirmation text" +msgstr "Žádné informace" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:27 +msgid "Type in the word" +msgstr "Zadejte slovo" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:27 +msgid "clear" +msgstr "jasný" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:27 +msgid "to confirm that you understand." +msgstr "potvrdit, že rozumíte." + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:33 +msgid "Clear History!" +msgstr "Jasné historie" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:39 +#: changedetectionio/templates/base.html:271 +msgid "Cancel" +msgstr "Zrušit" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:3 +msgid "Share diff as image" +msgstr "Sdílet rozdíl jako obrázek" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:3 +msgid "Share as Image" +msgstr "Sdílet jako obrázek" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:6 +msgid "Ignore any lines matching" +msgstr "Ignorujte všechny odpovídající řádky" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:9 +msgid "Ignore any lines matching excluding digits" +msgstr "Ignorujte všechny odpovídající řádky kromě číslic" + +#: changedetectionio/blueprint/ui/templates/diff.html:28 +msgid "From" +msgstr "Z" + +#: changedetectionio/blueprint/ui/templates/diff.html:38 +msgid "To" +msgstr "Na" + +#: changedetectionio/blueprint/ui/templates/diff.html:53 +msgid "Words" +msgstr "Heslo" + +#: changedetectionio/blueprint/ui/templates/diff.html:57 +msgid "Lines" +msgstr "Přihlášení" + +#: changedetectionio/blueprint/ui/templates/diff.html:61 +msgid "Ignore Whitespace" +msgstr "Ignorujte mezery" + +#: changedetectionio/blueprint/ui/templates/diff.html:65 +msgid "Same/non-changed" +msgstr "Změněno" + +#: changedetectionio/blueprint/ui/templates/diff.html:69 +msgid "Removed" +msgstr "Odebráno" + +#: changedetectionio/blueprint/ui/templates/diff.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "Added" +msgstr "Přidáno" + +#: changedetectionio/blueprint/ui/templates/diff.html:77 +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "Replaced" +msgstr "Vyměněno" + +#: changedetectionio/blueprint/ui/templates/diff.html:82 +#: changedetectionio/blueprint/ui/templates/preview.html:36 +msgid "Keyboard:" +msgstr "Klávesnice:" + +#: changedetectionio/blueprint/ui/templates/diff.html:83 +#: changedetectionio/blueprint/ui/templates/preview.html:37 +msgid "Previous" +msgstr "Náhled" + +#: changedetectionio/blueprint/ui/templates/diff.html:84 +#: changedetectionio/blueprint/ui/templates/preview.html:38 +msgid "Next" +msgstr "Další" + +#: changedetectionio/blueprint/ui/templates/diff.html:91 +msgid "Jump to next difference" +msgstr "Přejít na další rozdíl" + +#: changedetectionio/blueprint/ui/templates/diff.html:91 +msgid "Jump" +msgstr "Skok" + +#: changedetectionio/blueprint/ui/templates/diff.html:97 +#: changedetectionio/blueprint/ui/templates/preview.html:45 +msgid "Error Text" +msgstr "Text chyby" + +#: changedetectionio/blueprint/ui/templates/diff.html:98 +#: changedetectionio/blueprint/ui/templates/preview.html:47 +msgid "Error Screenshot" +msgstr "Snímek obrazovky s chybou" + +#: changedetectionio/blueprint/ui/templates/diff.html:99 +#: changedetectionio/blueprint/ui/templates/preview.html:50 +#: changedetectionio/processors/text_json_diff/processor.py:24 +msgid "Text" +msgstr "Text" + +#: changedetectionio/blueprint/ui/templates/diff.html:100 +#: changedetectionio/blueprint/ui/templates/preview.html:51 +msgid "Current screenshot" +msgstr "Aktuální snímek obrazovky" + +#: changedetectionio/blueprint/ui/templates/diff.html:101 +msgid "Extract Data" +msgstr "Extrahujte data" + +#: changedetectionio/blueprint/ui/templates/diff.html:107 +msgid "seconds ago." +msgstr "před sekundami." + +#: changedetectionio/blueprint/ui/templates/diff.html:114 +#: changedetectionio/blueprint/ui/templates/preview.html:59 +#: changedetectionio/blueprint/ui/templates/preview.html:66 +msgid "seconds ago" +msgstr "před sekundami" + +#: changedetectionio/blueprint/ui/templates/diff.html:115 +msgid "Current error-ing screenshot from most recent request" +msgstr "Aktuální snímek obrazovky s chybou z posledního požadavku" + +#: changedetectionio/blueprint/ui/templates/diff.html:127 +msgid "Pro-tip: You can enable" +msgstr "Pro-tip: Můžete povolit" + +#: changedetectionio/blueprint/ui/templates/diff.html:127 +msgid "\"share access when password is enabled\"" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/diff.html:127 +msgid "from settings." +msgstr "NASTAVENÍ" + +#: changedetectionio/blueprint/ui/templates/diff.html:133 +msgid "Goto single snapshot" +msgstr "Přejít na jeden snímek" + +#: changedetectionio/blueprint/ui/templates/diff.html:138 +#: changedetectionio/blueprint/ui/templates/edit.html:125 +msgid "Tip:" +msgstr "Tip:" + +#: changedetectionio/blueprint/ui/templates/diff.html:138 +msgid "Highlight text to share or add to ignore lists." +msgstr "Zvýrazněte text, který chcete sdílet nebo přidat do seznamů ignorovaných." + +#: changedetectionio/blueprint/ui/templates/diff.html:144 +#: changedetectionio/blueprint/ui/templates/preview.html:80 +msgid "" +"For now, Differences are performed on text, not graphically, only the " +"latest screenshot is available." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/diff.html:149 +#: changedetectionio/blueprint/ui/templates/preview.html:86 +msgid "Current screenshot from most recent request" +msgstr "Aktuální snímek obrazovky z poslední žádosti" + +#: changedetectionio/blueprint/ui/templates/diff.html:151 +#: changedetectionio/blueprint/ui/templates/preview.html:88 +msgid "No screenshot available just yet! Try rechecking the page." +msgstr "" +"Zatím není k dispozici žádný snímek obrazovky! Zkuste stránku znovu " +"zkontrolovat.Zatím není k dispozici žádný snímek obrazovky! Zkuste " +"stránku znovu zkontrolovat.Zatím není k dispozici žádný snímek obrazovky!" +" Zkuste stránku znovu zkontrolovat." + +#: changedetectionio/blueprint/ui/templates/diff.html:154 +msgid "Screenshot requires Playwright/WebDriver enabled" +msgstr "Snímek obrazovky vyžaduje aktivaci nástroje Playwright/WebDriver" + +#: changedetectionio/blueprint/ui/templates/edit.html:48 +msgid "Request" +msgstr "Žádost" + +#: changedetectionio/blueprint/ui/templates/edit.html:52 +msgid "Browser Steps" +msgstr "Kroky prohlížeče" + +#: changedetectionio/blueprint/ui/templates/edit.html:55 +msgid "Visual Filter Selector" +msgstr "Volič vizuálního filtru" + +#: changedetectionio/blueprint/ui/templates/edit.html:57 +msgid "Conditions" +msgstr "Podmínky" + +#: changedetectionio/blueprint/ui/templates/edit.html:60 +msgid "Stats" +msgstr "NASTAVENÍ" + +#: changedetectionio/blueprint/ui/templates/edit.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:313 +msgid "Some sites use JavaScript to create the content, for this you should" +msgstr "Některé stránky používají k vytváření obsahu JavaScript, proto byste měli" + +#: changedetectionio/blueprint/ui/templates/edit.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:313 +msgid "use the Chrome/WebDriver Fetcher" +msgstr "použijte nástroj Chrome/WebDriver Fetcher" + +#: changedetectionio/blueprint/ui/templates/edit.html:74 +msgid "Variables are supported in the URL" +msgstr "V URL jsou podporovány proměnné" + +#: changedetectionio/blueprint/ui/templates/edit.html:74 +#: changedetectionio/blueprint/ui/templates/edit.html:180 +#: changedetectionio/blueprint/ui/templates/edit.html:189 +msgid "help and examples here" +msgstr "nápověda a příklady zde" + +#: changedetectionio/blueprint/ui/templates/edit.html:78 +msgid "Organisational tag/group name used in the main listing page" +msgstr "Název organizační značky/skupiny použitý na hlavní stránce záznamu" + +#: changedetectionio/blueprint/ui/templates/edit.html:85 +msgid "" +"Automatically uses the page title if found, you can also use your own " +"title/description here" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:95 +msgid "The interval/amount of time between each check." +msgstr "Interval/doba mezi jednotlivými kontrolami." + +#: changedetectionio/blueprint/ui/templates/edit.html:110 +msgid "" +"Sends a notification when the filter can no longer be seen on the page, " +"good for knowing when the page changed and your filter will not work " +"anymore." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:123 +msgid "Use the" +msgstr "Použijte" + +#: changedetectionio/blueprint/ui/templates/edit.html:123 +msgid "Basic" +msgstr "Základní" + +#: changedetectionio/blueprint/ui/templates/edit.html:123 +msgid "" +"method (default) where your watched site doesn't need Javascript to " +"render." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:124 +msgid "The" +msgstr "The" + +#: changedetectionio/blueprint/ui/templates/edit.html:124 +msgid "Chrome/Javascript" +msgstr "Chrome/Javascript" + +#: changedetectionio/blueprint/ui/templates/edit.html:124 +msgid "" +"method requires a network connection to a running WebDriver+Chrome " +"server, set by the ENV var 'WEBDRIVER_URL'." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:125 +msgid "Connect using Bright Data and Oxylabs Proxies, find out more here." +msgstr "Připojte se pomocí Bright Data a Oxylabs Proxies, více se dozvíte zde." + +#: changedetectionio/blueprint/ui/templates/edit.html:130 +msgid "Check/Scan all" +msgstr "Znovu zkontrolujte vše" + +#: changedetectionio/blueprint/ui/templates/edit.html:133 +msgid "Choose a proxy for this watch" +msgstr "RSS kanál pro tyto hodinky" + +#: changedetectionio/blueprint/ui/templates/edit.html:143 +msgid "" +"If you're having trouble waiting for the page to be fully rendered (text " +"missing etc), try increasing the 'wait' time here." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:145 +msgid "This will wait" +msgstr "Tohle počká" + +#: changedetectionio/blueprint/ui/templates/edit.html:145 +msgid "seconds before extracting the text." +msgstr "sekund před extrahováním textu." + +#: changedetectionio/blueprint/ui/templates/edit.html:147 +msgid "Using the current global default settings" +msgstr "Použití aktuálního globálního výchozího nastavení" + +#: changedetectionio/blueprint/ui/templates/edit.html:152 +#: changedetectionio/blueprint/ui/templates/edit.html:165 +msgid "Show advanced options" +msgstr "Zobrazit pokročilé možnosti" + +#: changedetectionio/blueprint/ui/templates/edit.html:157 +msgid "" +"Run this code before performing change detection, handy for filling in " +"fields and other actions" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:158 +msgid "More help and examples here" +msgstr "Další nápověda a příklady zde" + +#: changedetectionio/blueprint/ui/templates/edit.html:180 +msgid "Variables are supported in the request body" +msgstr "V těle požadavku jsou podporovány proměnné" + +#: changedetectionio/blueprint/ui/templates/edit.html:189 +msgid "Variables are supported in the request header values" +msgstr "Proměnné jsou podporovány v hodnotách hlavičky požadavku" + +#: changedetectionio/blueprint/ui/templates/edit.html:192 +msgid "Alert! Extra headers file found and will be added to this watch!" +msgstr "" +"Upozornění! Byl nalezen další soubor záhlaví a bude přidán do těchto " +"hodinek!Upozornění! Byl nalezen další soubor záhlaví a bude přidán do " +"těchto hodinek!Upozornění! Byl nalezen další soubor záhlaví a bude přidán" +" do těchto hodinek!" + +#: changedetectionio/blueprint/ui/templates/edit.html:194 +msgid "Headers can be also read from a file in your data-directory" +msgstr "Záhlaví lze také číst ze souboru ve vašem datovém adresáři" + +#: changedetectionio/blueprint/ui/templates/edit.html:194 +msgid "Read more here" +msgstr "Přečtěte si více zde" + +#: changedetectionio/blueprint/ui/templates/edit.html:197 +msgid "Not supported by Selenium browser" +msgstr "Není podporováno prohlížečem Selenium" + +#: changedetectionio/blueprint/ui/templates/edit.html:221 +msgid "Turn on text finder" +msgstr "Zapněte vyhledávač textu" + +#: changedetectionio/blueprint/ui/templates/edit.html:224 +msgid "Please wait, first browser step can take a little time to load.." +msgstr "Čekejte prosím, načtení prvního kroku prohlížeče může chvíli trvat." + +#: changedetectionio/blueprint/ui/templates/edit.html:231 +msgid "Click here to Start" +msgstr "Začněte kliknutím sem" + +#: changedetectionio/blueprint/ui/templates/edit.html:233 +msgid "Please allow 10-15 seconds for the browser to connect." +msgstr "Počkejte prosím 10–15 sekund, než se prohlížeč připojí." + +#: changedetectionio/blueprint/ui/templates/edit.html:242 +msgid "Press \"Play\" to start." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:249 +#: changedetectionio/blueprint/ui/templates/edit.html:419 +msgid "Visual Selector data is not ready, watch needs to be checked atleast once." +msgstr "" +"Data Visual Selector nejsou připravena, hodinky je třeba alespoň jednou " +"zkontrolovat.Data Visual Selector nejsou připravena, hodinky je třeba " +"alespoň jednou zkontrolovat.Data Visual Selector nejsou připravena, " +"hodinky je třeba alespoň jednou zkontrolovat." + +#: changedetectionio/blueprint/ui/templates/edit.html:253 +msgid "" +"Sorry, this functionality only works with fetchers that support " +"interactive Javascript (so far only Playwright based fetchers)" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:254 +#: changedetectionio/blueprint/ui/templates/edit.html:424 +msgid "You need to" +msgstr "musíte" + +#: changedetectionio/blueprint/ui/templates/edit.html:254 +#: changedetectionio/blueprint/ui/templates/edit.html:424 +msgid "Set the fetch method" +msgstr "Nastavte metodu načítání" + +#: changedetectionio/blueprint/ui/templates/edit.html:254 +msgid "to one that supports interactive Javascript." +msgstr "na ten, který podporuje interaktivní Javascript." + +#: changedetectionio/blueprint/ui/templates/edit.html:297 +msgid "" +"Use the verify (✓) button to test if a condition passes against the " +"current snapshot." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:298 +msgid "Read a quick tutorial about" +msgstr "Přečtěte si rychlý tutoriál o" + +#: changedetectionio/blueprint/ui/templates/edit.html:298 +msgid "using conditional web page changes here" +msgstr "pomocí podmíněných změn webové stránky zde" + +#: changedetectionio/blueprint/ui/templates/edit.html:303 +msgid "Activate preview" +msgstr "Náhled" + +#: changedetectionio/blueprint/ui/templates/edit.html:307 +msgid "Pro-tips:" +msgstr "Pro-tipy:" + +#: changedetectionio/blueprint/ui/templates/edit.html:310 +msgid "Use the preview page to see your filters and triggers highlighted." +msgstr "Pomocí stránky náhledu uvidíte zvýrazněné filtry a spouštěče." + +#: changedetectionio/blueprint/ui/templates/edit.html:322 +msgid "Limit trigger/ignore/block/extract to;" +msgstr "Omezit spouštění/ignorovat/blokovat/extrahovat na;" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "" +"Note: Depending on the length and similarity of the text on each line, " +"the algorithm may consider an" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "addition" +msgstr "přidání" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "instead of" +msgstr "místo" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "replacement" +msgstr "nahrazení" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "for example." +msgstr "například." + +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "So it's always better to select" +msgstr "Vždy je tedy lepší vybírat" + +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "when you're interested in new content." +msgstr "když vás zajímá nový obsah." + +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "When content is merely moved in a list, it will also trigger an" +msgstr "Když se obsah pouze přesune v seznamu, spustí se také" + +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "consider enabling" +msgstr "zvážit povolení" + +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "Only trigger when unique lines appear" +msgstr "Spustit pouze tehdy, když se objeví jedinečné čáry" + +#: changedetectionio/blueprint/ui/templates/edit.html:332 +msgid "" +"Good for websites that just move the content around, and you want to know" +" when NEW content is added, compares new lines against all history for " +"this watch." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:340 +msgid "" +"Helps reduce changes detected caused by sites shuffling lines around, " +"combine with" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:340 +msgid "check unique lines" +msgstr "zkontrolujte jedinečné řádky" + +#: changedetectionio/blueprint/ui/templates/edit.html:340 +msgid "below." +msgstr "níže." + +#: changedetectionio/blueprint/ui/templates/edit.html:344 +msgid "Remove any whitespace before and after each line of text" +msgstr "Odstraňte všechny mezery před a za každým řádkem textu" + +#: changedetectionio/blueprint/ui/templates/edit.html:358 +#: changedetectionio/blueprint/ui/templates/edit.html:361 +#: changedetectionio/blueprint/ui/templates/edit.html:417 +msgid "Loading..." +msgstr "Načítání..." + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "The Visual Selector tool lets you select the" +msgstr "Nástroj Visual Selector umožňuje vybrat" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "text" +msgstr "text" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "" +"elements that will be used for the change detection. It automatically " +"fills-in the filters in the \"CSS/JSONPath/JQ/XPath Filters\" box of the" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "tab. Use" +msgstr "Pauza" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "Shift+Click" +msgstr "Shift+kliknutí" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "to select multiple items." +msgstr "pro výběr více položek." + +#: changedetectionio/blueprint/ui/templates/edit.html:391 +msgid "Selection Mode:" +msgstr "Režim výběru:" + +#: changedetectionio/blueprint/ui/templates/edit.html:394 +msgid "Select by element" +msgstr "Vyberte podle prvku" + +#: changedetectionio/blueprint/ui/templates/edit.html:398 +msgid "Draw area" +msgstr "Kreslit oblast" + +#: changedetectionio/blueprint/ui/templates/edit.html:406 +msgid "Clear selection" +msgstr "Jasný výběr" + +#: changedetectionio/blueprint/ui/templates/edit.html:408 +msgid "One moment, fetching screenshot and element information.." +msgstr "Okamžik, načítání snímku obrazovky a informací o prvku." + +#: changedetectionio/blueprint/ui/templates/edit.html:417 +msgid "Currently:" +msgstr "V současné době:" + +#: changedetectionio/blueprint/ui/templates/edit.html:423 +msgid "" +"Sorry, this functionality only works with fetchers that support " +"Javascript and screenshots (such as playwright etc)." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:424 +msgid "to one that supports Javascript and screenshots." +msgstr "na ten, který podporuje Javascript a snímky obrazovky." + +#: changedetectionio/blueprint/ui/templates/edit.html:441 +msgid "Check count" +msgstr "Zkontrolujte počet" + +#: changedetectionio/blueprint/ui/templates/edit.html:445 +msgid "Consecutive filter failures" +msgstr "Následná selhání filtru" + +#: changedetectionio/blueprint/ui/templates/edit.html:449 +msgid "History length" +msgstr "Dějiny" + +#: changedetectionio/blueprint/ui/templates/edit.html:453 +msgid "Last fetch duration" +msgstr "Trvání posledního načtení" + +#: changedetectionio/blueprint/ui/templates/edit.html:457 +msgid "Notification alert count" +msgstr "Počet upozornění na upozornění" + +#: changedetectionio/blueprint/ui/templates/edit.html:461 +msgid "Server type reply" +msgstr "Odpověď typu serveru" + +#: changedetectionio/blueprint/ui/templates/edit.html:475 +msgid "Download latest HTML snapshot" +msgstr "Stáhněte si nejnovější HTML snímek" + +#: changedetectionio/blueprint/ui/templates/edit.html:488 +msgid "Delete Watch?" +msgstr "Smazat hodinky?" + +#: changedetectionio/blueprint/ui/templates/edit.html:489 +msgid "Are you sure you want to delete the watch for:" +msgstr "Opravdu chcete smazat hodinky pro:" + +#: changedetectionio/blueprint/ui/templates/edit.html:489 +msgid "This action cannot be undone." +msgstr "Tuto akci nelze vrátit zpět." + +#: changedetectionio/blueprint/ui/templates/edit.html:495 +msgid "Clear History?" +msgstr "Jasné historie" + +#: changedetectionio/blueprint/ui/templates/edit.html:496 +msgid "Are you sure you want to clear all history for:" +msgstr "Opravdu chcete vymazat celou historii pro:" + +#: changedetectionio/blueprint/ui/templates/edit.html:496 +msgid "" +"This will remove all snapshots and previous versions. This action cannot " +"be undone." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:497 +msgid "Clear History" +msgstr "Jasné historie" + +#: changedetectionio/blueprint/ui/templates/edit.html:499 +msgid "Clone & Edit" +msgstr "Klonovat a upravovat" + +#: changedetectionio/blueprint/ui/templates/preview.html:22 +msgid "Select timestamp" +msgstr "Vyberte časové razítko" + +#: changedetectionio/blueprint/ui/templates/preview.html:31 +msgid "Go" +msgstr "Jít" + +#: changedetectionio/blueprint/ui/templates/preview.html:69 +msgid "Current erroring screenshot from most recent request" +msgstr "Aktuální chybový snímek obrazovky z posledního požadavku" + +#: changedetectionio/blueprint/ui/templates/preview.html:91 +msgid "" +"Screenshot requires a Content Fetcher ( Sockpuppetbrowser, selenium, etc " +") that supports screenshots." +msgstr "" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:31 +msgid "Add a new web page change detection watch" +msgstr "Přidejte nové hodinky zjišťování změn webové stránky" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:34 +msgid "Watch this URL!" +msgstr "Sledujte tuto adresu URL!" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:35 +msgid "Edit first then Watch" +msgstr "Nejprve upravte a poté sledujte" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:45 +msgid "Create a shareable link" +msgstr "Vytvořte odkaz ke sdílení" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:45 +msgid "Tip: You can also add 'shared' watches." +msgstr "Tip: Můžete také přidat „sdílené“ hodinky." + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:45 +msgid "More info" +msgstr "Více informací" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:53 +msgid "Pause" +msgstr "Pauza" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:54 +msgid "UnPause" +msgstr "Zrušit pozastavení" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:55 +msgid "Mute" +msgstr "Ztlumit" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:56 +msgid "UnMute" +msgstr "Zrušit ztlumení" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:57 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:248 +msgid "Recheck" +msgstr "Znovu zkontrolujte" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:58 +msgid "Tag" +msgstr "Štítek" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:59 +msgid "Mark viewed" +msgstr "Mark zobrazil" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:60 +msgid "Use default notification" +msgstr "Použít výchozí oznámení" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:61 +msgid "Clear errors" +msgstr "Vymazat chyby" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:65 +msgid "Clear Histories" +msgstr "Jasné historie" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:66 +msgid "" +"<p>Are you sure you want to clear history for the selected " +"items?</p><p>This action cannot be undone.</p>" +msgstr "" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:67 +msgid "OK" +msgstr "OK" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:67 +msgid "Clear/reset history" +msgstr "Vymazat/resetovat historii" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:71 +msgid "Delete Watches?" +msgstr "Smazat hodinky?" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:72 +msgid "" +"<p>Are you sure you want to delete the selected " +"watches?</strong></p><p>This action cannot be undone.</p>" +msgstr "" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:78 +msgid "Searching" +msgstr "Hledání" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:80 +msgid "All" +msgstr "Vše" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:118 +msgid "Website" +msgstr "webové stránky" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:120 +msgid "Restock & Price" +msgstr "Doplnění zásob a cena" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:122 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:123 +msgid "Last" +msgstr "Poslední" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:122 +msgid "Checked" +msgstr "Zkontrolováno" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:123 +msgid "Changed" +msgstr "Změněno" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:130 +msgid "No website watches configured, please add a URL in the box above, or" +msgstr "" +"Nejsou nakonfigurována žádná sledování webových stránek, do výše " +"uvedeného pole přidejte adresu URL neboNejsou nakonfigurována žádná " +"sledování webových stránek, do výše uvedeného pole přidejte adresu URL " +"neboNejsou nakonfigurována žádná sledování webových stránek, do výše " +"uvedeného pole přidejte adresu URL neboNejsou nakonfigurována žádná " +"sledování webových stránek, do výše uvedeného pole přidejte adresu URL " +"nebo" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:130 +msgid "import a list" +msgstr "importovat seznam" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:213 +msgid "Detecting restock and price" +msgstr "Detekce zásob a ceny" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:215 +msgid "In stock" +msgstr "Skladem" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:215 +msgid "Not in stock" +msgstr "Není skladem" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:221 +msgid "Price" +msgstr "Cena" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:226 +msgid "No information" +msgstr "Žádné informace" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:234 +#: changedetectionio/templates/base.html:248 +msgid "Checking now" +msgstr "Probíhá kontrola" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:247 +msgid "Queued" +msgstr "Ve frontě" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:250 +msgid "History" +msgstr "Dějiny" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:251 +msgid "Preview" +msgstr "Náhled" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:260 +msgid "With errors" +msgstr "S chybami" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:263 +msgid "Mark all viewed" +msgstr "Označit všechny prohlížené" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:267 +#, python-format +msgid "Mark all viewed in '%(title)s'" +msgstr "Označit vše prohlížené v '%(title)s'" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:271 +msgid "Unread" +msgstr "Nepřečtený" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:274 +msgid "Recheck all" +msgstr "Znovu zkontrolujte vše" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:274 +#, python-format +msgid "in '%(title)s'" +msgstr "v '%(title)s'" + +#: changedetectionio/processors/image_ssim_diff/forms.py:19 +#: changedetectionio/processors/image_ssim_diff/forms.py:69 +msgid "Bounding box value is too long" +msgstr "Hodnota ohraničujícího rámečku je příliš dlouhá" + +#: changedetectionio/processors/image_ssim_diff/forms.py:23 +msgid "Bounding box must be in format: x,y,width,height (integers only)" +msgstr "" +"Ohraničovací rámeček musí být ve formátu: x,y,šířka,výška (pouze celá " +"čísla)Ohraničovací rámeček musí být ve formátu: x,y,šířka,výška (pouze " +"celá čísla)" + +#: changedetectionio/processors/image_ssim_diff/forms.py:29 +msgid "Bounding box values must be non-negative" +msgstr "Hodnoty ohraničujícího rámečku musí být nezáporné" + +#: changedetectionio/processors/image_ssim_diff/forms.py:31 +msgid "Bounding box values are too large" +msgstr "Hodnoty ohraničujícího rámečku jsou příliš velké" + +#: changedetectionio/processors/image_ssim_diff/forms.py:40 +msgid "Selection mode must be either \"element\" or \"draw\"" +msgstr "" + +#: changedetectionio/processors/image_ssim_diff/forms.py:47 +msgid "Minimum Change Percentage" +msgstr "Procento minimální změny" + +#: changedetectionio/processors/image_ssim_diff/forms.py:56 +msgid "Pixel Difference Sensitivity" +msgstr "Rozdílová citlivost pixelů" + +#: changedetectionio/processors/image_ssim_diff/forms.py:58 +msgid "Use global default" +msgstr "Použít výchozí nastavení systému" + +#: changedetectionio/processors/image_ssim_diff/forms.py:66 +msgid "Bounding Box" +msgstr "Bounding Box" + +#: changedetectionio/processors/image_ssim_diff/forms.py:76 +msgid "Selection Mode" +msgstr "Režim výběru:" + +#: changedetectionio/processors/image_ssim_diff/forms.py:79 +msgid "Selection mode value is too long" +msgstr "Hodnota režimu výběru je příliš dlouhá" + +#: changedetectionio/processors/image_ssim_diff/forms.py:87 +msgid "Screenshot Comparison" +msgstr "Porovnání snímků obrazovky" + +#: changedetectionio/processors/image_ssim_diff/processor.py:20 +msgid "Visual / Image screenshot change detection" +msgstr "Vizuální / Obrazová detekce změny snímku obrazovky" + +#: changedetectionio/processors/image_ssim_diff/processor.py:21 +msgid "Compares screenshots using fast OpenCV algorithm, 10-100x faster than SSIM" +msgstr "Porovnává snímky obrazovky pomocí rychlého algoritmu OpenCV, 10-100x rychlejší než SSIM" + +#: changedetectionio/processors/image_ssim_diff/processor.py:23 +msgid "Visual" +msgstr "Vizuální" + +#: changedetectionio/processors/restock_diff/forms.py:15 +msgid "Re-stock detection" +msgstr "Detekce doplnění zásob" + +#: changedetectionio/processors/restock_diff/forms.py:16 +msgid "In Stock only (Out Of Stock -> In Stock only)" +msgstr "Pouze skladem (Není skladem -> Pouze skladem)" + +#: changedetectionio/processors/restock_diff/forms.py:17 +msgid "Any availability changes" +msgstr "Jakékoli změny dostupnosti" + +#: changedetectionio/processors/restock_diff/forms.py:18 +msgid "Off, don't follow availability/restock" +msgstr "Vypnuto, nesledujte dostupnost/doskladnění" + +#: changedetectionio/processors/restock_diff/forms.py:21 +msgid "Below price to trigger notification" +msgstr "Pod cenou pro spuštění upozornění" + +#: changedetectionio/processors/restock_diff/forms.py:22 +#: changedetectionio/processors/restock_diff/forms.py:24 +msgid "No limit" +msgstr "Bez omezení" + +#: changedetectionio/processors/restock_diff/forms.py:23 +msgid "Above price to trigger notification" +msgstr "Vyšší cena pro spuštění upozornění" + +#: changedetectionio/processors/restock_diff/forms.py:25 +#, python-format +msgid "Threshold in %% for price changes since the original price" +msgstr "Prahová hodnota v % pro změny ceny od původní ceny" + +#: changedetectionio/processors/restock_diff/forms.py:28 +msgid "Should be between 0 and 100" +msgstr "Mělo by být mezi 0 a 100" + +#: changedetectionio/processors/restock_diff/forms.py:31 +msgid "Follow price changes" +msgstr "Sledujte změny cen" + +#: changedetectionio/processors/restock_diff/forms.py:37 +msgid "Restock & Price Detection" +msgstr "Doplnění zásob a cena" + +#: changedetectionio/processors/restock_diff/processor.py:11 +msgid "Re-stock & Price detection for pages with a SINGLE product" +msgstr "Doplnění zásob a zjištění ceny pro stránky s JEDINÝM produktem" + +#: changedetectionio/processors/restock_diff/processor.py:12 +msgid "Detects if the product goes back to in-stock" +msgstr "Zjistí, zda se produkt vrátí na sklad" + +#: changedetectionio/processors/restock_diff/processor.py:14 +msgid "Restock" +msgstr "Doplnění zásob" + +#: changedetectionio/processors/text_json_diff/processor.py:21 +msgid "Webpage Text/HTML, JSON and PDF changes" +msgstr "Změny textu webové stránky/HTML, JSON a PDF" + +#: changedetectionio/processors/text_json_diff/processor.py:22 +msgid "Detects all text changes where possible" +msgstr "Detekuje všechny změny textu, kde je to možné" + +#: changedetectionio/templates/base.html:77 +msgid "GROUPS" +msgstr "SKUPINY" + +#: changedetectionio/templates/base.html:80 +msgid "SETTINGS" +msgstr "NASTAVENÍ" + +#: changedetectionio/templates/base.html:83 +msgid "IMPORT" +msgstr "IMPORTOVAT" + +#: changedetectionio/templates/base.html:86 +msgid "BACKUPS" +msgstr "ZÁLOHY" + +#: changedetectionio/templates/base.html:90 +msgid "EDIT" +msgstr "UPRAVIT" + +#: changedetectionio/templates/base.html:100 +msgid "LOG OUT" +msgstr "ODHLÁSIT SE" + +#: changedetectionio/templates/base.html:109 +msgid "Search, or Use Alt+S Key" +msgstr "Vyhledejte nebo použijte klávesu Alt+S" + +#: changedetectionio/templates/base.html:116 +msgid "Toggle Light/Dark Mode" +msgstr "Přepnout režim Světlý/Tmavý" + +#: changedetectionio/templates/base.html:117 +msgid "Toggle light/dark mode" +msgstr "Přepínání mezi světlým/tmavým režimem" + +#: changedetectionio/templates/base.html:127 +msgid "Change Language" +msgstr "Změnit jazyk" + +#: changedetectionio/templates/base.html:128 +msgid "Change language" +msgstr "Změnit jazyk" + +#: changedetectionio/templates/base.html:249 +msgid "Real-time updates offline" +msgstr "Aktualizace v reálném čase offline" + +#: changedetectionio/templates/base.html:259 +msgid "Select Language" +msgstr "Vyberte Jazyk" + +#: changedetectionio/templates/login.html:10 +msgid "Password" +msgstr "Heslo" + +#: changedetectionio/templates/login.html:16 +msgid "Login" +msgstr "Přihlášení" + diff --git a/changedetectionio/translations/de/LC_MESSAGES/messages.mo b/changedetectionio/translations/de/LC_MESSAGES/messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..97db815df19b902a05894291c90e2a2877196403 GIT binary patch literal 31518 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þ&QCf+vH=4?6$k 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 O|ILA-NpWsx@P7dO=v15l literal 0 HcmV?d00001 diff --git a/changedetectionio/translations/de/LC_MESSAGES/messages.po b/changedetectionio/translations/de/LC_MESSAGES/messages.po new file mode 100644 index 000000000..e8e7ee6ae --- /dev/null +++ b/changedetectionio/translations/de/LC_MESSAGES/messages.po @@ -0,0 +1,2011 @@ +# German translations for PROJECT. +# Copyright (C) 2026 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2026. +# +msgid "" +msgstr "" +"Project-Id-Version: PROJECT VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2026-01-02 13:32+0100\n" +"PO-Revision-Date: 2026-01-02 11:40+0100\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language: de\n" +"Language-Team: de <LL@li.org>\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.17.0\n" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:241 +#: changedetectionio/flask_app.py:213 changedetectionio/flask_app.py:225 +#: changedetectionio/flask_app.py:246 +#: changedetectionio/realtime/socket_server.py:171 +msgid "Not yet" +msgstr "Noch nicht" + +#: changedetectionio/forms.py:62 changedetectionio/forms.py:242 +msgid "" +"At least one time interval (weeks, days, hours, minutes, or seconds) must" +" be specified." +msgstr "" + +#: changedetectionio/forms.py:63 +msgid "" +"At least one time interval (weeks, days, hours, minutes, or seconds) must" +" be specified when not using global settings." +msgstr "" + +#: changedetectionio/forms.py:163 +msgid "Invalid time format. Use HH:MM." +msgstr "Ungültiges Zeitformat. Verwenden Sie HH:MM." + +#: changedetectionio/forms.py:179 +msgid "Not a valid timezone name" +msgstr "Kein gültiger Zeitzonenname" + +#: changedetectionio/forms.py:182 +msgid "not set" +msgstr "Noch nicht" + +#: changedetectionio/forms.py:183 +msgid "Start At" +msgstr "EINSTELLUNGEN" + +#: changedetectionio/forms.py:184 +msgid "Run duration" +msgstr "Keine Informationen" + +#: changedetectionio/forms.py:187 +msgid "Use time scheduler" +msgstr "Verwenden Sie einen Zeitplaner" + +#: changedetectionio/forms.py:197 +msgid "Optional timezone to run in" +msgstr "Optionale Zeitzone zum Ausführen" + +#: changedetectionio/forms.py:211 +msgid "Monday" +msgstr "Montag" + +#: changedetectionio/forms.py:212 +msgid "Tuesday" +msgstr "Dienstag" + +#: changedetectionio/forms.py:213 +msgid "Wednesday" +msgstr "Mittwoch" + +#: changedetectionio/forms.py:214 +msgid "Thursday" +msgstr "Donnerstag" + +#: changedetectionio/forms.py:215 +msgid "Friday" +msgstr "Freitag" + +#: changedetectionio/forms.py:216 +msgid "Saturday" +msgstr "Samstag" + +#: changedetectionio/forms.py:217 +msgid "Sunday" +msgstr "Sonntag" + +#: changedetectionio/forms.py:250 +msgid "Weeks" +msgstr "Wochen" + +#: changedetectionio/forms.py:250 changedetectionio/forms.py:251 +#: changedetectionio/forms.py:252 changedetectionio/forms.py:253 +#: changedetectionio/forms.py:254 changedetectionio/forms.py:957 +msgid "Should contain zero or more seconds" +msgstr "Sollte null oder mehr Sekunden enthalten" + +#: changedetectionio/forms.py:251 +msgid "Days" +msgstr "Tage" + +#: changedetectionio/forms.py:252 +msgid "Hours" +msgstr "Passwort" + +#: changedetectionio/forms.py:253 +msgid "Minutes" +msgstr "Stumm" + +#: changedetectionio/forms.py:254 +msgid "Seconds" +msgstr "Sekunden" + +#: changedetectionio/forms.py:459 +msgid "Notification Body and Title is required when a Notification URL is used" +msgstr "" +"Benachrichtigungstext und Titel sind erforderlich, wenn eine " +"Benachrichtigungs-URL verwendet wird" + +#: changedetectionio/forms.py:488 +#, python-format +msgid "'%s' is not a valid AppRise URL." +msgstr "„%s“ ist keine gültige AppRise-URL." + +#: changedetectionio/forms.py:561 changedetectionio/forms.py:580 +#, python-format +msgid "RegEx '%s' is not a valid regular expression." +msgstr "RegEx „%s“ ist kein gültiger regulärer Ausdruck." + +#: changedetectionio/forms.py:621 changedetectionio/forms.py:636 +#, python-format +msgid "'%s' is not a valid XPath expression. (%s)" +msgstr "„%s“ ist kein gültiger XPath-Ausdruck. (%s)" + +#: changedetectionio/forms.py:656 +#, python-format +msgid "'%s' is not a valid JSONPath expression. (%s)" +msgstr "„%s“ ist kein gültiger JSONPath-Ausdruck. (%s)" + +#: changedetectionio/forms.py:678 +#, python-format +msgid "'%s' is not a valid jq expression. (%s)" +msgstr "„%s“ ist kein gültiger JQ-Ausdruck. (%s)" + +#: changedetectionio/forms.py:724 +msgid "Empty value not allowed." +msgstr "Leerer Wert nicht zulässig." + +#: changedetectionio/forms.py:726 +msgid "Invalid value." +msgstr "Ungültiger Wert." + +#: changedetectionio/forms.py:733 +msgid "Watch" +msgstr "# Uhren" + +#: changedetectionio/forms.py:734 changedetectionio/forms.py:768 +msgid "Processor" +msgstr "Prozessor" + +#: changedetectionio/forms.py:735 +msgid "Edit > Watch" +msgstr "Zuerst bearbeiten, dann ansehen" + +#: changedetectionio/forms.py:748 changedetectionio/forms.py:996 +msgid "Fetch Method" +msgstr "Legen Sie die Abrufmethode fest" + +#: changedetectionio/forms.py:749 +msgid "Notification Body" +msgstr "Keine Informationen" + +#: changedetectionio/forms.py:750 +msgid "Notification format" +msgstr "Keine Informationen" + +#: changedetectionio/forms.py:751 +msgid "Notification Title" +msgstr "Keine Informationen" + +#: changedetectionio/forms.py:752 +msgid "Notification URL List" +msgstr "Keine Informationen" + +#: changedetectionio/forms.py:753 +msgid "Processor - What do you want to achieve?" +msgstr "Prozessor – Was möchten Sie erreichen?" + +#: changedetectionio/forms.py:754 +msgid "Default timezone for watch check scheduler" +msgstr "Standardzeitzone für den Watch-Check-Planer" + +#: changedetectionio/forms.py:755 +msgid "Wait seconds before extracting text" +msgstr "Sekunden, bevor der Text extrahiert wird." + +#: changedetectionio/forms.py:755 +msgid "Should contain one or more seconds" +msgstr "Sollte eine oder mehrere Sekunden enthalten" + +#: changedetectionio/forms.py:769 +msgid "URLs" +msgstr "URL" + +#: changedetectionio/forms.py:770 +msgid "Upload .xlsx file" +msgstr "Laden Sie die XLSX-Datei hoch" + +#: changedetectionio/forms.py:770 +msgid "Must be .xlsx file!" +msgstr "Muss eine XLSX-Datei sein!" + +#: changedetectionio/forms.py:771 +msgid "File mapping" +msgstr "Dateizuordnungstyp." + +#: changedetectionio/forms.py:775 +msgid "Operation" +msgstr "UI-Optionen" + +#: changedetectionio/forms.py:778 +msgid "Selector" +msgstr "Auswahlmodus:" + +#: changedetectionio/forms.py:779 +msgid "value" +msgstr "Pause" + +#: changedetectionio/forms.py:798 +msgid "Use global settings for time between check and scheduler." +msgstr "" +"Verwenden Sie globale Einstellungen für die Zeit zwischen Prüfung und " +"Planer." + +#: changedetectionio/forms.py:800 +msgid "CSS/JSONPath/JQ/XPath Filters" +msgstr "CSS/xPath-Filter" + +#: changedetectionio/forms.py:802 changedetectionio/forms.py:998 +msgid "Remove elements" +msgstr "ENTFERNT" + +#: changedetectionio/forms.py:804 +msgid "Extract text" +msgstr "Daten extrahieren" + +#: changedetectionio/blueprint/imports/templates/import.html:106 +#: changedetectionio/forms.py:806 +msgid "Title" +msgstr "Titel" + +#: changedetectionio/forms.py:808 +msgid "Ignore lines containing" +msgstr "Ignorieren Sie alle übereinstimmenden Zeilen" + +#: changedetectionio/forms.py:810 +msgid "Request body" +msgstr "Anfrage" + +#: changedetectionio/forms.py:811 +msgid "Request method" +msgstr "Anfrage" + +#: changedetectionio/forms.py:812 +msgid "Ignore status codes (process non-2xx status codes as normal)" +msgstr "Statuscodes ignorieren (Nicht-2xx-Statuscodes wie gewohnt verarbeiten)" + +#: changedetectionio/forms.py:813 +msgid "Only trigger when unique lines appear in all history" +msgstr "Wird nur ausgelöst, wenn eindeutige Zeilen angezeigt werden" + +#: changedetectionio/blueprint/ui/templates/edit.html:336 +#: changedetectionio/forms.py:814 +msgid "Remove duplicate lines of text" +msgstr "Entfernen Sie doppelte Textzeilen" + +#: changedetectionio/forms.py:815 +msgid "Sort text alphabetically" +msgstr "Sortieren Sie den Text alphabetisch" + +#: changedetectionio/forms.py:816 changedetectionio/forms.py:1025 +msgid "Strip ignored lines" +msgstr "Entfernen Sie ignorierte Zeilen" + +#: changedetectionio/forms.py:817 +msgid "Trim whitespace before and after text" +msgstr "Entfernen Sie alle Leerzeichen vor und nach jeder Textzeile" + +#: changedetectionio/forms.py:819 +msgid "Added lines" +msgstr "Login" + +#: changedetectionio/forms.py:820 +msgid "Replaced/changed lines" +msgstr "Zeilen ersetzt/geändert" + +#: changedetectionio/forms.py:821 +msgid "Removed lines" +msgstr "ENTFERNT" + +#: changedetectionio/forms.py:823 +msgid "Keyword triggers - Trigger/wait for text" +msgstr "Schlüsselwort-Trigger – Auslösen/Warten auf Text" + +#: changedetectionio/forms.py:826 +msgid "Block change-detection while text matches" +msgstr "Blockieren Sie die Änderungserkennung, während der Text übereinstimmt" + +#: changedetectionio/forms.py:827 +msgid "Execute JavaScript before change detection" +msgstr "Führen Sie JavaScript vor der Änderungserkennung aus" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:17 +#: changedetectionio/forms.py:829 changedetectionio/forms.py:1053 +msgid "Save" +msgstr "Speichern" + +#: changedetectionio/forms.py:831 +msgid "Proxy" +msgstr "Stellvertreter" + +#: changedetectionio/forms.py:833 +msgid "Send a notification when the filter can no longer be found on the page" +msgstr "" +"Senden Sie eine Benachrichtigung, wenn der Filter nicht mehr auf der " +"Seite gefunden werden kann" + +#: changedetectionio/blueprint/settings/templates/settings.html:22 +#: changedetectionio/blueprint/tags/templates/edit-tag.html:32 +#: changedetectionio/blueprint/ui/templates/edit.html:59 +#: changedetectionio/forms.py:834 +msgid "Notifications" +msgstr "Keine Informationen" + +#: changedetectionio/forms.py:834 +msgid "Muted" +msgstr "Stumm" + +#: changedetectionio/forms.py:834 +msgid "On" +msgstr "keiner" + +#: changedetectionio/forms.py:835 +msgid "Attach screenshot to notification (where possible)" +msgstr "Screenshot an Benachrichtigung anhängen (sofern möglich)" + +#: changedetectionio/forms.py:837 +msgid "Match" +msgstr "# Uhren" + +#: changedetectionio/forms.py:837 +msgid "Match all of the following" +msgstr "Passen Sie alle folgenden Punkte an" + +#: changedetectionio/forms.py:837 +msgid "Match any of the following" +msgstr "Passen Sie zu einem der folgenden Punkte" + +#: changedetectionio/forms.py:839 +msgid "Use page <title> in list" +msgstr "Verwenden Sie Seite <Titel> in der Liste" + +#: changedetectionio/forms.py:856 +msgid "Body must be empty when Request Method is set to GET" +msgstr "" +"Der Textkörper muss leer sein, wenn die Anforderungsmethode auf GET " +"gesetzt ist" + +#: changedetectionio/forms.py:865 changedetectionio/forms.py:879 +#: changedetectionio/forms.py:894 +#, python-format +msgid "Invalid template syntax configuration: %(error)s" +msgstr "Ungültige Vorlagensyntaxkonfiguration: %(error)s" + +#: changedetectionio/forms.py:869 changedetectionio/forms.py:883 +#, python-format +msgid "Invalid template syntax: %(error)s" +msgstr "Ungültige Vorlagensyntax: %(error)s" + +#: changedetectionio/forms.py:898 +#, python-format +msgid "Invalid template syntax in \"%(header)s\" header: %(error)s" +msgstr "" + +#: changedetectionio/forms.py:922 changedetectionio/forms.py:934 +msgid "Name" +msgstr "Stummschaltung aufheben" + +#: changedetectionio/forms.py:923 +msgid "Proxy URL" +msgstr "Proxy-URL" + +#: changedetectionio/forms.py:928 +msgid "Proxy URLs must start with http://, https:// or socks5://" +msgstr "Proxy-URLs müssen mit http://, https:// oder sock5:// beginnen." + +#: changedetectionio/forms.py:935 +msgid "Browser connection URL" +msgstr "Browser-Verbindungs-URL" + +#: changedetectionio/forms.py:940 +msgid "Browser URLs must start with wss:// or ws://" +msgstr "Browser-URLs müssen mit wss:// oder ws:// beginnen." + +#: changedetectionio/forms.py:946 +msgid "Plaintext requests" +msgstr "Klartextanfragen" + +#: changedetectionio/forms.py:948 +msgid "Chrome requests" +msgstr "Anfrage" + +#: changedetectionio/forms.py:954 +msgid "Default proxy" +msgstr "Standard-Proxy" + +#: changedetectionio/forms.py:955 +msgid "Random jitter seconds ± check" +msgstr "Zufällige Jitter-Sekunden ± überprüfen" + +#: changedetectionio/forms.py:959 +msgid "Number of fetch workers" +msgstr "Anzahl der Abrufarbeiter" + +#: changedetectionio/forms.py:962 +msgid "Should be between 1 and 50" +msgstr "Sollte zwischen 1 und 50 liegen" + +#: changedetectionio/forms.py:964 +msgid "Requests timeout in seconds" +msgstr "Anforderungs-Timeout in Sekunden" + +#: changedetectionio/forms.py:967 +msgid "Should be between 1 and 999" +msgstr "Sollte zwischen 1 und 999 liegen" + +#: changedetectionio/forms.py:972 +msgid "Default User-Agent overrides" +msgstr "Standardmäßige Benutzer-Agent-Überschreibungen" + +#: changedetectionio/forms.py:978 +msgid "Both a name, and a Proxy URL is required." +msgstr "Es sind sowohl ein Name als auch eine Proxy-URL erforderlich." + +#: changedetectionio/forms.py:982 +msgid "Open 'History' page in a new tab" +msgstr "Öffnen Sie die Seite „Verlauf“ in einem neuen Tab" + +#: changedetectionio/forms.py:983 +msgid "Realtime UI Updates Enabled" +msgstr "Echtzeit-Updates offline" + +#: changedetectionio/forms.py:984 +msgid "Favicons Enabled" +msgstr "Erwägen Sie die Aktivierung" + +#: changedetectionio/forms.py:985 +msgid "Use page <title> in watch overview list" +msgstr "Verwenden Sie die Seite <Titel> in der Watch-Übersichtsliste" + +#: changedetectionio/forms.py:990 +msgid "API access token security check enabled" +msgstr "Sicherheitsüberprüfung des API-Zugriffstokens aktiviert" + +#: changedetectionio/forms.py:991 +msgid "Notification base URL override" +msgstr "Anzahl der Benachrichtigungsalarme" + +#: changedetectionio/forms.py:995 +msgid "Treat empty pages as a change?" +msgstr "Leere Seiten als Abwechslung behandeln?" + +#: changedetectionio/forms.py:997 +msgid "Ignore Text" +msgstr "Fehlertext" + +#: changedetectionio/forms.py:999 +msgid "Ignore whitespace" +msgstr "Leerzeichen ignorieren" + +#: changedetectionio/forms.py:1006 +#: changedetectionio/processors/image_ssim_diff/forms.py:50 +msgid "Must be between 0 and 100" +msgstr "Muss zwischen 0 und 100 liegen" + +#: changedetectionio/forms.py:1013 +msgid "Pager size" +msgstr "Pagergröße" + +#: changedetectionio/forms.py:1016 +msgid "Should be atleast zero (disabled)" +msgstr "Sollte mindestens Null sein (deaktiviert)" + +#: changedetectionio/forms.py:1018 +msgid "RSS Content format" +msgstr "RSS-Inhaltsformat" + +#: changedetectionio/forms.py:1019 +msgid "RSS <description> body built from" +msgstr "RSS-<Beschreibung>-Körper erstellt aus" + +#: changedetectionio/forms.py:1020 +msgid "RSS \"System default\" template override" +msgstr "" + +#: changedetectionio/forms.py:1022 +msgid "Remove password" +msgstr "Passwort" + +#: changedetectionio/forms.py:1023 +msgid "Render anchor tag content" +msgstr "Rendern Sie den Inhalt des Ankertags" + +#: changedetectionio/forms.py:1024 +msgid "Allow anonymous access to watch history page when password is enabled" +msgstr "" +"Erlauben Sie anonymen Zugriff auf die Seite mit dem Wiedergabeverlauf, " +"wenn das Passwort aktiviert ist" + +#: changedetectionio/forms.py:1026 +msgid "Hide muted watches from RSS feed" +msgstr "Stummgeschaltete Uhren aus dem RSS-Feed ausblenden" + +#: changedetectionio/forms.py:1029 +msgid "Enable RSS reader mode " +msgstr "Aktivieren Sie den RSS-Reader-Modus" + +#: changedetectionio/forms.py:1030 +msgid "Number of changes to show in watch RSS feed" +msgstr "Anzahl der Änderungen, die im RSS-Feed der Uhr angezeigt werden sollen" + +#: changedetectionio/forms.py:1032 changedetectionio/forms.py:1037 +msgid "Should contain zero or more attempts" +msgstr "Sollte null oder mehr Versuche enthalten" + +#: changedetectionio/forms.py:1034 +msgid "Number of times the filter can be missing before sending a notification" +msgstr "" +"Häufigkeit, mit der der Filter fehlen darf, bevor eine Benachrichtigung " +"gesendet wird" + +#: changedetectionio/forms.py:1057 +msgid "RegEx to extract" +msgstr "RegEx zum Extrahieren" + +#: changedetectionio/forms.py:1058 +msgid "Extract as CSV" +msgstr "Daten extrahieren" + +#: changedetectionio/blueprint/backups/templates/overview.html:6 +msgid "Backups" +msgstr "BACKUPS" + +#: changedetectionio/blueprint/backups/templates/overview.html:9 +msgid "A backup is running!" +msgstr "Ein Backup läuft!" + +#: changedetectionio/blueprint/backups/templates/overview.html:13 +msgid "" +"Here you can download and request a new backup, when a backup is " +"completed you will see it listed below." +msgstr "" + +#: changedetectionio/blueprint/backups/templates/overview.html:19 +msgid "Mb" +msgstr "Mb" + +#: changedetectionio/blueprint/backups/templates/overview.html:24 +msgid "No backups found." +msgstr "Keine Backups gefunden." + +#: changedetectionio/blueprint/backups/templates/overview.html:28 +msgid "Create backup" +msgstr "BACKUPS" + +#: changedetectionio/blueprint/backups/templates/overview.html:30 +msgid "Remove backups" +msgstr "BACKUPS" + +#: changedetectionio/blueprint/imports/templates/import.html:9 +msgid "URL List" +msgstr "URL-Liste" + +#: changedetectionio/blueprint/imports/templates/import.html:10 +msgid "Distill.io" +msgstr "Distill.io" + +#: changedetectionio/blueprint/imports/templates/import.html:11 +msgid ".XLSX & Wachete" +msgstr ".XLSX & Wachete" + +#: changedetectionio/blueprint/imports/templates/import.html:20 +msgid "" +"Enter one URL per line, and optionally add tags for each URL after a " +"space, delineated by comma (,):" +msgstr "" + +#: changedetectionio/blueprint/imports/templates/import.html:22 +msgid "Example:" +msgstr "Beispiel:" + +#: changedetectionio/blueprint/imports/templates/import.html:23 +msgid "URLs which do not pass validation will stay in the textarea." +msgstr "URLs, die die Validierung nicht bestehen, bleiben im Textbereich." + +#: changedetectionio/blueprint/imports/templates/import.html:44 +msgid "" +"Copy and Paste your Distill.io watch 'export' file, this should be a JSON" +" file." +msgstr "" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "This is" +msgstr "Das ist" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "experimental" +msgstr "Experimental-" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "supported fields are" +msgstr "Unterstützte Felder sind" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "the rest (including" +msgstr "der Rest (inkl" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "are ignored." +msgstr "werden ignoriert." + +#: changedetectionio/blueprint/imports/templates/import.html:48 +msgid "How to export?" +msgstr "Wie exportiere ich?" + +#: changedetectionio/blueprint/imports/templates/import.html:49 +msgid "Be sure to set your default fetcher to Chrome if required." +msgstr "" +"Stellen Sie bei Bedarf sicher, dass Ihr Standardabrufer auf Chrome " +"eingestellt ist.\"Stellen Sie bei Bedarf sicher, dass Ihr Standardabrufer" +" auf Chrome eingestellt ist.Stellen Sie bei Bedarf sicher, dass Ihr " +"Standardabrufer auf Chrome eingestellt ist." + +#: changedetectionio/blueprint/imports/templates/import.html:91 +msgid "Table of custom column and data types mapping for the" +msgstr "Tabelle der benutzerdefinierten Spalten- und Datentypzuordnung für" + +#: changedetectionio/blueprint/imports/templates/import.html:91 +msgid "Custom mapping" +msgstr "Benutzerdefinierte Zuordnung" + +#: changedetectionio/blueprint/imports/templates/import.html:91 +msgid "File mapping type." +msgstr "Dateizuordnungstyp." + +#: changedetectionio/blueprint/imports/templates/import.html:95 +msgid "Column #" +msgstr "Spalte #" + +#: changedetectionio/blueprint/imports/templates/import.html:101 +msgid "Type" +msgstr "Typ" + +#: changedetectionio/blueprint/imports/templates/import.html:104 +msgid "none" +msgstr "keiner" + +#: changedetectionio/blueprint/imports/templates/import.html:105 +msgid "URL" +msgstr "URL" + +#: changedetectionio/blueprint/imports/templates/import.html:107 +msgid "CSS/xPath filter" +msgstr "CSS/xPath-Filter" + +#: changedetectionio/blueprint/imports/templates/import.html:108 +msgid "Group / Tag name(s)" +msgstr "Gruppe/Tag beobachten" + +#: changedetectionio/blueprint/imports/templates/import.html:109 +msgid "Recheck time (minutes)" +msgstr "Nachprüfzeit (Minuten)" + +#: changedetectionio/blueprint/imports/templates/import.html:116 +msgid "Import" +msgstr "IMPORT" + +#: changedetectionio/blueprint/settings/templates/notification-log.html:7 +msgid "Notification debug log" +msgstr "Benachrichtigungs-Debug-Protokoll" + +#: changedetectionio/blueprint/settings/templates/settings.html:21 +#: changedetectionio/blueprint/tags/templates/edit-tag.html:27 +#: changedetectionio/blueprint/ui/templates/edit.html:47 +msgid "General" +msgstr "Allgemein" + +#: changedetectionio/blueprint/settings/templates/settings.html:23 +msgid "Fetching" +msgstr "Suchen" + +#: changedetectionio/blueprint/settings/templates/settings.html:24 +msgid "Global Filters" +msgstr "Globale Filter" + +#: changedetectionio/blueprint/settings/templates/settings.html:25 +msgid "UI Options" +msgstr "UI-Optionen" + +#: changedetectionio/blueprint/settings/templates/settings.html:26 +msgid "API" +msgstr "API" + +#: changedetectionio/blueprint/settings/templates/settings.html:27 +msgid "RSS" +msgstr "RSS" + +#: changedetectionio/blueprint/settings/templates/settings.html:28 +msgid "Time & Date" +msgstr "Uhrzeit und Datum" + +#: changedetectionio/blueprint/settings/templates/settings.html:29 +msgid "CAPTCHA & Proxies" +msgstr "CAPTCHA & Proxys" + +#: changedetectionio/blueprint/settings/templates/settings.html:35 +msgid "Info" +msgstr "Weitere Informationen" + +#: changedetectionio/blueprint/settings/templates/settings.html:46 +msgid "Default recheck time for all watches, current system minimum is" +msgstr "" +"Standardzeit für erneute Überprüfungen für alle Uhren, aktuelles " +"Systemminimum\"Standardzeit für erneute Überprüfungen für alle Uhren, " +"aktuelles SystemminimumStandardzeit für erneute Überprüfungen für alle " +"Uhren, aktuelles Systemminimum" + +#: changedetectionio/blueprint/settings/templates/settings.html:46 +msgid "seconds" +msgstr "Sekunden" + +#: changedetectionio/blueprint/settings/templates/settings.html:46 +msgid "more info" +msgstr "Weitere Informationen" + +#: changedetectionio/blueprint/settings/templates/settings.html:390 +msgid "Python version:" +msgstr "Python-Version:" + +#: changedetectionio/blueprint/settings/templates/settings.html:391 +msgid "Plugins active:" +msgstr "Aktive Plugins:" + +#: changedetectionio/blueprint/settings/templates/settings.html:399 +msgid "No plugins active" +msgstr "Keine Plugins aktiv" + +#: changedetectionio/blueprint/settings/templates/settings.html:405 +msgid "Back" +msgstr "BACKUPS" + +#: changedetectionio/blueprint/settings/templates/settings.html:406 +msgid "Clear Snapshot History" +msgstr "Verlauf löschen/zurücksetzen" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:28 +#: changedetectionio/blueprint/ui/templates/edit.html:56 +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "Filters & Triggers" +msgstr "Filter und Trigger" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:50 +msgid "These settings are" +msgstr "EINSTELLUNGEN" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:50 +msgid "added" +msgstr "hinzugefügt" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:50 +msgid "to any existing watch configurations." +msgstr "zu allen vorhandenen Uhrenkonfigurationen." + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:53 +#: changedetectionio/blueprint/ui/templates/edit.html:321 +msgid "Text filtering" +msgstr "Textfilterung" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:269 +msgid "Use with caution!" +msgstr "Mit Vorsicht verwenden!" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:269 +msgid "This will easily fill up your email storage quota or flood other storages." +msgstr "" +"Dadurch wird Ihr E-Mail-Speicherkontingent leicht ausgeschöpft oder " +"andere Speicher überflutet.\"Dadurch wird Ihr E-Mail-Speicherkontingent " +"leicht ausgeschöpft oder andere Speicher überflutet.Dadurch wird Ihr E" +"-Mail-Speicherkontingent leicht ausgeschöpft oder andere Speicher " +"überflutet." + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:80 +#: changedetectionio/blueprint/ui/templates/edit.html:276 +msgid "Look out!" +msgstr "Abmelden" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:80 +#: changedetectionio/blueprint/ui/templates/edit.html:276 +msgid "Lookout!" +msgstr "Abmelden" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "There are" +msgstr "Es gibt" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "system-wide notification URLs enabled" +msgstr "Systemweite Benachrichtigungs-URLs aktiviert" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "this form will override notification settings for this watch only" +msgstr "" +"Dieses Formular überschreibt nur die Benachrichtigungseinstellungen für " +"diese Uhr\"Dieses Formular überschreibt nur die " +"Benachrichtigungseinstellungen für diese UhrDieses Formular überschreibt " +"nur die Benachrichtigungseinstellungen für diese Uhr" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "an empty Notification URL list here will still send notifications." +msgstr "" +"Eine leere Benachrichtigungs-URL-Liste hier sendet weiterhin " +"Benachrichtigungen.\"Eine leere Benachrichtigungs-URL-Liste hier sendet " +"weiterhin Benachrichtigungen.Eine leere Benachrichtigungs-URL-Liste hier " +"sendet weiterhin Benachrichtigungen." + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:84 +#: changedetectionio/blueprint/ui/templates/edit.html:280 +msgid "Use system defaults" +msgstr "Verwenden Sie Systemstandards" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:11 +msgid "Add a new organisational tag" +msgstr "Fügen Sie ein neues Organisations-Tag hinzu" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:14 +msgid "Watch group / tag" +msgstr "Gruppe/Tag beobachten" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:21 +msgid "" +"Groups allows you to manage filters and notifications for multiple " +"watches under a single organisational tag." +msgstr "" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:31 +msgid "# Watches" +msgstr "# Uhren" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:32 +msgid "Tag / Label name" +msgstr "Tag-/Labelname" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:42 +msgid "No website organisational tags/groups configured" +msgstr "Keine Website-Organisations-Tags/-Gruppen konfiguriert" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:53 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:249 +msgid "Edit" +msgstr "Bearbeiten" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:58 +msgid "Delete Group?" +msgstr "Gruppe löschen?" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:59 +#, python-format +msgid "" +"<p>Are you sure you want to delete group " +"<strong>%(title)s</strong>?</p><p>This action cannot be undone.</p>" +msgstr "" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:60 +#: changedetectionio/blueprint/tags/templates/groups-overview.html:61 +#: changedetectionio/blueprint/ui/templates/edit.html:490 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:73 +msgid "Delete" +msgstr "Löschen" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:61 +msgid "Deletes and removes tag" +msgstr "Löscht und entfernt das Tag" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:66 +msgid "Unlink Group?" +msgstr "Gruppenverknüpfung aufheben?" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:67 +#, python-format +msgid "" +"<p>Are you sure you want to unlink all watches from group " +"<strong>%(title)s</strong>?</p><p>The tag will be kept but watches will " +"be removed from it.</p>" +msgstr "" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:68 +#: changedetectionio/blueprint/tags/templates/groups-overview.html:69 +msgid "Unlink" +msgstr "Verknüpfung aufheben" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:69 +msgid "Keep the tag but unlink any watches" +msgstr "Behalten Sie das Tag, aber heben Sie die Verknüpfung aller Uhren auf" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:70 +#: changedetectionio/blueprint/ui/templates/edit.html:500 +msgid "RSS Feed for this watch" +msgstr "RSS-Feed für diese Uhr" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:12 +msgid "" +"This will remove version history (snapshots) for ALL watches, but keep " +"your list of URLs!" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:13 +msgid "You may like to use the" +msgstr "Möglicherweise möchten Sie die verwenden" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:13 +msgid "BACKUP" +msgstr "BACKUPS" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:13 +msgid "link first." +msgstr "Link zuerst." + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:17 +msgid "Confirmation text" +msgstr "Keine Informationen" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:27 +msgid "Type in the word" +msgstr "Geben Sie das Wort ein" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:27 +msgid "clear" +msgstr "klar" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:27 +msgid "to confirm that you understand." +msgstr "um zu bestätigen, dass Sie es verstanden haben." + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:33 +msgid "Clear History!" +msgstr "Klare Historien" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:39 +#: changedetectionio/templates/base.html:271 +msgid "Cancel" +msgstr "Stornieren" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:3 +msgid "Share diff as image" +msgstr "Diff als Bild teilen" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:3 +msgid "Share as Image" +msgstr "Als Bild teilen" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:6 +msgid "Ignore any lines matching" +msgstr "Ignorieren Sie alle übereinstimmenden Zeilen" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:9 +msgid "Ignore any lines matching excluding digits" +msgstr "Ignorieren Sie alle übereinstimmenden Zeilen mit Ausnahme von Ziffern" + +#: changedetectionio/blueprint/ui/templates/diff.html:28 +msgid "From" +msgstr "Aus" + +#: changedetectionio/blueprint/ui/templates/diff.html:38 +msgid "To" +msgstr "Zu" + +#: changedetectionio/blueprint/ui/templates/diff.html:53 +msgid "Words" +msgstr "Passwort" + +#: changedetectionio/blueprint/ui/templates/diff.html:57 +msgid "Lines" +msgstr "Login" + +#: changedetectionio/blueprint/ui/templates/diff.html:61 +msgid "Ignore Whitespace" +msgstr "Leerzeichen ignorieren" + +#: changedetectionio/blueprint/ui/templates/diff.html:65 +msgid "Same/non-changed" +msgstr "Geändert" + +#: changedetectionio/blueprint/ui/templates/diff.html:69 +msgid "Removed" +msgstr "ENTFERNT" + +#: changedetectionio/blueprint/ui/templates/diff.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "Added" +msgstr "Hinzugefügt" + +#: changedetectionio/blueprint/ui/templates/diff.html:77 +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "Replaced" +msgstr "Ersetzt" + +#: changedetectionio/blueprint/ui/templates/diff.html:82 +#: changedetectionio/blueprint/ui/templates/preview.html:36 +msgid "Keyboard:" +msgstr "Tastatur:" + +#: changedetectionio/blueprint/ui/templates/diff.html:83 +#: changedetectionio/blueprint/ui/templates/preview.html:37 +msgid "Previous" +msgstr "Vorschau" + +#: changedetectionio/blueprint/ui/templates/diff.html:84 +#: changedetectionio/blueprint/ui/templates/preview.html:38 +msgid "Next" +msgstr "Nächste" + +#: changedetectionio/blueprint/ui/templates/diff.html:91 +msgid "Jump to next difference" +msgstr "Springe zum nächsten Unterschied" + +#: changedetectionio/blueprint/ui/templates/diff.html:91 +msgid "Jump" +msgstr "Springen" + +#: changedetectionio/blueprint/ui/templates/diff.html:97 +#: changedetectionio/blueprint/ui/templates/preview.html:45 +msgid "Error Text" +msgstr "Fehlertext" + +#: changedetectionio/blueprint/ui/templates/diff.html:98 +#: changedetectionio/blueprint/ui/templates/preview.html:47 +msgid "Error Screenshot" +msgstr "Fehler-Screenshot" + +#: changedetectionio/blueprint/ui/templates/diff.html:99 +#: changedetectionio/blueprint/ui/templates/preview.html:50 +#: changedetectionio/processors/text_json_diff/processor.py:24 +msgid "Text" +msgstr "Text" + +#: changedetectionio/blueprint/ui/templates/diff.html:100 +#: changedetectionio/blueprint/ui/templates/preview.html:51 +msgid "Current screenshot" +msgstr "Aktueller Screenshot" + +#: changedetectionio/blueprint/ui/templates/diff.html:101 +msgid "Extract Data" +msgstr "Daten extrahieren" + +#: changedetectionio/blueprint/ui/templates/diff.html:107 +msgid "seconds ago." +msgstr "vor Sekunden." + +#: changedetectionio/blueprint/ui/templates/diff.html:114 +#: changedetectionio/blueprint/ui/templates/preview.html:59 +#: changedetectionio/blueprint/ui/templates/preview.html:66 +msgid "seconds ago" +msgstr "vor Sekunden" + +#: changedetectionio/blueprint/ui/templates/diff.html:115 +msgid "Current error-ing screenshot from most recent request" +msgstr "Aktueller fehlerhafter Screenshot der letzten Anfrage" + +#: changedetectionio/blueprint/ui/templates/diff.html:127 +msgid "Pro-tip: You can enable" +msgstr "Profi-Tipp: Sie können es aktivieren" + +#: changedetectionio/blueprint/ui/templates/diff.html:127 +msgid "\"share access when password is enabled\"" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/diff.html:127 +msgid "from settings." +msgstr "EINSTELLUNGEN" + +#: changedetectionio/blueprint/ui/templates/diff.html:133 +msgid "Goto single snapshot" +msgstr "Gehe zu einem einzelnen Schnappschuss" + +#: changedetectionio/blueprint/ui/templates/diff.html:138 +#: changedetectionio/blueprint/ui/templates/edit.html:125 +msgid "Tip:" +msgstr "Tipp:" + +#: changedetectionio/blueprint/ui/templates/diff.html:138 +msgid "Highlight text to share or add to ignore lists." +msgstr "Markieren Sie Text zum Teilen oder zum Hinzufügen zu Ignorierlisten." + +#: changedetectionio/blueprint/ui/templates/diff.html:144 +#: changedetectionio/blueprint/ui/templates/preview.html:80 +msgid "" +"For now, Differences are performed on text, not graphically, only the " +"latest screenshot is available." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/diff.html:149 +#: changedetectionio/blueprint/ui/templates/preview.html:86 +msgid "Current screenshot from most recent request" +msgstr "Aktueller Screenshot der letzten Anfrage" + +#: changedetectionio/blueprint/ui/templates/diff.html:151 +#: changedetectionio/blueprint/ui/templates/preview.html:88 +msgid "No screenshot available just yet! Try rechecking the page." +msgstr "" +"Noch kein Screenshot verfügbar! Versuchen Sie, die Seite noch einmal zu " +"überprüfen.\"Noch kein Screenshot verfügbar! Versuchen Sie, die Seite " +"noch einmal zu überprüfen.Noch kein Screenshot verfügbar! Versuchen Sie, " +"die Seite noch einmal zu überprüfen." + +#: changedetectionio/blueprint/ui/templates/diff.html:154 +msgid "Screenshot requires Playwright/WebDriver enabled" +msgstr "" +"Für den Screenshot ist die Aktivierung von Playwright/WebDriver " +"erforderlich\"Für den Screenshot ist die Aktivierung von " +"Playwright/WebDriver erforderlichFür den Screenshot ist die Aktivierung " +"von Playwright/WebDriver erforderlich" + +#: changedetectionio/blueprint/ui/templates/edit.html:48 +msgid "Request" +msgstr "Anfrage" + +#: changedetectionio/blueprint/ui/templates/edit.html:52 +msgid "Browser Steps" +msgstr "Browserschritte" + +#: changedetectionio/blueprint/ui/templates/edit.html:55 +msgid "Visual Filter Selector" +msgstr "Visuelle Filterauswahl" + +#: changedetectionio/blueprint/ui/templates/edit.html:57 +msgid "Conditions" +msgstr "Bedingungen" + +#: changedetectionio/blueprint/ui/templates/edit.html:60 +msgid "Stats" +msgstr "EINSTELLUNGEN" + +#: changedetectionio/blueprint/ui/templates/edit.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:313 +msgid "Some sites use JavaScript to create the content, for this you should" +msgstr "" +"Einige Websites verwenden JavaScript, um den Inhalt zu erstellen. Dies " +"sollten Sie tun\"Einige Websites verwenden JavaScript, um den Inhalt zu " +"erstellen. Dies sollten Sie tunEinige Websites verwenden JavaScript, um " +"den Inhalt zu erstellen. Dies sollten Sie tun" + +#: changedetectionio/blueprint/ui/templates/edit.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:313 +msgid "use the Chrome/WebDriver Fetcher" +msgstr "Verwenden Sie den Chrome/WebDriver Fetcher" + +#: changedetectionio/blueprint/ui/templates/edit.html:74 +msgid "Variables are supported in the URL" +msgstr "Variablen werden in der URL unterstützt" + +#: changedetectionio/blueprint/ui/templates/edit.html:74 +#: changedetectionio/blueprint/ui/templates/edit.html:180 +#: changedetectionio/blueprint/ui/templates/edit.html:189 +msgid "help and examples here" +msgstr "Hilfe und Beispiele finden Sie hier" + +#: changedetectionio/blueprint/ui/templates/edit.html:78 +msgid "Organisational tag/group name used in the main listing page" +msgstr "" +"Organisations-Tag/Gruppenname, der auf der Haupteintragsseite verwendet " +"wird\"Organisations-Tag/Gruppenname, der auf der Haupteintragsseite " +"verwendet wirdOrganisations-Tag/Gruppenname, der auf der " +"Haupteintragsseite verwendet wird" + +#: changedetectionio/blueprint/ui/templates/edit.html:85 +msgid "" +"Automatically uses the page title if found, you can also use your own " +"title/description here" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:95 +msgid "The interval/amount of time between each check." +msgstr "Das Intervall/die Zeitdauer zwischen den einzelnen Überprüfungen." + +#: changedetectionio/blueprint/ui/templates/edit.html:110 +msgid "" +"Sends a notification when the filter can no longer be seen on the page, " +"good for knowing when the page changed and your filter will not work " +"anymore." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:123 +msgid "Use the" +msgstr "Benutzen Sie die" + +#: changedetectionio/blueprint/ui/templates/edit.html:123 +msgid "Basic" +msgstr "Basic" + +#: changedetectionio/blueprint/ui/templates/edit.html:123 +msgid "" +"method (default) where your watched site doesn't need Javascript to " +"render." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:124 +msgid "The" +msgstr "Der" + +#: changedetectionio/blueprint/ui/templates/edit.html:124 +msgid "Chrome/Javascript" +msgstr "Chrome/Javascript" + +#: changedetectionio/blueprint/ui/templates/edit.html:124 +msgid "" +"method requires a network connection to a running WebDriver+Chrome " +"server, set by the ENV var 'WEBDRIVER_URL'." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:125 +msgid "Connect using Bright Data and Oxylabs Proxies, find out more here." +msgstr "" +"Stellen Sie eine Verbindung über Bright Data und Oxylabs Proxies her, " +"erfahren Sie hier mehr.\"Stellen Sie eine Verbindung über Bright Data und" +" Oxylabs Proxies her, erfahren Sie hier mehr.Stellen Sie eine Verbindung " +"über Bright Data und Oxylabs Proxies her, erfahren Sie hier mehr." + +#: changedetectionio/blueprint/ui/templates/edit.html:130 +msgid "Check/Scan all" +msgstr "Überprüfen Sie alles noch einmal" + +#: changedetectionio/blueprint/ui/templates/edit.html:133 +msgid "Choose a proxy for this watch" +msgstr "RSS-Feed für diese Uhr" + +#: changedetectionio/blueprint/ui/templates/edit.html:143 +msgid "" +"If you're having trouble waiting for the page to be fully rendered (text " +"missing etc), try increasing the 'wait' time here." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:145 +msgid "This will wait" +msgstr "Das wird warten" + +#: changedetectionio/blueprint/ui/templates/edit.html:145 +msgid "seconds before extracting the text." +msgstr "Sekunden, bevor der Text extrahiert wird." + +#: changedetectionio/blueprint/ui/templates/edit.html:147 +msgid "Using the current global default settings" +msgstr "Verwendung der aktuellen globalen Standardeinstellungen" + +#: changedetectionio/blueprint/ui/templates/edit.html:152 +#: changedetectionio/blueprint/ui/templates/edit.html:165 +msgid "Show advanced options" +msgstr "Erweiterte Optionen anzeigen" + +#: changedetectionio/blueprint/ui/templates/edit.html:157 +msgid "" +"Run this code before performing change detection, handy for filling in " +"fields and other actions" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:158 +msgid "More help and examples here" +msgstr "Weitere Hilfe und Beispiele finden Sie hier" + +#: changedetectionio/blueprint/ui/templates/edit.html:180 +msgid "Variables are supported in the request body" +msgstr "Variablen werden im Anforderungstext unterstützt" + +#: changedetectionio/blueprint/ui/templates/edit.html:189 +msgid "Variables are supported in the request header values" +msgstr "Variablen werden in den Anforderungsheaderwerten unterstützt" + +#: changedetectionio/blueprint/ui/templates/edit.html:192 +msgid "Alert! Extra headers file found and will be added to this watch!" +msgstr "Alarm! Zusätzliche Header-Datei gefunden und wird dieser Uhr hinzugefügt!" + +#: changedetectionio/blueprint/ui/templates/edit.html:194 +msgid "Headers can be also read from a file in your data-directory" +msgstr "" +"Header können auch aus einer Datei in Ihrem Datenverzeichnis gelesen " +"werden\"Header können auch aus einer Datei in Ihrem Datenverzeichnis " +"gelesen werdenHeader können auch aus einer Datei in Ihrem " +"Datenverzeichnis gelesen werden" + +#: changedetectionio/blueprint/ui/templates/edit.html:194 +msgid "Read more here" +msgstr "Lesen Sie hier mehr" + +#: changedetectionio/blueprint/ui/templates/edit.html:197 +msgid "Not supported by Selenium browser" +msgstr "Wird vom Selenium-Browser nicht unterstützt" + +#: changedetectionio/blueprint/ui/templates/edit.html:221 +msgid "Turn on text finder" +msgstr "Schalten Sie den Textfinder ein" + +#: changedetectionio/blueprint/ui/templates/edit.html:224 +msgid "Please wait, first browser step can take a little time to load.." +msgstr "Bitte warten Sie, das Laden des ersten Browserschritts kann etwas dauern." + +#: changedetectionio/blueprint/ui/templates/edit.html:231 +msgid "Click here to Start" +msgstr "Klicken Sie hier, um zu starten" + +#: changedetectionio/blueprint/ui/templates/edit.html:233 +msgid "Please allow 10-15 seconds for the browser to connect." +msgstr "" +"Bitte warten Sie 10–15 Sekunden, bis der Browser eine Verbindung " +"herstellt.\"Bitte warten Sie 10–15 Sekunden, bis der Browser eine " +"Verbindung herstellt.Bitte warten Sie 10–15 Sekunden, bis der Browser " +"eine Verbindung herstellt." + +#: changedetectionio/blueprint/ui/templates/edit.html:242 +msgid "Press \"Play\" to start." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:249 +#: changedetectionio/blueprint/ui/templates/edit.html:419 +msgid "Visual Selector data is not ready, watch needs to be checked atleast once." +msgstr "" +"Die Visual Selector-Daten sind nicht bereit, die Uhr muss mindestens " +"einmal überprüft werden.\"Die Visual Selector-Daten sind nicht bereit, " +"die Uhr muss mindestens einmal überprüft werden.Die Visual Selector-Daten" +" sind nicht bereit, die Uhr muss mindestens einmal überprüft werden." + +#: changedetectionio/blueprint/ui/templates/edit.html:253 +msgid "" +"Sorry, this functionality only works with fetchers that support " +"interactive Javascript (so far only Playwright based fetchers)" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:254 +#: changedetectionio/blueprint/ui/templates/edit.html:424 +msgid "You need to" +msgstr "Das musst du" + +#: changedetectionio/blueprint/ui/templates/edit.html:254 +#: changedetectionio/blueprint/ui/templates/edit.html:424 +msgid "Set the fetch method" +msgstr "Legen Sie die Abrufmethode fest" + +#: changedetectionio/blueprint/ui/templates/edit.html:254 +msgid "to one that supports interactive Javascript." +msgstr "zu einer, die interaktives Javascript unterstützt." + +#: changedetectionio/blueprint/ui/templates/edit.html:297 +msgid "" +"Use the verify (✓) button to test if a condition passes against the " +"current snapshot." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:298 +msgid "Read a quick tutorial about" +msgstr "Lesen Sie ein kurzes Tutorial darüber" + +#: changedetectionio/blueprint/ui/templates/edit.html:298 +msgid "using conditional web page changes here" +msgstr "Verwenden Sie hier bedingte Webseitenänderungen" + +#: changedetectionio/blueprint/ui/templates/edit.html:303 +msgid "Activate preview" +msgstr "Vorschau" + +#: changedetectionio/blueprint/ui/templates/edit.html:307 +msgid "Pro-tips:" +msgstr "Profi-Tipps:" + +#: changedetectionio/blueprint/ui/templates/edit.html:310 +msgid "Use the preview page to see your filters and triggers highlighted." +msgstr "" +"Verwenden Sie die Vorschauseite, um Ihre Filter und Auslöser " +"hervorgehoben anzuzeigen.\"Verwenden Sie die Vorschauseite, um Ihre " +"Filter und Auslöser hervorgehoben anzuzeigen.Verwenden Sie die " +"Vorschauseite, um Ihre Filter und Auslöser hervorgehoben anzuzeigen." + +#: changedetectionio/blueprint/ui/templates/edit.html:322 +msgid "Limit trigger/ignore/block/extract to;" +msgstr "Auslösen/Ignorieren/Blockieren/Extrahieren beschränken auf;" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "" +"Note: Depending on the length and similarity of the text on each line, " +"the algorithm may consider an" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "addition" +msgstr "Zusatz" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "instead of" +msgstr "anstatt" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "replacement" +msgstr "Ersatz" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "for example." +msgstr "Zum Beispiel." + +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "So it's always better to select" +msgstr "Es ist also immer besser, auszuwählen" + +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "when you're interested in new content." +msgstr "wenn Sie an neuen Inhalten interessiert sind." + +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "When content is merely moved in a list, it will also trigger an" +msgstr "" +"Wenn Inhalte lediglich in einer Liste verschoben werden, wird auch ein " +"Fehler ausgelöst\"Wenn Inhalte lediglich in einer Liste verschoben " +"werden, wird auch ein Fehler ausgelöstWenn Inhalte lediglich in einer " +"Liste verschoben werden, wird auch ein Fehler ausgelöst" + +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "consider enabling" +msgstr "Erwägen Sie die Aktivierung" + +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "Only trigger when unique lines appear" +msgstr "Wird nur ausgelöst, wenn eindeutige Zeilen angezeigt werden" + +#: changedetectionio/blueprint/ui/templates/edit.html:332 +msgid "" +"Good for websites that just move the content around, and you want to know" +" when NEW content is added, compares new lines against all history for " +"this watch." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:340 +msgid "" +"Helps reduce changes detected caused by sites shuffling lines around, " +"combine with" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:340 +msgid "check unique lines" +msgstr "Überprüfen Sie eindeutige Zeilen" + +#: changedetectionio/blueprint/ui/templates/edit.html:340 +msgid "below." +msgstr "unten." + +#: changedetectionio/blueprint/ui/templates/edit.html:344 +msgid "Remove any whitespace before and after each line of text" +msgstr "Entfernen Sie alle Leerzeichen vor und nach jeder Textzeile" + +#: changedetectionio/blueprint/ui/templates/edit.html:358 +#: changedetectionio/blueprint/ui/templates/edit.html:361 +#: changedetectionio/blueprint/ui/templates/edit.html:417 +msgid "Loading..." +msgstr "Laden..." + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "The Visual Selector tool lets you select the" +msgstr "Mit dem visuellen Auswahltool können Sie Folgendes auswählen" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "text" +msgstr "Text" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "" +"elements that will be used for the change detection. It automatically " +"fills-in the filters in the \"CSS/JSONPath/JQ/XPath Filters\" box of the" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "tab. Use" +msgstr "Pause" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "Shift+Click" +msgstr "Umschalt+Klick" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "to select multiple items." +msgstr "um mehrere Elemente auszuwählen." + +#: changedetectionio/blueprint/ui/templates/edit.html:391 +msgid "Selection Mode:" +msgstr "Auswahlmodus:" + +#: changedetectionio/blueprint/ui/templates/edit.html:394 +msgid "Select by element" +msgstr "Nach Element auswählen" + +#: changedetectionio/blueprint/ui/templates/edit.html:398 +msgid "Draw area" +msgstr "Bereich zeichnen" + +#: changedetectionio/blueprint/ui/templates/edit.html:406 +msgid "Clear selection" +msgstr "Klare Auswahl" + +#: changedetectionio/blueprint/ui/templates/edit.html:408 +msgid "One moment, fetching screenshot and element information.." +msgstr "Einen Moment, Screenshot und Elementinformationen abrufen." + +#: changedetectionio/blueprint/ui/templates/edit.html:417 +msgid "Currently:" +msgstr "Momentan:" + +#: changedetectionio/blueprint/ui/templates/edit.html:423 +msgid "" +"Sorry, this functionality only works with fetchers that support " +"Javascript and screenshots (such as playwright etc)." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:424 +msgid "to one that supports Javascript and screenshots." +msgstr "zu einer, die Javascript und Screenshots unterstützt." + +#: changedetectionio/blueprint/ui/templates/edit.html:441 +msgid "Check count" +msgstr "Anzahl prüfen" + +#: changedetectionio/blueprint/ui/templates/edit.html:445 +msgid "Consecutive filter failures" +msgstr "Aufeinanderfolgende Filterausfälle" + +#: changedetectionio/blueprint/ui/templates/edit.html:449 +msgid "History length" +msgstr "Geschichte" + +#: changedetectionio/blueprint/ui/templates/edit.html:453 +msgid "Last fetch duration" +msgstr "Dauer des letzten Abrufs" + +#: changedetectionio/blueprint/ui/templates/edit.html:457 +msgid "Notification alert count" +msgstr "Anzahl der Benachrichtigungsalarme" + +#: changedetectionio/blueprint/ui/templates/edit.html:461 +msgid "Server type reply" +msgstr "Antwort vom Servertyp" + +#: changedetectionio/blueprint/ui/templates/edit.html:475 +msgid "Download latest HTML snapshot" +msgstr "Laden Sie den neuesten HTML-Snapshot herunter" + +#: changedetectionio/blueprint/ui/templates/edit.html:488 +msgid "Delete Watch?" +msgstr "Uhren löschen?" + +#: changedetectionio/blueprint/ui/templates/edit.html:489 +msgid "Are you sure you want to delete the watch for:" +msgstr "Sind Sie sicher, dass Sie die Überwachung löschen möchten für:" + +#: changedetectionio/blueprint/ui/templates/edit.html:489 +msgid "This action cannot be undone." +msgstr "Diese Aktion kann nicht rückgängig gemacht werden." + +#: changedetectionio/blueprint/ui/templates/edit.html:495 +msgid "Clear History?" +msgstr "Klare Historien" + +#: changedetectionio/blueprint/ui/templates/edit.html:496 +msgid "Are you sure you want to clear all history for:" +msgstr "Sind Sie sicher, dass Sie den gesamten Verlauf löschen möchten für:" + +#: changedetectionio/blueprint/ui/templates/edit.html:496 +msgid "" +"This will remove all snapshots and previous versions. This action cannot " +"be undone." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:497 +msgid "Clear History" +msgstr "Klare Historien" + +#: changedetectionio/blueprint/ui/templates/edit.html:499 +msgid "Clone & Edit" +msgstr "Klonen und bearbeiten" + +#: changedetectionio/blueprint/ui/templates/preview.html:22 +msgid "Select timestamp" +msgstr "Zeitstempel auswählen" + +#: changedetectionio/blueprint/ui/templates/preview.html:31 +msgid "Go" +msgstr "Gehen" + +#: changedetectionio/blueprint/ui/templates/preview.html:69 +msgid "Current erroring screenshot from most recent request" +msgstr "Aktueller fehlerhafter Screenshot aus der letzten Anfrage" + +#: changedetectionio/blueprint/ui/templates/preview.html:91 +msgid "" +"Screenshot requires a Content Fetcher ( Sockpuppetbrowser, selenium, etc " +") that supports screenshots." +msgstr "" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:31 +msgid "Add a new web page change detection watch" +msgstr "" +"Fügen Sie eine neue Überwachung zur Erkennung von Webseitenänderungen " +"hinzu" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:34 +msgid "Watch this URL!" +msgstr "Sehen Sie sich diese URL an!" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:35 +msgid "Edit first then Watch" +msgstr "Zuerst bearbeiten, dann ansehen" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:45 +msgid "Create a shareable link" +msgstr "Erstellen Sie einen gemeinsam nutzbaren Link" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:45 +msgid "Tip: You can also add 'shared' watches." +msgstr "Tipp: Sie können auch „gemeinsame“ Uhren hinzufügen." + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:45 +msgid "More info" +msgstr "Weitere Informationen" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:53 +msgid "Pause" +msgstr "Pause" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:54 +msgid "UnPause" +msgstr "Pause aufheben" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:55 +msgid "Mute" +msgstr "Stumm" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:56 +msgid "UnMute" +msgstr "Stummschaltung aufheben" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:57 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:248 +msgid "Recheck" +msgstr "Neu prüfen" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:58 +msgid "Tag" +msgstr "Etikett" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:59 +msgid "Mark viewed" +msgstr "Mark angesehen" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:60 +msgid "Use default notification" +msgstr "Standardbenachrichtigung verwenden" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:61 +msgid "Clear errors" +msgstr "Klare Fehler" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:65 +msgid "Clear Histories" +msgstr "Klare Historien" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:66 +msgid "" +"<p>Are you sure you want to clear history for the selected " +"items?</p><p>This action cannot be undone.</p>" +msgstr "" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:67 +msgid "OK" +msgstr "OK" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:67 +msgid "Clear/reset history" +msgstr "Verlauf löschen/zurücksetzen" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:71 +msgid "Delete Watches?" +msgstr "Uhren löschen?" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:72 +msgid "" +"<p>Are you sure you want to delete the selected " +"watches?</strong></p><p>This action cannot be undone.</p>" +msgstr "" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:78 +msgid "Searching" +msgstr "Suchen" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:80 +msgid "All" +msgstr "Alle" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:118 +msgid "Website" +msgstr "Webseite" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:120 +msgid "Restock & Price" +msgstr "Auffüllen und Preis" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:122 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:123 +msgid "Last" +msgstr "Zuletzt" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:122 +msgid "Checked" +msgstr "Geprüft" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:123 +msgid "Changed" +msgstr "Geändert" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:130 +msgid "No website watches configured, please add a URL in the box above, or" +msgstr "" +"Es sind keine Website-Überwachungen konfiguriert. Bitte fügen Sie im Feld" +" oben eine URL hinzu, oder\"Es sind keine Website-Überwachungen " +"konfiguriert. Bitte fügen Sie im Feld oben eine URL hinzu, oderEs sind " +"keine Website-Überwachungen konfiguriert. Bitte fügen Sie im Feld oben " +"eine URL hinzu, oderEs sind keine Website-Überwachungen konfiguriert. " +"Bitte fügen Sie im Feld oben eine URL hinzu, oder" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:130 +msgid "import a list" +msgstr "eine Liste importieren" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:213 +msgid "Detecting restock and price" +msgstr "Erkennen von Lagerbeständen und Preisen" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:215 +msgid "In stock" +msgstr "Auf Lager" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:215 +msgid "Not in stock" +msgstr "Nicht auf Lager" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:221 +msgid "Price" +msgstr "Preis" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:226 +msgid "No information" +msgstr "Keine Informationen" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:234 +#: changedetectionio/templates/base.html:248 +msgid "Checking now" +msgstr "Jetzt prüfen" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:247 +msgid "Queued" +msgstr "Wartend" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:250 +msgid "History" +msgstr "Verlauf" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:251 +msgid "Preview" +msgstr "Vorschau" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:260 +msgid "With errors" +msgstr "Mit Fehlern" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:263 +msgid "Mark all viewed" +msgstr "Alle angesehen markieren" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:267 +#, python-format +msgid "Mark all viewed in '%(title)s'" +msgstr "Alle in „%(title)s“ angezeigten Elemente markieren" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:271 +msgid "Unread" +msgstr "Ungelesen" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:274 +msgid "Recheck all" +msgstr "Überprüfen Sie alles noch einmal" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:274 +#, python-format +msgid "in '%(title)s'" +msgstr "in '%(title)s'" + +#: changedetectionio/processors/image_ssim_diff/forms.py:19 +#: changedetectionio/processors/image_ssim_diff/forms.py:69 +msgid "Bounding box value is too long" +msgstr "Der Wert des Begrenzungsrahmens ist zu lang" + +#: changedetectionio/processors/image_ssim_diff/forms.py:23 +msgid "Bounding box must be in format: x,y,width,height (integers only)" +msgstr "" +"Der Begrenzungsrahmen muss folgendes Format haben: x, y, Breite, Höhe " +"(nur Ganzzahlen)" + +#: changedetectionio/processors/image_ssim_diff/forms.py:29 +msgid "Bounding box values must be non-negative" +msgstr "Begrenzungsrahmenwerte dürfen nicht negativ sein" + +#: changedetectionio/processors/image_ssim_diff/forms.py:31 +msgid "Bounding box values are too large" +msgstr "Die Werte des Begrenzungsrahmens sind zu groß" + +#: changedetectionio/processors/image_ssim_diff/forms.py:40 +msgid "Selection mode must be either \"element\" or \"draw\"" +msgstr "" + +#: changedetectionio/processors/image_ssim_diff/forms.py:47 +msgid "Minimum Change Percentage" +msgstr "Mindeständerungsprozentsatz" + +#: changedetectionio/processors/image_ssim_diff/forms.py:56 +msgid "Pixel Difference Sensitivity" +msgstr "Pixeldifferenzempfindlichkeit" + +#: changedetectionio/processors/image_ssim_diff/forms.py:58 +msgid "Use global default" +msgstr "Verwenden Sie Systemstandards" + +#: changedetectionio/processors/image_ssim_diff/forms.py:66 +msgid "Bounding Box" +msgstr "Begrenzungsrahmen" + +#: changedetectionio/processors/image_ssim_diff/forms.py:76 +msgid "Selection Mode" +msgstr "Auswahlmodus:" + +#: changedetectionio/processors/image_ssim_diff/forms.py:79 +msgid "Selection mode value is too long" +msgstr "Der Wert für den Auswahlmodus ist zu lang" + +#: changedetectionio/processors/image_ssim_diff/forms.py:87 +msgid "Screenshot Comparison" +msgstr "Screenshot-Vergleich" + +#: changedetectionio/processors/image_ssim_diff/processor.py:20 +msgid "Visual / Image screenshot change detection" +msgstr "Erkennung von visuellen / Bild-Screenshot-Änderungen" + +#: changedetectionio/processors/image_ssim_diff/processor.py:21 +msgid "Compares screenshots using fast OpenCV algorithm, 10-100x faster than SSIM" +msgstr "Vergleicht Screenshots mit dem schnellen OpenCV-Algorithmus, 10-100x schneller als SSIM" + +#: changedetectionio/processors/image_ssim_diff/processor.py:23 +msgid "Visual" +msgstr "Visuell" + +#: changedetectionio/processors/restock_diff/forms.py:15 +msgid "Re-stock detection" +msgstr "Erkennung von Wiederbeständen" + +#: changedetectionio/processors/restock_diff/forms.py:16 +msgid "In Stock only (Out Of Stock -> In Stock only)" +msgstr "Nur auf Lager (Ausverkauft -> Nur auf Lager)" + +#: changedetectionio/processors/restock_diff/forms.py:17 +msgid "Any availability changes" +msgstr "Eventuelle Änderungen der Verfügbarkeit" + +#: changedetectionio/processors/restock_diff/forms.py:18 +msgid "Off, don't follow availability/restock" +msgstr "Aus, Verfügbarkeit/Auffüllung nicht verfolgen" + +#: changedetectionio/processors/restock_diff/forms.py:21 +msgid "Below price to trigger notification" +msgstr "Unterhalb des Preises, um eine Benachrichtigung auszulösen" + +#: changedetectionio/processors/restock_diff/forms.py:22 +#: changedetectionio/processors/restock_diff/forms.py:24 +msgid "No limit" +msgstr "Keine Begrenzung" + +#: changedetectionio/processors/restock_diff/forms.py:23 +msgid "Above price to trigger notification" +msgstr "Über dem Preis, um eine Benachrichtigung auszulösen" + +#: changedetectionio/processors/restock_diff/forms.py:25 +#, python-format +msgid "Threshold in %% for price changes since the original price" +msgstr "Schwellenwert in % für Preisänderungen seit dem ursprünglichen Preis" + +#: changedetectionio/processors/restock_diff/forms.py:28 +msgid "Should be between 0 and 100" +msgstr "Sollte zwischen 0 und 100 liegen" + +#: changedetectionio/processors/restock_diff/forms.py:31 +msgid "Follow price changes" +msgstr "Verfolgen Sie Preisänderungen" + +#: changedetectionio/processors/restock_diff/forms.py:37 +msgid "Restock & Price Detection" +msgstr "Auffüllen und Preis" + +#: changedetectionio/processors/restock_diff/processor.py:11 +msgid "Re-stock & Price detection for pages with a SINGLE product" +msgstr "Wiederauffüllung und Preiserkennung für Seiten mit einem EINZELNEN Produkt" + +#: changedetectionio/processors/restock_diff/processor.py:12 +msgid "Detects if the product goes back to in-stock" +msgstr "Erkennt, ob das Produkt wieder auf Lager ist" + +#: changedetectionio/processors/restock_diff/processor.py:14 +msgid "Restock" +msgstr "Auffüllen" + +#: changedetectionio/processors/text_json_diff/processor.py:21 +msgid "Webpage Text/HTML, JSON and PDF changes" +msgstr "Änderungen an Webseitentext/HTML, JSON und PDF" + +#: changedetectionio/processors/text_json_diff/processor.py:22 +msgid "Detects all text changes where possible" +msgstr "Erkennt nach Möglichkeit alle Textänderungen" + +#: changedetectionio/templates/base.html:77 +msgid "GROUPS" +msgstr "GRUPPEN" + +#: changedetectionio/templates/base.html:80 +msgid "SETTINGS" +msgstr "EINSTELLUNGEN" + +#: changedetectionio/templates/base.html:83 +msgid "IMPORT" +msgstr "IMPORT" + +#: changedetectionio/templates/base.html:86 +msgid "BACKUPS" +msgstr "BACKUPS" + +#: changedetectionio/templates/base.html:90 +msgid "EDIT" +msgstr "BEARBEITEN" + +#: changedetectionio/templates/base.html:100 +msgid "LOG OUT" +msgstr "Abmelden" + +#: changedetectionio/templates/base.html:109 +msgid "Search, or Use Alt+S Key" +msgstr "Suchen oder Alt+S-Taste verwenden" + +#: changedetectionio/templates/base.html:116 +msgid "Toggle Light/Dark Mode" +msgstr "Hell-/Dunkelmodus umschalten" + +#: changedetectionio/templates/base.html:117 +msgid "Toggle light/dark mode" +msgstr "Hell-/Dunkelmodus umschalten" + +#: changedetectionio/templates/base.html:127 +msgid "Change Language" +msgstr "Sprache ändern" + +#: changedetectionio/templates/base.html:128 +msgid "Change language" +msgstr "Sprache ändern" + +#: changedetectionio/templates/base.html:249 +msgid "Real-time updates offline" +msgstr "Echtzeit-Updates offline" + +#: changedetectionio/templates/base.html:259 +msgid "Select Language" +msgstr "Wählen Sie Sprache aus" + +#: changedetectionio/templates/login.html:10 +msgid "Password" +msgstr "Passwort" + +#: changedetectionio/templates/login.html:16 +msgid "Login" +msgstr "Login" + diff --git a/changedetectionio/translations/fr/LC_MESSAGES/messages.mo b/changedetectionio/translations/fr/LC_MESSAGES/messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..7002ddf6af27705501a411c1db86b59aeb61b96e GIT binary patch literal 33876 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 aAU<Xj8Fpm6E|_7zRU3#1tv6VO;Qs=T*HlaZ literal 0 HcmV?d00001 diff --git a/changedetectionio/translations/fr/LC_MESSAGES/messages.po b/changedetectionio/translations/fr/LC_MESSAGES/messages.po new file mode 100644 index 000000000..78eafe1d8 --- /dev/null +++ b/changedetectionio/translations/fr/LC_MESSAGES/messages.po @@ -0,0 +1,2033 @@ +# French translations for PROJECT. +# Copyright (C) 2026 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2026. +# +msgid "" +msgstr "" +"Project-Id-Version: PROJECT VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2026-01-02 13:32+0100\n" +"PO-Revision-Date: 2026-01-02 11:40+0100\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language: fr\n" +"Language-Team: fr <LL@li.org>\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.17.0\n" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:241 +#: changedetectionio/flask_app.py:213 changedetectionio/flask_app.py:225 +#: changedetectionio/flask_app.py:246 +#: changedetectionio/realtime/socket_server.py:171 +msgid "Not yet" +msgstr "Pas encore" + +#: changedetectionio/forms.py:62 changedetectionio/forms.py:242 +msgid "" +"At least one time interval (weeks, days, hours, minutes, or seconds) must" +" be specified." +msgstr "" + +#: changedetectionio/forms.py:63 +msgid "" +"At least one time interval (weeks, days, hours, minutes, or seconds) must" +" be specified when not using global settings." +msgstr "" + +#: changedetectionio/forms.py:163 +msgid "Invalid time format. Use HH:MM." +msgstr "Format d'heure invalide. Utilisez HH:MM." + +#: changedetectionio/forms.py:179 +msgid "Not a valid timezone name" +msgstr "Ce n'est pas un nom de fuseau horaire valide" + +#: changedetectionio/forms.py:182 +msgid "not set" +msgstr "Pas encore" + +#: changedetectionio/forms.py:183 +msgid "Start At" +msgstr "PARAMÈTRES" + +#: changedetectionio/forms.py:184 +msgid "Run duration" +msgstr "Aucune information" + +#: changedetectionio/forms.py:187 +msgid "Use time scheduler" +msgstr "Utiliser le planificateur de temps" + +#: changedetectionio/forms.py:197 +msgid "Optional timezone to run in" +msgstr "Fuseau horaire facultatif dans lequel exécuter" + +#: changedetectionio/forms.py:211 +msgid "Monday" +msgstr "Lundi" + +#: changedetectionio/forms.py:212 +msgid "Tuesday" +msgstr "Mardi" + +#: changedetectionio/forms.py:213 +msgid "Wednesday" +msgstr "Mercredi" + +#: changedetectionio/forms.py:214 +msgid "Thursday" +msgstr "Jeudi" + +#: changedetectionio/forms.py:215 +msgid "Friday" +msgstr "Vendredi" + +#: changedetectionio/forms.py:216 +msgid "Saturday" +msgstr "Samedi" + +#: changedetectionio/forms.py:217 +msgid "Sunday" +msgstr "Dimanche" + +#: changedetectionio/forms.py:250 +msgid "Weeks" +msgstr "Semaines" + +#: changedetectionio/forms.py:250 changedetectionio/forms.py:251 +#: changedetectionio/forms.py:252 changedetectionio/forms.py:253 +#: changedetectionio/forms.py:254 changedetectionio/forms.py:957 +msgid "Should contain zero or more seconds" +msgstr "Doit contenir zéro ou plusieurs secondes" + +#: changedetectionio/forms.py:251 +msgid "Days" +msgstr "Jours" + +#: changedetectionio/forms.py:252 +msgid "Hours" +msgstr "Mot de passe" + +#: changedetectionio/forms.py:253 +msgid "Minutes" +msgstr "Muet" + +#: changedetectionio/forms.py:254 +msgid "Seconds" +msgstr "secondes" + +#: changedetectionio/forms.py:459 +msgid "Notification Body and Title is required when a Notification URL is used" +msgstr "" +"Le corps et le titre de la notification sont requis lorsqu'une URL de " +"notification est utiliséeLe corps et le titre de la notification sont " +"requis lorsqu'une URL de notification est utiliséeLe corps et le titre de" +" la notification sont requis lorsqu'une URL de notification est " +"utiliséeLe corps et le titre de la notification sont requis lorsqu'une " +"URL de notification est utilisée" + +#: changedetectionio/forms.py:488 +#, python-format +msgid "'%s' is not a valid AppRise URL." +msgstr "'%s' n'est pas une URL AppRise valide." + +#: changedetectionio/forms.py:561 changedetectionio/forms.py:580 +#, python-format +msgid "RegEx '%s' is not a valid regular expression." +msgstr "RegEx '%s' n'est pas une expression régulière valide." + +#: changedetectionio/forms.py:621 changedetectionio/forms.py:636 +#, python-format +msgid "'%s' is not a valid XPath expression. (%s)" +msgstr "'%s' n'est pas une expression XPath valide. (%s)" + +#: changedetectionio/forms.py:656 +#, python-format +msgid "'%s' is not a valid JSONPath expression. (%s)" +msgstr "'%s' n'est pas une expression JSONPath valide. (%s)" + +#: changedetectionio/forms.py:678 +#, python-format +msgid "'%s' is not a valid jq expression. (%s)" +msgstr "'%s' n'est pas une expression jq valide. (%s)" + +#: changedetectionio/forms.py:724 +msgid "Empty value not allowed." +msgstr "Valeur vide non autorisée." + +#: changedetectionio/forms.py:726 +msgid "Invalid value." +msgstr "Valeur invalide." + +#: changedetectionio/forms.py:733 +msgid "Watch" +msgstr "# Montres" + +#: changedetectionio/forms.py:734 changedetectionio/forms.py:768 +msgid "Processor" +msgstr "Processeur" + +#: changedetectionio/forms.py:735 +msgid "Edit > Watch" +msgstr "Modifiez d'abord, puis regardez" + +#: changedetectionio/forms.py:748 changedetectionio/forms.py:996 +msgid "Fetch Method" +msgstr "Définir la méthode de récupération" + +#: changedetectionio/forms.py:749 +msgid "Notification Body" +msgstr "Aucune information" + +#: changedetectionio/forms.py:750 +msgid "Notification format" +msgstr "Aucune information" + +#: changedetectionio/forms.py:751 +msgid "Notification Title" +msgstr "Aucune information" + +#: changedetectionio/forms.py:752 +msgid "Notification URL List" +msgstr "Aucune information" + +#: changedetectionio/forms.py:753 +msgid "Processor - What do you want to achieve?" +msgstr "Processeur – Que souhaitez-vous réaliser ?" + +#: changedetectionio/forms.py:754 +msgid "Default timezone for watch check scheduler" +msgstr "" +"Fuseau horaire par défaut pour le planificateur de contrôle de " +"surveillanceFuseau horaire par défaut pour le planificateur de contrôle " +"de surveillance" + +#: changedetectionio/forms.py:755 +msgid "Wait seconds before extracting text" +msgstr "secondes avant d’extraire le texte." + +#: changedetectionio/forms.py:755 +msgid "Should contain one or more seconds" +msgstr "Doit contenir une ou plusieurs secondes" + +#: changedetectionio/forms.py:769 +msgid "URLs" +msgstr "URL" + +#: changedetectionio/forms.py:770 +msgid "Upload .xlsx file" +msgstr "Téléchargez le fichier .xlsx" + +#: changedetectionio/forms.py:770 +msgid "Must be .xlsx file!" +msgstr "Il doit s'agir d'un fichier .xlsx !" + +#: changedetectionio/forms.py:771 +msgid "File mapping" +msgstr "Type de mappage de fichiers." + +#: changedetectionio/forms.py:775 +msgid "Operation" +msgstr "Options de l'interface utilisateur" + +#: changedetectionio/forms.py:778 +msgid "Selector" +msgstr "Mode de sélection :" + +#: changedetectionio/forms.py:779 +msgid "value" +msgstr "Pause" + +#: changedetectionio/forms.py:798 +msgid "Use global settings for time between check and scheduler." +msgstr "" +"Utilisez les paramètres globaux pour le temps entre la vérification et le" +" planificateur.Utilisez les paramètres globaux pour le temps entre la " +"vérification et le planificateur." + +#: changedetectionio/forms.py:800 +msgid "CSS/JSONPath/JQ/XPath Filters" +msgstr "Filtre CSS/xPath" + +#: changedetectionio/forms.py:802 changedetectionio/forms.py:998 +msgid "Remove elements" +msgstr "Supprimé" + +#: changedetectionio/forms.py:804 +msgid "Extract text" +msgstr "Extraire des données" + +#: changedetectionio/blueprint/imports/templates/import.html:106 +#: changedetectionio/forms.py:806 +msgid "Title" +msgstr "Titre" + +#: changedetectionio/forms.py:808 +msgid "Ignore lines containing" +msgstr "Ignorer toutes les lignes correspondant" + +#: changedetectionio/forms.py:810 +msgid "Request body" +msgstr "Demande" + +#: changedetectionio/forms.py:811 +msgid "Request method" +msgstr "Demande" + +#: changedetectionio/forms.py:812 +msgid "Ignore status codes (process non-2xx status codes as normal)" +msgstr "" +"Ignorer les codes d'état (traiter les codes d'état non-2xx comme " +"d'habitude)Ignorer les codes d'état (traiter les codes d'état non-2xx " +"comme d'habitude)" + +#: changedetectionio/forms.py:813 +msgid "Only trigger when unique lines appear in all history" +msgstr "Se déclenche uniquement lorsque des lignes uniques apparaissent" + +#: changedetectionio/blueprint/ui/templates/edit.html:336 +#: changedetectionio/forms.py:814 +msgid "Remove duplicate lines of text" +msgstr "Supprimer les lignes de texte en double" + +#: changedetectionio/forms.py:815 +msgid "Sort text alphabetically" +msgstr "Trier le texte par ordre alphabétique" + +#: changedetectionio/forms.py:816 changedetectionio/forms.py:1025 +msgid "Strip ignored lines" +msgstr "Supprimer les lignes ignorées" + +#: changedetectionio/forms.py:817 +msgid "Trim whitespace before and after text" +msgstr "Supprimez tout espace avant et après chaque ligne de texte" + +#: changedetectionio/forms.py:819 +msgid "Added lines" +msgstr "Se connecter" + +#: changedetectionio/forms.py:820 +msgid "Replaced/changed lines" +msgstr "Lignes remplacées/modifiées" + +#: changedetectionio/forms.py:821 +msgid "Removed lines" +msgstr "Supprimé" + +#: changedetectionio/forms.py:823 +msgid "Keyword triggers - Trigger/wait for text" +msgstr "Déclencheurs de mots clés – Déclencher/attendre du texte" + +#: changedetectionio/forms.py:826 +msgid "Block change-detection while text matches" +msgstr "Bloquer la détection des modifications lorsque le texte correspond" + +#: changedetectionio/forms.py:827 +msgid "Execute JavaScript before change detection" +msgstr "Exécutez JavaScript avant la détection des modifications" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:17 +#: changedetectionio/forms.py:829 changedetectionio/forms.py:1053 +msgid "Save" +msgstr "Sauvegarder" + +#: changedetectionio/forms.py:831 +msgid "Proxy" +msgstr "Procuration" + +#: changedetectionio/forms.py:833 +msgid "Send a notification when the filter can no longer be found on the page" +msgstr "Envoyer une notification lorsque le filtre n'est plus trouvé sur la page" + +#: changedetectionio/blueprint/settings/templates/settings.html:22 +#: changedetectionio/blueprint/tags/templates/edit-tag.html:32 +#: changedetectionio/blueprint/ui/templates/edit.html:59 +#: changedetectionio/forms.py:834 +msgid "Notifications" +msgstr "Aucune information" + +#: changedetectionio/forms.py:834 +msgid "Muted" +msgstr "Muet" + +#: changedetectionio/forms.py:834 +msgid "On" +msgstr "aucun" + +#: changedetectionio/forms.py:835 +msgid "Attach screenshot to notification (where possible)" +msgstr "Joindre une capture d'écran à la notification (si possible)" + +#: changedetectionio/forms.py:837 +msgid "Match" +msgstr "# Montres" + +#: changedetectionio/forms.py:837 +msgid "Match all of the following" +msgstr "Faites correspondre tous les éléments suivants" + +#: changedetectionio/forms.py:837 +msgid "Match any of the following" +msgstr "Faites correspondre l'un des éléments suivants" + +#: changedetectionio/forms.py:839 +msgid "Use page <title> in list" +msgstr "Utiliser la page <titre> dans la liste" + +#: changedetectionio/forms.py:856 +msgid "Body must be empty when Request Method is set to GET" +msgstr "Le corps doit être vide lorsque la méthode de requête est définie sur GET" + +#: changedetectionio/forms.py:865 changedetectionio/forms.py:879 +#: changedetectionio/forms.py:894 +#, python-format +msgid "Invalid template syntax configuration: %(error)s" +msgstr "Configuration de syntaxe de modèle non valide : %(error)s" + +#: changedetectionio/forms.py:869 changedetectionio/forms.py:883 +#, python-format +msgid "Invalid template syntax: %(error)s" +msgstr "Syntaxe de modèle non valide : %(error)s" + +#: changedetectionio/forms.py:898 +#, python-format +msgid "Invalid template syntax in \"%(header)s\" header: %(error)s" +msgstr "" + +#: changedetectionio/forms.py:922 changedetectionio/forms.py:934 +msgid "Name" +msgstr "Réactiver le son" + +#: changedetectionio/forms.py:923 +msgid "Proxy URL" +msgstr "URL du proxy" + +#: changedetectionio/forms.py:928 +msgid "Proxy URLs must start with http://, https:// or socks5://" +msgstr "Les URL proxy doivent commencer par http://, https:// ou chaussettes5://" + +#: changedetectionio/forms.py:935 +msgid "Browser connection URL" +msgstr "URL de connexion au navigateur" + +#: changedetectionio/forms.py:940 +msgid "Browser URLs must start with wss:// or ws://" +msgstr "Les URL du navigateur doivent commencer par wss:// ou ws://" + +#: changedetectionio/forms.py:946 +msgid "Plaintext requests" +msgstr "Requêtes en texte brut" + +#: changedetectionio/forms.py:948 +msgid "Chrome requests" +msgstr "Demande" + +#: changedetectionio/forms.py:954 +msgid "Default proxy" +msgstr "Proxy par défaut" + +#: changedetectionio/forms.py:955 +msgid "Random jitter seconds ± check" +msgstr "Secondes de gigue aléatoire ± vérification" + +#: changedetectionio/forms.py:959 +msgid "Number of fetch workers" +msgstr "Nombre de travailleurs de récupération" + +#: changedetectionio/forms.py:962 +msgid "Should be between 1 and 50" +msgstr "Doit être compris entre 1 et 50" + +#: changedetectionio/forms.py:964 +msgid "Requests timeout in seconds" +msgstr "Délai d'expiration des demandes en secondes" + +#: changedetectionio/forms.py:967 +msgid "Should be between 1 and 999" +msgstr "Doit être compris entre 1 et 999" + +#: changedetectionio/forms.py:972 +msgid "Default User-Agent overrides" +msgstr "Remplacements de l'agent utilisateur par défaut" + +#: changedetectionio/forms.py:978 +msgid "Both a name, and a Proxy URL is required." +msgstr "Un nom et une URL de proxy sont requis." + +#: changedetectionio/forms.py:982 +msgid "Open 'History' page in a new tab" +msgstr "Ouvrir la page \"Historique\" dans un nouvel onglet" + +#: changedetectionio/forms.py:983 +msgid "Realtime UI Updates Enabled" +msgstr "Mises à jour en temps réel hors ligne" + +#: changedetectionio/forms.py:984 +msgid "Favicons Enabled" +msgstr "envisager d'activer" + +#: changedetectionio/forms.py:985 +msgid "Use page <title> in watch overview list" +msgstr "Utiliser la page <titre> dans la liste de présentation des montres" + +#: changedetectionio/forms.py:990 +msgid "API access token security check enabled" +msgstr "Contrôle de sécurité du jeton d'accès à l'API activé" + +#: changedetectionio/forms.py:991 +msgid "Notification base URL override" +msgstr "Nombre d'alertes de notification" + +#: changedetectionio/forms.py:995 +msgid "Treat empty pages as a change?" +msgstr "Considérer les pages vides comme un changement ?" + +#: changedetectionio/forms.py:997 +msgid "Ignore Text" +msgstr "Texte d'erreur" + +#: changedetectionio/forms.py:999 +msgid "Ignore whitespace" +msgstr "Ignorer les espaces" + +#: changedetectionio/forms.py:1006 +#: changedetectionio/processors/image_ssim_diff/forms.py:50 +msgid "Must be between 0 and 100" +msgstr "Doit être compris entre 0 et 100" + +#: changedetectionio/forms.py:1013 +msgid "Pager size" +msgstr "Taille du téléavertisseur" + +#: changedetectionio/forms.py:1016 +msgid "Should be atleast zero (disabled)" +msgstr "Doit être au moins zéro (désactivé)" + +#: changedetectionio/forms.py:1018 +msgid "RSS Content format" +msgstr "Format du contenu RSS" + +#: changedetectionio/forms.py:1019 +msgid "RSS <description> body built from" +msgstr "RSS <description> corps construit à partir de" + +#: changedetectionio/forms.py:1020 +msgid "RSS \"System default\" template override" +msgstr "" + +#: changedetectionio/forms.py:1022 +msgid "Remove password" +msgstr "Mot de passe" + +#: changedetectionio/forms.py:1023 +msgid "Render anchor tag content" +msgstr "Afficher le contenu de la balise d'ancrage" + +#: changedetectionio/forms.py:1024 +msgid "Allow anonymous access to watch history page when password is enabled" +msgstr "" +"Autoriser l'accès anonyme à la page de l'historique des vidéos regardées " +"lorsque le mot de passe est activéAutoriser l'accès anonyme à la page de " +"l'historique des vidéos regardées lorsque le mot de passe est activé" + +#: changedetectionio/forms.py:1026 +msgid "Hide muted watches from RSS feed" +msgstr "Masquer les montres en sourdine du flux RSS" + +#: changedetectionio/forms.py:1029 +msgid "Enable RSS reader mode " +msgstr "Activer le mode lecteur RSS" + +#: changedetectionio/forms.py:1030 +msgid "Number of changes to show in watch RSS feed" +msgstr "Nombre de modifications à afficher dans le flux RSS de la montre" + +#: changedetectionio/forms.py:1032 changedetectionio/forms.py:1037 +msgid "Should contain zero or more attempts" +msgstr "Doit contenir zéro ou plusieurs tentatives" + +#: changedetectionio/forms.py:1034 +msgid "Number of times the filter can be missing before sending a notification" +msgstr "" +"Nombre de fois où le filtre peut être manquant avant l'envoi d'une " +"notificationNombre de fois où le filtre peut être manquant avant l'envoi " +"d'une notification" + +#: changedetectionio/forms.py:1057 +msgid "RegEx to extract" +msgstr "RegEx à extraire" + +#: changedetectionio/forms.py:1058 +msgid "Extract as CSV" +msgstr "Extraire des données" + +#: changedetectionio/blueprint/backups/templates/overview.html:6 +msgid "Backups" +msgstr "SAUVEGARDES" + +#: changedetectionio/blueprint/backups/templates/overview.html:9 +msgid "A backup is running!" +msgstr "Une sauvegarde est en cours !" + +#: changedetectionio/blueprint/backups/templates/overview.html:13 +msgid "" +"Here you can download and request a new backup, when a backup is " +"completed you will see it listed below." +msgstr "" + +#: changedetectionio/blueprint/backups/templates/overview.html:19 +msgid "Mb" +msgstr "Mo" + +#: changedetectionio/blueprint/backups/templates/overview.html:24 +msgid "No backups found." +msgstr "Aucune sauvegarde trouvée." + +#: changedetectionio/blueprint/backups/templates/overview.html:28 +msgid "Create backup" +msgstr "SAUVEGARDES" + +#: changedetectionio/blueprint/backups/templates/overview.html:30 +msgid "Remove backups" +msgstr "SAUVEGARDES" + +#: changedetectionio/blueprint/imports/templates/import.html:9 +msgid "URL List" +msgstr "Liste d'URL" + +#: changedetectionio/blueprint/imports/templates/import.html:10 +msgid "Distill.io" +msgstr "Distill.io" + +#: changedetectionio/blueprint/imports/templates/import.html:11 +msgid ".XLSX & Wachete" +msgstr ".XLSX et Wachete" + +#: changedetectionio/blueprint/imports/templates/import.html:20 +msgid "" +"Enter one URL per line, and optionally add tags for each URL after a " +"space, delineated by comma (,):" +msgstr "" + +#: changedetectionio/blueprint/imports/templates/import.html:22 +msgid "Example:" +msgstr "Exemple:" + +#: changedetectionio/blueprint/imports/templates/import.html:23 +msgid "URLs which do not pass validation will stay in the textarea." +msgstr "Les URL qui ne passent pas la validation resteront dans la zone de texte." + +#: changedetectionio/blueprint/imports/templates/import.html:44 +msgid "" +"Copy and Paste your Distill.io watch 'export' file, this should be a JSON" +" file." +msgstr "" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "This is" +msgstr "C'est" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "experimental" +msgstr "expérimental" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "supported fields are" +msgstr "les champs pris en charge sont" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "the rest (including" +msgstr "le reste (y compris" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "are ignored." +msgstr "sont ignorés." + +#: changedetectionio/blueprint/imports/templates/import.html:48 +msgid "How to export?" +msgstr "Comment exporter ?" + +#: changedetectionio/blueprint/imports/templates/import.html:49 +msgid "Be sure to set your default fetcher to Chrome if required." +msgstr "" +"Assurez-vous de définir votre outil de récupération par défaut sur Chrome" +" si nécessaire.Assurez-vous de définir votre outil de récupération par " +"défaut sur Chrome si nécessaire.Assurez-vous de définir votre outil de " +"récupération par défaut sur Chrome si nécessaire." + +#: changedetectionio/blueprint/imports/templates/import.html:91 +msgid "Table of custom column and data types mapping for the" +msgstr "" +"Tableau de mappage des colonnes personnalisées et des types de données " +"pour leTableau de mappage des colonnes personnalisées et des types de " +"données pour leTableau de mappage des colonnes personnalisées et des " +"types de données pour le" + +#: changedetectionio/blueprint/imports/templates/import.html:91 +msgid "Custom mapping" +msgstr "Cartographie personnalisée" + +#: changedetectionio/blueprint/imports/templates/import.html:91 +msgid "File mapping type." +msgstr "Type de mappage de fichiers." + +#: changedetectionio/blueprint/imports/templates/import.html:95 +msgid "Column #" +msgstr "Colonne #" + +#: changedetectionio/blueprint/imports/templates/import.html:101 +msgid "Type" +msgstr "Taper" + +#: changedetectionio/blueprint/imports/templates/import.html:104 +msgid "none" +msgstr "aucun" + +#: changedetectionio/blueprint/imports/templates/import.html:105 +msgid "URL" +msgstr "URL" + +#: changedetectionio/blueprint/imports/templates/import.html:107 +msgid "CSS/xPath filter" +msgstr "Filtre CSS/xPath" + +#: changedetectionio/blueprint/imports/templates/import.html:108 +msgid "Group / Tag name(s)" +msgstr "Groupe de surveillance/tag" + +#: changedetectionio/blueprint/imports/templates/import.html:109 +msgid "Recheck time (minutes)" +msgstr "Temps de revérification (minutes)" + +#: changedetectionio/blueprint/imports/templates/import.html:116 +msgid "Import" +msgstr "IMPORTER" + +#: changedetectionio/blueprint/settings/templates/notification-log.html:7 +msgid "Notification debug log" +msgstr "Journal de débogage des notifications" + +#: changedetectionio/blueprint/settings/templates/settings.html:21 +#: changedetectionio/blueprint/tags/templates/edit-tag.html:27 +#: changedetectionio/blueprint/ui/templates/edit.html:47 +msgid "General" +msgstr "Général" + +#: changedetectionio/blueprint/settings/templates/settings.html:23 +msgid "Fetching" +msgstr "Recherche" + +#: changedetectionio/blueprint/settings/templates/settings.html:24 +msgid "Global Filters" +msgstr "Filtres globaux" + +#: changedetectionio/blueprint/settings/templates/settings.html:25 +msgid "UI Options" +msgstr "Options de l'interface utilisateur" + +#: changedetectionio/blueprint/settings/templates/settings.html:26 +msgid "API" +msgstr "API" + +#: changedetectionio/blueprint/settings/templates/settings.html:27 +msgid "RSS" +msgstr "RSS" + +#: changedetectionio/blueprint/settings/templates/settings.html:28 +msgid "Time & Date" +msgstr "Heure et date" + +#: changedetectionio/blueprint/settings/templates/settings.html:29 +msgid "CAPTCHA & Proxies" +msgstr "CAPTCHA et procurations" + +#: changedetectionio/blueprint/settings/templates/settings.html:35 +msgid "Info" +msgstr "Plus d'informations" + +#: changedetectionio/blueprint/settings/templates/settings.html:46 +msgid "Default recheck time for all watches, current system minimum is" +msgstr "" +"Heure de revérification par défaut pour toutes les montres, le minimum " +"actuel du système estHeure de revérification par défaut pour toutes les " +"montres, le minimum actuel du système estHeure de revérification par " +"défaut pour toutes les montres, le minimum actuel du système est" + +#: changedetectionio/blueprint/settings/templates/settings.html:46 +msgid "seconds" +msgstr "secondes" + +#: changedetectionio/blueprint/settings/templates/settings.html:46 +msgid "more info" +msgstr "Plus d'informations" + +#: changedetectionio/blueprint/settings/templates/settings.html:390 +msgid "Python version:" +msgstr "Version Python :" + +#: changedetectionio/blueprint/settings/templates/settings.html:391 +msgid "Plugins active:" +msgstr "Plugins actifs :" + +#: changedetectionio/blueprint/settings/templates/settings.html:399 +msgid "No plugins active" +msgstr "Aucun plugin actif" + +#: changedetectionio/blueprint/settings/templates/settings.html:405 +msgid "Back" +msgstr "SAUVEGARDES" + +#: changedetectionio/blueprint/settings/templates/settings.html:406 +msgid "Clear Snapshot History" +msgstr "Effacer/réinitialiser l'historique" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:28 +#: changedetectionio/blueprint/ui/templates/edit.html:56 +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "Filters & Triggers" +msgstr "Filtres et déclencheurs" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:50 +msgid "These settings are" +msgstr "PARAMÈTRES" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:50 +msgid "added" +msgstr "ajouté" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:50 +msgid "to any existing watch configurations." +msgstr "à toutes les configurations de montre existantes." + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:53 +#: changedetectionio/blueprint/ui/templates/edit.html:321 +msgid "Text filtering" +msgstr "Filtrage de texte" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:269 +msgid "Use with caution!" +msgstr "A utiliser avec prudence !" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:269 +msgid "This will easily fill up your email storage quota or flood other storages." +msgstr "" +"Cela remplira facilement votre quota de stockage de courrier électronique" +" ou inondera d’autres stockages.Cela remplira facilement votre quota de " +"stockage de courrier électronique ou inondera d’autres stockages.Cela " +"remplira facilement votre quota de stockage de courrier électronique ou " +"inondera d’autres stockages." + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:80 +#: changedetectionio/blueprint/ui/templates/edit.html:276 +msgid "Look out!" +msgstr "DÉCONNEXION" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:80 +#: changedetectionio/blueprint/ui/templates/edit.html:276 +msgid "Lookout!" +msgstr "DÉCONNEXION" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "There are" +msgstr "Il y a" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "system-wide notification URLs enabled" +msgstr "URL de notification à l'échelle du système activées" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "this form will override notification settings for this watch only" +msgstr "" +"ce formulaire remplacera les paramètres de notification pour cette montre" +" uniquementce formulaire remplacera les paramètres de notification pour " +"cette montre uniquementce formulaire remplacera les paramètres de " +"notification pour cette montre uniquement" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "an empty Notification URL list here will still send notifications." +msgstr "" +"une liste d'URL de notification vide ici enverra toujours des " +"notifications.une liste d'URL de notification vide ici enverra toujours " +"des notifications.une liste d'URL de notification vide ici enverra " +"toujours des notifications." + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:84 +#: changedetectionio/blueprint/ui/templates/edit.html:280 +msgid "Use system defaults" +msgstr "Utiliser les paramètres par défaut du système" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:11 +msgid "Add a new organisational tag" +msgstr "Ajouter une nouvelle balise organisationnelle" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:14 +msgid "Watch group / tag" +msgstr "Groupe de surveillance/tag" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:21 +msgid "" +"Groups allows you to manage filters and notifications for multiple " +"watches under a single organisational tag." +msgstr "" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:31 +msgid "# Watches" +msgstr "# Montres" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:32 +msgid "Tag / Label name" +msgstr "Nom de l'étiquette/de l'étiquette" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:42 +msgid "No website organisational tags/groups configured" +msgstr "Aucune balise/groupe organisationnel de site Web configuré" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:53 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:249 +msgid "Edit" +msgstr "Modifier" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:58 +msgid "Delete Group?" +msgstr "Supprimer le groupe ?" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:59 +#, python-format +msgid "" +"<p>Are you sure you want to delete group " +"<strong>%(title)s</strong>?</p><p>This action cannot be undone.</p>" +msgstr "" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:60 +#: changedetectionio/blueprint/tags/templates/groups-overview.html:61 +#: changedetectionio/blueprint/ui/templates/edit.html:490 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:73 +msgid "Delete" +msgstr "Supprimer" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:61 +msgid "Deletes and removes tag" +msgstr "Supprime et supprime la balise" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:66 +msgid "Unlink Group?" +msgstr "Dissocier le groupe ?" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:67 +#, python-format +msgid "" +"<p>Are you sure you want to unlink all watches from group " +"<strong>%(title)s</strong>?</p><p>The tag will be kept but watches will " +"be removed from it.</p>" +msgstr "" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:68 +#: changedetectionio/blueprint/tags/templates/groups-overview.html:69 +msgid "Unlink" +msgstr "Dissocier" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:69 +msgid "Keep the tag but unlink any watches" +msgstr "Conservez l'étiquette mais dissociez les montres" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:70 +#: changedetectionio/blueprint/ui/templates/edit.html:500 +msgid "RSS Feed for this watch" +msgstr "Flux RSS de cette montre" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:12 +msgid "" +"This will remove version history (snapshots) for ALL watches, but keep " +"your list of URLs!" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:13 +msgid "You may like to use the" +msgstr "Vous aimerez peut-être utiliser le" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:13 +msgid "BACKUP" +msgstr "SAUVEGARDES" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:13 +msgid "link first." +msgstr "lien d'abord." + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:17 +msgid "Confirmation text" +msgstr "Aucune information" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:27 +msgid "Type in the word" +msgstr "Tapez le mot" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:27 +msgid "clear" +msgstr "clair" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:27 +msgid "to confirm that you understand." +msgstr "pour confirmer que vous comprenez." + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:33 +msgid "Clear History!" +msgstr "Effacer les historiques" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:39 +#: changedetectionio/templates/base.html:271 +msgid "Cancel" +msgstr "Annuler" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:3 +msgid "Share diff as image" +msgstr "Partager la différence sous forme d'image" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:3 +msgid "Share as Image" +msgstr "Partager en tant qu'image" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:6 +msgid "Ignore any lines matching" +msgstr "Ignorer toutes les lignes correspondant" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:9 +msgid "Ignore any lines matching excluding digits" +msgstr "Ignorer toutes les lignes correspondant à l'exclusion des chiffres" + +#: changedetectionio/blueprint/ui/templates/diff.html:28 +msgid "From" +msgstr "Depuis" + +#: changedetectionio/blueprint/ui/templates/diff.html:38 +msgid "To" +msgstr "À" + +#: changedetectionio/blueprint/ui/templates/diff.html:53 +msgid "Words" +msgstr "Mot de passe" + +#: changedetectionio/blueprint/ui/templates/diff.html:57 +msgid "Lines" +msgstr "Se connecter" + +#: changedetectionio/blueprint/ui/templates/diff.html:61 +msgid "Ignore Whitespace" +msgstr "Ignorer les espaces" + +#: changedetectionio/blueprint/ui/templates/diff.html:65 +msgid "Same/non-changed" +msgstr "Modifié" + +#: changedetectionio/blueprint/ui/templates/diff.html:69 +msgid "Removed" +msgstr "Supprimé" + +#: changedetectionio/blueprint/ui/templates/diff.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "Added" +msgstr "Ajouté" + +#: changedetectionio/blueprint/ui/templates/diff.html:77 +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "Replaced" +msgstr "Remplacé" + +#: changedetectionio/blueprint/ui/templates/diff.html:82 +#: changedetectionio/blueprint/ui/templates/preview.html:36 +msgid "Keyboard:" +msgstr "Clavier:" + +#: changedetectionio/blueprint/ui/templates/diff.html:83 +#: changedetectionio/blueprint/ui/templates/preview.html:37 +msgid "Previous" +msgstr "Aperçu" + +#: changedetectionio/blueprint/ui/templates/diff.html:84 +#: changedetectionio/blueprint/ui/templates/preview.html:38 +msgid "Next" +msgstr "Suivant" + +#: changedetectionio/blueprint/ui/templates/diff.html:91 +msgid "Jump to next difference" +msgstr "Passer à la différence suivante" + +#: changedetectionio/blueprint/ui/templates/diff.html:91 +msgid "Jump" +msgstr "Saut" + +#: changedetectionio/blueprint/ui/templates/diff.html:97 +#: changedetectionio/blueprint/ui/templates/preview.html:45 +msgid "Error Text" +msgstr "Texte d'erreur" + +#: changedetectionio/blueprint/ui/templates/diff.html:98 +#: changedetectionio/blueprint/ui/templates/preview.html:47 +msgid "Error Screenshot" +msgstr "Capture d'écran d'erreur" + +#: changedetectionio/blueprint/ui/templates/diff.html:99 +#: changedetectionio/blueprint/ui/templates/preview.html:50 +#: changedetectionio/processors/text_json_diff/processor.py:24 +msgid "Text" +msgstr "Texte" + +#: changedetectionio/blueprint/ui/templates/diff.html:100 +#: changedetectionio/blueprint/ui/templates/preview.html:51 +msgid "Current screenshot" +msgstr "Capture d'écran actuelle" + +#: changedetectionio/blueprint/ui/templates/diff.html:101 +msgid "Extract Data" +msgstr "Extraire des données" + +#: changedetectionio/blueprint/ui/templates/diff.html:107 +msgid "seconds ago." +msgstr "il y a quelques secondes." + +#: changedetectionio/blueprint/ui/templates/diff.html:114 +#: changedetectionio/blueprint/ui/templates/preview.html:59 +#: changedetectionio/blueprint/ui/templates/preview.html:66 +msgid "seconds ago" +msgstr "il y a quelques secondes" + +#: changedetectionio/blueprint/ui/templates/diff.html:115 +msgid "Current error-ing screenshot from most recent request" +msgstr "Capture d'écran d'erreur actuelle de la demande la plus récente" + +#: changedetectionio/blueprint/ui/templates/diff.html:127 +msgid "Pro-tip: You can enable" +msgstr "Conseil de pro : vous pouvez activer" + +#: changedetectionio/blueprint/ui/templates/diff.html:127 +msgid "\"share access when password is enabled\"" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/diff.html:127 +msgid "from settings." +msgstr "PARAMÈTRES" + +#: changedetectionio/blueprint/ui/templates/diff.html:133 +msgid "Goto single snapshot" +msgstr "Accéder à un seul instantané" + +#: changedetectionio/blueprint/ui/templates/diff.html:138 +#: changedetectionio/blueprint/ui/templates/edit.html:125 +msgid "Tip:" +msgstr "Conseil:" + +#: changedetectionio/blueprint/ui/templates/diff.html:138 +msgid "Highlight text to share or add to ignore lists." +msgstr "" +"Mettez en surbrillance le texte à partager ou à ajouter pour ignorer les " +"listes.Mettez en surbrillance le texte à partager ou à ajouter pour " +"ignorer les listes.Mettez en surbrillance le texte à partager ou à " +"ajouter pour ignorer les listes." + +#: changedetectionio/blueprint/ui/templates/diff.html:144 +#: changedetectionio/blueprint/ui/templates/preview.html:80 +msgid "" +"For now, Differences are performed on text, not graphically, only the " +"latest screenshot is available." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/diff.html:149 +#: changedetectionio/blueprint/ui/templates/preview.html:86 +msgid "Current screenshot from most recent request" +msgstr "Capture d'écran actuelle de la demande la plus récente" + +#: changedetectionio/blueprint/ui/templates/diff.html:151 +#: changedetectionio/blueprint/ui/templates/preview.html:88 +msgid "No screenshot available just yet! Try rechecking the page." +msgstr "" +"Aucune capture d'écran disponible pour l'instant ! Essayez de revérifier " +"la page.Aucune capture d'écran disponible pour l'instant ! Essayez de " +"revérifier la page.Aucune capture d'écran disponible pour l'instant ! " +"Essayez de revérifier la page." + +#: changedetectionio/blueprint/ui/templates/diff.html:154 +msgid "Screenshot requires Playwright/WebDriver enabled" +msgstr "La capture d'écran nécessite l'activation de Playwright/WebDriver" + +#: changedetectionio/blueprint/ui/templates/edit.html:48 +msgid "Request" +msgstr "Demande" + +#: changedetectionio/blueprint/ui/templates/edit.html:52 +msgid "Browser Steps" +msgstr "Étapes du navigateur" + +#: changedetectionio/blueprint/ui/templates/edit.html:55 +msgid "Visual Filter Selector" +msgstr "Sélecteur de filtre visuel" + +#: changedetectionio/blueprint/ui/templates/edit.html:57 +msgid "Conditions" +msgstr "Conditions" + +#: changedetectionio/blueprint/ui/templates/edit.html:60 +msgid "Stats" +msgstr "PARAMÈTRES" + +#: changedetectionio/blueprint/ui/templates/edit.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:313 +msgid "Some sites use JavaScript to create the content, for this you should" +msgstr "" +"Certains sites utilisent JavaScript pour créer le contenu, pour cela vous" +" devezCertains sites utilisent JavaScript pour créer le contenu, pour " +"cela vous devezCertains sites utilisent JavaScript pour créer le contenu," +" pour cela vous devez" + +#: changedetectionio/blueprint/ui/templates/edit.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:313 +msgid "use the Chrome/WebDriver Fetcher" +msgstr "utilisez le récupérateur Chrome/WebDriver" + +#: changedetectionio/blueprint/ui/templates/edit.html:74 +msgid "Variables are supported in the URL" +msgstr "Les variables sont prises en charge dans l'URL" + +#: changedetectionio/blueprint/ui/templates/edit.html:74 +#: changedetectionio/blueprint/ui/templates/edit.html:180 +#: changedetectionio/blueprint/ui/templates/edit.html:189 +msgid "help and examples here" +msgstr "aide et exemples ici" + +#: changedetectionio/blueprint/ui/templates/edit.html:78 +msgid "Organisational tag/group name used in the main listing page" +msgstr "" +"Balise organisationnelle/nom de groupe utilisé dans la page de liste " +"principaleBalise organisationnelle/nom de groupe utilisé dans la page de " +"liste principaleBalise organisationnelle/nom de groupe utilisé dans la " +"page de liste principale" + +#: changedetectionio/blueprint/ui/templates/edit.html:85 +msgid "" +"Automatically uses the page title if found, you can also use your own " +"title/description here" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:95 +msgid "The interval/amount of time between each check." +msgstr "L'intervalle/la durée entre chaque vérification." + +#: changedetectionio/blueprint/ui/templates/edit.html:110 +msgid "" +"Sends a notification when the filter can no longer be seen on the page, " +"good for knowing when the page changed and your filter will not work " +"anymore." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:123 +msgid "Use the" +msgstr "Utilisez le" + +#: changedetectionio/blueprint/ui/templates/edit.html:123 +msgid "Basic" +msgstr "Basique" + +#: changedetectionio/blueprint/ui/templates/edit.html:123 +msgid "" +"method (default) where your watched site doesn't need Javascript to " +"render." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:124 +msgid "The" +msgstr "Le" + +#: changedetectionio/blueprint/ui/templates/edit.html:124 +msgid "Chrome/Javascript" +msgstr "Chrome/Javascript" + +#: changedetectionio/blueprint/ui/templates/edit.html:124 +msgid "" +"method requires a network connection to a running WebDriver+Chrome " +"server, set by the ENV var 'WEBDRIVER_URL'." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:125 +msgid "Connect using Bright Data and Oxylabs Proxies, find out more here." +msgstr "" +"Connectez-vous à l'aide des proxys Bright Data et Oxylabs, découvrez-en " +"plus ici.Connectez-vous à l'aide des proxys Bright Data et Oxylabs, " +"découvrez-en plus ici.Connectez-vous à l'aide des proxys Bright Data et " +"Oxylabs, découvrez-en plus ici." + +#: changedetectionio/blueprint/ui/templates/edit.html:130 +msgid "Check/Scan all" +msgstr "Revérifiez tout" + +#: changedetectionio/blueprint/ui/templates/edit.html:133 +msgid "Choose a proxy for this watch" +msgstr "Flux RSS de cette montre" + +#: changedetectionio/blueprint/ui/templates/edit.html:143 +msgid "" +"If you're having trouble waiting for the page to be fully rendered (text " +"missing etc), try increasing the 'wait' time here." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:145 +msgid "This will wait" +msgstr "Cela attendra" + +#: changedetectionio/blueprint/ui/templates/edit.html:145 +msgid "seconds before extracting the text." +msgstr "secondes avant d’extraire le texte." + +#: changedetectionio/blueprint/ui/templates/edit.html:147 +msgid "Using the current global default settings" +msgstr "Utilisation des paramètres globaux par défaut actuels" + +#: changedetectionio/blueprint/ui/templates/edit.html:152 +#: changedetectionio/blueprint/ui/templates/edit.html:165 +msgid "Show advanced options" +msgstr "Afficher les options avancées" + +#: changedetectionio/blueprint/ui/templates/edit.html:157 +msgid "" +"Run this code before performing change detection, handy for filling in " +"fields and other actions" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:158 +msgid "More help and examples here" +msgstr "Plus d'aide et d'exemples ici" + +#: changedetectionio/blueprint/ui/templates/edit.html:180 +msgid "Variables are supported in the request body" +msgstr "Les variables sont prises en charge dans le corps de la requête" + +#: changedetectionio/blueprint/ui/templates/edit.html:189 +msgid "Variables are supported in the request header values" +msgstr "Les variables sont prises en charge dans les valeurs d'en-tête de requête" + +#: changedetectionio/blueprint/ui/templates/edit.html:192 +msgid "Alert! Extra headers file found and will be added to this watch!" +msgstr "" +"Alerte! Fichier d'en-têtes supplémentaire trouvé et sera ajouté à cette " +"montre !Alerte! Fichier d'en-têtes supplémentaire trouvé et sera ajouté à" +" cette montre !Alerte! Fichier d'en-têtes supplémentaire trouvé et sera " +"ajouté à cette montre !" + +#: changedetectionio/blueprint/ui/templates/edit.html:194 +msgid "Headers can be also read from a file in your data-directory" +msgstr "" +"Les en-têtes peuvent également être lus à partir d'un fichier dans votre " +"répertoire de donnéesLes en-têtes peuvent également être lus à partir " +"d'un fichier dans votre répertoire de donnéesLes en-têtes peuvent " +"également être lus à partir d'un fichier dans votre répertoire de données" + +#: changedetectionio/blueprint/ui/templates/edit.html:194 +msgid "Read more here" +msgstr "Lire la suite ici" + +#: changedetectionio/blueprint/ui/templates/edit.html:197 +msgid "Not supported by Selenium browser" +msgstr "Non pris en charge par le navigateur Selenium" + +#: changedetectionio/blueprint/ui/templates/edit.html:221 +msgid "Turn on text finder" +msgstr "Activer la recherche de texte" + +#: changedetectionio/blueprint/ui/templates/edit.html:224 +msgid "Please wait, first browser step can take a little time to load.." +msgstr "" +"Veuillez patienter, le chargement de la première étape du navigateur peut" +" prendre un peu de temps.Veuillez patienter, le chargement de la première" +" étape du navigateur peut prendre un peu de temps.Veuillez patienter, le " +"chargement de la première étape du navigateur peut prendre un peu de " +"temps." + +#: changedetectionio/blueprint/ui/templates/edit.html:231 +msgid "Click here to Start" +msgstr "Cliquez ici pour commencer" + +#: changedetectionio/blueprint/ui/templates/edit.html:233 +msgid "Please allow 10-15 seconds for the browser to connect." +msgstr "Veuillez attendre 10 à 15 secondes pour que le navigateur se connecte." + +#: changedetectionio/blueprint/ui/templates/edit.html:242 +msgid "Press \"Play\" to start." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:249 +#: changedetectionio/blueprint/ui/templates/edit.html:419 +msgid "Visual Selector data is not ready, watch needs to be checked atleast once." +msgstr "" +"Les données du sélecteur visuel ne sont pas prêtes, la montre doit être " +"vérifiée au moins une fois.Les données du sélecteur visuel ne sont pas " +"prêtes, la montre doit être vérifiée au moins une fois.Les données du " +"sélecteur visuel ne sont pas prêtes, la montre doit être vérifiée au " +"moins une fois." + +#: changedetectionio/blueprint/ui/templates/edit.html:253 +msgid "" +"Sorry, this functionality only works with fetchers that support " +"interactive Javascript (so far only Playwright based fetchers)" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:254 +#: changedetectionio/blueprint/ui/templates/edit.html:424 +msgid "You need to" +msgstr "Vous devez" + +#: changedetectionio/blueprint/ui/templates/edit.html:254 +#: changedetectionio/blueprint/ui/templates/edit.html:424 +msgid "Set the fetch method" +msgstr "Définir la méthode de récupération" + +#: changedetectionio/blueprint/ui/templates/edit.html:254 +msgid "to one that supports interactive Javascript." +msgstr "à celui qui prend en charge Javascript interactif." + +#: changedetectionio/blueprint/ui/templates/edit.html:297 +msgid "" +"Use the verify (✓) button to test if a condition passes against the " +"current snapshot." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:298 +msgid "Read a quick tutorial about" +msgstr "Lisez un tutoriel rapide sur" + +#: changedetectionio/blueprint/ui/templates/edit.html:298 +msgid "using conditional web page changes here" +msgstr "en utilisant les modifications conditionnelles de page Web ici" + +#: changedetectionio/blueprint/ui/templates/edit.html:303 +msgid "Activate preview" +msgstr "Aperçu" + +#: changedetectionio/blueprint/ui/templates/edit.html:307 +msgid "Pro-tips:" +msgstr "Conseils de pro :" + +#: changedetectionio/blueprint/ui/templates/edit.html:310 +msgid "Use the preview page to see your filters and triggers highlighted." +msgstr "" +"Utilisez la page d'aperçu pour voir vos filtres et déclencheurs mis en " +"surbrillance.Utilisez la page d'aperçu pour voir vos filtres et " +"déclencheurs mis en surbrillance.Utilisez la page d'aperçu pour voir vos " +"filtres et déclencheurs mis en surbrillance." + +#: changedetectionio/blueprint/ui/templates/edit.html:322 +msgid "Limit trigger/ignore/block/extract to;" +msgstr "Limiter le déclenchement/ignorer/bloquer/extraire à ;" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "" +"Note: Depending on the length and similarity of the text on each line, " +"the algorithm may consider an" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "addition" +msgstr "ajout" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "instead of" +msgstr "au lieu de" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "replacement" +msgstr "remplacement" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "for example." +msgstr "Par exemple." + +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "So it's always better to select" +msgstr "Il est donc toujours préférable de sélectionner" + +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "when you're interested in new content." +msgstr "lorsque vous êtes intéressé par du nouveau contenu." + +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "When content is merely moved in a list, it will also trigger an" +msgstr "" +"Lorsque le contenu est simplement déplacé dans une liste, cela " +"déclenchera également unLorsque le contenu est simplement déplacé dans " +"une liste, cela déclenchera également unLorsque le contenu est simplement" +" déplacé dans une liste, cela déclenchera également un" + +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "consider enabling" +msgstr "envisager d'activer" + +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "Only trigger when unique lines appear" +msgstr "Se déclenche uniquement lorsque des lignes uniques apparaissent" + +#: changedetectionio/blueprint/ui/templates/edit.html:332 +msgid "" +"Good for websites that just move the content around, and you want to know" +" when NEW content is added, compares new lines against all history for " +"this watch." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:340 +msgid "" +"Helps reduce changes detected caused by sites shuffling lines around, " +"combine with" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:340 +msgid "check unique lines" +msgstr "vérifier les lignes uniques" + +#: changedetectionio/blueprint/ui/templates/edit.html:340 +msgid "below." +msgstr "ci-dessous." + +#: changedetectionio/blueprint/ui/templates/edit.html:344 +msgid "Remove any whitespace before and after each line of text" +msgstr "Supprimez tout espace avant et après chaque ligne de texte" + +#: changedetectionio/blueprint/ui/templates/edit.html:358 +#: changedetectionio/blueprint/ui/templates/edit.html:361 +#: changedetectionio/blueprint/ui/templates/edit.html:417 +msgid "Loading..." +msgstr "Chargement..." + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "The Visual Selector tool lets you select the" +msgstr "L'outil Visual Selector vous permet de sélectionner le" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "text" +msgstr "texte" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "" +"elements that will be used for the change detection. It automatically " +"fills-in the filters in the \"CSS/JSONPath/JQ/XPath Filters\" box of the" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "tab. Use" +msgstr "Pause" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "Shift+Click" +msgstr "Maj+Clic" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "to select multiple items." +msgstr "pour sélectionner plusieurs éléments." + +#: changedetectionio/blueprint/ui/templates/edit.html:391 +msgid "Selection Mode:" +msgstr "Mode de sélection :" + +#: changedetectionio/blueprint/ui/templates/edit.html:394 +msgid "Select by element" +msgstr "Sélectionner par élément" + +#: changedetectionio/blueprint/ui/templates/edit.html:398 +msgid "Draw area" +msgstr "Zone de dessin" + +#: changedetectionio/blueprint/ui/templates/edit.html:406 +msgid "Clear selection" +msgstr "Effacer la sélection" + +#: changedetectionio/blueprint/ui/templates/edit.html:408 +msgid "One moment, fetching screenshot and element information.." +msgstr "" +"Un instant, récupération de la capture d'écran et des informations sur " +"les éléments.Un instant, récupération de la capture d'écran et des " +"informations sur les éléments.Un instant, récupération de la capture " +"d'écran et des informations sur les éléments." + +#: changedetectionio/blueprint/ui/templates/edit.html:417 +msgid "Currently:" +msgstr "Actuellement:" + +#: changedetectionio/blueprint/ui/templates/edit.html:423 +msgid "" +"Sorry, this functionality only works with fetchers that support " +"Javascript and screenshots (such as playwright etc)." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:424 +msgid "to one that supports Javascript and screenshots." +msgstr "à celui qui prend en charge Javascript et les captures d'écran." + +#: changedetectionio/blueprint/ui/templates/edit.html:441 +msgid "Check count" +msgstr "Nombre de chèques" + +#: changedetectionio/blueprint/ui/templates/edit.html:445 +msgid "Consecutive filter failures" +msgstr "Pannes de filtre consécutives" + +#: changedetectionio/blueprint/ui/templates/edit.html:449 +msgid "History length" +msgstr "Histoire" + +#: changedetectionio/blueprint/ui/templates/edit.html:453 +msgid "Last fetch duration" +msgstr "Durée de la dernière récupération" + +#: changedetectionio/blueprint/ui/templates/edit.html:457 +msgid "Notification alert count" +msgstr "Nombre d'alertes de notification" + +#: changedetectionio/blueprint/ui/templates/edit.html:461 +msgid "Server type reply" +msgstr "Réponse du type de serveur" + +#: changedetectionio/blueprint/ui/templates/edit.html:475 +msgid "Download latest HTML snapshot" +msgstr "Télécharger le dernier instantané HTML" + +#: changedetectionio/blueprint/ui/templates/edit.html:488 +msgid "Delete Watch?" +msgstr "Supprimer les montres ?" + +#: changedetectionio/blueprint/ui/templates/edit.html:489 +msgid "Are you sure you want to delete the watch for:" +msgstr "Êtes-vous sûr de vouloir supprimer la montre pour :" + +#: changedetectionio/blueprint/ui/templates/edit.html:489 +msgid "This action cannot be undone." +msgstr "Cette action ne peut pas être annulée." + +#: changedetectionio/blueprint/ui/templates/edit.html:495 +msgid "Clear History?" +msgstr "Effacer les historiques" + +#: changedetectionio/blueprint/ui/templates/edit.html:496 +msgid "Are you sure you want to clear all history for:" +msgstr "Êtes-vous sûr de vouloir effacer tout l'historique pour :" + +#: changedetectionio/blueprint/ui/templates/edit.html:496 +msgid "" +"This will remove all snapshots and previous versions. This action cannot " +"be undone." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:497 +msgid "Clear History" +msgstr "Effacer les historiques" + +#: changedetectionio/blueprint/ui/templates/edit.html:499 +msgid "Clone & Edit" +msgstr "Cloner et modifier" + +#: changedetectionio/blueprint/ui/templates/preview.html:22 +msgid "Select timestamp" +msgstr "Sélectionnez l'horodatage" + +#: changedetectionio/blueprint/ui/templates/preview.html:31 +msgid "Go" +msgstr "Aller" + +#: changedetectionio/blueprint/ui/templates/preview.html:69 +msgid "Current erroring screenshot from most recent request" +msgstr "Capture d'écran erronée actuelle de la demande la plus récente" + +#: changedetectionio/blueprint/ui/templates/preview.html:91 +msgid "" +"Screenshot requires a Content Fetcher ( Sockpuppetbrowser, selenium, etc " +") that supports screenshots." +msgstr "" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:31 +msgid "Add a new web page change detection watch" +msgstr "Ajouter une nouvelle surveillance de détection de changement de page Web" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:34 +msgid "Watch this URL!" +msgstr "Surveillez cette URL !" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:35 +msgid "Edit first then Watch" +msgstr "Modifiez d'abord, puis regardez" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:45 +msgid "Create a shareable link" +msgstr "Créer un lien partageable" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:45 +msgid "Tip: You can also add 'shared' watches." +msgstr "Astuce : Vous pouvez également ajouter des montres « partagées »." + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:45 +msgid "More info" +msgstr "Plus d'informations" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:53 +msgid "Pause" +msgstr "Pause" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:54 +msgid "UnPause" +msgstr "Reprendre la pause" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:55 +msgid "Mute" +msgstr "Muet" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:56 +msgid "UnMute" +msgstr "Réactiver le son" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:57 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:248 +msgid "Recheck" +msgstr "Revérifier" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:58 +msgid "Tag" +msgstr "Étiqueter" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:59 +msgid "Mark viewed" +msgstr "Marquer consulté" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:60 +msgid "Use default notification" +msgstr "Utiliser la notification par défaut" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:61 +msgid "Clear errors" +msgstr "Effacer les erreurs" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:65 +msgid "Clear Histories" +msgstr "Effacer les historiques" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:66 +msgid "" +"<p>Are you sure you want to clear history for the selected " +"items?</p><p>This action cannot be undone.</p>" +msgstr "" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:67 +msgid "OK" +msgstr "D'ACCORD" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:67 +msgid "Clear/reset history" +msgstr "Effacer/réinitialiser l'historique" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:71 +msgid "Delete Watches?" +msgstr "Supprimer les montres ?" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:72 +msgid "" +"<p>Are you sure you want to delete the selected " +"watches?</strong></p><p>This action cannot be undone.</p>" +msgstr "" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:78 +msgid "Searching" +msgstr "Recherche" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:80 +msgid "All" +msgstr "Tous" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:118 +msgid "Website" +msgstr "Site web" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:120 +msgid "Restock & Price" +msgstr "Réapprovisionnement et prix" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:122 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:123 +msgid "Last" +msgstr "Dernier" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:122 +msgid "Checked" +msgstr "À carreaux" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:123 +msgid "Changed" +msgstr "Modifié" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:130 +msgid "No website watches configured, please add a URL in the box above, or" +msgstr "" +"Aucune surveillance de site Web configurée, veuillez ajouter une URL dans" +" la case ci-dessus, ouAucune surveillance de site Web configurée, " +"veuillez ajouter une URL dans la case ci-dessus, ouAucune surveillance de" +" site Web configurée, veuillez ajouter une URL dans la case ci-dessus, " +"ouAucune surveillance de site Web configurée, veuillez ajouter une URL " +"dans la case ci-dessus, ou" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:130 +msgid "import a list" +msgstr "importer une liste" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:213 +msgid "Detecting restock and price" +msgstr "Détection du réapprovisionnement et du prix" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:215 +msgid "In stock" +msgstr "En stock" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:215 +msgid "Not in stock" +msgstr "Pas en stock" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:221 +msgid "Price" +msgstr "Prix" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:226 +msgid "No information" +msgstr "Aucune information" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:234 +#: changedetectionio/templates/base.html:248 +msgid "Checking now" +msgstr "Vérifier maintenant" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:247 +msgid "Queued" +msgstr "En file d'attente" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:250 +msgid "History" +msgstr "Histoire" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:251 +msgid "Preview" +msgstr "Aperçu" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:260 +msgid "With errors" +msgstr "Avec des erreurs" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:263 +msgid "Mark all viewed" +msgstr "Marquer tous les articles consultés" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:267 +#, python-format +msgid "Mark all viewed in '%(title)s'" +msgstr "Marquer tout vu dans '%(title)s'" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:271 +msgid "Unread" +msgstr "Non lu" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:274 +msgid "Recheck all" +msgstr "Revérifiez tout" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:274 +#, python-format +msgid "in '%(title)s'" +msgstr "dans '%(title)s'" + +#: changedetectionio/processors/image_ssim_diff/forms.py:19 +#: changedetectionio/processors/image_ssim_diff/forms.py:69 +msgid "Bounding box value is too long" +msgstr "La valeur du cadre de sélection est trop longue" + +#: changedetectionio/processors/image_ssim_diff/forms.py:23 +msgid "Bounding box must be in format: x,y,width,height (integers only)" +msgstr "" +"Le cadre de délimitation doit être au format : x,y,largeur,hauteur " +"(entiers uniquement)Le cadre de délimitation doit être au format : " +"x,y,largeur,hauteur (entiers uniquement)" + +#: changedetectionio/processors/image_ssim_diff/forms.py:29 +msgid "Bounding box values must be non-negative" +msgstr "Les valeurs du cadre de délimitation doivent être non négatives" + +#: changedetectionio/processors/image_ssim_diff/forms.py:31 +msgid "Bounding box values are too large" +msgstr "Les valeurs du cadre de délimitation sont trop grandes" + +#: changedetectionio/processors/image_ssim_diff/forms.py:40 +msgid "Selection mode must be either \"element\" or \"draw\"" +msgstr "" + +#: changedetectionio/processors/image_ssim_diff/forms.py:47 +msgid "Minimum Change Percentage" +msgstr "Pourcentage de changement minimum" + +#: changedetectionio/processors/image_ssim_diff/forms.py:56 +msgid "Pixel Difference Sensitivity" +msgstr "Sensibilité de différence de pixel" + +#: changedetectionio/processors/image_ssim_diff/forms.py:58 +msgid "Use global default" +msgstr "Utiliser les paramètres par défaut du système" + +#: changedetectionio/processors/image_ssim_diff/forms.py:66 +msgid "Bounding Box" +msgstr "Boîte englobante" + +#: changedetectionio/processors/image_ssim_diff/forms.py:76 +msgid "Selection Mode" +msgstr "Mode de sélection :" + +#: changedetectionio/processors/image_ssim_diff/forms.py:79 +msgid "Selection mode value is too long" +msgstr "La valeur du mode de sélection est trop longue" + +#: changedetectionio/processors/image_ssim_diff/forms.py:87 +msgid "Screenshot Comparison" +msgstr "Comparaison de captures d'écran" + +#: changedetectionio/processors/image_ssim_diff/processor.py:20 +msgid "Visual / Image screenshot change detection" +msgstr "Détection des changements de capture d'écran visuel/image" + +#: changedetectionio/processors/image_ssim_diff/processor.py:21 +msgid "Compares screenshots using fast OpenCV algorithm, 10-100x faster than SSIM" +msgstr "Compare les captures d'écran à l'aide de l'algorithme OpenCV rapide, 10 à 100 fois plus rapide que SSIM" + +#: changedetectionio/processors/image_ssim_diff/processor.py:23 +msgid "Visual" +msgstr "Visuel" + +#: changedetectionio/processors/restock_diff/forms.py:15 +msgid "Re-stock detection" +msgstr "Détection de réapprovisionnement" + +#: changedetectionio/processors/restock_diff/forms.py:16 +msgid "In Stock only (Out Of Stock -> In Stock only)" +msgstr "En stock uniquement (En rupture de stock -> En stock uniquement)" + +#: changedetectionio/processors/restock_diff/forms.py:17 +msgid "Any availability changes" +msgstr "Tout changement de disponibilité" + +#: changedetectionio/processors/restock_diff/forms.py:18 +msgid "Off, don't follow availability/restock" +msgstr "Désactivé, ne suivez pas la disponibilité/réapprovisionnement" + +#: changedetectionio/processors/restock_diff/forms.py:21 +msgid "Below price to trigger notification" +msgstr "En dessous du prix pour déclencher une notification" + +#: changedetectionio/processors/restock_diff/forms.py:22 +#: changedetectionio/processors/restock_diff/forms.py:24 +msgid "No limit" +msgstr "Aucune limite" + +#: changedetectionio/processors/restock_diff/forms.py:23 +msgid "Above price to trigger notification" +msgstr "Au-dessus du prix pour déclencher une notification" + +#: changedetectionio/processors/restock_diff/forms.py:25 +#, python-format +msgid "Threshold in %% for price changes since the original price" +msgstr "Seuil en % pour les changements de prix depuis le prix initial" + +#: changedetectionio/processors/restock_diff/forms.py:28 +msgid "Should be between 0 and 100" +msgstr "Doit être compris entre 0 et 100" + +#: changedetectionio/processors/restock_diff/forms.py:31 +msgid "Follow price changes" +msgstr "Suivre les changements de prix" + +#: changedetectionio/processors/restock_diff/forms.py:37 +msgid "Restock & Price Detection" +msgstr "Réapprovisionnement et prix" + +#: changedetectionio/processors/restock_diff/processor.py:11 +msgid "Re-stock & Price detection for pages with a SINGLE product" +msgstr "Détection de réapprovisionnement et de prix pour les pages avec un SEUL produit" + +#: changedetectionio/processors/restock_diff/processor.py:12 +msgid "Detects if the product goes back to in-stock" +msgstr "Détecte si le produit revient en stock" + +#: changedetectionio/processors/restock_diff/processor.py:14 +msgid "Restock" +msgstr "Réapprovisionner" + +#: changedetectionio/processors/text_json_diff/processor.py:21 +msgid "Webpage Text/HTML, JSON and PDF changes" +msgstr "Modifications du texte de la page Web/HTML, JSON et PDF" + +#: changedetectionio/processors/text_json_diff/processor.py:22 +msgid "Detects all text changes where possible" +msgstr "Détecte toutes les modifications de texte lorsque cela est possible" + +#: changedetectionio/templates/base.html:77 +msgid "GROUPS" +msgstr "GROUPES" + +#: changedetectionio/templates/base.html:80 +msgid "SETTINGS" +msgstr "PARAMÈTRES" + +#: changedetectionio/templates/base.html:83 +msgid "IMPORT" +msgstr "IMPORTER" + +#: changedetectionio/templates/base.html:86 +msgid "BACKUPS" +msgstr "SAUVEGARDES" + +#: changedetectionio/templates/base.html:90 +msgid "EDIT" +msgstr "MODIFIER" + +#: changedetectionio/templates/base.html:100 +msgid "LOG OUT" +msgstr "DÉCONNEXION" + +#: changedetectionio/templates/base.html:109 +msgid "Search, or Use Alt+S Key" +msgstr "Recherchez ou utilisez la touche Alt+S" + +#: changedetectionio/templates/base.html:116 +msgid "Toggle Light/Dark Mode" +msgstr "Basculer le mode clair/sombre" + +#: changedetectionio/templates/base.html:117 +msgid "Toggle light/dark mode" +msgstr "Basculer en mode clair/sombre" + +#: changedetectionio/templates/base.html:127 +msgid "Change Language" +msgstr "Changer de langue" + +#: changedetectionio/templates/base.html:128 +msgid "Change language" +msgstr "Changer de langue" + +#: changedetectionio/templates/base.html:249 +msgid "Real-time updates offline" +msgstr "Mises à jour en temps réel hors ligne" + +#: changedetectionio/templates/base.html:259 +msgid "Select Language" +msgstr "Sélectionnez la langue" + +#: changedetectionio/templates/login.html:10 +msgid "Password" +msgstr "Mot de passe" + +#: changedetectionio/templates/login.html:16 +msgid "Login" +msgstr "Se connecter" + diff --git a/changedetectionio/translations/ko/LC_MESSAGES/messages.mo b/changedetectionio/translations/ko/LC_MESSAGES/messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..7ec76a8fcd4eaa72a1bd4ba7fba251cdaced3e63 GIT binary patch literal 28631 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 SspCktjFSy7nTV2kt@%%bI`Gy2 literal 0 HcmV?d00001 diff --git a/changedetectionio/translations/ko/LC_MESSAGES/messages.po b/changedetectionio/translations/ko/LC_MESSAGES/messages.po new file mode 100644 index 000000000..4e4ad744b --- /dev/null +++ b/changedetectionio/translations/ko/LC_MESSAGES/messages.po @@ -0,0 +1,1928 @@ +# Korean translations for PROJECT. +# Copyright (C) 2026 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2026. +# +msgid "" +msgstr "" +"Project-Id-Version: PROJECT VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2026-01-02 13:32+0100\n" +"PO-Revision-Date: 2026-01-02 11:40+0100\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language: ko\n" +"Language-Team: ko <LL@li.org>\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.17.0\n" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:241 +#: changedetectionio/flask_app.py:213 changedetectionio/flask_app.py:225 +#: changedetectionio/flask_app.py:246 +#: changedetectionio/realtime/socket_server.py:171 +msgid "Not yet" +msgstr "아직 아님" + +#: changedetectionio/forms.py:62 changedetectionio/forms.py:242 +msgid "" +"At least one time interval (weeks, days, hours, minutes, or seconds) must" +" be specified." +msgstr "" + +#: changedetectionio/forms.py:63 +msgid "" +"At least one time interval (weeks, days, hours, minutes, or seconds) must" +" be specified when not using global settings." +msgstr "" + +#: changedetectionio/forms.py:163 +msgid "Invalid time format. Use HH:MM." +msgstr "시간 형식이 잘못되었습니다. HH:MM을 사용하세요." + +#: changedetectionio/forms.py:179 +msgid "Not a valid timezone name" +msgstr "유효한 시간대 이름이 아닙니다." + +#: changedetectionio/forms.py:182 +msgid "not set" +msgstr "아직 아님" + +#: changedetectionio/forms.py:183 +msgid "Start At" +msgstr "설정" + +#: changedetectionio/forms.py:184 +msgid "Run duration" +msgstr "정보 없음" + +#: changedetectionio/forms.py:187 +msgid "Use time scheduler" +msgstr "시간 스케줄러 사용" + +#: changedetectionio/forms.py:197 +msgid "Optional timezone to run in" +msgstr "실행할 선택적 시간대" + +#: changedetectionio/forms.py:211 +msgid "Monday" +msgstr "월요일" + +#: changedetectionio/forms.py:212 +msgid "Tuesday" +msgstr "화요일" + +#: changedetectionio/forms.py:213 +msgid "Wednesday" +msgstr "수요일" + +#: changedetectionio/forms.py:214 +msgid "Thursday" +msgstr "목요일" + +#: changedetectionio/forms.py:215 +msgid "Friday" +msgstr "금요일" + +#: changedetectionio/forms.py:216 +msgid "Saturday" +msgstr "토요일" + +#: changedetectionio/forms.py:217 +msgid "Sunday" +msgstr "일요일" + +#: changedetectionio/forms.py:250 +msgid "Weeks" +msgstr "주" + +#: changedetectionio/forms.py:250 changedetectionio/forms.py:251 +#: changedetectionio/forms.py:252 changedetectionio/forms.py:253 +#: changedetectionio/forms.py:254 changedetectionio/forms.py:957 +msgid "Should contain zero or more seconds" +msgstr "0초 이상을 포함해야 합니다." + +#: changedetectionio/forms.py:251 +msgid "Days" +msgstr "날" + +#: changedetectionio/forms.py:252 +msgid "Hours" +msgstr "비밀번호" + +#: changedetectionio/forms.py:253 +msgid "Minutes" +msgstr "무음" + +#: changedetectionio/forms.py:254 +msgid "Seconds" +msgstr "초" + +#: changedetectionio/forms.py:459 +msgid "Notification Body and Title is required when a Notification URL is used" +msgstr "알림 URL을 사용하는 경우 알림 본문 및 제목이 필요합니다." + +#: changedetectionio/forms.py:488 +#, python-format +msgid "'%s' is not a valid AppRise URL." +msgstr "'%s'은(는) 유효한 AppRise URL이 아닙니다." + +#: changedetectionio/forms.py:561 changedetectionio/forms.py:580 +#, python-format +msgid "RegEx '%s' is not a valid regular expression." +msgstr "RegEx '%s'은(는) 유효한 정규식이 아닙니다." + +#: changedetectionio/forms.py:621 changedetectionio/forms.py:636 +#, python-format +msgid "'%s' is not a valid XPath expression. (%s)" +msgstr "'%s'은(는) 유효한 XPath 표현식이 아닙니다. (%s)" + +#: changedetectionio/forms.py:656 +#, python-format +msgid "'%s' is not a valid JSONPath expression. (%s)" +msgstr "'%s'은(는) 유효한 JSONPath 표현식이 아닙니다. (%s)" + +#: changedetectionio/forms.py:678 +#, python-format +msgid "'%s' is not a valid jq expression. (%s)" +msgstr "'%s'은(는) 유효한 jq 표현식이 아닙니다. (%s)" + +#: changedetectionio/forms.py:724 +msgid "Empty value not allowed." +msgstr "빈 값은 허용되지 않습니다." + +#: changedetectionio/forms.py:726 +msgid "Invalid value." +msgstr "값이 잘못되었습니다." + +#: changedetectionio/forms.py:733 +msgid "Watch" +msgstr "# 시계" + +#: changedetectionio/forms.py:734 changedetectionio/forms.py:768 +msgid "Processor" +msgstr "프로세서" + +#: changedetectionio/forms.py:735 +msgid "Edit > Watch" +msgstr "먼저 편집한 다음 보기" + +#: changedetectionio/forms.py:748 changedetectionio/forms.py:996 +msgid "Fetch Method" +msgstr "가져오기 방법 설정" + +#: changedetectionio/forms.py:749 +msgid "Notification Body" +msgstr "정보 없음" + +#: changedetectionio/forms.py:750 +msgid "Notification format" +msgstr "정보 없음" + +#: changedetectionio/forms.py:751 +msgid "Notification Title" +msgstr "정보 없음" + +#: changedetectionio/forms.py:752 +msgid "Notification URL List" +msgstr "정보 없음" + +#: changedetectionio/forms.py:753 +msgid "Processor - What do you want to achieve?" +msgstr "프로세서 - 무엇을 달성하고 싶나요?" + +#: changedetectionio/forms.py:754 +msgid "Default timezone for watch check scheduler" +msgstr "시계 확인 스케줄러의 기본 시간대" + +#: changedetectionio/forms.py:755 +msgid "Wait seconds before extracting text" +msgstr "텍스트를 추출하기 몇 초 전입니다." + +#: changedetectionio/forms.py:755 +msgid "Should contain one or more seconds" +msgstr "1초 이상을 포함해야 합니다." + +#: changedetectionio/forms.py:769 +msgid "URLs" +msgstr "URL" + +#: changedetectionio/forms.py:770 +msgid "Upload .xlsx file" +msgstr ".xlsx 파일 업로드" + +#: changedetectionio/forms.py:770 +msgid "Must be .xlsx file!" +msgstr ".xlsx 파일이어야 합니다!" + +#: changedetectionio/forms.py:771 +msgid "File mapping" +msgstr "파일 매핑 유형." + +#: changedetectionio/forms.py:775 +msgid "Operation" +msgstr "UI 옵션" + +#: changedetectionio/forms.py:778 +msgid "Selector" +msgstr "선택 모드:" + +#: changedetectionio/forms.py:779 +msgid "value" +msgstr "정지시키다" + +#: changedetectionio/forms.py:798 +msgid "Use global settings for time between check and scheduler." +msgstr "확인과 스케줄러 사이의 시간에 대한 전역 설정을 사용합니다." + +#: changedetectionio/forms.py:800 +msgid "CSS/JSONPath/JQ/XPath Filters" +msgstr "CSS/xPath 필터" + +#: changedetectionio/forms.py:802 changedetectionio/forms.py:998 +msgid "Remove elements" +msgstr "제거됨" + +#: changedetectionio/forms.py:804 +msgid "Extract text" +msgstr "데이터 추출" + +#: changedetectionio/blueprint/imports/templates/import.html:106 +#: changedetectionio/forms.py:806 +msgid "Title" +msgstr "제목" + +#: changedetectionio/forms.py:808 +msgid "Ignore lines containing" +msgstr "일치하는 줄을 무시하세요." + +#: changedetectionio/forms.py:810 +msgid "Request body" +msgstr "요구" + +#: changedetectionio/forms.py:811 +msgid "Request method" +msgstr "요구" + +#: changedetectionio/forms.py:812 +msgid "Ignore status codes (process non-2xx status codes as normal)" +msgstr "상태 코드 무시(2xx가 아닌 상태 코드를 정상적으로 처리)" + +#: changedetectionio/forms.py:813 +msgid "Only trigger when unique lines appear in all history" +msgstr "고유한 줄이 나타날 때만 트리거됩니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:336 +#: changedetectionio/forms.py:814 +msgid "Remove duplicate lines of text" +msgstr "중복된 텍스트 줄 제거" + +#: changedetectionio/forms.py:815 +msgid "Sort text alphabetically" +msgstr "텍스트를 알파벳순으로 정렬" + +#: changedetectionio/forms.py:816 changedetectionio/forms.py:1025 +msgid "Strip ignored lines" +msgstr "무시된 줄 제거" + +#: changedetectionio/forms.py:817 +msgid "Trim whitespace before and after text" +msgstr "각 텍스트 줄 앞과 뒤의 공백을 제거하세요." + +#: changedetectionio/forms.py:819 +msgid "Added lines" +msgstr "로그인" + +#: changedetectionio/forms.py:820 +msgid "Replaced/changed lines" +msgstr "교체/변경된 라인" + +#: changedetectionio/forms.py:821 +msgid "Removed lines" +msgstr "제거됨" + +#: changedetectionio/forms.py:823 +msgid "Keyword triggers - Trigger/wait for text" +msgstr "키워드 트리거 - 텍스트 트리거/대기" + +#: changedetectionio/forms.py:826 +msgid "Block change-detection while text matches" +msgstr "텍스트가 일치하는 동안 변경 감지 차단" + +#: changedetectionio/forms.py:827 +msgid "Execute JavaScript before change detection" +msgstr "변경 감지 전에 JavaScript 실행" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:17 +#: changedetectionio/forms.py:829 changedetectionio/forms.py:1053 +msgid "Save" +msgstr "구하다" + +#: changedetectionio/forms.py:831 +msgid "Proxy" +msgstr "대리" + +#: changedetectionio/forms.py:833 +msgid "Send a notification when the filter can no longer be found on the page" +msgstr "페이지에서 필터를 더 이상 찾을 수 없으면 알림 보내기" + +#: changedetectionio/blueprint/settings/templates/settings.html:22 +#: changedetectionio/blueprint/tags/templates/edit-tag.html:32 +#: changedetectionio/blueprint/ui/templates/edit.html:59 +#: changedetectionio/forms.py:834 +msgid "Notifications" +msgstr "정보 없음" + +#: changedetectionio/forms.py:834 +msgid "Muted" +msgstr "무음" + +#: changedetectionio/forms.py:834 +msgid "On" +msgstr "없음" + +#: changedetectionio/forms.py:835 +msgid "Attach screenshot to notification (where possible)" +msgstr "알림에 스크린샷 첨부(가능한 경우)" + +#: changedetectionio/forms.py:837 +msgid "Match" +msgstr "# 시계" + +#: changedetectionio/forms.py:837 +msgid "Match all of the following" +msgstr "다음을 모두 일치시키세요." + +#: changedetectionio/forms.py:837 +msgid "Match any of the following" +msgstr "다음 중 하나와 일치" + +#: changedetectionio/forms.py:839 +msgid "Use page <title> in list" +msgstr "목록의 <제목> 페이지 사용" + +#: changedetectionio/forms.py:856 +msgid "Body must be empty when Request Method is set to GET" +msgstr "요청 방법이 GET으로 설정된 경우 본문이 비어 있어야 합니다." + +#: changedetectionio/forms.py:865 changedetectionio/forms.py:879 +#: changedetectionio/forms.py:894 +#, python-format +msgid "Invalid template syntax configuration: %(error)s" +msgstr "잘못된 템플릿 구문 구성: %(error)s" + +#: changedetectionio/forms.py:869 changedetectionio/forms.py:883 +#, python-format +msgid "Invalid template syntax: %(error)s" +msgstr "잘못된 템플릿 구문: %(error)s" + +#: changedetectionio/forms.py:898 +#, python-format +msgid "Invalid template syntax in \"%(header)s\" header: %(error)s" +msgstr "" + +#: changedetectionio/forms.py:922 changedetectionio/forms.py:934 +msgid "Name" +msgstr "음소거 해제" + +#: changedetectionio/forms.py:923 +msgid "Proxy URL" +msgstr "프록시 URL" + +#: changedetectionio/forms.py:928 +msgid "Proxy URLs must start with http://, https:// or socks5://" +msgstr "프록시 URL은 http://, https:// 또는 sock5://로 시작해야 합니다." + +#: changedetectionio/forms.py:935 +msgid "Browser connection URL" +msgstr "브라우저 연결 URL" + +#: changedetectionio/forms.py:940 +msgid "Browser URLs must start with wss:// or ws://" +msgstr "브라우저 URL은 wss:// 또는 ws://로 시작해야 합니다." + +#: changedetectionio/forms.py:946 +msgid "Plaintext requests" +msgstr "일반 텍스트 요청" + +#: changedetectionio/forms.py:948 +msgid "Chrome requests" +msgstr "요구" + +#: changedetectionio/forms.py:954 +msgid "Default proxy" +msgstr "기본 프록시" + +#: changedetectionio/forms.py:955 +msgid "Random jitter seconds ± check" +msgstr "랜덤 지터 초 ± 확인" + +#: changedetectionio/forms.py:959 +msgid "Number of fetch workers" +msgstr "가져오기 작업자 수" + +#: changedetectionio/forms.py:962 +msgid "Should be between 1 and 50" +msgstr "1에서 50 사이여야 합니다." + +#: changedetectionio/forms.py:964 +msgid "Requests timeout in seconds" +msgstr "요청 시간 초과(초)" + +#: changedetectionio/forms.py:967 +msgid "Should be between 1 and 999" +msgstr "1에서 999 사이여야 합니다." + +#: changedetectionio/forms.py:972 +msgid "Default User-Agent overrides" +msgstr "기본 사용자 에이전트 재정의" + +#: changedetectionio/forms.py:978 +msgid "Both a name, and a Proxy URL is required." +msgstr "이름과 프록시 URL이 모두 필요합니다." + +#: changedetectionio/forms.py:982 +msgid "Open 'History' page in a new tab" +msgstr "새 탭에서 '기록' 페이지 열기" + +#: changedetectionio/forms.py:983 +msgid "Realtime UI Updates Enabled" +msgstr "실시간 업데이트 오프라인" + +#: changedetectionio/forms.py:984 +msgid "Favicons Enabled" +msgstr "활성화하는 것을 고려해보세요" + +#: changedetectionio/forms.py:985 +msgid "Use page <title> in watch overview list" +msgstr "시청 개요 목록에서 <제목> 페이지를 사용하세요." + +#: changedetectionio/forms.py:990 +msgid "API access token security check enabled" +msgstr "API 액세스 토큰 보안 확인이 활성화되었습니다." + +#: changedetectionio/forms.py:991 +msgid "Notification base URL override" +msgstr "알림 경고 수" + +#: changedetectionio/forms.py:995 +msgid "Treat empty pages as a change?" +msgstr "빈 페이지를 변경 사항으로 처리하시겠습니까?" + +#: changedetectionio/forms.py:997 +msgid "Ignore Text" +msgstr "오류 텍스트" + +#: changedetectionio/forms.py:999 +msgid "Ignore whitespace" +msgstr "공백 무시" + +#: changedetectionio/forms.py:1006 +#: changedetectionio/processors/image_ssim_diff/forms.py:50 +msgid "Must be between 0 and 100" +msgstr "0에서 100 사이여야 합니다." + +#: changedetectionio/forms.py:1013 +msgid "Pager size" +msgstr "호출기 크기" + +#: changedetectionio/forms.py:1016 +msgid "Should be atleast zero (disabled)" +msgstr "0 이상이어야 합니다(비활성화됨)." + +#: changedetectionio/forms.py:1018 +msgid "RSS Content format" +msgstr "RSS 콘텐츠 형식" + +#: changedetectionio/forms.py:1019 +msgid "RSS <description> body built from" +msgstr "RSS <설명> 본문은 다음에서 작성되었습니다." + +#: changedetectionio/forms.py:1020 +msgid "RSS \"System default\" template override" +msgstr "" + +#: changedetectionio/forms.py:1022 +msgid "Remove password" +msgstr "비밀번호" + +#: changedetectionio/forms.py:1023 +msgid "Render anchor tag content" +msgstr "앵커 태그 콘텐츠 렌더링" + +#: changedetectionio/forms.py:1024 +msgid "Allow anonymous access to watch history page when password is enabled" +msgstr "비밀번호가 활성화되면 시청 기록 페이지에 대한 익명 액세스를 허용합니다." + +#: changedetectionio/forms.py:1026 +msgid "Hide muted watches from RSS feed" +msgstr "RSS 피드에서 음소거된 시계 숨기기" + +#: changedetectionio/forms.py:1029 +msgid "Enable RSS reader mode " +msgstr "RSS 리더 모드 활성화" + +#: changedetectionio/forms.py:1030 +msgid "Number of changes to show in watch RSS feed" +msgstr "시계 RSS 피드에 표시할 변경 사항 수" + +#: changedetectionio/forms.py:1032 changedetectionio/forms.py:1037 +msgid "Should contain zero or more attempts" +msgstr "0개 이상의 시도를 포함해야 합니다." + +#: changedetectionio/forms.py:1034 +msgid "Number of times the filter can be missing before sending a notification" +msgstr "알림을 보내기 전에 필터가 누락될 수 있는 횟수" + +#: changedetectionio/forms.py:1057 +msgid "RegEx to extract" +msgstr "추출할 RegEx" + +#: changedetectionio/forms.py:1058 +msgid "Extract as CSV" +msgstr "데이터 추출" + +#: changedetectionio/blueprint/backups/templates/overview.html:6 +msgid "Backups" +msgstr "백업" + +#: changedetectionio/blueprint/backups/templates/overview.html:9 +msgid "A backup is running!" +msgstr "백업이 실행 중입니다!" + +#: changedetectionio/blueprint/backups/templates/overview.html:13 +msgid "" +"Here you can download and request a new backup, when a backup is " +"completed you will see it listed below." +msgstr "" + +#: changedetectionio/blueprint/backups/templates/overview.html:19 +msgid "Mb" +msgstr "MB" + +#: changedetectionio/blueprint/backups/templates/overview.html:24 +msgid "No backups found." +msgstr "백업을 찾을 수 없습니다." + +#: changedetectionio/blueprint/backups/templates/overview.html:28 +msgid "Create backup" +msgstr "백업" + +#: changedetectionio/blueprint/backups/templates/overview.html:30 +msgid "Remove backups" +msgstr "백업" + +#: changedetectionio/blueprint/imports/templates/import.html:9 +msgid "URL List" +msgstr "URL 목록" + +#: changedetectionio/blueprint/imports/templates/import.html:10 +msgid "Distill.io" +msgstr "Distill.io" + +#: changedetectionio/blueprint/imports/templates/import.html:11 +msgid ".XLSX & Wachete" +msgstr ".XLSX 및 와체테" + +#: changedetectionio/blueprint/imports/templates/import.html:20 +msgid "" +"Enter one URL per line, and optionally add tags for each URL after a " +"space, delineated by comma (,):" +msgstr "" + +#: changedetectionio/blueprint/imports/templates/import.html:22 +msgid "Example:" +msgstr "예:" + +#: changedetectionio/blueprint/imports/templates/import.html:23 +msgid "URLs which do not pass validation will stay in the textarea." +msgstr "유효성 검사를 통과하지 못한 URL은 텍스트 영역에 유지됩니다." + +#: changedetectionio/blueprint/imports/templates/import.html:44 +msgid "" +"Copy and Paste your Distill.io watch 'export' file, this should be a JSON" +" file." +msgstr "" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "This is" +msgstr "이것은" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "experimental" +msgstr "실험적인" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "supported fields are" +msgstr "지원되는 필드는" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "the rest (including" +msgstr "나머지 (포함" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "are ignored." +msgstr "무시됩니다." + +#: changedetectionio/blueprint/imports/templates/import.html:48 +msgid "How to export?" +msgstr "수출하는 방법?" + +#: changedetectionio/blueprint/imports/templates/import.html:49 +msgid "Be sure to set your default fetcher to Chrome if required." +msgstr "필요한 경우 기본 가져오기 프로그램을 Chrome으로 설정하세요." + +#: changedetectionio/blueprint/imports/templates/import.html:91 +msgid "Table of custom column and data types mapping for the" +msgstr "사용자 정의 열 및 데이터 유형 매핑 표" + +#: changedetectionio/blueprint/imports/templates/import.html:91 +msgid "Custom mapping" +msgstr "맞춤 매핑" + +#: changedetectionio/blueprint/imports/templates/import.html:91 +msgid "File mapping type." +msgstr "파일 매핑 유형." + +#: changedetectionio/blueprint/imports/templates/import.html:95 +msgid "Column #" +msgstr "열 #" + +#: changedetectionio/blueprint/imports/templates/import.html:101 +msgid "Type" +msgstr "유형" + +#: changedetectionio/blueprint/imports/templates/import.html:104 +msgid "none" +msgstr "없음" + +#: changedetectionio/blueprint/imports/templates/import.html:105 +msgid "URL" +msgstr "URL" + +#: changedetectionio/blueprint/imports/templates/import.html:107 +msgid "CSS/xPath filter" +msgstr "CSS/xPath 필터" + +#: changedetectionio/blueprint/imports/templates/import.html:108 +msgid "Group / Tag name(s)" +msgstr "감시 그룹/태그" + +#: changedetectionio/blueprint/imports/templates/import.html:109 +msgid "Recheck time (minutes)" +msgstr "재확인 시간(분)" + +#: changedetectionio/blueprint/imports/templates/import.html:116 +msgid "Import" +msgstr "수입" + +#: changedetectionio/blueprint/settings/templates/notification-log.html:7 +msgid "Notification debug log" +msgstr "알림 디버그 로그" + +#: changedetectionio/blueprint/settings/templates/settings.html:21 +#: changedetectionio/blueprint/tags/templates/edit-tag.html:27 +#: changedetectionio/blueprint/ui/templates/edit.html:47 +msgid "General" +msgstr "일반적인" + +#: changedetectionio/blueprint/settings/templates/settings.html:23 +msgid "Fetching" +msgstr "수색" + +#: changedetectionio/blueprint/settings/templates/settings.html:24 +msgid "Global Filters" +msgstr "글로벌 필터" + +#: changedetectionio/blueprint/settings/templates/settings.html:25 +msgid "UI Options" +msgstr "UI 옵션" + +#: changedetectionio/blueprint/settings/templates/settings.html:26 +msgid "API" +msgstr "API" + +#: changedetectionio/blueprint/settings/templates/settings.html:27 +msgid "RSS" +msgstr "RSS" + +#: changedetectionio/blueprint/settings/templates/settings.html:28 +msgid "Time & Date" +msgstr "시간 및 날짜" + +#: changedetectionio/blueprint/settings/templates/settings.html:29 +msgid "CAPTCHA & Proxies" +msgstr "보안 문자 및 프록시" + +#: changedetectionio/blueprint/settings/templates/settings.html:35 +msgid "Info" +msgstr "추가 정보" + +#: changedetectionio/blueprint/settings/templates/settings.html:46 +msgid "Default recheck time for all watches, current system minimum is" +msgstr "모든 시계의 기본 재확인 시간, 현재 시스템 최소값은 다음과 같습니다." + +#: changedetectionio/blueprint/settings/templates/settings.html:46 +msgid "seconds" +msgstr "초" + +#: changedetectionio/blueprint/settings/templates/settings.html:46 +msgid "more info" +msgstr "추가 정보" + +#: changedetectionio/blueprint/settings/templates/settings.html:390 +msgid "Python version:" +msgstr "파이썬 버전:" + +#: changedetectionio/blueprint/settings/templates/settings.html:391 +msgid "Plugins active:" +msgstr "활성화된 플러그인:" + +#: changedetectionio/blueprint/settings/templates/settings.html:399 +msgid "No plugins active" +msgstr "활성화된 플러그인이 없습니다." + +#: changedetectionio/blueprint/settings/templates/settings.html:405 +msgid "Back" +msgstr "백업" + +#: changedetectionio/blueprint/settings/templates/settings.html:406 +msgid "Clear Snapshot History" +msgstr "기록 지우기/재설정" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:28 +#: changedetectionio/blueprint/ui/templates/edit.html:56 +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "Filters & Triggers" +msgstr "필터 및 트리거" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:50 +msgid "These settings are" +msgstr "설정" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:50 +msgid "added" +msgstr "추가됨" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:50 +msgid "to any existing watch configurations." +msgstr "기존 시계 구성에 적용됩니다." + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:53 +#: changedetectionio/blueprint/ui/templates/edit.html:321 +msgid "Text filtering" +msgstr "텍스트 필터링" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:269 +msgid "Use with caution!" +msgstr "주의해서 사용하세요!" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:269 +msgid "This will easily fill up your email storage quota or flood other storages." +msgstr "이로 인해 이메일 저장 할당량이 쉽게 채워지거나 다른 저장 공간이 넘치게 됩니다." + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:80 +#: changedetectionio/blueprint/ui/templates/edit.html:276 +msgid "Look out!" +msgstr "로그아웃" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:80 +#: changedetectionio/blueprint/ui/templates/edit.html:276 +msgid "Lookout!" +msgstr "로그아웃" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "There are" +msgstr "있다" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "system-wide notification URLs enabled" +msgstr "시스템 전체 알림 URL이 활성화되었습니다." + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "this form will override notification settings for this watch only" +msgstr "이 양식은 이 시계에 대해서만 알림 설정을 재정의합니다." + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "an empty Notification URL list here will still send notifications." +msgstr "여기의 빈 알림 URL 목록은 여전히 ​​알림을 보냅니다." + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:84 +#: changedetectionio/blueprint/ui/templates/edit.html:280 +msgid "Use system defaults" +msgstr "시스템 기본값 사용" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:11 +msgid "Add a new organisational tag" +msgstr "새 조직 태그 추가" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:14 +msgid "Watch group / tag" +msgstr "감시 그룹/태그" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:21 +msgid "" +"Groups allows you to manage filters and notifications for multiple " +"watches under a single organisational tag." +msgstr "" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:31 +msgid "# Watches" +msgstr "# 시계" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:32 +msgid "Tag / Label name" +msgstr "태그/라벨 이름" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:42 +msgid "No website organisational tags/groups configured" +msgstr "구성된 웹사이트 조직 태그/그룹이 없습니다." + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:53 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:249 +msgid "Edit" +msgstr "편집하다" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:58 +msgid "Delete Group?" +msgstr "그룹을 삭제하시겠습니까?" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:59 +#, python-format +msgid "" +"<p>Are you sure you want to delete group " +"<strong>%(title)s</strong>?</p><p>This action cannot be undone.</p>" +msgstr "" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:60 +#: changedetectionio/blueprint/tags/templates/groups-overview.html:61 +#: changedetectionio/blueprint/ui/templates/edit.html:490 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:73 +msgid "Delete" +msgstr "삭제" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:61 +msgid "Deletes and removes tag" +msgstr "태그 삭제 및 제거" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:66 +msgid "Unlink Group?" +msgstr "그룹을 연결 해제하시겠습니까?" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:67 +#, python-format +msgid "" +"<p>Are you sure you want to unlink all watches from group " +"<strong>%(title)s</strong>?</p><p>The tag will be kept but watches will " +"be removed from it.</p>" +msgstr "" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:68 +#: changedetectionio/blueprint/tags/templates/groups-overview.html:69 +msgid "Unlink" +msgstr "풀리다" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:69 +msgid "Keep the tag but unlink any watches" +msgstr "태그는 유지하되 시계 연결을 해제하세요." + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:70 +#: changedetectionio/blueprint/ui/templates/edit.html:500 +msgid "RSS Feed for this watch" +msgstr "이 시계에 대한 RSS 피드" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:12 +msgid "" +"This will remove version history (snapshots) for ALL watches, but keep " +"your list of URLs!" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:13 +msgid "You may like to use the" +msgstr "당신은" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:13 +msgid "BACKUP" +msgstr "백업" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:13 +msgid "link first." +msgstr "먼저 링크하세요." + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:17 +msgid "Confirmation text" +msgstr "정보 없음" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:27 +msgid "Type in the word" +msgstr "단어를 입력하세요" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:27 +msgid "clear" +msgstr "분명한" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:27 +msgid "to confirm that you understand." +msgstr "당신이 이해했는지 확인하기 위해." + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:33 +msgid "Clear History!" +msgstr "기록 지우기" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:39 +#: changedetectionio/templates/base.html:271 +msgid "Cancel" +msgstr "취소" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:3 +msgid "Share diff as image" +msgstr "차이점을 이미지로 공유" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:3 +msgid "Share as Image" +msgstr "이미지로 공유" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:6 +msgid "Ignore any lines matching" +msgstr "일치하는 줄을 무시하세요." + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:9 +msgid "Ignore any lines matching excluding digits" +msgstr "숫자를 제외하고 일치하는 줄을 무시합니다." + +#: changedetectionio/blueprint/ui/templates/diff.html:28 +msgid "From" +msgstr "에서" + +#: changedetectionio/blueprint/ui/templates/diff.html:38 +msgid "To" +msgstr "에게" + +#: changedetectionio/blueprint/ui/templates/diff.html:53 +msgid "Words" +msgstr "비밀번호" + +#: changedetectionio/blueprint/ui/templates/diff.html:57 +msgid "Lines" +msgstr "로그인" + +#: changedetectionio/blueprint/ui/templates/diff.html:61 +msgid "Ignore Whitespace" +msgstr "공백 무시" + +#: changedetectionio/blueprint/ui/templates/diff.html:65 +msgid "Same/non-changed" +msgstr "변경됨" + +#: changedetectionio/blueprint/ui/templates/diff.html:69 +msgid "Removed" +msgstr "제거됨" + +#: changedetectionio/blueprint/ui/templates/diff.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "Added" +msgstr "추가됨" + +#: changedetectionio/blueprint/ui/templates/diff.html:77 +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "Replaced" +msgstr "교체됨" + +#: changedetectionio/blueprint/ui/templates/diff.html:82 +#: changedetectionio/blueprint/ui/templates/preview.html:36 +msgid "Keyboard:" +msgstr "건반:" + +#: changedetectionio/blueprint/ui/templates/diff.html:83 +#: changedetectionio/blueprint/ui/templates/preview.html:37 +msgid "Previous" +msgstr "시사" + +#: changedetectionio/blueprint/ui/templates/diff.html:84 +#: changedetectionio/blueprint/ui/templates/preview.html:38 +msgid "Next" +msgstr "다음" + +#: changedetectionio/blueprint/ui/templates/diff.html:91 +msgid "Jump to next difference" +msgstr "다음 차이점으로 이동" + +#: changedetectionio/blueprint/ui/templates/diff.html:91 +msgid "Jump" +msgstr "도약" + +#: changedetectionio/blueprint/ui/templates/diff.html:97 +#: changedetectionio/blueprint/ui/templates/preview.html:45 +msgid "Error Text" +msgstr "오류 텍스트" + +#: changedetectionio/blueprint/ui/templates/diff.html:98 +#: changedetectionio/blueprint/ui/templates/preview.html:47 +msgid "Error Screenshot" +msgstr "오류 스크린샷" + +#: changedetectionio/blueprint/ui/templates/diff.html:99 +#: changedetectionio/blueprint/ui/templates/preview.html:50 +#: changedetectionio/processors/text_json_diff/processor.py:24 +msgid "Text" +msgstr "텍스트" + +#: changedetectionio/blueprint/ui/templates/diff.html:100 +#: changedetectionio/blueprint/ui/templates/preview.html:51 +msgid "Current screenshot" +msgstr "현재 스크린샷" + +#: changedetectionio/blueprint/ui/templates/diff.html:101 +msgid "Extract Data" +msgstr "데이터 추출" + +#: changedetectionio/blueprint/ui/templates/diff.html:107 +msgid "seconds ago." +msgstr "초 전." + +#: changedetectionio/blueprint/ui/templates/diff.html:114 +#: changedetectionio/blueprint/ui/templates/preview.html:59 +#: changedetectionio/blueprint/ui/templates/preview.html:66 +msgid "seconds ago" +msgstr "초 전" + +#: changedetectionio/blueprint/ui/templates/diff.html:115 +msgid "Current error-ing screenshot from most recent request" +msgstr "가장 최근 요청의 현재 오류 스크린샷" + +#: changedetectionio/blueprint/ui/templates/diff.html:127 +msgid "Pro-tip: You can enable" +msgstr "전문가 팁: 활성화할 수 있습니다." + +#: changedetectionio/blueprint/ui/templates/diff.html:127 +msgid "\"share access when password is enabled\"" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/diff.html:127 +msgid "from settings." +msgstr "설정" + +#: changedetectionio/blueprint/ui/templates/diff.html:133 +msgid "Goto single snapshot" +msgstr "단일 스냅샷으로 이동" + +#: changedetectionio/blueprint/ui/templates/diff.html:138 +#: changedetectionio/blueprint/ui/templates/edit.html:125 +msgid "Tip:" +msgstr "팁:" + +#: changedetectionio/blueprint/ui/templates/diff.html:138 +msgid "Highlight text to share or add to ignore lists." +msgstr "공유하거나 무시 목록에 추가할 텍스트를 강조 표시합니다." + +#: changedetectionio/blueprint/ui/templates/diff.html:144 +#: changedetectionio/blueprint/ui/templates/preview.html:80 +msgid "" +"For now, Differences are performed on text, not graphically, only the " +"latest screenshot is available." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/diff.html:149 +#: changedetectionio/blueprint/ui/templates/preview.html:86 +msgid "Current screenshot from most recent request" +msgstr "가장 최근 요청의 현재 스크린샷" + +#: changedetectionio/blueprint/ui/templates/diff.html:151 +#: changedetectionio/blueprint/ui/templates/preview.html:88 +msgid "No screenshot available just yet! Try rechecking the page." +msgstr "아직 스크린샷이 없습니다! 페이지를 다시 확인해 보세요." + +#: changedetectionio/blueprint/ui/templates/diff.html:154 +msgid "Screenshot requires Playwright/WebDriver enabled" +msgstr "스크린샷을 찍으려면 Playwright/WebDriver를 활성화해야 합니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:48 +msgid "Request" +msgstr "요구" + +#: changedetectionio/blueprint/ui/templates/edit.html:52 +msgid "Browser Steps" +msgstr "브라우저 단계" + +#: changedetectionio/blueprint/ui/templates/edit.html:55 +msgid "Visual Filter Selector" +msgstr "시각적 필터 선택기" + +#: changedetectionio/blueprint/ui/templates/edit.html:57 +msgid "Conditions" +msgstr "정황" + +#: changedetectionio/blueprint/ui/templates/edit.html:60 +msgid "Stats" +msgstr "설정" + +#: changedetectionio/blueprint/ui/templates/edit.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:313 +msgid "Some sites use JavaScript to create the content, for this you should" +msgstr "일부 사이트에서는 JavaScript를 사용하여 콘텐츠를 생성합니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:313 +msgid "use the Chrome/WebDriver Fetcher" +msgstr "Chrome/WebDriver Fetcher를 사용하세요." + +#: changedetectionio/blueprint/ui/templates/edit.html:74 +msgid "Variables are supported in the URL" +msgstr "URL에서 변수가 지원됩니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:74 +#: changedetectionio/blueprint/ui/templates/edit.html:180 +#: changedetectionio/blueprint/ui/templates/edit.html:189 +msgid "help and examples here" +msgstr "여기에 도움말과 예시가 있습니다" + +#: changedetectionio/blueprint/ui/templates/edit.html:78 +msgid "Organisational tag/group name used in the main listing page" +msgstr "기본 목록 페이지에 사용되는 조직 태그/그룹 이름" + +#: changedetectionio/blueprint/ui/templates/edit.html:85 +msgid "" +"Automatically uses the page title if found, you can also use your own " +"title/description here" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:95 +msgid "The interval/amount of time between each check." +msgstr "각 확인 사이의 간격/시간입니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:110 +msgid "" +"Sends a notification when the filter can no longer be seen on the page, " +"good for knowing when the page changed and your filter will not work " +"anymore." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:123 +msgid "Use the" +msgstr "사용" + +#: changedetectionio/blueprint/ui/templates/edit.html:123 +msgid "Basic" +msgstr "기초적인" + +#: changedetectionio/blueprint/ui/templates/edit.html:123 +msgid "" +"method (default) where your watched site doesn't need Javascript to " +"render." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:124 +msgid "The" +msgstr "그만큼" + +#: changedetectionio/blueprint/ui/templates/edit.html:124 +msgid "Chrome/Javascript" +msgstr "크롬/자바스크립트" + +#: changedetectionio/blueprint/ui/templates/edit.html:124 +msgid "" +"method requires a network connection to a running WebDriver+Chrome " +"server, set by the ENV var 'WEBDRIVER_URL'." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:125 +msgid "Connect using Bright Data and Oxylabs Proxies, find out more here." +msgstr "Bright Data 및 Oxylabs 프록시를 사용하여 연결하세요. 여기에서 자세한 내용을 알아보세요." + +#: changedetectionio/blueprint/ui/templates/edit.html:130 +msgid "Check/Scan all" +msgstr "모두 다시 확인하세요" + +#: changedetectionio/blueprint/ui/templates/edit.html:133 +msgid "Choose a proxy for this watch" +msgstr "이 시계에 대한 RSS 피드" + +#: changedetectionio/blueprint/ui/templates/edit.html:143 +msgid "" +"If you're having trouble waiting for the page to be fully rendered (text " +"missing etc), try increasing the 'wait' time here." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:145 +msgid "This will wait" +msgstr "이것은 기다릴 것이다" + +#: changedetectionio/blueprint/ui/templates/edit.html:145 +msgid "seconds before extracting the text." +msgstr "텍스트를 추출하기 몇 초 전입니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:147 +msgid "Using the current global default settings" +msgstr "현재 전역 기본 설정 사용" + +#: changedetectionio/blueprint/ui/templates/edit.html:152 +#: changedetectionio/blueprint/ui/templates/edit.html:165 +msgid "Show advanced options" +msgstr "고급 옵션 표시" + +#: changedetectionio/blueprint/ui/templates/edit.html:157 +msgid "" +"Run this code before performing change detection, handy for filling in " +"fields and other actions" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:158 +msgid "More help and examples here" +msgstr "여기에 더 많은 도움말과 예시가 있습니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:180 +msgid "Variables are supported in the request body" +msgstr "요청 본문에서 변수가 지원됩니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:189 +msgid "Variables are supported in the request header values" +msgstr "요청 헤더 값에서 변수가 지원됩니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:192 +msgid "Alert! Extra headers file found and will be added to this watch!" +msgstr "알리다! 추가 헤더 파일이 발견되어 이 시계에 추가됩니다!" + +#: changedetectionio/blueprint/ui/templates/edit.html:194 +msgid "Headers can be also read from a file in your data-directory" +msgstr "데이터 디렉터리의 파일에서도 헤더를 읽을 수 있습니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:194 +msgid "Read more here" +msgstr "여기서 더 읽어보세요" + +#: changedetectionio/blueprint/ui/templates/edit.html:197 +msgid "Not supported by Selenium browser" +msgstr "Selenium 브라우저에서는 지원되지 않습니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:221 +msgid "Turn on text finder" +msgstr "텍스트 찾기 켜기" + +#: changedetectionio/blueprint/ui/templates/edit.html:224 +msgid "Please wait, first browser step can take a little time to load.." +msgstr "잠시 기다려 주십시오. 첫 번째 브라우저 단계를 로드하는 데 약간의 시간이 걸릴 수 있습니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:231 +msgid "Click here to Start" +msgstr "시작하려면 여기를 클릭하세요" + +#: changedetectionio/blueprint/ui/templates/edit.html:233 +msgid "Please allow 10-15 seconds for the browser to connect." +msgstr "브라우저가 연결되는 데 10~15초 정도 기다려 주십시오." + +#: changedetectionio/blueprint/ui/templates/edit.html:242 +msgid "Press \"Play\" to start." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:249 +#: changedetectionio/blueprint/ui/templates/edit.html:419 +msgid "Visual Selector data is not ready, watch needs to be checked atleast once." +msgstr "시각적 선택기 데이터가 준비되지 않았습니다. 시계를 한 번 이상 확인해야 합니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:253 +msgid "" +"Sorry, this functionality only works with fetchers that support " +"interactive Javascript (so far only Playwright based fetchers)" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:254 +#: changedetectionio/blueprint/ui/templates/edit.html:424 +msgid "You need to" +msgstr "당신은" + +#: changedetectionio/blueprint/ui/templates/edit.html:254 +#: changedetectionio/blueprint/ui/templates/edit.html:424 +msgid "Set the fetch method" +msgstr "가져오기 방법 설정" + +#: changedetectionio/blueprint/ui/templates/edit.html:254 +msgid "to one that supports interactive Javascript." +msgstr "대화형 Javascript를 지원하는 것입니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:297 +msgid "" +"Use the verify (✓) button to test if a condition passes against the " +"current snapshot." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:298 +msgid "Read a quick tutorial about" +msgstr "다음에 대한 빠른 튜토리얼을 읽어보세요." + +#: changedetectionio/blueprint/ui/templates/edit.html:298 +msgid "using conditional web page changes here" +msgstr "여기에서 조건부 웹페이지 변경 사항을 사용합니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:303 +msgid "Activate preview" +msgstr "시사" + +#: changedetectionio/blueprint/ui/templates/edit.html:307 +msgid "Pro-tips:" +msgstr "전문가 팁:" + +#: changedetectionio/blueprint/ui/templates/edit.html:310 +msgid "Use the preview page to see your filters and triggers highlighted." +msgstr "미리보기 페이지를 사용하여 강조 표시된 필터와 트리거를 확인하세요." + +#: changedetectionio/blueprint/ui/templates/edit.html:322 +msgid "Limit trigger/ignore/block/extract to;" +msgstr "트리거/무시/차단/추출을 다음으로 제한합니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "" +"Note: Depending on the length and similarity of the text on each line, " +"the algorithm may consider an" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "addition" +msgstr "덧셈" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "instead of" +msgstr "대신에" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "replacement" +msgstr "대사" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "for example." +msgstr "예를 들어." + +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "So it's always better to select" +msgstr "따라서 항상 선택하는 것이 좋습니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "when you're interested in new content." +msgstr "새로운 콘텐츠에 관심이 있을 때." + +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "When content is merely moved in a list, it will also trigger an" +msgstr "콘텐츠가 목록에서 단순히 이동되는 경우에도" + +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "consider enabling" +msgstr "활성화하는 것을 고려해보세요" + +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "Only trigger when unique lines appear" +msgstr "고유한 줄이 나타날 때만 트리거됩니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:332 +msgid "" +"Good for websites that just move the content around, and you want to know" +" when NEW content is added, compares new lines against all history for " +"this watch." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:340 +msgid "" +"Helps reduce changes detected caused by sites shuffling lines around, " +"combine with" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:340 +msgid "check unique lines" +msgstr "고유 라인 확인" + +#: changedetectionio/blueprint/ui/templates/edit.html:340 +msgid "below." +msgstr "아래에." + +#: changedetectionio/blueprint/ui/templates/edit.html:344 +msgid "Remove any whitespace before and after each line of text" +msgstr "각 텍스트 줄 앞과 뒤의 공백을 제거하세요." + +#: changedetectionio/blueprint/ui/templates/edit.html:358 +#: changedetectionio/blueprint/ui/templates/edit.html:361 +#: changedetectionio/blueprint/ui/templates/edit.html:417 +msgid "Loading..." +msgstr "로드 중..." + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "The Visual Selector tool lets you select the" +msgstr "시각적 선택 도구를 사용하면 다음을 선택할 수 있습니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "text" +msgstr "텍스트" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "" +"elements that will be used for the change detection. It automatically " +"fills-in the filters in the \"CSS/JSONPath/JQ/XPath Filters\" box of the" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "tab. Use" +msgstr "정지시키다" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "Shift+Click" +msgstr "Shift+클릭" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "to select multiple items." +msgstr "여러 항목을 선택하려면" + +#: changedetectionio/blueprint/ui/templates/edit.html:391 +msgid "Selection Mode:" +msgstr "선택 모드:" + +#: changedetectionio/blueprint/ui/templates/edit.html:394 +msgid "Select by element" +msgstr "요소별로 선택" + +#: changedetectionio/blueprint/ui/templates/edit.html:398 +msgid "Draw area" +msgstr "그리기 영역" + +#: changedetectionio/blueprint/ui/templates/edit.html:406 +msgid "Clear selection" +msgstr "선택 취소" + +#: changedetectionio/blueprint/ui/templates/edit.html:408 +msgid "One moment, fetching screenshot and element information.." +msgstr "잠시만 기다려 주세요. 스크린샷과 요소 정보를 가져오는 중입니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:417 +msgid "Currently:" +msgstr "현재:" + +#: changedetectionio/blueprint/ui/templates/edit.html:423 +msgid "" +"Sorry, this functionality only works with fetchers that support " +"Javascript and screenshots (such as playwright etc)." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:424 +msgid "to one that supports Javascript and screenshots." +msgstr "Javascript와 스크린샷을 지원하는 것입니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:441 +msgid "Check count" +msgstr "수표 수" + +#: changedetectionio/blueprint/ui/templates/edit.html:445 +msgid "Consecutive filter failures" +msgstr "연속적인 필터 실패" + +#: changedetectionio/blueprint/ui/templates/edit.html:449 +msgid "History length" +msgstr "역사" + +#: changedetectionio/blueprint/ui/templates/edit.html:453 +msgid "Last fetch duration" +msgstr "마지막 가져오기 기간" + +#: changedetectionio/blueprint/ui/templates/edit.html:457 +msgid "Notification alert count" +msgstr "알림 경고 수" + +#: changedetectionio/blueprint/ui/templates/edit.html:461 +msgid "Server type reply" +msgstr "서버 유형 응답" + +#: changedetectionio/blueprint/ui/templates/edit.html:475 +msgid "Download latest HTML snapshot" +msgstr "최신 HTML 스냅샷 다운로드" + +#: changedetectionio/blueprint/ui/templates/edit.html:488 +msgid "Delete Watch?" +msgstr "시계를 삭제하시겠습니까?" + +#: changedetectionio/blueprint/ui/templates/edit.html:489 +msgid "Are you sure you want to delete the watch for:" +msgstr "정말로 다음의 시계를 삭제하시겠습니까?" + +#: changedetectionio/blueprint/ui/templates/edit.html:489 +msgid "This action cannot be undone." +msgstr "이 작업은 취소할 수 없습니다." + +#: changedetectionio/blueprint/ui/templates/edit.html:495 +msgid "Clear History?" +msgstr "기록 지우기" + +#: changedetectionio/blueprint/ui/templates/edit.html:496 +msgid "Are you sure you want to clear all history for:" +msgstr "정말로 다음의 기록을 모두 지우시겠습니까?" + +#: changedetectionio/blueprint/ui/templates/edit.html:496 +msgid "" +"This will remove all snapshots and previous versions. This action cannot " +"be undone." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:497 +msgid "Clear History" +msgstr "기록 지우기" + +#: changedetectionio/blueprint/ui/templates/edit.html:499 +msgid "Clone & Edit" +msgstr "복제 및 편집" + +#: changedetectionio/blueprint/ui/templates/preview.html:22 +msgid "Select timestamp" +msgstr "타임스탬프 선택" + +#: changedetectionio/blueprint/ui/templates/preview.html:31 +msgid "Go" +msgstr "가다" + +#: changedetectionio/blueprint/ui/templates/preview.html:69 +msgid "Current erroring screenshot from most recent request" +msgstr "가장 최근 요청의 현재 오류 스크린샷" + +#: changedetectionio/blueprint/ui/templates/preview.html:91 +msgid "" +"Screenshot requires a Content Fetcher ( Sockpuppetbrowser, selenium, etc " +") that supports screenshots." +msgstr "" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:31 +msgid "Add a new web page change detection watch" +msgstr "새로운 웹 페이지 변경 감지 감시 추가" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:34 +msgid "Watch this URL!" +msgstr "이 URL을 시청하세요!" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:35 +msgid "Edit first then Watch" +msgstr "먼저 편집한 다음 보기" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:45 +msgid "Create a shareable link" +msgstr "공유 가능한 링크 만들기" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:45 +msgid "Tip: You can also add 'shared' watches." +msgstr "팁: '공유' 시계를 추가할 수도 있습니다." + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:45 +msgid "More info" +msgstr "추가 정보" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:53 +msgid "Pause" +msgstr "정지시키다" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:54 +msgid "UnPause" +msgstr "일시정지 해제" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:55 +msgid "Mute" +msgstr "무음" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:56 +msgid "UnMute" +msgstr "음소거 해제" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:57 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:248 +msgid "Recheck" +msgstr "재확인" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:58 +msgid "Tag" +msgstr "꼬리표" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:59 +msgid "Mark viewed" +msgstr "본 것으로 표시" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:60 +msgid "Use default notification" +msgstr "기본 알림 사용" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:61 +msgid "Clear errors" +msgstr "오류 지우기" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:65 +msgid "Clear Histories" +msgstr "기록 지우기" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:66 +msgid "" +"<p>Are you sure you want to clear history for the selected " +"items?</p><p>This action cannot be undone.</p>" +msgstr "" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:67 +msgid "OK" +msgstr "좋아요" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:67 +msgid "Clear/reset history" +msgstr "기록 지우기/재설정" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:71 +msgid "Delete Watches?" +msgstr "시계를 삭제하시겠습니까?" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:72 +msgid "" +"<p>Are you sure you want to delete the selected " +"watches?</strong></p><p>This action cannot be undone.</p>" +msgstr "" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:78 +msgid "Searching" +msgstr "수색" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:80 +msgid "All" +msgstr "모두" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:118 +msgid "Website" +msgstr "웹사이트" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:120 +msgid "Restock & Price" +msgstr "재입고 및 가격" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:122 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:123 +msgid "Last" +msgstr "마지막" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:122 +msgid "Checked" +msgstr "체크됨" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:123 +msgid "Changed" +msgstr "변경됨" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:130 +msgid "No website watches configured, please add a URL in the box above, or" +msgstr "구성된 웹사이트 시계가 없습니다. 위 상자에 URL을 추가하세요. 또는" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:130 +msgid "import a list" +msgstr "목록 가져오기" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:213 +msgid "Detecting restock and price" +msgstr "재입고 및 가격 감지" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:215 +msgid "In stock" +msgstr "재고 있음" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:215 +msgid "Not in stock" +msgstr "재고가 없습니다" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:221 +msgid "Price" +msgstr "가격" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:226 +msgid "No information" +msgstr "정보 없음" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:234 +#: changedetectionio/templates/base.html:248 +msgid "Checking now" +msgstr "지금 확인 중" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:247 +msgid "Queued" +msgstr "대기 중" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:250 +msgid "History" +msgstr "역사" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:251 +msgid "Preview" +msgstr "시사" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:260 +msgid "With errors" +msgstr "오류가 있음" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:263 +msgid "Mark all viewed" +msgstr "모두 본 것으로 표시" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:267 +#, python-format +msgid "Mark all viewed in '%(title)s'" +msgstr "'%(title)s'에서 모두 본 것으로 표시" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:271 +msgid "Unread" +msgstr "읽히지 않는" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:274 +msgid "Recheck all" +msgstr "모두 다시 확인하세요" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:274 +#, python-format +msgid "in '%(title)s'" +msgstr "'%(title)s'에서" + +#: changedetectionio/processors/image_ssim_diff/forms.py:19 +#: changedetectionio/processors/image_ssim_diff/forms.py:69 +msgid "Bounding box value is too long" +msgstr "경계 상자 값이 너무 깁니다." + +#: changedetectionio/processors/image_ssim_diff/forms.py:23 +msgid "Bounding box must be in format: x,y,width,height (integers only)" +msgstr "경계 상자는 x,y,너비,높이(정수만) 형식이어야 합니다." + +#: changedetectionio/processors/image_ssim_diff/forms.py:29 +msgid "Bounding box values must be non-negative" +msgstr "경계 상자 값은 음수가 아니어야 합니다." + +#: changedetectionio/processors/image_ssim_diff/forms.py:31 +msgid "Bounding box values are too large" +msgstr "경계 상자 값이 너무 큽니다." + +#: changedetectionio/processors/image_ssim_diff/forms.py:40 +msgid "Selection mode must be either \"element\" or \"draw\"" +msgstr "" + +#: changedetectionio/processors/image_ssim_diff/forms.py:47 +msgid "Minimum Change Percentage" +msgstr "최소 변경 비율" + +#: changedetectionio/processors/image_ssim_diff/forms.py:56 +msgid "Pixel Difference Sensitivity" +msgstr "픽셀 차이 감도" + +#: changedetectionio/processors/image_ssim_diff/forms.py:58 +msgid "Use global default" +msgstr "시스템 기본값 사용" + +#: changedetectionio/processors/image_ssim_diff/forms.py:66 +msgid "Bounding Box" +msgstr "경계 상자" + +#: changedetectionio/processors/image_ssim_diff/forms.py:76 +msgid "Selection Mode" +msgstr "선택 모드:" + +#: changedetectionio/processors/image_ssim_diff/forms.py:79 +msgid "Selection mode value is too long" +msgstr "선택 모드 값이 너무 깁니다." + +#: changedetectionio/processors/image_ssim_diff/forms.py:87 +msgid "Screenshot Comparison" +msgstr "스크린샷 비교" + +#: changedetectionio/processors/image_ssim_diff/processor.py:20 +msgid "Visual / Image screenshot change detection" +msgstr "시각적/이미지 스크린샷 변경 감지" + +#: changedetectionio/processors/image_ssim_diff/processor.py:21 +msgid "Compares screenshots using fast OpenCV algorithm, 10-100x faster than SSIM" +msgstr "SSIM보다 10~100배 빠른 빠른 OpenCV 알고리즘을 사용하여 스크린샷을 비교합니다." + +#: changedetectionio/processors/image_ssim_diff/processor.py:23 +msgid "Visual" +msgstr "시각적" + +#: changedetectionio/processors/restock_diff/forms.py:15 +msgid "Re-stock detection" +msgstr "재입고 감지" + +#: changedetectionio/processors/restock_diff/forms.py:16 +msgid "In Stock only (Out Of Stock -> In Stock only)" +msgstr "재고만 있음 (품절 -> 재고만 있음)" + +#: changedetectionio/processors/restock_diff/forms.py:17 +msgid "Any availability changes" +msgstr "이용 가능 여부 변경" + +#: changedetectionio/processors/restock_diff/forms.py:18 +msgid "Off, don't follow availability/restock" +msgstr "끄기, 재고 여부를 따르지 않음/재입고" + +#: changedetectionio/processors/restock_diff/forms.py:21 +msgid "Below price to trigger notification" +msgstr "알림을 실행할 가격 미만" + +#: changedetectionio/processors/restock_diff/forms.py:22 +#: changedetectionio/processors/restock_diff/forms.py:24 +msgid "No limit" +msgstr "제한 없음" + +#: changedetectionio/processors/restock_diff/forms.py:23 +msgid "Above price to trigger notification" +msgstr "가격보다 높으면 알림이 실행됩니다." + +#: changedetectionio/processors/restock_diff/forms.py:25 +#, python-format +msgid "Threshold in %% for price changes since the original price" +msgstr "원래 가격 이후 가격 변동에 대한 기준점(%)" + +#: changedetectionio/processors/restock_diff/forms.py:28 +msgid "Should be between 0 and 100" +msgstr "0에서 100 사이여야 합니다." + +#: changedetectionio/processors/restock_diff/forms.py:31 +msgid "Follow price changes" +msgstr "가격 변동을 따르세요" + +#: changedetectionio/processors/restock_diff/forms.py:37 +msgid "Restock & Price Detection" +msgstr "재입고 및 가격" + +#: changedetectionio/processors/restock_diff/processor.py:11 +msgid "Re-stock & Price detection for pages with a SINGLE product" +msgstr "단일 제품이 포함된 페이지의 재입고 및 가격 감지" + +#: changedetectionio/processors/restock_diff/processor.py:12 +msgid "Detects if the product goes back to in-stock" +msgstr "제품이 다시 재고로 돌아왔는지 감지합니다." + +#: changedetectionio/processors/restock_diff/processor.py:14 +msgid "Restock" +msgstr "재입고" + +#: changedetectionio/processors/text_json_diff/processor.py:21 +msgid "Webpage Text/HTML, JSON and PDF changes" +msgstr "웹페이지 텍스트/HTML, JSON 및 PDF 변경" + +#: changedetectionio/processors/text_json_diff/processor.py:22 +msgid "Detects all text changes where possible" +msgstr "가능한 경우 모든 텍스트 변경 사항을 감지합니다." + +#: changedetectionio/templates/base.html:77 +msgid "GROUPS" +msgstr "여러 떼" + +#: changedetectionio/templates/base.html:80 +msgid "SETTINGS" +msgstr "설정" + +#: changedetectionio/templates/base.html:83 +msgid "IMPORT" +msgstr "수입" + +#: changedetectionio/templates/base.html:86 +msgid "BACKUPS" +msgstr "백업" + +#: changedetectionio/templates/base.html:90 +msgid "EDIT" +msgstr "편집하다" + +#: changedetectionio/templates/base.html:100 +msgid "LOG OUT" +msgstr "로그아웃" + +#: changedetectionio/templates/base.html:109 +msgid "Search, or Use Alt+S Key" +msgstr "검색 또는 Alt+S 키 사용" + +#: changedetectionio/templates/base.html:116 +msgid "Toggle Light/Dark Mode" +msgstr "밝은/어두운 모드 전환" + +#: changedetectionio/templates/base.html:117 +msgid "Toggle light/dark mode" +msgstr "밝은/어두운 모드 전환" + +#: changedetectionio/templates/base.html:127 +msgid "Change Language" +msgstr "언어 변경" + +#: changedetectionio/templates/base.html:128 +msgid "Change language" +msgstr "언어 변경" + +#: changedetectionio/templates/base.html:249 +msgid "Real-time updates offline" +msgstr "실시간 업데이트 오프라인" + +#: changedetectionio/templates/base.html:259 +msgid "Select Language" +msgstr "언어 선택" + +#: changedetectionio/templates/login.html:10 +msgid "Password" +msgstr "비밀번호" + +#: changedetectionio/templates/login.html:16 +msgid "Login" +msgstr "로그인" + diff --git a/changedetectionio/translations/zh/LC_MESSAGES/messages.mo b/changedetectionio/translations/zh/LC_MESSAGES/messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..ee631028910b0ea796eb449527b36030ba90065a GIT binary patch literal 25498 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 SnQIONZKv~Rp69seIsXsPMLk0R literal 0 HcmV?d00001 diff --git a/changedetectionio/translations/zh/LC_MESSAGES/messages.po b/changedetectionio/translations/zh/LC_MESSAGES/messages.po new file mode 100644 index 000000000..09d64dd04 --- /dev/null +++ b/changedetectionio/translations/zh/LC_MESSAGES/messages.po @@ -0,0 +1,1928 @@ +# Chinese translations for PROJECT. +# Copyright (C) 2026 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2026. +# +msgid "" +msgstr "" +"Project-Id-Version: PROJECT VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2026-01-02 13:32+0100\n" +"PO-Revision-Date: 2026-01-02 11:54+0100\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language: zh\n" +"Language-Team: zh <LL@li.org>\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.17.0\n" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:241 +#: changedetectionio/flask_app.py:213 changedetectionio/flask_app.py:225 +#: changedetectionio/flask_app.py:246 +#: changedetectionio/realtime/socket_server.py:171 +msgid "Not yet" +msgstr "还没有" + +#: changedetectionio/forms.py:62 changedetectionio/forms.py:242 +msgid "" +"At least one time interval (weeks, days, hours, minutes, or seconds) must" +" be specified." +msgstr "" + +#: changedetectionio/forms.py:63 +msgid "" +"At least one time interval (weeks, days, hours, minutes, or seconds) must" +" be specified when not using global settings." +msgstr "" + +#: changedetectionio/forms.py:163 +msgid "Invalid time format. Use HH:MM." +msgstr "时间格式无效。使用时:分。" + +#: changedetectionio/forms.py:179 +msgid "Not a valid timezone name" +msgstr "不是有效的时区名称" + +#: changedetectionio/forms.py:182 +msgid "not set" +msgstr "还没有" + +#: changedetectionio/forms.py:183 +msgid "Start At" +msgstr "设置" + +#: changedetectionio/forms.py:184 +msgid "Run duration" +msgstr "暂无信息" + +#: changedetectionio/forms.py:187 +msgid "Use time scheduler" +msgstr "使用时间调度器" + +#: changedetectionio/forms.py:197 +msgid "Optional timezone to run in" +msgstr "运行时的可选时区" + +#: changedetectionio/forms.py:211 +msgid "Monday" +msgstr "周一" + +#: changedetectionio/forms.py:212 +msgid "Tuesday" +msgstr "周二" + +#: changedetectionio/forms.py:213 +msgid "Wednesday" +msgstr "周三" + +#: changedetectionio/forms.py:214 +msgid "Thursday" +msgstr "周四" + +#: changedetectionio/forms.py:215 +msgid "Friday" +msgstr "星期五" + +#: changedetectionio/forms.py:216 +msgid "Saturday" +msgstr "周六" + +#: changedetectionio/forms.py:217 +msgid "Sunday" +msgstr "星期日" + +#: changedetectionio/forms.py:250 +msgid "Weeks" +msgstr "周数" + +#: changedetectionio/forms.py:250 changedetectionio/forms.py:251 +#: changedetectionio/forms.py:252 changedetectionio/forms.py:253 +#: changedetectionio/forms.py:254 changedetectionio/forms.py:957 +msgid "Should contain zero or more seconds" +msgstr "应包含零或更多秒" + +#: changedetectionio/forms.py:251 +msgid "Days" +msgstr "天" + +#: changedetectionio/forms.py:252 +msgid "Hours" +msgstr "密码" + +#: changedetectionio/forms.py:253 +msgid "Minutes" +msgstr "沉默的" + +#: changedetectionio/forms.py:254 +msgid "Seconds" +msgstr "秒" + +#: changedetectionio/forms.py:459 +msgid "Notification Body and Title is required when a Notification URL is used" +msgstr "使用通知 URL 时需要通知正文和标题" + +#: changedetectionio/forms.py:488 +#, python-format +msgid "'%s' is not a valid AppRise URL." +msgstr "“%s”不是有效的 AppRise URL。" + +#: changedetectionio/forms.py:561 changedetectionio/forms.py:580 +#, python-format +msgid "RegEx '%s' is not a valid regular expression." +msgstr "RegEx“%s”不是有效的正则表达式。" + +#: changedetectionio/forms.py:621 changedetectionio/forms.py:636 +#, python-format +msgid "'%s' is not a valid XPath expression. (%s)" +msgstr "“%s”不是有效的 XPath 表达式。 (%s)" + +#: changedetectionio/forms.py:656 +#, python-format +msgid "'%s' is not a valid JSONPath expression. (%s)" +msgstr "“%s”不是有效的 JSONPath 表达式。 (%s)" + +#: changedetectionio/forms.py:678 +#, python-format +msgid "'%s' is not a valid jq expression. (%s)" +msgstr "“%s”不是有效的 jq 表达式。 (%s)" + +#: changedetectionio/forms.py:724 +msgid "Empty value not allowed." +msgstr "不允许为空值。" + +#: changedetectionio/forms.py:726 +msgid "Invalid value." +msgstr "无效值。" + +#: changedetectionio/forms.py:733 +msgid "Watch" +msgstr "# 手表" + +#: changedetectionio/forms.py:734 changedetectionio/forms.py:768 +msgid "Processor" +msgstr "处理器" + +#: changedetectionio/forms.py:735 +msgid "Edit > Watch" +msgstr "先编辑后观看" + +#: changedetectionio/forms.py:748 changedetectionio/forms.py:996 +msgid "Fetch Method" +msgstr "设置获取方法" + +#: changedetectionio/forms.py:749 +msgid "Notification Body" +msgstr "暂无信息" + +#: changedetectionio/forms.py:750 +msgid "Notification format" +msgstr "暂无信息" + +#: changedetectionio/forms.py:751 +msgid "Notification Title" +msgstr "暂无信息" + +#: changedetectionio/forms.py:752 +msgid "Notification URL List" +msgstr "暂无信息" + +#: changedetectionio/forms.py:753 +msgid "Processor - What do you want to achieve?" +msgstr "处理器 - 您想要实现什么?" + +#: changedetectionio/forms.py:754 +msgid "Default timezone for watch check scheduler" +msgstr "手表检查调度程序的默认时区" + +#: changedetectionio/forms.py:755 +msgid "Wait seconds before extracting text" +msgstr "提取文本前几秒。" + +#: changedetectionio/forms.py:755 +msgid "Should contain one or more seconds" +msgstr "应包含一秒或多秒" + +#: changedetectionio/forms.py:769 +msgid "URLs" +msgstr "网址" + +#: changedetectionio/forms.py:770 +msgid "Upload .xlsx file" +msgstr "上传 .xlsx 文件" + +#: changedetectionio/forms.py:770 +msgid "Must be .xlsx file!" +msgstr "必须是 .xlsx 文件!" + +#: changedetectionio/forms.py:771 +msgid "File mapping" +msgstr "文件映射类型。" + +#: changedetectionio/forms.py:775 +msgid "Operation" +msgstr "用户界面选项" + +#: changedetectionio/forms.py:778 +msgid "Selector" +msgstr "选择方式:" + +#: changedetectionio/forms.py:779 +msgid "value" +msgstr "暂停" + +#: changedetectionio/forms.py:798 +msgid "Use global settings for time between check and scheduler." +msgstr "使用全局设置检查和调度程序之间的时间。" + +#: changedetectionio/forms.py:800 +msgid "CSS/JSONPath/JQ/XPath Filters" +msgstr "CSS/xPath 过滤器" + +#: changedetectionio/forms.py:802 changedetectionio/forms.py:998 +msgid "Remove elements" +msgstr "已删除" + +#: changedetectionio/forms.py:804 +msgid "Extract text" +msgstr "提取数据" + +#: changedetectionio/blueprint/imports/templates/import.html:106 +#: changedetectionio/forms.py:806 +msgid "Title" +msgstr "标题" + +#: changedetectionio/forms.py:808 +msgid "Ignore lines containing" +msgstr "忽略任何匹配的行" + +#: changedetectionio/forms.py:810 +msgid "Request body" +msgstr "要求" + +#: changedetectionio/forms.py:811 +msgid "Request method" +msgstr "要求" + +#: changedetectionio/forms.py:812 +msgid "Ignore status codes (process non-2xx status codes as normal)" +msgstr "忽略状态代码(正常处理非 2xx 状态代码)" + +#: changedetectionio/forms.py:813 +msgid "Only trigger when unique lines appear in all history" +msgstr "仅当出现唯一线条时触发" + +#: changedetectionio/blueprint/ui/templates/edit.html:336 +#: changedetectionio/forms.py:814 +msgid "Remove duplicate lines of text" +msgstr "删除重复的文本行" + +#: changedetectionio/forms.py:815 +msgid "Sort text alphabetically" +msgstr "按字母顺序对文本进行排序" + +#: changedetectionio/forms.py:816 changedetectionio/forms.py:1025 +msgid "Strip ignored lines" +msgstr "去掉忽略的行" + +#: changedetectionio/forms.py:817 +msgid "Trim whitespace before and after text" +msgstr "删除每行文本前后的所有空格" + +#: changedetectionio/forms.py:819 +msgid "Added lines" +msgstr "登录" + +#: changedetectionio/forms.py:820 +msgid "Replaced/changed lines" +msgstr "更换/更改线路" + +#: changedetectionio/forms.py:821 +msgid "Removed lines" +msgstr "已删除" + +#: changedetectionio/forms.py:823 +msgid "Keyword triggers - Trigger/wait for text" +msgstr "关键字触发器 - 触发/等待文本" + +#: changedetectionio/forms.py:826 +msgid "Block change-detection while text matches" +msgstr "文本匹配时阻止更改检测" + +#: changedetectionio/forms.py:827 +msgid "Execute JavaScript before change detection" +msgstr "在更改检测之前执行 JavaScript" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:17 +#: changedetectionio/forms.py:829 changedetectionio/forms.py:1053 +msgid "Save" +msgstr "节省" + +#: changedetectionio/forms.py:831 +msgid "Proxy" +msgstr "代理人" + +#: changedetectionio/forms.py:833 +msgid "Send a notification when the filter can no longer be found on the page" +msgstr "当页面上找不到过滤器时发送通知" + +#: changedetectionio/blueprint/settings/templates/settings.html:22 +#: changedetectionio/blueprint/tags/templates/edit-tag.html:32 +#: changedetectionio/blueprint/ui/templates/edit.html:59 +#: changedetectionio/forms.py:834 +msgid "Notifications" +msgstr "暂无信息" + +#: changedetectionio/forms.py:834 +msgid "Muted" +msgstr "沉默的" + +#: changedetectionio/forms.py:834 +msgid "On" +msgstr "没有任何" + +#: changedetectionio/forms.py:835 +msgid "Attach screenshot to notification (where possible)" +msgstr "将屏幕截图附加到通知(如果可能)" + +#: changedetectionio/forms.py:837 +msgid "Match" +msgstr "# 手表" + +#: changedetectionio/forms.py:837 +msgid "Match all of the following" +msgstr "匹配以下所有内容" + +#: changedetectionio/forms.py:837 +msgid "Match any of the following" +msgstr "匹配以下任意一项" + +#: changedetectionio/forms.py:839 +msgid "Use page <title> in list" +msgstr "使用列表中的页面<标题>" + +#: changedetectionio/forms.py:856 +msgid "Body must be empty when Request Method is set to GET" +msgstr "当请求方法设置为 GET 时,正文必须为空" + +#: changedetectionio/forms.py:865 changedetectionio/forms.py:879 +#: changedetectionio/forms.py:894 +#, python-format +msgid "Invalid template syntax configuration: %(error)s" +msgstr "模板语法配置无效:%(error)s" + +#: changedetectionio/forms.py:869 changedetectionio/forms.py:883 +#, python-format +msgid "Invalid template syntax: %(error)s" +msgstr "无效的模板语法:%(error)s" + +#: changedetectionio/forms.py:898 +#, python-format +msgid "Invalid template syntax in \"%(header)s\" header: %(error)s" +msgstr "" + +#: changedetectionio/forms.py:922 changedetectionio/forms.py:934 +msgid "Name" +msgstr "取消静音" + +#: changedetectionio/forms.py:923 +msgid "Proxy URL" +msgstr "代理网址" + +#: changedetectionio/forms.py:928 +msgid "Proxy URLs must start with http://, https:// or socks5://" +msgstr "代理 URL 必须以 http://、https:// 或ocks5:// 开头" + +#: changedetectionio/forms.py:935 +msgid "Browser connection URL" +msgstr "浏览器连接网址" + +#: changedetectionio/forms.py:940 +msgid "Browser URLs must start with wss:// or ws://" +msgstr "浏览器 URL 必须以 wss:// 或 ws:// 开头" + +#: changedetectionio/forms.py:946 +msgid "Plaintext requests" +msgstr "明文请求" + +#: changedetectionio/forms.py:948 +msgid "Chrome requests" +msgstr "要求" + +#: changedetectionio/forms.py:954 +msgid "Default proxy" +msgstr "默认代理" + +#: changedetectionio/forms.py:955 +msgid "Random jitter seconds ± check" +msgstr "随机抖动秒±检查" + +#: changedetectionio/forms.py:959 +msgid "Number of fetch workers" +msgstr "取货工人数量" + +#: changedetectionio/forms.py:962 +msgid "Should be between 1 and 50" +msgstr "应介于 1 到 50 之间" + +#: changedetectionio/forms.py:964 +msgid "Requests timeout in seconds" +msgstr "请求超时(以秒为单位)" + +#: changedetectionio/forms.py:967 +msgid "Should be between 1 and 999" +msgstr "应介于 1 到 999 之间" + +#: changedetectionio/forms.py:972 +msgid "Default User-Agent overrides" +msgstr "默认用户代理覆盖" + +#: changedetectionio/forms.py:978 +msgid "Both a name, and a Proxy URL is required." +msgstr "名称和代理 URL 都是必需的。" + +#: changedetectionio/forms.py:982 +msgid "Open 'History' page in a new tab" +msgstr "在新选项卡中打开“历史记录”页面" + +#: changedetectionio/forms.py:983 +msgid "Realtime UI Updates Enabled" +msgstr "离线实时更新" + +#: changedetectionio/forms.py:984 +msgid "Favicons Enabled" +msgstr "考虑启用" + +#: changedetectionio/forms.py:985 +msgid "Use page <title> in watch overview list" +msgstr "在观看概览列表中使用页面<标题>" + +#: changedetectionio/forms.py:990 +msgid "API access token security check enabled" +msgstr "已启用 API 访问令牌安全检查" + +#: changedetectionio/forms.py:991 +msgid "Notification base URL override" +msgstr "通知警报计数" + +#: changedetectionio/forms.py:995 +msgid "Treat empty pages as a change?" +msgstr "将空页视为更改?" + +#: changedetectionio/forms.py:997 +msgid "Ignore Text" +msgstr "错误文本" + +#: changedetectionio/forms.py:999 +msgid "Ignore whitespace" +msgstr "忽略空格" + +#: changedetectionio/forms.py:1006 +#: changedetectionio/processors/image_ssim_diff/forms.py:50 +msgid "Must be between 0 and 100" +msgstr "必须介于 0 到 100 之间" + +#: changedetectionio/forms.py:1013 +msgid "Pager size" +msgstr "寻呼机尺寸" + +#: changedetectionio/forms.py:1016 +msgid "Should be atleast zero (disabled)" +msgstr "应至少为零(禁用)" + +#: changedetectionio/forms.py:1018 +msgid "RSS Content format" +msgstr "RSS 内容格式" + +#: changedetectionio/forms.py:1019 +msgid "RSS <description> body built from" +msgstr "RSS <描述> 正文构建于" + +#: changedetectionio/forms.py:1020 +msgid "RSS \"System default\" template override" +msgstr "" + +#: changedetectionio/forms.py:1022 +msgid "Remove password" +msgstr "密码" + +#: changedetectionio/forms.py:1023 +msgid "Render anchor tag content" +msgstr "渲染锚标记内容" + +#: changedetectionio/forms.py:1024 +msgid "Allow anonymous access to watch history page when password is enabled" +msgstr "启用密码后允许匿名访问观看历史页面" + +#: changedetectionio/forms.py:1026 +msgid "Hide muted watches from RSS feed" +msgstr "从 RSS 源中隐藏静音的手表" + +#: changedetectionio/forms.py:1029 +msgid "Enable RSS reader mode " +msgstr "启用 RSS 阅读器模式" + +#: changedetectionio/forms.py:1030 +msgid "Number of changes to show in watch RSS feed" +msgstr "观看 RSS 源中显示的更改数量" + +#: changedetectionio/forms.py:1032 changedetectionio/forms.py:1037 +msgid "Should contain zero or more attempts" +msgstr "应包含零次或多次尝试" + +#: changedetectionio/forms.py:1034 +msgid "Number of times the filter can be missing before sending a notification" +msgstr "发送通知之前过滤器可能丢失的次数" + +#: changedetectionio/forms.py:1057 +msgid "RegEx to extract" +msgstr "要提取的正则表达式" + +#: changedetectionio/forms.py:1058 +msgid "Extract as CSV" +msgstr "提取数据" + +#: changedetectionio/blueprint/backups/templates/overview.html:6 +msgid "Backups" +msgstr "备份" + +#: changedetectionio/blueprint/backups/templates/overview.html:9 +msgid "A backup is running!" +msgstr "备份正在运行!" + +#: changedetectionio/blueprint/backups/templates/overview.html:13 +msgid "" +"Here you can download and request a new backup, when a backup is " +"completed you will see it listed below." +msgstr "" + +#: changedetectionio/blueprint/backups/templates/overview.html:19 +msgid "Mb" +msgstr "MB" + +#: changedetectionio/blueprint/backups/templates/overview.html:24 +msgid "No backups found." +msgstr "未找到备份。" + +#: changedetectionio/blueprint/backups/templates/overview.html:28 +msgid "Create backup" +msgstr "备份" + +#: changedetectionio/blueprint/backups/templates/overview.html:30 +msgid "Remove backups" +msgstr "备份" + +#: changedetectionio/blueprint/imports/templates/import.html:9 +msgid "URL List" +msgstr "网址列表" + +#: changedetectionio/blueprint/imports/templates/import.html:10 +msgid "Distill.io" +msgstr "Distill.io" + +#: changedetectionio/blueprint/imports/templates/import.html:11 +msgid ".XLSX & Wachete" +msgstr ".XLSX 和瓦切特" + +#: changedetectionio/blueprint/imports/templates/import.html:20 +msgid "" +"Enter one URL per line, and optionally add tags for each URL after a " +"space, delineated by comma (,):" +msgstr "" + +#: changedetectionio/blueprint/imports/templates/import.html:22 +msgid "Example:" +msgstr "例子:" + +#: changedetectionio/blueprint/imports/templates/import.html:23 +msgid "URLs which do not pass validation will stay in the textarea." +msgstr "未通过验证的 URL 将保留在文本区域中。" + +#: changedetectionio/blueprint/imports/templates/import.html:44 +msgid "" +"Copy and Paste your Distill.io watch 'export' file, this should be a JSON" +" file." +msgstr "" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "This is" +msgstr "这是" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "experimental" +msgstr "实验性的" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "supported fields are" +msgstr "支持的字段有" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "the rest (including" +msgstr "其余的(包括" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "are ignored." +msgstr "被忽略。" + +#: changedetectionio/blueprint/imports/templates/import.html:48 +msgid "How to export?" +msgstr "如何导出?" + +#: changedetectionio/blueprint/imports/templates/import.html:49 +msgid "Be sure to set your default fetcher to Chrome if required." +msgstr "如果需要,请务必将默认提取器设置为 Chrome。" + +#: changedetectionio/blueprint/imports/templates/import.html:91 +msgid "Table of custom column and data types mapping for the" +msgstr "自定义列和数据类型映射表" + +#: changedetectionio/blueprint/imports/templates/import.html:91 +msgid "Custom mapping" +msgstr "自定义映射" + +#: changedetectionio/blueprint/imports/templates/import.html:91 +msgid "File mapping type." +msgstr "文件映射类型。" + +#: changedetectionio/blueprint/imports/templates/import.html:95 +msgid "Column #" +msgstr "柱子 #" + +#: changedetectionio/blueprint/imports/templates/import.html:101 +msgid "Type" +msgstr "类型" + +#: changedetectionio/blueprint/imports/templates/import.html:104 +msgid "none" +msgstr "没有任何" + +#: changedetectionio/blueprint/imports/templates/import.html:105 +msgid "URL" +msgstr "网址" + +#: changedetectionio/blueprint/imports/templates/import.html:107 +msgid "CSS/xPath filter" +msgstr "CSS/xPath 过滤器" + +#: changedetectionio/blueprint/imports/templates/import.html:108 +msgid "Group / Tag name(s)" +msgstr "观看组/标签" + +#: changedetectionio/blueprint/imports/templates/import.html:109 +msgid "Recheck time (minutes)" +msgstr "复检时间(分钟)" + +#: changedetectionio/blueprint/imports/templates/import.html:116 +msgid "Import" +msgstr "进口" + +#: changedetectionio/blueprint/settings/templates/notification-log.html:7 +msgid "Notification debug log" +msgstr "通知调试日志" + +#: changedetectionio/blueprint/settings/templates/settings.html:21 +#: changedetectionio/blueprint/tags/templates/edit-tag.html:27 +#: changedetectionio/blueprint/ui/templates/edit.html:47 +msgid "General" +msgstr "一般的" + +#: changedetectionio/blueprint/settings/templates/settings.html:23 +msgid "Fetching" +msgstr "搜寻中" + +#: changedetectionio/blueprint/settings/templates/settings.html:24 +msgid "Global Filters" +msgstr "全局过滤器" + +#: changedetectionio/blueprint/settings/templates/settings.html:25 +msgid "UI Options" +msgstr "用户界面选项" + +#: changedetectionio/blueprint/settings/templates/settings.html:26 +msgid "API" +msgstr "应用程序编程接口" + +#: changedetectionio/blueprint/settings/templates/settings.html:27 +msgid "RSS" +msgstr "RSS" + +#: changedetectionio/blueprint/settings/templates/settings.html:28 +msgid "Time & Date" +msgstr "时间和日期" + +#: changedetectionio/blueprint/settings/templates/settings.html:29 +msgid "CAPTCHA & Proxies" +msgstr "验证码和代理" + +#: changedetectionio/blueprint/settings/templates/settings.html:35 +msgid "Info" +msgstr "更多信息" + +#: changedetectionio/blueprint/settings/templates/settings.html:46 +msgid "Default recheck time for all watches, current system minimum is" +msgstr "所有手表默认复检时间,当前系统最小值为" + +#: changedetectionio/blueprint/settings/templates/settings.html:46 +msgid "seconds" +msgstr "秒" + +#: changedetectionio/blueprint/settings/templates/settings.html:46 +msgid "more info" +msgstr "更多信息" + +#: changedetectionio/blueprint/settings/templates/settings.html:390 +msgid "Python version:" +msgstr "Python版本:" + +#: changedetectionio/blueprint/settings/templates/settings.html:391 +msgid "Plugins active:" +msgstr "插件活跃:" + +#: changedetectionio/blueprint/settings/templates/settings.html:399 +msgid "No plugins active" +msgstr "没有激活的插件" + +#: changedetectionio/blueprint/settings/templates/settings.html:405 +msgid "Back" +msgstr "备份" + +#: changedetectionio/blueprint/settings/templates/settings.html:406 +msgid "Clear Snapshot History" +msgstr "清除/重置历史记录" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:28 +#: changedetectionio/blueprint/ui/templates/edit.html:56 +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "Filters & Triggers" +msgstr "过滤器和触发器" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:50 +msgid "These settings are" +msgstr "设置" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:50 +msgid "added" +msgstr "额外" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:50 +msgid "to any existing watch configurations." +msgstr "任何现有的手表配置。" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:53 +#: changedetectionio/blueprint/ui/templates/edit.html:321 +msgid "Text filtering" +msgstr "文本过滤" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:269 +msgid "Use with caution!" +msgstr "谨慎使用!" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:269 +msgid "This will easily fill up your email storage quota or flood other storages." +msgstr "这将很容易填满您的电子邮件存储配额或淹没其他存储。" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:80 +#: changedetectionio/blueprint/ui/templates/edit.html:276 +msgid "Look out!" +msgstr "退出" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:80 +#: changedetectionio/blueprint/ui/templates/edit.html:276 +msgid "Lookout!" +msgstr "退出" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "There are" +msgstr "有" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "system-wide notification URLs enabled" +msgstr "启用系统范围的通知 URL" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "this form will override notification settings for this watch only" +msgstr "此表单将仅覆盖此手表的通知设置" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "an empty Notification URL list here will still send notifications." +msgstr "此处的通知 URL 列表为空仍会发送通知。" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:84 +#: changedetectionio/blueprint/ui/templates/edit.html:280 +msgid "Use system defaults" +msgstr "使用系统默认值" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:11 +msgid "Add a new organisational tag" +msgstr "添加新的组织标签" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:14 +msgid "Watch group / tag" +msgstr "观看组/标签" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:21 +msgid "" +"Groups allows you to manage filters and notifications for multiple " +"watches under a single organisational tag." +msgstr "" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:31 +msgid "# Watches" +msgstr "# 手表" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:32 +msgid "Tag / Label name" +msgstr "标签/标签名称" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:42 +msgid "No website organisational tags/groups configured" +msgstr "未配置网站组织标签/组" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:53 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:249 +msgid "Edit" +msgstr "编辑" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:58 +msgid "Delete Group?" +msgstr "删除群组?" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:59 +#, python-format +msgid "" +"<p>Are you sure you want to delete group " +"<strong>%(title)s</strong>?</p><p>This action cannot be undone.</p>" +msgstr "" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:60 +#: changedetectionio/blueprint/tags/templates/groups-overview.html:61 +#: changedetectionio/blueprint/ui/templates/edit.html:490 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:73 +msgid "Delete" +msgstr "删除" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:61 +msgid "Deletes and removes tag" +msgstr "删除并移除标签" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:66 +msgid "Unlink Group?" +msgstr "取消群组链接?" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:67 +#, python-format +msgid "" +"<p>Are you sure you want to unlink all watches from group " +"<strong>%(title)s</strong>?</p><p>The tag will be kept but watches will " +"be removed from it.</p>" +msgstr "" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:68 +#: changedetectionio/blueprint/tags/templates/groups-overview.html:69 +msgid "Unlink" +msgstr "取消链接" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:69 +msgid "Keep the tag but unlink any watches" +msgstr "保留标签但取消所有手表的链接" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:70 +#: changedetectionio/blueprint/ui/templates/edit.html:500 +msgid "RSS Feed for this watch" +msgstr "此手表的 RSS 源" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:12 +msgid "" +"This will remove version history (snapshots) for ALL watches, but keep " +"your list of URLs!" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:13 +msgid "You may like to use the" +msgstr "您可能喜欢使用" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:13 +msgid "BACKUP" +msgstr "备份" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:13 +msgid "link first." +msgstr "先链接。" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:17 +msgid "Confirmation text" +msgstr "暂无信息" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:27 +msgid "Type in the word" +msgstr "输入单词" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:27 +msgid "clear" +msgstr "清除" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:27 +msgid "to confirm that you understand." +msgstr "以确认您已理解。" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:33 +msgid "Clear History!" +msgstr "清晰的历史记录" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:39 +#: changedetectionio/templates/base.html:271 +msgid "Cancel" +msgstr "取消" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:3 +msgid "Share diff as image" +msgstr "将差异共享为图像" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:3 +msgid "Share as Image" +msgstr "分享为图片" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:6 +msgid "Ignore any lines matching" +msgstr "忽略任何匹配的行" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:9 +msgid "Ignore any lines matching excluding digits" +msgstr "忽略任何匹配排除数字的行" + +#: changedetectionio/blueprint/ui/templates/diff.html:28 +msgid "From" +msgstr "从" + +#: changedetectionio/blueprint/ui/templates/diff.html:38 +msgid "To" +msgstr "到" + +#: changedetectionio/blueprint/ui/templates/diff.html:53 +msgid "Words" +msgstr "密码" + +#: changedetectionio/blueprint/ui/templates/diff.html:57 +msgid "Lines" +msgstr "登录" + +#: changedetectionio/blueprint/ui/templates/diff.html:61 +msgid "Ignore Whitespace" +msgstr "忽略空格" + +#: changedetectionio/blueprint/ui/templates/diff.html:65 +msgid "Same/non-changed" +msgstr "改变了" + +#: changedetectionio/blueprint/ui/templates/diff.html:69 +msgid "Removed" +msgstr "已删除" + +#: changedetectionio/blueprint/ui/templates/diff.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "Added" +msgstr "额外" + +#: changedetectionio/blueprint/ui/templates/diff.html:77 +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "Replaced" +msgstr "已更换" + +#: changedetectionio/blueprint/ui/templates/diff.html:82 +#: changedetectionio/blueprint/ui/templates/preview.html:36 +msgid "Keyboard:" +msgstr "键盘:" + +#: changedetectionio/blueprint/ui/templates/diff.html:83 +#: changedetectionio/blueprint/ui/templates/preview.html:37 +msgid "Previous" +msgstr "预览" + +#: changedetectionio/blueprint/ui/templates/diff.html:84 +#: changedetectionio/blueprint/ui/templates/preview.html:38 +msgid "Next" +msgstr "下一个" + +#: changedetectionio/blueprint/ui/templates/diff.html:91 +msgid "Jump to next difference" +msgstr "跳转到下一个差异" + +#: changedetectionio/blueprint/ui/templates/diff.html:91 +msgid "Jump" +msgstr "跳" + +#: changedetectionio/blueprint/ui/templates/diff.html:97 +#: changedetectionio/blueprint/ui/templates/preview.html:45 +msgid "Error Text" +msgstr "错误文本" + +#: changedetectionio/blueprint/ui/templates/diff.html:98 +#: changedetectionio/blueprint/ui/templates/preview.html:47 +msgid "Error Screenshot" +msgstr "错误截图" + +#: changedetectionio/blueprint/ui/templates/diff.html:99 +#: changedetectionio/blueprint/ui/templates/preview.html:50 +#: changedetectionio/processors/text_json_diff/processor.py:24 +msgid "Text" +msgstr "文本" + +#: changedetectionio/blueprint/ui/templates/diff.html:100 +#: changedetectionio/blueprint/ui/templates/preview.html:51 +msgid "Current screenshot" +msgstr "当前截图" + +#: changedetectionio/blueprint/ui/templates/diff.html:101 +msgid "Extract Data" +msgstr "提取数据" + +#: changedetectionio/blueprint/ui/templates/diff.html:107 +msgid "seconds ago." +msgstr "几秒钟前。" + +#: changedetectionio/blueprint/ui/templates/diff.html:114 +#: changedetectionio/blueprint/ui/templates/preview.html:59 +#: changedetectionio/blueprint/ui/templates/preview.html:66 +msgid "seconds ago" +msgstr "几秒钟前" + +#: changedetectionio/blueprint/ui/templates/diff.html:115 +msgid "Current error-ing screenshot from most recent request" +msgstr "最近请求的当前错误屏幕截图" + +#: changedetectionio/blueprint/ui/templates/diff.html:127 +msgid "Pro-tip: You can enable" +msgstr "专业提示:您可以启用" + +#: changedetectionio/blueprint/ui/templates/diff.html:127 +msgid "\"share access when password is enabled\"" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/diff.html:127 +msgid "from settings." +msgstr "设置" + +#: changedetectionio/blueprint/ui/templates/diff.html:133 +msgid "Goto single snapshot" +msgstr "转到单个快照" + +#: changedetectionio/blueprint/ui/templates/diff.html:138 +#: changedetectionio/blueprint/ui/templates/edit.html:125 +msgid "Tip:" +msgstr "提示:" + +#: changedetectionio/blueprint/ui/templates/diff.html:138 +msgid "Highlight text to share or add to ignore lists." +msgstr "突出显示要共享或添加到忽略列表的文本。" + +#: changedetectionio/blueprint/ui/templates/diff.html:144 +#: changedetectionio/blueprint/ui/templates/preview.html:80 +msgid "" +"For now, Differences are performed on text, not graphically, only the " +"latest screenshot is available." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/diff.html:149 +#: changedetectionio/blueprint/ui/templates/preview.html:86 +msgid "Current screenshot from most recent request" +msgstr "最近请求的当前屏幕截图" + +#: changedetectionio/blueprint/ui/templates/diff.html:151 +#: changedetectionio/blueprint/ui/templates/preview.html:88 +msgid "No screenshot available just yet! Try rechecking the page." +msgstr "目前还没有截图!尝试重新检查页面。" + +#: changedetectionio/blueprint/ui/templates/diff.html:154 +msgid "Screenshot requires Playwright/WebDriver enabled" +msgstr "屏幕截图需要启用 Playwright/WebDriver" + +#: changedetectionio/blueprint/ui/templates/edit.html:48 +msgid "Request" +msgstr "要求" + +#: changedetectionio/blueprint/ui/templates/edit.html:52 +msgid "Browser Steps" +msgstr "浏览器步骤" + +#: changedetectionio/blueprint/ui/templates/edit.html:55 +msgid "Visual Filter Selector" +msgstr "视觉过滤器选择器" + +#: changedetectionio/blueprint/ui/templates/edit.html:57 +msgid "Conditions" +msgstr "状况" + +#: changedetectionio/blueprint/ui/templates/edit.html:60 +msgid "Stats" +msgstr "设置" + +#: changedetectionio/blueprint/ui/templates/edit.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:313 +msgid "Some sites use JavaScript to create the content, for this you should" +msgstr "有些网站使用 JavaScript 来创建内容,为此您应该" + +#: changedetectionio/blueprint/ui/templates/edit.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:313 +msgid "use the Chrome/WebDriver Fetcher" +msgstr "使用 Chrome/WebDriver Fetcher" + +#: changedetectionio/blueprint/ui/templates/edit.html:74 +msgid "Variables are supported in the URL" +msgstr "URL 中支持变量" + +#: changedetectionio/blueprint/ui/templates/edit.html:74 +#: changedetectionio/blueprint/ui/templates/edit.html:180 +#: changedetectionio/blueprint/ui/templates/edit.html:189 +msgid "help and examples here" +msgstr "帮助和示例在这里" + +#: changedetectionio/blueprint/ui/templates/edit.html:78 +msgid "Organisational tag/group name used in the main listing page" +msgstr "主列表页面中使用的组织标签/组名称" + +#: changedetectionio/blueprint/ui/templates/edit.html:85 +msgid "" +"Automatically uses the page title if found, you can also use your own " +"title/description here" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:95 +msgid "The interval/amount of time between each check." +msgstr "每次检查之间的间隔/时间量。" + +#: changedetectionio/blueprint/ui/templates/edit.html:110 +msgid "" +"Sends a notification when the filter can no longer be seen on the page, " +"good for knowing when the page changed and your filter will not work " +"anymore." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:123 +msgid "Use the" +msgstr "使用" + +#: changedetectionio/blueprint/ui/templates/edit.html:123 +msgid "Basic" +msgstr "基本的" + +#: changedetectionio/blueprint/ui/templates/edit.html:123 +msgid "" +"method (default) where your watched site doesn't need Javascript to " +"render." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:124 +msgid "The" +msgstr "这" + +#: changedetectionio/blueprint/ui/templates/edit.html:124 +msgid "Chrome/Javascript" +msgstr "Chrome/Javascript" + +#: changedetectionio/blueprint/ui/templates/edit.html:124 +msgid "" +"method requires a network connection to a running WebDriver+Chrome " +"server, set by the ENV var 'WEBDRIVER_URL'." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:125 +msgid "Connect using Bright Data and Oxylabs Proxies, find out more here." +msgstr "使用 Bright Data 和 Oxylabs Proxies 进行连接,在此处了解更多信息。" + +#: changedetectionio/blueprint/ui/templates/edit.html:130 +msgid "Check/Scan all" +msgstr "重新检查所有" + +#: changedetectionio/blueprint/ui/templates/edit.html:133 +msgid "Choose a proxy for this watch" +msgstr "此手表的 RSS 源" + +#: changedetectionio/blueprint/ui/templates/edit.html:143 +msgid "" +"If you're having trouble waiting for the page to be fully rendered (text " +"missing etc), try increasing the 'wait' time here." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:145 +msgid "This will wait" +msgstr "这会等待" + +#: changedetectionio/blueprint/ui/templates/edit.html:145 +msgid "seconds before extracting the text." +msgstr "提取文本前几秒。" + +#: changedetectionio/blueprint/ui/templates/edit.html:147 +msgid "Using the current global default settings" +msgstr "使用当前全局默认设置" + +#: changedetectionio/blueprint/ui/templates/edit.html:152 +#: changedetectionio/blueprint/ui/templates/edit.html:165 +msgid "Show advanced options" +msgstr "显示高级选项" + +#: changedetectionio/blueprint/ui/templates/edit.html:157 +msgid "" +"Run this code before performing change detection, handy for filling in " +"fields and other actions" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:158 +msgid "More help and examples here" +msgstr "更多帮助和示例请参见此处" + +#: changedetectionio/blueprint/ui/templates/edit.html:180 +msgid "Variables are supported in the request body" +msgstr "请求正文中支持变量" + +#: changedetectionio/blueprint/ui/templates/edit.html:189 +msgid "Variables are supported in the request header values" +msgstr "请求标头值支持变量" + +#: changedetectionio/blueprint/ui/templates/edit.html:192 +msgid "Alert! Extra headers file found and will be added to this watch!" +msgstr "警报!找到额外的头文件并将其添加到此手表中!" + +#: changedetectionio/blueprint/ui/templates/edit.html:194 +msgid "Headers can be also read from a file in your data-directory" +msgstr "还可以从数据目录中的文件中读取标头" + +#: changedetectionio/blueprint/ui/templates/edit.html:194 +msgid "Read more here" +msgstr "在这里阅读更多内容" + +#: changedetectionio/blueprint/ui/templates/edit.html:197 +msgid "Not supported by Selenium browser" +msgstr "Selenium 浏览器不支持" + +#: changedetectionio/blueprint/ui/templates/edit.html:221 +msgid "Turn on text finder" +msgstr "打开文本查找器" + +#: changedetectionio/blueprint/ui/templates/edit.html:224 +msgid "Please wait, first browser step can take a little time to load.." +msgstr "请稍候,第一个浏览器步骤可能需要一些时间来加载。" + +#: changedetectionio/blueprint/ui/templates/edit.html:231 +msgid "Click here to Start" +msgstr "单击此处开始" + +#: changedetectionio/blueprint/ui/templates/edit.html:233 +msgid "Please allow 10-15 seconds for the browser to connect." +msgstr "请等待 10-15 秒让浏览器连接。" + +#: changedetectionio/blueprint/ui/templates/edit.html:242 +msgid "Press \"Play\" to start." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:249 +#: changedetectionio/blueprint/ui/templates/edit.html:419 +msgid "Visual Selector data is not ready, watch needs to be checked atleast once." +msgstr "视觉选择器数据尚未准备好,至少需要检查一次手表。" + +#: changedetectionio/blueprint/ui/templates/edit.html:253 +msgid "" +"Sorry, this functionality only works with fetchers that support " +"interactive Javascript (so far only Playwright based fetchers)" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:254 +#: changedetectionio/blueprint/ui/templates/edit.html:424 +msgid "You need to" +msgstr "你需要" + +#: changedetectionio/blueprint/ui/templates/edit.html:254 +#: changedetectionio/blueprint/ui/templates/edit.html:424 +msgid "Set the fetch method" +msgstr "设置获取方法" + +#: changedetectionio/blueprint/ui/templates/edit.html:254 +msgid "to one that supports interactive Javascript." +msgstr "到支持交互式 Javascript 的一个。" + +#: changedetectionio/blueprint/ui/templates/edit.html:297 +msgid "" +"Use the verify (✓) button to test if a condition passes against the " +"current snapshot." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:298 +msgid "Read a quick tutorial about" +msgstr "阅读有关以下内容的快速教程" + +#: changedetectionio/blueprint/ui/templates/edit.html:298 +msgid "using conditional web page changes here" +msgstr "此处使用条件网页更改" + +#: changedetectionio/blueprint/ui/templates/edit.html:303 +msgid "Activate preview" +msgstr "预览" + +#: changedetectionio/blueprint/ui/templates/edit.html:307 +msgid "Pro-tips:" +msgstr "专业提示:" + +#: changedetectionio/blueprint/ui/templates/edit.html:310 +msgid "Use the preview page to see your filters and triggers highlighted." +msgstr "使用预览页面查看突出显示的过滤器和触发器。" + +#: changedetectionio/blueprint/ui/templates/edit.html:322 +msgid "Limit trigger/ignore/block/extract to;" +msgstr "将触发/忽略/阻止/提取限制为;" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "" +"Note: Depending on the length and similarity of the text on each line, " +"the algorithm may consider an" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "addition" +msgstr "添加" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "instead of" +msgstr "而不是" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "replacement" +msgstr "替代品" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "for example." +msgstr "例如。" + +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "So it's always better to select" +msgstr "所以选择总是更好" + +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "when you're interested in new content." +msgstr "当您对新内容感兴趣时。" + +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "When content is merely moved in a list, it will also trigger an" +msgstr "当内容仅在列表中移动时,也会触发" + +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "consider enabling" +msgstr "考虑启用" + +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "Only trigger when unique lines appear" +msgstr "仅当出现唯一线条时触发" + +#: changedetectionio/blueprint/ui/templates/edit.html:332 +msgid "" +"Good for websites that just move the content around, and you want to know" +" when NEW content is added, compares new lines against all history for " +"this watch." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:340 +msgid "" +"Helps reduce changes detected caused by sites shuffling lines around, " +"combine with" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:340 +msgid "check unique lines" +msgstr "检查独特的线路" + +#: changedetectionio/blueprint/ui/templates/edit.html:340 +msgid "below." +msgstr "以下。" + +#: changedetectionio/blueprint/ui/templates/edit.html:344 +msgid "Remove any whitespace before and after each line of text" +msgstr "删除每行文本前后的所有空格" + +#: changedetectionio/blueprint/ui/templates/edit.html:358 +#: changedetectionio/blueprint/ui/templates/edit.html:361 +#: changedetectionio/blueprint/ui/templates/edit.html:417 +msgid "Loading..." +msgstr "加载中..." + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "The Visual Selector tool lets you select the" +msgstr "视觉选择器工具可让您选择" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "text" +msgstr "文本" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "" +"elements that will be used for the change detection. It automatically " +"fills-in the filters in the \"CSS/JSONPath/JQ/XPath Filters\" box of the" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "tab. Use" +msgstr "暂停" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "Shift+Click" +msgstr "Shift+单击" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "to select multiple items." +msgstr "选择多个项目。" + +#: changedetectionio/blueprint/ui/templates/edit.html:391 +msgid "Selection Mode:" +msgstr "选择方式:" + +#: changedetectionio/blueprint/ui/templates/edit.html:394 +msgid "Select by element" +msgstr "按元素选择" + +#: changedetectionio/blueprint/ui/templates/edit.html:398 +msgid "Draw area" +msgstr "绘图区" + +#: changedetectionio/blueprint/ui/templates/edit.html:406 +msgid "Clear selection" +msgstr "清除选择" + +#: changedetectionio/blueprint/ui/templates/edit.html:408 +msgid "One moment, fetching screenshot and element information.." +msgstr "一会儿,正在获取屏幕截图和元素信息.." + +#: changedetectionio/blueprint/ui/templates/edit.html:417 +msgid "Currently:" +msgstr "现在:" + +#: changedetectionio/blueprint/ui/templates/edit.html:423 +msgid "" +"Sorry, this functionality only works with fetchers that support " +"Javascript and screenshots (such as playwright etc)." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:424 +msgid "to one that supports Javascript and screenshots." +msgstr "到支持 Javascript 和屏幕截图的一个。" + +#: changedetectionio/blueprint/ui/templates/edit.html:441 +msgid "Check count" +msgstr "检查计数" + +#: changedetectionio/blueprint/ui/templates/edit.html:445 +msgid "Consecutive filter failures" +msgstr "连续过滤器故障" + +#: changedetectionio/blueprint/ui/templates/edit.html:449 +msgid "History length" +msgstr "历史" + +#: changedetectionio/blueprint/ui/templates/edit.html:453 +msgid "Last fetch duration" +msgstr "上次获取持续时间" + +#: changedetectionio/blueprint/ui/templates/edit.html:457 +msgid "Notification alert count" +msgstr "通知警报计数" + +#: changedetectionio/blueprint/ui/templates/edit.html:461 +msgid "Server type reply" +msgstr "服务器类型回复" + +#: changedetectionio/blueprint/ui/templates/edit.html:475 +msgid "Download latest HTML snapshot" +msgstr "下载最新的 HTML 快照" + +#: changedetectionio/blueprint/ui/templates/edit.html:488 +msgid "Delete Watch?" +msgstr "删除手表?" + +#: changedetectionio/blueprint/ui/templates/edit.html:489 +msgid "Are you sure you want to delete the watch for:" +msgstr "您确定要删除以下对象的手表吗:" + +#: changedetectionio/blueprint/ui/templates/edit.html:489 +msgid "This action cannot be undone." +msgstr "此操作无法撤消。" + +#: changedetectionio/blueprint/ui/templates/edit.html:495 +msgid "Clear History?" +msgstr "清晰的历史记录" + +#: changedetectionio/blueprint/ui/templates/edit.html:496 +msgid "Are you sure you want to clear all history for:" +msgstr "您确定要清除以下内容的所有历史记录:" + +#: changedetectionio/blueprint/ui/templates/edit.html:496 +msgid "" +"This will remove all snapshots and previous versions. This action cannot " +"be undone." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:497 +msgid "Clear History" +msgstr "清晰的历史记录" + +#: changedetectionio/blueprint/ui/templates/edit.html:499 +msgid "Clone & Edit" +msgstr "克隆和编辑" + +#: changedetectionio/blueprint/ui/templates/preview.html:22 +msgid "Select timestamp" +msgstr "选择时间戳" + +#: changedetectionio/blueprint/ui/templates/preview.html:31 +msgid "Go" +msgstr "去" + +#: changedetectionio/blueprint/ui/templates/preview.html:69 +msgid "Current erroring screenshot from most recent request" +msgstr "最近请求的当前错误屏幕截图" + +#: changedetectionio/blueprint/ui/templates/preview.html:91 +msgid "" +"Screenshot requires a Content Fetcher ( Sockpuppetbrowser, selenium, etc " +") that supports screenshots." +msgstr "" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:31 +msgid "Add a new web page change detection watch" +msgstr "添加新的网页更改检测监视" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:34 +msgid "Watch this URL!" +msgstr "关注这个网址!" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:35 +msgid "Edit first then Watch" +msgstr "先编辑后观看" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:45 +msgid "Create a shareable link" +msgstr "创建可共享链接" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:45 +msgid "Tip: You can also add 'shared' watches." +msgstr "提示:您还可以添加“共享”手表。" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:45 +msgid "More info" +msgstr "更多信息" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:53 +msgid "Pause" +msgstr "暂停" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:54 +msgid "UnPause" +msgstr "取消暂停" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:55 +msgid "Mute" +msgstr "沉默的" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:56 +msgid "UnMute" +msgstr "取消静音" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:57 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:248 +msgid "Recheck" +msgstr "复查" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:58 +msgid "Tag" +msgstr "标签" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:59 +msgid "Mark viewed" +msgstr "标记已查看" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:60 +msgid "Use default notification" +msgstr "使用默认通知" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:61 +msgid "Clear errors" +msgstr "清除错误" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:65 +msgid "Clear Histories" +msgstr "清晰的历史记录" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:66 +msgid "" +"<p>Are you sure you want to clear history for the selected " +"items?</p><p>This action cannot be undone.</p>" +msgstr "" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:67 +msgid "OK" +msgstr "好的" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:67 +msgid "Clear/reset history" +msgstr "清除/重置历史记录" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:71 +msgid "Delete Watches?" +msgstr "删除手表?" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:72 +msgid "" +"<p>Are you sure you want to delete the selected " +"watches?</strong></p><p>This action cannot be undone.</p>" +msgstr "" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:78 +msgid "Searching" +msgstr "搜寻中" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:80 +msgid "All" +msgstr "全部" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:118 +msgid "Website" +msgstr "网站" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:120 +msgid "Restock & Price" +msgstr "补货及价格" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:122 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:123 +msgid "Last" +msgstr "最后的" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:122 +msgid "Checked" +msgstr "已检查" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:123 +msgid "Changed" +msgstr "改变了" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:130 +msgid "No website watches configured, please add a URL in the box above, or" +msgstr "未配置网站监视,请在上面的框中添加 URL,或者" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:130 +msgid "import a list" +msgstr "导入列表" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:213 +msgid "Detecting restock and price" +msgstr "检测补货和价格" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:215 +msgid "In stock" +msgstr "有存货" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:215 +msgid "Not in stock" +msgstr "没有库存" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:221 +msgid "Price" +msgstr "价格" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:226 +msgid "No information" +msgstr "暂无信息" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:234 +#: changedetectionio/templates/base.html:248 +msgid "Checking now" +msgstr "立即检查" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:247 +msgid "Queued" +msgstr "排队" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:250 +msgid "History" +msgstr "历史" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:251 +msgid "Preview" +msgstr "预览" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:260 +msgid "With errors" +msgstr "有错误" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:263 +msgid "Mark all viewed" +msgstr "标记所有已查看" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:267 +#, python-format +msgid "Mark all viewed in '%(title)s'" +msgstr "标记所有在“%(title)s”中查看过的内容" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:271 +msgid "Unread" +msgstr "未读" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:274 +msgid "Recheck all" +msgstr "重新检查所有" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:274 +#, python-format +msgid "in '%(title)s'" +msgstr "在“%(title)s”中" + +#: changedetectionio/processors/image_ssim_diff/forms.py:19 +#: changedetectionio/processors/image_ssim_diff/forms.py:69 +msgid "Bounding box value is too long" +msgstr "边界框值太长" + +#: changedetectionio/processors/image_ssim_diff/forms.py:23 +msgid "Bounding box must be in format: x,y,width,height (integers only)" +msgstr "边界框的格式必须为:x,y,宽度,高度(仅限整数)" + +#: changedetectionio/processors/image_ssim_diff/forms.py:29 +msgid "Bounding box values must be non-negative" +msgstr "边界框值必须是非负数" + +#: changedetectionio/processors/image_ssim_diff/forms.py:31 +msgid "Bounding box values are too large" +msgstr "边界框值太大" + +#: changedetectionio/processors/image_ssim_diff/forms.py:40 +msgid "Selection mode must be either \"element\" or \"draw\"" +msgstr "" + +#: changedetectionio/processors/image_ssim_diff/forms.py:47 +msgid "Minimum Change Percentage" +msgstr "最小变化百分比" + +#: changedetectionio/processors/image_ssim_diff/forms.py:56 +msgid "Pixel Difference Sensitivity" +msgstr "像素差异灵敏度" + +#: changedetectionio/processors/image_ssim_diff/forms.py:58 +msgid "Use global default" +msgstr "使用系统默认值" + +#: changedetectionio/processors/image_ssim_diff/forms.py:66 +msgid "Bounding Box" +msgstr "边界框" + +#: changedetectionio/processors/image_ssim_diff/forms.py:76 +msgid "Selection Mode" +msgstr "选择方式:" + +#: changedetectionio/processors/image_ssim_diff/forms.py:79 +msgid "Selection mode value is too long" +msgstr "选择模式值太长" + +#: changedetectionio/processors/image_ssim_diff/forms.py:87 +msgid "Screenshot Comparison" +msgstr "截图对比" + +#: changedetectionio/processors/image_ssim_diff/processor.py:20 +msgid "Visual / Image screenshot change detection" +msgstr "视觉/图像截图变化检测" + +#: changedetectionio/processors/image_ssim_diff/processor.py:21 +msgid "Compares screenshots using fast OpenCV algorithm, 10-100x faster than SSIM" +msgstr "使用快速 OpenCV 算法比较屏幕截图,比 SSIM 快 10-100 倍" + +#: changedetectionio/processors/image_ssim_diff/processor.py:23 +msgid "Visual" +msgstr "视觉的" + +#: changedetectionio/processors/restock_diff/forms.py:15 +msgid "Re-stock detection" +msgstr "补货检测" + +#: changedetectionio/processors/restock_diff/forms.py:16 +msgid "In Stock only (Out Of Stock -> In Stock only)" +msgstr "仅有库存(缺货 -> 仅有库存)" + +#: changedetectionio/processors/restock_diff/forms.py:17 +msgid "Any availability changes" +msgstr "任何可用性变更" + +#: changedetectionio/processors/restock_diff/forms.py:18 +msgid "Off, don't follow availability/restock" +msgstr "关闭,不遵循库存/补货情况" + +#: changedetectionio/processors/restock_diff/forms.py:21 +msgid "Below price to trigger notification" +msgstr "低于价格触发通知" + +#: changedetectionio/processors/restock_diff/forms.py:22 +#: changedetectionio/processors/restock_diff/forms.py:24 +msgid "No limit" +msgstr "无限制" + +#: changedetectionio/processors/restock_diff/forms.py:23 +msgid "Above price to trigger notification" +msgstr "高于价格触发通知" + +#: changedetectionio/processors/restock_diff/forms.py:25 +#, python-format +msgid "Threshold in %% for price changes since the original price" +msgstr "自原始价格以来价格变化的阈值(百分比)" + +#: changedetectionio/processors/restock_diff/forms.py:28 +msgid "Should be between 0 and 100" +msgstr "应介于 0 到 100 之间" + +#: changedetectionio/processors/restock_diff/forms.py:31 +msgid "Follow price changes" +msgstr "关注价格变化" + +#: changedetectionio/processors/restock_diff/forms.py:37 +msgid "Restock & Price Detection" +msgstr "补货及价格" + +#: changedetectionio/processors/restock_diff/processor.py:11 +msgid "Re-stock & Price detection for pages with a SINGLE product" +msgstr "单个产品页面的补货和价格检测" + +#: changedetectionio/processors/restock_diff/processor.py:12 +msgid "Detects if the product goes back to in-stock" +msgstr "检测产品是否恢复库存" + +#: changedetectionio/processors/restock_diff/processor.py:14 +msgid "Restock" +msgstr "补货" + +#: changedetectionio/processors/text_json_diff/processor.py:21 +msgid "Webpage Text/HTML, JSON and PDF changes" +msgstr "网页文本/HTML、JSON 和 PDF 更改" + +#: changedetectionio/processors/text_json_diff/processor.py:22 +msgid "Detects all text changes where possible" +msgstr "尽可能检测所有文本更改" + +#: changedetectionio/templates/base.html:77 +msgid "GROUPS" +msgstr "团体" + +#: changedetectionio/templates/base.html:80 +msgid "SETTINGS" +msgstr "设置" + +#: changedetectionio/templates/base.html:83 +msgid "IMPORT" +msgstr "进口" + +#: changedetectionio/templates/base.html:86 +msgid "BACKUPS" +msgstr "备份" + +#: changedetectionio/templates/base.html:90 +msgid "EDIT" +msgstr "编辑" + +#: changedetectionio/templates/base.html:100 +msgid "LOG OUT" +msgstr "退出" + +#: changedetectionio/templates/base.html:109 +msgid "Search, or Use Alt+S Key" +msgstr "搜索或使用 Alt+S 键" + +#: changedetectionio/templates/base.html:116 +msgid "Toggle Light/Dark Mode" +msgstr "切换亮/暗模式" + +#: changedetectionio/templates/base.html:117 +msgid "Toggle light/dark mode" +msgstr "切换亮/暗模式" + +#: changedetectionio/templates/base.html:127 +msgid "Change Language" +msgstr "更改语言" + +#: changedetectionio/templates/base.html:128 +msgid "Change language" +msgstr "更改语言" + +#: changedetectionio/templates/base.html:249 +msgid "Real-time updates offline" +msgstr "离线实时更新" + +#: changedetectionio/templates/base.html:259 +msgid "Select Language" +msgstr "选择语言" + +#: changedetectionio/templates/login.html:10 +msgid "Password" +msgstr "密码" + +#: changedetectionio/templates/login.html:16 +msgid "Login" +msgstr "登录" + diff --git a/changedetectionio/translations/zh_TW/LC_MESSAGES/messages.mo b/changedetectionio/translations/zh_TW/LC_MESSAGES/messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..f378c422045cdc2ddcf20beec7b44550d4328623 GIT binary patch literal 25564 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 afUv&C$vW)f(q&uo-QD@)FL8SGoc{y>flWaG literal 0 HcmV?d00001 diff --git a/changedetectionio/translations/zh_TW/LC_MESSAGES/messages.po b/changedetectionio/translations/zh_TW/LC_MESSAGES/messages.po new file mode 100644 index 000000000..15c2ea8ca --- /dev/null +++ b/changedetectionio/translations/zh_TW/LC_MESSAGES/messages.po @@ -0,0 +1,1928 @@ +# Chinese (Traditional, Taiwan) translations for PROJECT. +# Copyright (C) 2026 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2026. +# +msgid "" +msgstr "" +"Project-Id-Version: PROJECT VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2026-01-02 13:32+0100\n" +"PO-Revision-Date: 2026-01-02 12:37+0100\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language: zh_Hant_TW\n" +"Language-Team: zh_Hant_TW <LL@li.org>\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.17.0\n" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:241 +#: changedetectionio/flask_app.py:213 changedetectionio/flask_app.py:225 +#: changedetectionio/flask_app.py:246 +#: changedetectionio/realtime/socket_server.py:171 +msgid "Not yet" +msgstr "還沒有" + +#: changedetectionio/forms.py:62 changedetectionio/forms.py:242 +msgid "" +"At least one time interval (weeks, days, hours, minutes, or seconds) must" +" be specified." +msgstr "" + +#: changedetectionio/forms.py:63 +msgid "" +"At least one time interval (weeks, days, hours, minutes, or seconds) must" +" be specified when not using global settings." +msgstr "" + +#: changedetectionio/forms.py:163 +msgid "Invalid time format. Use HH:MM." +msgstr "時間格式無效。使用時:分。" + +#: changedetectionio/forms.py:179 +msgid "Not a valid timezone name" +msgstr "不是有效的時區名稱" + +#: changedetectionio/forms.py:182 +msgid "not set" +msgstr "還沒有" + +#: changedetectionio/forms.py:183 +msgid "Start At" +msgstr "統計數據" + +#: changedetectionio/forms.py:184 +msgid "Run duration" +msgstr "暫無信息" + +#: changedetectionio/forms.py:187 +msgid "Use time scheduler" +msgstr "使用時間調度器" + +#: changedetectionio/forms.py:197 +msgid "Optional timezone to run in" +msgstr "運行時的可選時區" + +#: changedetectionio/forms.py:211 +msgid "Monday" +msgstr "週一" + +#: changedetectionio/forms.py:212 +msgid "Tuesday" +msgstr "週二" + +#: changedetectionio/forms.py:213 +msgid "Wednesday" +msgstr "週三" + +#: changedetectionio/forms.py:214 +msgid "Thursday" +msgstr "週四" + +#: changedetectionio/forms.py:215 +msgid "Friday" +msgstr "星期五" + +#: changedetectionio/forms.py:216 +msgid "Saturday" +msgstr "週六" + +#: changedetectionio/forms.py:217 +msgid "Sunday" +msgstr "星期日" + +#: changedetectionio/forms.py:250 +msgid "Weeks" +msgstr "週數" + +#: changedetectionio/forms.py:250 changedetectionio/forms.py:251 +#: changedetectionio/forms.py:252 changedetectionio/forms.py:253 +#: changedetectionio/forms.py:254 changedetectionio/forms.py:957 +msgid "Should contain zero or more seconds" +msgstr "應包含零或更多秒" + +#: changedetectionio/forms.py:251 +msgid "Days" +msgstr "天" + +#: changedetectionio/forms.py:252 +msgid "Hours" +msgstr "字" + +#: changedetectionio/forms.py:253 +msgid "Minutes" +msgstr "沉默的" + +#: changedetectionio/forms.py:254 +msgid "Seconds" +msgstr "秒" + +#: changedetectionio/forms.py:459 +msgid "Notification Body and Title is required when a Notification URL is used" +msgstr "使用通知 URL 時需要通知正文和標題" + +#: changedetectionio/forms.py:488 +#, python-format +msgid "'%s' is not a valid AppRise URL." +msgstr "“%s”不是有效的 AppRise URL。" + +#: changedetectionio/forms.py:561 changedetectionio/forms.py:580 +#, python-format +msgid "RegEx '%s' is not a valid regular expression." +msgstr "RegEx“%s”不是有效的正則表達式。" + +#: changedetectionio/forms.py:621 changedetectionio/forms.py:636 +#, python-format +msgid "'%s' is not a valid XPath expression. (%s)" +msgstr "“%s”不是有效的 XPath 表達式。 (%s)" + +#: changedetectionio/forms.py:656 +#, python-format +msgid "'%s' is not a valid JSONPath expression. (%s)" +msgstr "“%s”不是有效的 JSONPath 表達式。 (%s)" + +#: changedetectionio/forms.py:678 +#, python-format +msgid "'%s' is not a valid jq expression. (%s)" +msgstr "“%s”不是有效的 jq 表達式。 (%s)" + +#: changedetectionio/forms.py:724 +msgid "Empty value not allowed." +msgstr "不允許為空值。" + +#: changedetectionio/forms.py:726 +msgid "Invalid value." +msgstr "無效值。" + +#: changedetectionio/forms.py:733 +msgid "Watch" +msgstr "# 手錶" + +#: changedetectionio/forms.py:734 changedetectionio/forms.py:768 +msgid "Processor" +msgstr "處理器" + +#: changedetectionio/forms.py:735 +msgid "Edit > Watch" +msgstr "先編輯後觀看" + +#: changedetectionio/forms.py:748 changedetectionio/forms.py:996 +msgid "Fetch Method" +msgstr "設置獲取方法" + +#: changedetectionio/forms.py:749 +msgid "Notification Body" +msgstr "通知" + +#: changedetectionio/forms.py:750 +msgid "Notification format" +msgstr "通知" + +#: changedetectionio/forms.py:751 +msgid "Notification Title" +msgstr "通知" + +#: changedetectionio/forms.py:752 +msgid "Notification URL List" +msgstr "通知" + +#: changedetectionio/forms.py:753 +msgid "Processor - What do you want to achieve?" +msgstr "處理器 - 您想要實現什麼?" + +#: changedetectionio/forms.py:754 +msgid "Default timezone for watch check scheduler" +msgstr "手錶檢查調度程序的默認時區" + +#: changedetectionio/forms.py:755 +msgid "Wait seconds before extracting text" +msgstr "提取文本前幾秒。" + +#: changedetectionio/forms.py:755 +msgid "Should contain one or more seconds" +msgstr "應包含一秒或多秒" + +#: changedetectionio/forms.py:769 +msgid "URLs" +msgstr "網址" + +#: changedetectionio/forms.py:770 +msgid "Upload .xlsx file" +msgstr "上傳 .xlsx 文件" + +#: changedetectionio/forms.py:770 +msgid "Must be .xlsx file!" +msgstr "必須是 .xlsx 文件!" + +#: changedetectionio/forms.py:771 +msgid "File mapping" +msgstr "文件映射類型。" + +#: changedetectionio/forms.py:775 +msgid "Operation" +msgstr "用戶界面選項" + +#: changedetectionio/forms.py:778 +msgid "Selector" +msgstr "選擇方式:" + +#: changedetectionio/forms.py:779 +msgid "value" +msgstr "暫停" + +#: changedetectionio/forms.py:798 +msgid "Use global settings for time between check and scheduler." +msgstr "使用全局設置檢查和調度程序之間的時間。" + +#: changedetectionio/forms.py:800 +msgid "CSS/JSONPath/JQ/XPath Filters" +msgstr "CSS/xPath 過濾器" + +#: changedetectionio/forms.py:802 changedetectionio/forms.py:998 +msgid "Remove elements" +msgstr "已刪除" + +#: changedetectionio/forms.py:804 +msgid "Extract text" +msgstr "提取數據" + +#: changedetectionio/blueprint/imports/templates/import.html:106 +#: changedetectionio/forms.py:806 +msgid "Title" +msgstr "標題" + +#: changedetectionio/forms.py:808 +msgid "Ignore lines containing" +msgstr "忽略任何匹配的行" + +#: changedetectionio/forms.py:810 +msgid "Request body" +msgstr "要求" + +#: changedetectionio/forms.py:811 +msgid "Request method" +msgstr "要求" + +#: changedetectionio/forms.py:812 +msgid "Ignore status codes (process non-2xx status codes as normal)" +msgstr "忽略狀態代碼(正常處理非 2xx 狀態代碼)" + +#: changedetectionio/forms.py:813 +msgid "Only trigger when unique lines appear in all history" +msgstr "僅當出現唯一線條時觸發" + +#: changedetectionio/blueprint/ui/templates/edit.html:336 +#: changedetectionio/forms.py:814 +msgid "Remove duplicate lines of text" +msgstr "刪除重複的文本行" + +#: changedetectionio/forms.py:815 +msgid "Sort text alphabetically" +msgstr "按字母順序對文本進行排序" + +#: changedetectionio/forms.py:816 changedetectionio/forms.py:1025 +msgid "Strip ignored lines" +msgstr "去掉忽略的行" + +#: changedetectionio/forms.py:817 +msgid "Trim whitespace before and after text" +msgstr "刪除每行文本前後的所有空格" + +#: changedetectionio/forms.py:819 +msgid "Added lines" +msgstr "線路" + +#: changedetectionio/forms.py:820 +msgid "Replaced/changed lines" +msgstr "更換/更改線路" + +#: changedetectionio/forms.py:821 +msgid "Removed lines" +msgstr "已刪除" + +#: changedetectionio/forms.py:823 +msgid "Keyword triggers - Trigger/wait for text" +msgstr "關鍵字觸發器 - 觸發/等待文本" + +#: changedetectionio/forms.py:826 +msgid "Block change-detection while text matches" +msgstr "文本匹配時阻止更改檢測" + +#: changedetectionio/forms.py:827 +msgid "Execute JavaScript before change detection" +msgstr "在更改檢測之前執行 JavaScript" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:17 +#: changedetectionio/forms.py:829 changedetectionio/forms.py:1053 +msgid "Save" +msgstr "節省" + +#: changedetectionio/forms.py:831 +msgid "Proxy" +msgstr "代理人" + +#: changedetectionio/forms.py:833 +msgid "Send a notification when the filter can no longer be found on the page" +msgstr "當頁面上找不到過濾器時發送通知" + +#: changedetectionio/blueprint/settings/templates/settings.html:22 +#: changedetectionio/blueprint/tags/templates/edit-tag.html:32 +#: changedetectionio/blueprint/ui/templates/edit.html:59 +#: changedetectionio/forms.py:834 +msgid "Notifications" +msgstr "通知" + +#: changedetectionio/forms.py:834 +msgid "Muted" +msgstr "沉默的" + +#: changedetectionio/forms.py:834 +msgid "On" +msgstr "沒有任何" + +#: changedetectionio/forms.py:835 +msgid "Attach screenshot to notification (where possible)" +msgstr "將屏幕截圖附加到通知(如果可能)" + +#: changedetectionio/forms.py:837 +msgid "Match" +msgstr "# 手錶" + +#: changedetectionio/forms.py:837 +msgid "Match all of the following" +msgstr "匹配以下所有內容" + +#: changedetectionio/forms.py:837 +msgid "Match any of the following" +msgstr "匹配以下任意一項" + +#: changedetectionio/forms.py:839 +msgid "Use page <title> in list" +msgstr "使用列表中的頁面<標題>" + +#: changedetectionio/forms.py:856 +msgid "Body must be empty when Request Method is set to GET" +msgstr "當請求方法設置為 GET 時,正文必須為空" + +#: changedetectionio/forms.py:865 changedetectionio/forms.py:879 +#: changedetectionio/forms.py:894 +#, python-format +msgid "Invalid template syntax configuration: %(error)s" +msgstr "模板語法配置無效:%(error)s" + +#: changedetectionio/forms.py:869 changedetectionio/forms.py:883 +#, python-format +msgid "Invalid template syntax: %(error)s" +msgstr "無效的模板語法:%(error)s" + +#: changedetectionio/forms.py:898 +#, python-format +msgid "Invalid template syntax in \"%(header)s\" header: %(error)s" +msgstr "" + +#: changedetectionio/forms.py:922 changedetectionio/forms.py:934 +msgid "Name" +msgstr "取消靜音" + +#: changedetectionio/forms.py:923 +msgid "Proxy URL" +msgstr "代理網址" + +#: changedetectionio/forms.py:928 +msgid "Proxy URLs must start with http://, https:// or socks5://" +msgstr "代理 URL 必須以 http://、https:// 或ocks5:// 開頭" + +#: changedetectionio/forms.py:935 +msgid "Browser connection URL" +msgstr "瀏覽器連接網址" + +#: changedetectionio/forms.py:940 +msgid "Browser URLs must start with wss:// or ws://" +msgstr "瀏覽器 URL 必須以 wss:// 或 ws:// 開頭" + +#: changedetectionio/forms.py:946 +msgid "Plaintext requests" +msgstr "明文請求" + +#: changedetectionio/forms.py:948 +msgid "Chrome requests" +msgstr "要求" + +#: changedetectionio/forms.py:954 +msgid "Default proxy" +msgstr "默認代理" + +#: changedetectionio/forms.py:955 +msgid "Random jitter seconds ± check" +msgstr "隨機抖動秒±檢查" + +#: changedetectionio/forms.py:959 +msgid "Number of fetch workers" +msgstr "取貨工人數量" + +#: changedetectionio/forms.py:962 +msgid "Should be between 1 and 50" +msgstr "應介於 1 到 50 之間" + +#: changedetectionio/forms.py:964 +msgid "Requests timeout in seconds" +msgstr "請求超時(以秒為單位)" + +#: changedetectionio/forms.py:967 +msgid "Should be between 1 and 999" +msgstr "應介於 1 到 999 之間" + +#: changedetectionio/forms.py:972 +msgid "Default User-Agent overrides" +msgstr "默認用戶代理覆蓋" + +#: changedetectionio/forms.py:978 +msgid "Both a name, and a Proxy URL is required." +msgstr "名稱和代理 URL 都是必需的。" + +#: changedetectionio/forms.py:982 +msgid "Open 'History' page in a new tab" +msgstr "在新選項卡中打開“歷史記錄”頁面" + +#: changedetectionio/forms.py:983 +msgid "Realtime UI Updates Enabled" +msgstr "離線實時更新" + +#: changedetectionio/forms.py:984 +msgid "Favicons Enabled" +msgstr "考慮啟用" + +#: changedetectionio/forms.py:985 +msgid "Use page <title> in watch overview list" +msgstr "在觀看概覽列表中使用頁面<標題>" + +#: changedetectionio/forms.py:990 +msgid "API access token security check enabled" +msgstr "已啟用 API 訪問令牌安全檢查" + +#: changedetectionio/forms.py:991 +msgid "Notification base URL override" +msgstr "通知警報計數" + +#: changedetectionio/forms.py:995 +msgid "Treat empty pages as a change?" +msgstr "將空頁視為更改?" + +#: changedetectionio/forms.py:997 +msgid "Ignore Text" +msgstr "錯誤文本" + +#: changedetectionio/forms.py:999 +msgid "Ignore whitespace" +msgstr "忽略空格" + +#: changedetectionio/forms.py:1006 +#: changedetectionio/processors/image_ssim_diff/forms.py:50 +msgid "Must be between 0 and 100" +msgstr "必須介於 0 到 100 之間" + +#: changedetectionio/forms.py:1013 +msgid "Pager size" +msgstr "尋呼機尺寸" + +#: changedetectionio/forms.py:1016 +msgid "Should be atleast zero (disabled)" +msgstr "應至少為零(禁用)" + +#: changedetectionio/forms.py:1018 +msgid "RSS Content format" +msgstr "RSS 內容格式" + +#: changedetectionio/forms.py:1019 +msgid "RSS <description> body built from" +msgstr "RSS <描述> 正文構建於" + +#: changedetectionio/forms.py:1020 +msgid "RSS \"System default\" template override" +msgstr "" + +#: changedetectionio/forms.py:1022 +msgid "Remove password" +msgstr "密碼" + +#: changedetectionio/forms.py:1023 +msgid "Render anchor tag content" +msgstr "渲染錨標記內容" + +#: changedetectionio/forms.py:1024 +msgid "Allow anonymous access to watch history page when password is enabled" +msgstr "啟用密碼後允許匿名訪問觀看歷史記錄頁面" + +#: changedetectionio/forms.py:1026 +msgid "Hide muted watches from RSS feed" +msgstr "從 RSS 源中隱藏靜音的手錶" + +#: changedetectionio/forms.py:1029 +msgid "Enable RSS reader mode " +msgstr "啟用 RSS 閱讀器模式" + +#: changedetectionio/forms.py:1030 +msgid "Number of changes to show in watch RSS feed" +msgstr "觀看 RSS 源中顯示的更改數量" + +#: changedetectionio/forms.py:1032 changedetectionio/forms.py:1037 +msgid "Should contain zero or more attempts" +msgstr "應包含零次或多次嘗試" + +#: changedetectionio/forms.py:1034 +msgid "Number of times the filter can be missing before sending a notification" +msgstr "發送通知之前過濾器可能丟失的次數" + +#: changedetectionio/forms.py:1057 +msgid "RegEx to extract" +msgstr "要提取的正則表達式" + +#: changedetectionio/forms.py:1058 +msgid "Extract as CSV" +msgstr "提取數據" + +#: changedetectionio/blueprint/backups/templates/overview.html:6 +msgid "Backups" +msgstr "備份" + +#: changedetectionio/blueprint/backups/templates/overview.html:9 +msgid "A backup is running!" +msgstr "備份正在運行!" + +#: changedetectionio/blueprint/backups/templates/overview.html:13 +msgid "" +"Here you can download and request a new backup, when a backup is " +"completed you will see it listed below." +msgstr "" + +#: changedetectionio/blueprint/backups/templates/overview.html:19 +msgid "Mb" +msgstr "MB" + +#: changedetectionio/blueprint/backups/templates/overview.html:24 +msgid "No backups found." +msgstr "未找到備份。" + +#: changedetectionio/blueprint/backups/templates/overview.html:28 +msgid "Create backup" +msgstr "創建備份" + +#: changedetectionio/blueprint/backups/templates/overview.html:30 +msgid "Remove backups" +msgstr "刪除備份" + +#: changedetectionio/blueprint/imports/templates/import.html:9 +msgid "URL List" +msgstr "網址列表" + +#: changedetectionio/blueprint/imports/templates/import.html:10 +msgid "Distill.io" +msgstr "Distill.io" + +#: changedetectionio/blueprint/imports/templates/import.html:11 +msgid ".XLSX & Wachete" +msgstr ".XLSX 和瓦切特" + +#: changedetectionio/blueprint/imports/templates/import.html:20 +msgid "" +"Enter one URL per line, and optionally add tags for each URL after a " +"space, delineated by comma (,):" +msgstr "" + +#: changedetectionio/blueprint/imports/templates/import.html:22 +msgid "Example:" +msgstr "例子:" + +#: changedetectionio/blueprint/imports/templates/import.html:23 +msgid "URLs which do not pass validation will stay in the textarea." +msgstr "未通過驗證的 URL 將保留在文本區域中。" + +#: changedetectionio/blueprint/imports/templates/import.html:44 +msgid "" +"Copy and Paste your Distill.io watch 'export' file, this should be a JSON" +" file." +msgstr "" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "This is" +msgstr "這是" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "experimental" +msgstr "實驗性的" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "supported fields are" +msgstr "支持的字段有" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "the rest (including" +msgstr "其餘的(包括" + +#: changedetectionio/blueprint/imports/templates/import.html:45 +msgid "are ignored." +msgstr "被忽略。" + +#: changedetectionio/blueprint/imports/templates/import.html:48 +msgid "How to export?" +msgstr "如何導出?" + +#: changedetectionio/blueprint/imports/templates/import.html:49 +msgid "Be sure to set your default fetcher to Chrome if required." +msgstr "如果需要,請務必將默認提取器設置為 Chrome。" + +#: changedetectionio/blueprint/imports/templates/import.html:91 +msgid "Table of custom column and data types mapping for the" +msgstr "自定義列和數據類型映射表" + +#: changedetectionio/blueprint/imports/templates/import.html:91 +msgid "Custom mapping" +msgstr "自定義映射" + +#: changedetectionio/blueprint/imports/templates/import.html:91 +msgid "File mapping type." +msgstr "文件映射類型。" + +#: changedetectionio/blueprint/imports/templates/import.html:95 +msgid "Column #" +msgstr "柱子 #" + +#: changedetectionio/blueprint/imports/templates/import.html:101 +msgid "Type" +msgstr "類型" + +#: changedetectionio/blueprint/imports/templates/import.html:104 +msgid "none" +msgstr "沒有任何" + +#: changedetectionio/blueprint/imports/templates/import.html:105 +msgid "URL" +msgstr "網址" + +#: changedetectionio/blueprint/imports/templates/import.html:107 +msgid "CSS/xPath filter" +msgstr "CSS/xPath 過濾器" + +#: changedetectionio/blueprint/imports/templates/import.html:108 +msgid "Group / Tag name(s)" +msgstr "組/標籤名稱" + +#: changedetectionio/blueprint/imports/templates/import.html:109 +msgid "Recheck time (minutes)" +msgstr "複檢時間(分鐘)" + +#: changedetectionio/blueprint/imports/templates/import.html:116 +msgid "Import" +msgstr "進口" + +#: changedetectionio/blueprint/settings/templates/notification-log.html:7 +msgid "Notification debug log" +msgstr "通知調試日誌" + +#: changedetectionio/blueprint/settings/templates/settings.html:21 +#: changedetectionio/blueprint/tags/templates/edit-tag.html:27 +#: changedetectionio/blueprint/ui/templates/edit.html:47 +msgid "General" +msgstr "一般的" + +#: changedetectionio/blueprint/settings/templates/settings.html:23 +msgid "Fetching" +msgstr "抓取" + +#: changedetectionio/blueprint/settings/templates/settings.html:24 +msgid "Global Filters" +msgstr "全局過濾器" + +#: changedetectionio/blueprint/settings/templates/settings.html:25 +msgid "UI Options" +msgstr "用戶界面選項" + +#: changedetectionio/blueprint/settings/templates/settings.html:26 +msgid "API" +msgstr "應用程序編程接口" + +#: changedetectionio/blueprint/settings/templates/settings.html:27 +msgid "RSS" +msgstr "RSS" + +#: changedetectionio/blueprint/settings/templates/settings.html:28 +msgid "Time & Date" +msgstr "時間和日期" + +#: changedetectionio/blueprint/settings/templates/settings.html:29 +msgid "CAPTCHA & Proxies" +msgstr "驗證碼和代理" + +#: changedetectionio/blueprint/settings/templates/settings.html:35 +msgid "Info" +msgstr "資訊" + +#: changedetectionio/blueprint/settings/templates/settings.html:46 +msgid "Default recheck time for all watches, current system minimum is" +msgstr "所有手錶默認複檢時間,當前系統最小值為" + +#: changedetectionio/blueprint/settings/templates/settings.html:46 +msgid "seconds" +msgstr "秒" + +#: changedetectionio/blueprint/settings/templates/settings.html:46 +msgid "more info" +msgstr "更多信息" + +#: changedetectionio/blueprint/settings/templates/settings.html:390 +msgid "Python version:" +msgstr "Python版本:" + +#: changedetectionio/blueprint/settings/templates/settings.html:391 +msgid "Plugins active:" +msgstr "插件活躍:" + +#: changedetectionio/blueprint/settings/templates/settings.html:399 +msgid "No plugins active" +msgstr "沒有激活的插件" + +#: changedetectionio/blueprint/settings/templates/settings.html:405 +msgid "Back" +msgstr "後退" + +#: changedetectionio/blueprint/settings/templates/settings.html:406 +msgid "Clear Snapshot History" +msgstr "清除快照歷史記錄" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:28 +#: changedetectionio/blueprint/ui/templates/edit.html:56 +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "Filters & Triggers" +msgstr "過濾器和触發器" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:50 +msgid "These settings are" +msgstr "這些設置是" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:50 +msgid "added" +msgstr "額外" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:50 +msgid "to any existing watch configurations." +msgstr "任何現有的手錶配置。" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:53 +#: changedetectionio/blueprint/ui/templates/edit.html:321 +msgid "Text filtering" +msgstr "文本過濾" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:269 +msgid "Use with caution!" +msgstr "謹慎使用!" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:269 +msgid "This will easily fill up your email storage quota or flood other storages." +msgstr "這將很容易填滿您的電子郵件存儲配額或淹沒其他存儲。" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:80 +#: changedetectionio/blueprint/ui/templates/edit.html:276 +msgid "Look out!" +msgstr "當心!" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:80 +#: changedetectionio/blueprint/ui/templates/edit.html:276 +msgid "Lookout!" +msgstr "瞭望!" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "There are" +msgstr "有" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "system-wide notification URLs enabled" +msgstr "啟用系統範圍的通知 URL" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "this form will override notification settings for this watch only" +msgstr "此表單將僅覆蓋此手錶的通知設置" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:81 +#: changedetectionio/blueprint/ui/templates/edit.html:277 +msgid "an empty Notification URL list here will still send notifications." +msgstr "此處的通知 URL 列表為空仍會發送通知。" + +#: changedetectionio/blueprint/tags/templates/edit-tag.html:84 +#: changedetectionio/blueprint/ui/templates/edit.html:280 +msgid "Use system defaults" +msgstr "使用系統默認值" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:11 +msgid "Add a new organisational tag" +msgstr "添加新的組織標籤" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:14 +msgid "Watch group / tag" +msgstr "觀看組/標籤" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:21 +msgid "" +"Groups allows you to manage filters and notifications for multiple " +"watches under a single organisational tag." +msgstr "" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:31 +msgid "# Watches" +msgstr "# 手錶" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:32 +msgid "Tag / Label name" +msgstr "標籤/標籤名稱" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:42 +msgid "No website organisational tags/groups configured" +msgstr "未配置網站組織標籤/組" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:53 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:249 +msgid "Edit" +msgstr "編輯" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:58 +msgid "Delete Group?" +msgstr "刪除群組?" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:59 +#, python-format +msgid "" +"<p>Are you sure you want to delete group " +"<strong>%(title)s</strong>?</p><p>This action cannot be undone.</p>" +msgstr "" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:60 +#: changedetectionio/blueprint/tags/templates/groups-overview.html:61 +#: changedetectionio/blueprint/ui/templates/edit.html:490 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:73 +msgid "Delete" +msgstr "刪除" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:61 +msgid "Deletes and removes tag" +msgstr "刪除並移除標籤" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:66 +msgid "Unlink Group?" +msgstr "取消群組鏈接?" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:67 +#, python-format +msgid "" +"<p>Are you sure you want to unlink all watches from group " +"<strong>%(title)s</strong>?</p><p>The tag will be kept but watches will " +"be removed from it.</p>" +msgstr "" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:68 +#: changedetectionio/blueprint/tags/templates/groups-overview.html:69 +msgid "Unlink" +msgstr "取消鏈接" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:69 +msgid "Keep the tag but unlink any watches" +msgstr "保留標籤但取消所有手錶的鏈接" + +#: changedetectionio/blueprint/tags/templates/groups-overview.html:70 +#: changedetectionio/blueprint/ui/templates/edit.html:500 +msgid "RSS Feed for this watch" +msgstr "此手錶的 RSS 源" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:12 +msgid "" +"This will remove version history (snapshots) for ALL watches, but keep " +"your list of URLs!" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:13 +msgid "You may like to use the" +msgstr "您可能喜歡使用" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:13 +msgid "BACKUP" +msgstr "備份" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:13 +msgid "link first." +msgstr "先鏈接。" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:17 +msgid "Confirmation text" +msgstr "確認文字" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:27 +msgid "Type in the word" +msgstr "輸入單詞" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:27 +msgid "clear" +msgstr "清除" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:27 +msgid "to confirm that you understand." +msgstr "以確認您已理解。" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:33 +msgid "Clear History!" +msgstr "清除歷史!" + +#: changedetectionio/blueprint/ui/templates/clear_all_history.html:39 +#: changedetectionio/templates/base.html:271 +msgid "Cancel" +msgstr "取消" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:3 +msgid "Share diff as image" +msgstr "將差異共享為圖像" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:3 +msgid "Share as Image" +msgstr "分享為圖片" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:6 +msgid "Ignore any lines matching" +msgstr "忽略任何匹配的行" + +#: changedetectionio/blueprint/ui/templates/diff-offscreen-options.html:9 +msgid "Ignore any lines matching excluding digits" +msgstr "忽略任何匹配排除數字的行" + +#: changedetectionio/blueprint/ui/templates/diff.html:28 +msgid "From" +msgstr "從" + +#: changedetectionio/blueprint/ui/templates/diff.html:38 +msgid "To" +msgstr "到" + +#: changedetectionio/blueprint/ui/templates/diff.html:53 +msgid "Words" +msgstr "字" + +#: changedetectionio/blueprint/ui/templates/diff.html:57 +msgid "Lines" +msgstr "線路" + +#: changedetectionio/blueprint/ui/templates/diff.html:61 +msgid "Ignore Whitespace" +msgstr "忽略空格" + +#: changedetectionio/blueprint/ui/templates/diff.html:65 +msgid "Same/non-changed" +msgstr "相同/未改變" + +#: changedetectionio/blueprint/ui/templates/diff.html:69 +msgid "Removed" +msgstr "已刪除" + +#: changedetectionio/blueprint/ui/templates/diff.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "Added" +msgstr "額外" + +#: changedetectionio/blueprint/ui/templates/diff.html:77 +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "Replaced" +msgstr "已更換" + +#: changedetectionio/blueprint/ui/templates/diff.html:82 +#: changedetectionio/blueprint/ui/templates/preview.html:36 +msgid "Keyboard:" +msgstr "鍵盤:" + +#: changedetectionio/blueprint/ui/templates/diff.html:83 +#: changedetectionio/blueprint/ui/templates/preview.html:37 +msgid "Previous" +msgstr "以前的" + +#: changedetectionio/blueprint/ui/templates/diff.html:84 +#: changedetectionio/blueprint/ui/templates/preview.html:38 +msgid "Next" +msgstr "下一個" + +#: changedetectionio/blueprint/ui/templates/diff.html:91 +msgid "Jump to next difference" +msgstr "跳轉到下一個差異" + +#: changedetectionio/blueprint/ui/templates/diff.html:91 +msgid "Jump" +msgstr "跳" + +#: changedetectionio/blueprint/ui/templates/diff.html:97 +#: changedetectionio/blueprint/ui/templates/preview.html:45 +msgid "Error Text" +msgstr "錯誤文本" + +#: changedetectionio/blueprint/ui/templates/diff.html:98 +#: changedetectionio/blueprint/ui/templates/preview.html:47 +msgid "Error Screenshot" +msgstr "錯誤截圖" + +#: changedetectionio/blueprint/ui/templates/diff.html:99 +#: changedetectionio/blueprint/ui/templates/preview.html:50 +#: changedetectionio/processors/text_json_diff/processor.py:24 +msgid "Text" +msgstr "文字" + +#: changedetectionio/blueprint/ui/templates/diff.html:100 +#: changedetectionio/blueprint/ui/templates/preview.html:51 +msgid "Current screenshot" +msgstr "當前截圖" + +#: changedetectionio/blueprint/ui/templates/diff.html:101 +msgid "Extract Data" +msgstr "提取數據" + +#: changedetectionio/blueprint/ui/templates/diff.html:107 +msgid "seconds ago." +msgstr "幾秒鐘前。" + +#: changedetectionio/blueprint/ui/templates/diff.html:114 +#: changedetectionio/blueprint/ui/templates/preview.html:59 +#: changedetectionio/blueprint/ui/templates/preview.html:66 +msgid "seconds ago" +msgstr "幾秒鐘前" + +#: changedetectionio/blueprint/ui/templates/diff.html:115 +msgid "Current error-ing screenshot from most recent request" +msgstr "最近請求的當前錯誤屏幕截圖" + +#: changedetectionio/blueprint/ui/templates/diff.html:127 +msgid "Pro-tip: You can enable" +msgstr "專業提示:您可以啟用" + +#: changedetectionio/blueprint/ui/templates/diff.html:127 +msgid "\"share access when password is enabled\"" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/diff.html:127 +msgid "from settings." +msgstr "從設置。" + +#: changedetectionio/blueprint/ui/templates/diff.html:133 +msgid "Goto single snapshot" +msgstr "轉到單個快照" + +#: changedetectionio/blueprint/ui/templates/diff.html:138 +#: changedetectionio/blueprint/ui/templates/edit.html:125 +msgid "Tip:" +msgstr "提示:" + +#: changedetectionio/blueprint/ui/templates/diff.html:138 +msgid "Highlight text to share or add to ignore lists." +msgstr "突出顯示要共享或添加到忽略列表的文本。" + +#: changedetectionio/blueprint/ui/templates/diff.html:144 +#: changedetectionio/blueprint/ui/templates/preview.html:80 +msgid "" +"For now, Differences are performed on text, not graphically, only the " +"latest screenshot is available." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/diff.html:149 +#: changedetectionio/blueprint/ui/templates/preview.html:86 +msgid "Current screenshot from most recent request" +msgstr "最近請求的當前屏幕截圖" + +#: changedetectionio/blueprint/ui/templates/diff.html:151 +#: changedetectionio/blueprint/ui/templates/preview.html:88 +msgid "No screenshot available just yet! Try rechecking the page." +msgstr "目前還沒有可用的屏幕截圖!嘗試重新檢查頁面。" + +#: changedetectionio/blueprint/ui/templates/diff.html:154 +msgid "Screenshot requires Playwright/WebDriver enabled" +msgstr "屏幕截圖需要啟用 Playwright/WebDriver" + +#: changedetectionio/blueprint/ui/templates/edit.html:48 +msgid "Request" +msgstr "要求" + +#: changedetectionio/blueprint/ui/templates/edit.html:52 +msgid "Browser Steps" +msgstr "瀏覽器步驟" + +#: changedetectionio/blueprint/ui/templates/edit.html:55 +msgid "Visual Filter Selector" +msgstr "視覺過濾器選擇器" + +#: changedetectionio/blueprint/ui/templates/edit.html:57 +msgid "Conditions" +msgstr "狀況" + +#: changedetectionio/blueprint/ui/templates/edit.html:60 +msgid "Stats" +msgstr "統計數據" + +#: changedetectionio/blueprint/ui/templates/edit.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:313 +msgid "Some sites use JavaScript to create the content, for this you should" +msgstr "有些網站使用 JavaScript 來創建內容,為此您應該" + +#: changedetectionio/blueprint/ui/templates/edit.html:73 +#: changedetectionio/blueprint/ui/templates/edit.html:313 +msgid "use the Chrome/WebDriver Fetcher" +msgstr "使用 Chrome/WebDriver Fetcher" + +#: changedetectionio/blueprint/ui/templates/edit.html:74 +msgid "Variables are supported in the URL" +msgstr "URL 中支持變量" + +#: changedetectionio/blueprint/ui/templates/edit.html:74 +#: changedetectionio/blueprint/ui/templates/edit.html:180 +#: changedetectionio/blueprint/ui/templates/edit.html:189 +msgid "help and examples here" +msgstr "幫助和示例在這裡" + +#: changedetectionio/blueprint/ui/templates/edit.html:78 +msgid "Organisational tag/group name used in the main listing page" +msgstr "主列表頁面中使用的組織標籤/組名稱" + +#: changedetectionio/blueprint/ui/templates/edit.html:85 +msgid "" +"Automatically uses the page title if found, you can also use your own " +"title/description here" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:95 +msgid "The interval/amount of time between each check." +msgstr "每次檢查之間的間隔/時間量。" + +#: changedetectionio/blueprint/ui/templates/edit.html:110 +msgid "" +"Sends a notification when the filter can no longer be seen on the page, " +"good for knowing when the page changed and your filter will not work " +"anymore." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:123 +msgid "Use the" +msgstr "使用" + +#: changedetectionio/blueprint/ui/templates/edit.html:123 +msgid "Basic" +msgstr "基本的" + +#: changedetectionio/blueprint/ui/templates/edit.html:123 +msgid "" +"method (default) where your watched site doesn't need Javascript to " +"render." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:124 +msgid "The" +msgstr "這" + +#: changedetectionio/blueprint/ui/templates/edit.html:124 +msgid "Chrome/Javascript" +msgstr "Chrome/Javascript" + +#: changedetectionio/blueprint/ui/templates/edit.html:124 +msgid "" +"method requires a network connection to a running WebDriver+Chrome " +"server, set by the ENV var 'WEBDRIVER_URL'." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:125 +msgid "Connect using Bright Data and Oxylabs Proxies, find out more here." +msgstr "使用 Bright Data 和 Oxylabs Proxies 進行連接,在此處了解更多信息。" + +#: changedetectionio/blueprint/ui/templates/edit.html:130 +msgid "Check/Scan all" +msgstr "檢查/掃描全部" + +#: changedetectionio/blueprint/ui/templates/edit.html:133 +msgid "Choose a proxy for this watch" +msgstr "為該手錶選擇代理" + +#: changedetectionio/blueprint/ui/templates/edit.html:143 +msgid "" +"If you're having trouble waiting for the page to be fully rendered (text " +"missing etc), try increasing the 'wait' time here." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:145 +msgid "This will wait" +msgstr "這會等待" + +#: changedetectionio/blueprint/ui/templates/edit.html:145 +msgid "seconds before extracting the text." +msgstr "提取文本前幾秒。" + +#: changedetectionio/blueprint/ui/templates/edit.html:147 +msgid "Using the current global default settings" +msgstr "使用當前全局默認設置" + +#: changedetectionio/blueprint/ui/templates/edit.html:152 +#: changedetectionio/blueprint/ui/templates/edit.html:165 +msgid "Show advanced options" +msgstr "顯示高級選項" + +#: changedetectionio/blueprint/ui/templates/edit.html:157 +msgid "" +"Run this code before performing change detection, handy for filling in " +"fields and other actions" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:158 +msgid "More help and examples here" +msgstr "更多幫助和示例請參見此處" + +#: changedetectionio/blueprint/ui/templates/edit.html:180 +msgid "Variables are supported in the request body" +msgstr "請求正文中支持變量" + +#: changedetectionio/blueprint/ui/templates/edit.html:189 +msgid "Variables are supported in the request header values" +msgstr "請求標頭值支持變量" + +#: changedetectionio/blueprint/ui/templates/edit.html:192 +msgid "Alert! Extra headers file found and will be added to this watch!" +msgstr "警報!找到額外的頭文件並將其添加到此手錶中!" + +#: changedetectionio/blueprint/ui/templates/edit.html:194 +msgid "Headers can be also read from a file in your data-directory" +msgstr "還可以從數據目錄中的文件中讀取標頭" + +#: changedetectionio/blueprint/ui/templates/edit.html:194 +msgid "Read more here" +msgstr "在這裡閱讀更多內容" + +#: changedetectionio/blueprint/ui/templates/edit.html:197 +msgid "Not supported by Selenium browser" +msgstr "Selenium 瀏覽器不支持" + +#: changedetectionio/blueprint/ui/templates/edit.html:221 +msgid "Turn on text finder" +msgstr "打開文本查找器" + +#: changedetectionio/blueprint/ui/templates/edit.html:224 +msgid "Please wait, first browser step can take a little time to load.." +msgstr "請稍候,第一個瀏覽器步驟可能需要一些時間來加載。" + +#: changedetectionio/blueprint/ui/templates/edit.html:231 +msgid "Click here to Start" +msgstr "單擊此處開始" + +#: changedetectionio/blueprint/ui/templates/edit.html:233 +msgid "Please allow 10-15 seconds for the browser to connect." +msgstr "請等待 10-15 秒讓瀏覽器連接。" + +#: changedetectionio/blueprint/ui/templates/edit.html:242 +msgid "Press \"Play\" to start." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:249 +#: changedetectionio/blueprint/ui/templates/edit.html:419 +msgid "Visual Selector data is not ready, watch needs to be checked atleast once." +msgstr "視覺選擇器數據尚未準備好,至少需要檢查一次手錶。" + +#: changedetectionio/blueprint/ui/templates/edit.html:253 +msgid "" +"Sorry, this functionality only works with fetchers that support " +"interactive Javascript (so far only Playwright based fetchers)" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:254 +#: changedetectionio/blueprint/ui/templates/edit.html:424 +msgid "You need to" +msgstr "你需要" + +#: changedetectionio/blueprint/ui/templates/edit.html:254 +#: changedetectionio/blueprint/ui/templates/edit.html:424 +msgid "Set the fetch method" +msgstr "設置獲取方法" + +#: changedetectionio/blueprint/ui/templates/edit.html:254 +msgid "to one that supports interactive Javascript." +msgstr "到支持交互式 Javascript 的一個。" + +#: changedetectionio/blueprint/ui/templates/edit.html:297 +msgid "" +"Use the verify (✓) button to test if a condition passes against the " +"current snapshot." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:298 +msgid "Read a quick tutorial about" +msgstr "閱讀有關以下內容的快速教程" + +#: changedetectionio/blueprint/ui/templates/edit.html:298 +msgid "using conditional web page changes here" +msgstr "此處使用條件網頁更改" + +#: changedetectionio/blueprint/ui/templates/edit.html:303 +msgid "Activate preview" +msgstr "激活預覽" + +#: changedetectionio/blueprint/ui/templates/edit.html:307 +msgid "Pro-tips:" +msgstr "專業提示:" + +#: changedetectionio/blueprint/ui/templates/edit.html:310 +msgid "Use the preview page to see your filters and triggers highlighted." +msgstr "使用預覽頁面查看突出顯示的過濾器和触發器。" + +#: changedetectionio/blueprint/ui/templates/edit.html:322 +msgid "Limit trigger/ignore/block/extract to;" +msgstr "將觸發/忽略/阻止/提取限制為;" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "" +"Note: Depending on the length and similarity of the text on each line, " +"the algorithm may consider an" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "addition" +msgstr "添加" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "instead of" +msgstr "而不是" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "replacement" +msgstr "替代品" + +#: changedetectionio/blueprint/ui/templates/edit.html:326 +msgid "for example." +msgstr "例如。" + +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "So it's always better to select" +msgstr "所以選擇總是更好" + +#: changedetectionio/blueprint/ui/templates/edit.html:327 +msgid "when you're interested in new content." +msgstr "當您對新內容感興趣時。" + +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "When content is merely moved in a list, it will also trigger an" +msgstr "當內容僅在列表中移動時,也會觸發" + +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "consider enabling" +msgstr "考慮啟用" + +#: changedetectionio/blueprint/ui/templates/edit.html:328 +msgid "Only trigger when unique lines appear" +msgstr "僅當出現唯一線條時觸發" + +#: changedetectionio/blueprint/ui/templates/edit.html:332 +msgid "" +"Good for websites that just move the content around, and you want to know" +" when NEW content is added, compares new lines against all history for " +"this watch." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:340 +msgid "" +"Helps reduce changes detected caused by sites shuffling lines around, " +"combine with" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:340 +msgid "check unique lines" +msgstr "檢查獨特的線路" + +#: changedetectionio/blueprint/ui/templates/edit.html:340 +msgid "below." +msgstr "以下。" + +#: changedetectionio/blueprint/ui/templates/edit.html:344 +msgid "Remove any whitespace before and after each line of text" +msgstr "刪除每行文本前後的所有空格" + +#: changedetectionio/blueprint/ui/templates/edit.html:358 +#: changedetectionio/blueprint/ui/templates/edit.html:361 +#: changedetectionio/blueprint/ui/templates/edit.html:417 +msgid "Loading..." +msgstr "載入中..." + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "The Visual Selector tool lets you select the" +msgstr "視覺選擇器工具可讓您選擇" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "text" +msgstr "文字" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "" +"elements that will be used for the change detection. It automatically " +"fills-in the filters in the \"CSS/JSONPath/JQ/XPath Filters\" box of the" +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "tab. Use" +msgstr "選項卡。使用" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "Shift+Click" +msgstr "Shift+單擊" + +#: changedetectionio/blueprint/ui/templates/edit.html:386 +msgid "to select multiple items." +msgstr "選擇多個項目。" + +#: changedetectionio/blueprint/ui/templates/edit.html:391 +msgid "Selection Mode:" +msgstr "選擇方式:" + +#: changedetectionio/blueprint/ui/templates/edit.html:394 +msgid "Select by element" +msgstr "按元素選擇" + +#: changedetectionio/blueprint/ui/templates/edit.html:398 +msgid "Draw area" +msgstr "繪圖區" + +#: changedetectionio/blueprint/ui/templates/edit.html:406 +msgid "Clear selection" +msgstr "清除選擇" + +#: changedetectionio/blueprint/ui/templates/edit.html:408 +msgid "One moment, fetching screenshot and element information.." +msgstr "一會兒,正在獲取屏幕截圖和元素信息.." + +#: changedetectionio/blueprint/ui/templates/edit.html:417 +msgid "Currently:" +msgstr "現在:" + +#: changedetectionio/blueprint/ui/templates/edit.html:423 +msgid "" +"Sorry, this functionality only works with fetchers that support " +"Javascript and screenshots (such as playwright etc)." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:424 +msgid "to one that supports Javascript and screenshots." +msgstr "到支持 Javascript 和屏幕截圖的一個。" + +#: changedetectionio/blueprint/ui/templates/edit.html:441 +msgid "Check count" +msgstr "檢查計數" + +#: changedetectionio/blueprint/ui/templates/edit.html:445 +msgid "Consecutive filter failures" +msgstr "連續過濾器故障" + +#: changedetectionio/blueprint/ui/templates/edit.html:449 +msgid "History length" +msgstr "歷史長度" + +#: changedetectionio/blueprint/ui/templates/edit.html:453 +msgid "Last fetch duration" +msgstr "上次獲取持續時間" + +#: changedetectionio/blueprint/ui/templates/edit.html:457 +msgid "Notification alert count" +msgstr "通知警報計數" + +#: changedetectionio/blueprint/ui/templates/edit.html:461 +msgid "Server type reply" +msgstr "服務器類型回复" + +#: changedetectionio/blueprint/ui/templates/edit.html:475 +msgid "Download latest HTML snapshot" +msgstr "下載最新的 HTML 快照" + +#: changedetectionio/blueprint/ui/templates/edit.html:488 +msgid "Delete Watch?" +msgstr "刪除手錶?" + +#: changedetectionio/blueprint/ui/templates/edit.html:489 +msgid "Are you sure you want to delete the watch for:" +msgstr "您確定要刪除以下對象的手錶嗎:" + +#: changedetectionio/blueprint/ui/templates/edit.html:489 +msgid "This action cannot be undone." +msgstr "此操作無法撤消。" + +#: changedetectionio/blueprint/ui/templates/edit.html:495 +msgid "Clear History?" +msgstr "清除歷史記錄?" + +#: changedetectionio/blueprint/ui/templates/edit.html:496 +msgid "Are you sure you want to clear all history for:" +msgstr "您確定要清除以下內容的所有歷史記錄:" + +#: changedetectionio/blueprint/ui/templates/edit.html:496 +msgid "" +"This will remove all snapshots and previous versions. This action cannot " +"be undone." +msgstr "" + +#: changedetectionio/blueprint/ui/templates/edit.html:497 +msgid "Clear History" +msgstr "清除歷史記錄" + +#: changedetectionio/blueprint/ui/templates/edit.html:499 +msgid "Clone & Edit" +msgstr "克隆和編輯" + +#: changedetectionio/blueprint/ui/templates/preview.html:22 +msgid "Select timestamp" +msgstr "選擇時間戳" + +#: changedetectionio/blueprint/ui/templates/preview.html:31 +msgid "Go" +msgstr "去" + +#: changedetectionio/blueprint/ui/templates/preview.html:69 +msgid "Current erroring screenshot from most recent request" +msgstr "最近請求的當前錯誤屏幕截圖" + +#: changedetectionio/blueprint/ui/templates/preview.html:91 +msgid "" +"Screenshot requires a Content Fetcher ( Sockpuppetbrowser, selenium, etc " +") that supports screenshots." +msgstr "" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:31 +msgid "Add a new web page change detection watch" +msgstr "添加新的網頁更改檢測監視" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:34 +msgid "Watch this URL!" +msgstr "關注這個網址!" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:35 +msgid "Edit first then Watch" +msgstr "先編輯後觀看" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:45 +msgid "Create a shareable link" +msgstr "創建可共享鏈接" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:45 +msgid "Tip: You can also add 'shared' watches." +msgstr "提示:您還可以添加“共享”手錶。" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:45 +msgid "More info" +msgstr "更多信息" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:53 +msgid "Pause" +msgstr "暫停" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:54 +msgid "UnPause" +msgstr "取消暫停" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:55 +msgid "Mute" +msgstr "沉默的" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:56 +msgid "UnMute" +msgstr "取消靜音" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:57 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:248 +msgid "Recheck" +msgstr "複查" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:58 +msgid "Tag" +msgstr "標籤" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:59 +msgid "Mark viewed" +msgstr "標記已查看" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:60 +msgid "Use default notification" +msgstr "使用默認通知" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:61 +msgid "Clear errors" +msgstr "清除錯誤" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:65 +msgid "Clear Histories" +msgstr "清晰的歷史記錄" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:66 +msgid "" +"<p>Are you sure you want to clear history for the selected " +"items?</p><p>This action cannot be undone.</p>" +msgstr "" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:67 +msgid "OK" +msgstr "好的" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:67 +msgid "Clear/reset history" +msgstr "清除/重置歷史記錄" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:71 +msgid "Delete Watches?" +msgstr "刪除手錶?" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:72 +msgid "" +"<p>Are you sure you want to delete the selected " +"watches?</strong></p><p>This action cannot be undone.</p>" +msgstr "" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:78 +msgid "Searching" +msgstr "搜尋中" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:80 +msgid "All" +msgstr "全部" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:118 +msgid "Website" +msgstr "網站" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:120 +msgid "Restock & Price" +msgstr "補貨及價格" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:122 +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:123 +msgid "Last" +msgstr "最後的" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:122 +msgid "Checked" +msgstr "已檢查" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:123 +msgid "Changed" +msgstr "改變了" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:130 +msgid "No website watches configured, please add a URL in the box above, or" +msgstr "未配置網站監視,請在上面的框中添加 URL,或者" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:130 +msgid "import a list" +msgstr "導入列表" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:213 +msgid "Detecting restock and price" +msgstr "檢測補貨和價格" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:215 +msgid "In stock" +msgstr "有存貨" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:215 +msgid "Not in stock" +msgstr "沒有庫存" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:221 +msgid "Price" +msgstr "價格" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:226 +msgid "No information" +msgstr "暫無信息" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:234 +#: changedetectionio/templates/base.html:248 +msgid "Checking now" +msgstr "立即檢查" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:247 +msgid "Queued" +msgstr "排隊" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:250 +msgid "History" +msgstr "歷史" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:251 +msgid "Preview" +msgstr "預覽" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:260 +msgid "With errors" +msgstr "有錯誤" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:263 +msgid "Mark all viewed" +msgstr "標記所有已查看" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:267 +#, python-format +msgid "Mark all viewed in '%(title)s'" +msgstr "標記所有在“%(title)s”中查看過的內容" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:271 +msgid "Unread" +msgstr "未讀" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:274 +msgid "Recheck all" +msgstr "重新檢查所有" + +#: changedetectionio/blueprint/watchlist/templates/watch-overview.html:274 +#, python-format +msgid "in '%(title)s'" +msgstr "在“%(title)s”中" + +#: changedetectionio/processors/image_ssim_diff/forms.py:19 +#: changedetectionio/processors/image_ssim_diff/forms.py:69 +msgid "Bounding box value is too long" +msgstr "邊界框值太長" + +#: changedetectionio/processors/image_ssim_diff/forms.py:23 +msgid "Bounding box must be in format: x,y,width,height (integers only)" +msgstr "邊界框的格式必須為:x,y,寬度,高度(僅限整數)" + +#: changedetectionio/processors/image_ssim_diff/forms.py:29 +msgid "Bounding box values must be non-negative" +msgstr "邊界框值必須是非負數" + +#: changedetectionio/processors/image_ssim_diff/forms.py:31 +msgid "Bounding box values are too large" +msgstr "邊界框值太大" + +#: changedetectionio/processors/image_ssim_diff/forms.py:40 +msgid "Selection mode must be either \"element\" or \"draw\"" +msgstr "" + +#: changedetectionio/processors/image_ssim_diff/forms.py:47 +msgid "Minimum Change Percentage" +msgstr "最小變化百分比" + +#: changedetectionio/processors/image_ssim_diff/forms.py:56 +msgid "Pixel Difference Sensitivity" +msgstr "像素差異靈敏度" + +#: changedetectionio/processors/image_ssim_diff/forms.py:58 +msgid "Use global default" +msgstr "使用系統默認值" + +#: changedetectionio/processors/image_ssim_diff/forms.py:66 +msgid "Bounding Box" +msgstr "邊界框" + +#: changedetectionio/processors/image_ssim_diff/forms.py:76 +msgid "Selection Mode" +msgstr "選擇方式:" + +#: changedetectionio/processors/image_ssim_diff/forms.py:79 +msgid "Selection mode value is too long" +msgstr "選擇模式值太長" + +#: changedetectionio/processors/image_ssim_diff/forms.py:87 +msgid "Screenshot Comparison" +msgstr "截圖對比" + +#: changedetectionio/processors/image_ssim_diff/processor.py:20 +msgid "Visual / Image screenshot change detection" +msgstr "視覺/圖像截圖變化檢測" + +#: changedetectionio/processors/image_ssim_diff/processor.py:21 +msgid "Compares screenshots using fast OpenCV algorithm, 10-100x faster than SSIM" +msgstr "使用快速 OpenCV 算法比較屏幕截圖,比 SSIM 快 10-100 倍" + +#: changedetectionio/processors/image_ssim_diff/processor.py:23 +msgid "Visual" +msgstr "視覺的" + +#: changedetectionio/processors/restock_diff/forms.py:15 +msgid "Re-stock detection" +msgstr "補貨檢測" + +#: changedetectionio/processors/restock_diff/forms.py:16 +msgid "In Stock only (Out Of Stock -> In Stock only)" +msgstr "僅有庫存(缺貨 -> 僅有庫存)" + +#: changedetectionio/processors/restock_diff/forms.py:17 +msgid "Any availability changes" +msgstr "任何可用性變更" + +#: changedetectionio/processors/restock_diff/forms.py:18 +msgid "Off, don't follow availability/restock" +msgstr "關閉,不遵循庫存/補貨情況" + +#: changedetectionio/processors/restock_diff/forms.py:21 +msgid "Below price to trigger notification" +msgstr "低於價格觸發通知" + +#: changedetectionio/processors/restock_diff/forms.py:22 +#: changedetectionio/processors/restock_diff/forms.py:24 +msgid "No limit" +msgstr "無限制" + +#: changedetectionio/processors/restock_diff/forms.py:23 +msgid "Above price to trigger notification" +msgstr "高於價格觸發通知" + +#: changedetectionio/processors/restock_diff/forms.py:25 +#, python-format +msgid "Threshold in %% for price changes since the original price" +msgstr "自原始價格以來價格變化的閾值(百分比)" + +#: changedetectionio/processors/restock_diff/forms.py:28 +msgid "Should be between 0 and 100" +msgstr "應介於 0 到 100 之間" + +#: changedetectionio/processors/restock_diff/forms.py:31 +msgid "Follow price changes" +msgstr "關注價格變化" + +#: changedetectionio/processors/restock_diff/forms.py:37 +msgid "Restock & Price Detection" +msgstr "補貨及價格" + +#: changedetectionio/processors/restock_diff/processor.py:11 +msgid "Re-stock & Price detection for pages with a SINGLE product" +msgstr "單個產品頁面的補貨和價格檢測" + +#: changedetectionio/processors/restock_diff/processor.py:12 +msgid "Detects if the product goes back to in-stock" +msgstr "檢測產品是否恢復庫存" + +#: changedetectionio/processors/restock_diff/processor.py:14 +msgid "Restock" +msgstr "補貨" + +#: changedetectionio/processors/text_json_diff/processor.py:21 +msgid "Webpage Text/HTML, JSON and PDF changes" +msgstr "網頁文本/HTML、JSON 和 PDF 更改" + +#: changedetectionio/processors/text_json_diff/processor.py:22 +msgid "Detects all text changes where possible" +msgstr "盡可能檢測所有文本更改" + +#: changedetectionio/templates/base.html:77 +msgid "GROUPS" +msgstr "團體" + +#: changedetectionio/templates/base.html:80 +msgid "SETTINGS" +msgstr "設定" + +#: changedetectionio/templates/base.html:83 +msgid "IMPORT" +msgstr "進口" + +#: changedetectionio/templates/base.html:86 +msgid "BACKUPS" +msgstr "備份" + +#: changedetectionio/templates/base.html:90 +msgid "EDIT" +msgstr "編輯" + +#: changedetectionio/templates/base.html:100 +msgid "LOG OUT" +msgstr "退出" + +#: changedetectionio/templates/base.html:109 +msgid "Search, or Use Alt+S Key" +msgstr "搜索或使用 Alt+S 鍵" + +#: changedetectionio/templates/base.html:116 +msgid "Toggle Light/Dark Mode" +msgstr "切換亮/暗模式" + +#: changedetectionio/templates/base.html:117 +msgid "Toggle light/dark mode" +msgstr "切換亮/暗模式" + +#: changedetectionio/templates/base.html:127 +msgid "Change Language" +msgstr "更改語言" + +#: changedetectionio/templates/base.html:128 +msgid "Change language" +msgstr "更改語言" + +#: changedetectionio/templates/base.html:249 +msgid "Real-time updates offline" +msgstr "離線實時更新" + +#: changedetectionio/templates/base.html:259 +msgid "Select Language" +msgstr "選擇語言" + +#: changedetectionio/templates/login.html:10 +msgid "Password" +msgstr "密碼" + +#: changedetectionio/templates/login.html:16 +msgid "Login" +msgstr "登入" + diff --git a/requirements.txt b/requirements.txt index 1b1ba3457..9f2a002c6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -113,6 +113,8 @@ extruct # For cleaning up unknown currency formats babel +# For internationalization (i18n) support +Flask-Babel>=4.0.0 levenshtein