Compare commits

...
28 changed files with 1774 additions and 1519 deletions
+24 -23
View File
@@ -1,5 +1,6 @@
import time
import threading
from blinker import signal
from flask import Blueprint, request, redirect, url_for, flash, render_template, session, current_app
from flask_babel import gettext
from loguru import logger
@@ -237,32 +238,32 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, worker_pool,
list_filters = wl_filters.list_filters_from_args(datastore, request.args)
now = int(time.time())
# Mark watches as viewed - use background thread only for large watch counts
def mark_viewed_impl():
"""Mark watches as viewed - can run synchronously or in background thread."""
marked_count = 0
try:
for watch_uuid, watch in datastore.data['watching'].items():
if not wl_filters.watch_matches_filters(datastore, watch, list_filters):
continue
# Runs SYNCHRONOUSLY, and must stay that way. Re #4021: this used to hand the work to a
# background thread and redirect immediately, so the watch list re-rendered from a
# datastore that was still being marked and showed rows as unviewed until a manual
# refresh. The realtime events that would have corrected it were emitted while the
# browser was mid-navigation with no socket connected, so they went nowhere.
# It is cheap enough to do inline: the per-watch signal is suppressed below (that was
# the actual cost, not the disk write, which measures ~0.05ms per watch).
marked_count = 0
try:
for watch_uuid, watch in datastore.data['watching'].items():
if not wl_filters.watch_matches_filters(datastore, watch, list_filters):
continue
datastore.set_last_viewed(watch_uuid, now)
marked_count += 1
datastore.set_last_viewed(watch_uuid, now, send_signal=False)
marked_count += 1
logger.info(f"Marking complete: {marked_count} watches marked as viewed")
except Exception as e:
logger.error(f"Error marking as viewed: {e}")
logger.info(f"Marking complete: {marked_count} watches marked as viewed")
except Exception as e:
logger.error(f"Error marking as viewed: {e}")
# For small watch counts (< 10), run synchronously to avoid race conditions in tests
# For larger counts, use background thread to avoid blocking the UI
watch_count = len(datastore.data['watching'])
if watch_count < 10:
# Run synchronously for small watch counts
mark_viewed_impl()
else:
# Start background thread for large watch counts
thread = threading.Thread(target=mark_viewed_impl, daemon=True)
thread.start()
# One summary event instead of one per watch, so other open tabs refresh their counters.
# This page doesn't need it - the redirect below re-renders it from the marked datastore.
if marked_count:
general_stats_update = signal('general_stats_update')
if general_stats_update:
general_stats_update.send()
return redirect(url_for('watchlist.index', **wl_filters.filter_query_args(request.args)))
@@ -13,6 +13,7 @@ from changedetectionio.auth_decorator import login_optionally_required
# Shared filtering — the single source of truth, also used by the ui blueprint's
# bulk actions so a filtered view and the actions taken on it always agree.
from changedetectionio.blueprint.watchlist import filters as wl_filters
from changedetectionio.blueprint.watchlist.row_context import watch_row_context
def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMetaData):
watchlist_blueprint = Blueprint('watchlist', __name__, template_folder="templates")
@@ -96,8 +97,6 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe
sorted_tags = sorted(datastore.data['settings']['application'].get('tags').items(), key=lambda x: x[1]['title'])
proxy_list = datastore.proxy_list
from changedetectionio import content_fetchers
available_fetchers = content_fetchers.available_fetchers()
@@ -105,24 +104,32 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe
from changedetectionio.llm.ui_strings import LLM_INTENT_WATCH_PLACEHOLDER
llm_configured = bool(_get_llm_config(datastore))
# Everything the row markup itself needs comes from here, shared with the Socket.IO
# row push so a live-updated row can't drift from the server-rendered one.
row_ctx = watch_row_context(datastore,
active_tag_uuid=active_tag_uuid,
queued_uuids=update_q.get_queued_uuids())
output = render_template(
"watch-overview.html",
**row_ctx,
active_tag=active_tag,
active_tag_uuid=active_tag_uuid,
active_processor=active_processor,
checking_now_size=len(worker_pool.get_running_uuids()),
app_rss_token=datastore.data['settings']['application'].get('rss_access_token'),
datastore=datastore,
errored_count=errored_count,
deals_count=deals_count,
unread_count=unread_count,
processor_counts=processor_counts,
extra_classes=' '.join(filter(None, ['has-queue' if not update_q.empty() else '', 'llm-configured' if llm_configured else ''])),
# body classes for app-wide state; realtime.js keeps these in sync live
# (has-any-unviewed reveals the "Mark all viewed" button - see _watch_table.scss)
extra_classes=' '.join(filter(None, ['has-queue' if not update_q.empty() else '',
'llm-configured' if llm_configured else '',
'has-any-unviewed' if datastore.unread_changes_count else ''])),
form=form,
generate_tag_colors=processors.generate_processor_badge_colors,
wcag_text_color=processors.wcag_text_color,
guid=datastore.data['app_guid'],
has_proxies=proxy_list,
available_fetchers=available_fetchers,
#header=_("todo - tag name etc"),
hosted_sticky=os.getenv("SALTED_PASS", False) == False,
@@ -130,16 +137,13 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, queuedWatchMe
pagination=pagination,
processor_badge_css=processors.get_processor_badge_css(),
processor_badge_texts=processors.get_processor_badge_texts(),
processor_descriptions=processors.get_processor_descriptions(),
queue_size=update_q.qsize(),
queued_uuids=update_q.get_queued_uuids(),
# Active view filters (tag/processor/q/unread/...) so links (e.g. column sorting)
# can re-apply them and not drop the operator's current filtered view.
active_filters=wl_filters.filter_query_args(request.args),
search_q=request.args.get('q', '').strip(),
sort_attribute=request.args.get('sort') if request.args.get('sort') else request.cookies.get('sort'),
sort_order=request.args.get('order') if request.args.get('order') else request.cookies.get('order'),
system_default_fetcher=datastore.data['settings']['application'].get('fetch_backend'),
tags=sorted_tags,
unread_changes_count=datastore.unread_changes_count,
watches=sorted_watches,
@@ -0,0 +1,43 @@
"""Template context needed to render a single watch list row.
watch-overview-single-row.html is rendered from two places: inline by the watch list page
(via {% include %} inside the row loop) and standalone when a row is pushed over Socket.IO.
Both MUST build their context here — if they build it separately the pushed row silently
drifts from the server-rendered one, which is the bug class this exists to prevent.
Only names the row cannot get for itself belong here. Anything registered app-wide
(`is_checking_now` template global, `fetcher_status_icons` filter, `url_for`, `_()`) is
already available in any render and is deliberately NOT listed.
"""
from changedetectionio import processors
def watch_row_context(datastore, active_tag_uuid=None, queued_uuids=None):
"""Context for one (or many) watch list rows.
active_tag_uuid matters: the row's Edit/Recheck links carry the tag so the operator lands
back on the filtered view they came from. A pushed row must therefore be rendered with the
tag of the page that will receive it, not a global one.
queued_uuids is accepted so a caller rendering many rows can fetch the queue once instead
of per row; omit it and the live queue is read for you.
"""
if queued_uuids is None:
# Local import: flask_app imports blueprints, so a module-level import would cycle.
from changedetectionio.flask_app import update_q
queued_uuids = update_q.get_queued_uuids()
return {
'active_tag_uuid': active_tag_uuid,
# Kept 0 (rather than any_watches_have_processor_by_name) while the price column is
# disabled — it also decides cols_required on the page, so page and row must agree or
# a pushed row ends up with a different <td> count than the table header.
'any_has_restock_price_processor': 0,
'datastore': datastore,
'has_proxies': datastore.proxy_list,
'processor_descriptions': processors.get_processor_descriptions(),
'queued_uuids': queued_uuids,
'system_default_fetcher': datastore.data['settings']['application'].get('fetch_backend'),
'ui_settings': datastore.data['settings']['application']['ui'],
}
@@ -0,0 +1,172 @@
{#
A single watch list <tr>, extracted from watch-overview.html so the same markup can be
re-rendered on its own and pushed over Socket.IO (realtime row resync) - one renderer,
so the row can never drift from the server-rendered list.
Rendered via {% include %} from the watch list loop, which inherits the full context:
watch, loop, is_checking_now(), queued_uuids, has_proxies, datastore, active_tag_uuid,
system_default_fetcher, ui_settings, favicons_enabled, fetcher_status_icons,
processor_descriptions, get_all_tags_for_watch(), any_has_restock_price_processor
#}
{%- set checking_now = is_checking_now(watch) -%}
{%- set history_n = watch.history_n -%}
{%- set favicon = watch.get_favicon_filename() -%}
{%- set error_texts = watch.compile_error_texts(has_proxies=has_proxies) -%}
{%- set system_use_url_watchlist = datastore.data['settings']['application']['ui'].get('use_page_title_in_list') -%}
{# Class settings mirrored in changedetectionio/static/js/realtime.js for the frontend #}
{# loop.cycle('pure-table-odd', 'pure-table-even'),#}
{%- set row_classes = [
'processor-' ~ watch['processor'],
'has-error' if error_texts|length > 2 else '',
'paused' if watch.paused is defined and watch.paused != False else '',
'unviewed' if watch.has_unviewed else '',
'has-restock-info' if watch.has_restock_info else 'no-restock-info',
'has-favicon' if favicon else '',
'in-stock' if watch.has_restock_info and watch['restock']['in_stock'] else '',
'not-in-stock' if watch.has_restock_info and not watch['restock']['in_stock'] else '',
'queued' if watch.uuid in queued_uuids else '',
'checking-now' if checking_now else '',
'notification_muted' if watch.notification_muted else '',
'single-history' if history_n == 1 else '',
'multiple-history' if history_n >= 2 else '',
'use-html-title' if system_use_url_watchlist else 'no-html-title',
] -%}
<tr id="{{ watch.uuid }}" data-watch-uuid="{{ watch.uuid }}" class="{{ row_classes | reject('equalto', '') | join(' ') }}">
<td class="inline checkbox-uuid" ><div><input name="uuids" type="checkbox" value="{{ watch.uuid}} " >{# <span class="counter-i">{{ loop.index+pagination.skip }}</span>#}</div></td>
<td class="inline watch-controls">
<div>
<a class="ajax-op state-off pause-toggle" data-op="pause" aria-label="{{ _('Pause checks') }}" title="{{ _('Pause checks') }}" href="{{url_for('watchlist.index', op='pause', uuid=watch.uuid, tag=active_tag_uuid)}}"><i data-feather="pause" class="icon icon-pause"></i></a>
<a class="ajax-op state-on pause-toggle" data-op="pause" style="display: none" aria-label="{{ _('UnPause checks') }}" title="{{ _('UnPause checks') }}" href="{{url_for('watchlist.index', op='pause', uuid=watch.uuid, tag=active_tag_uuid)}}"><i data-feather="play" class="icon icon-unpause"></i></a>
<a class="ajax-op state-off mute-toggle" data-op="mute" aria-label="{{ _('Mute notification') }}" title="{{ _('Mute notification') }}" href="{{url_for('watchlist.index', op='mute', uuid=watch.uuid, tag=active_tag_uuid)}}"><i data-feather="bell" class="icon icon-mute"></i></a>
<a class="ajax-op state-on mute-toggle" data-op="mute" style="display: none" aria-label="{{ _('UnMute notification') }}" title="{{ _('UnMute notification') }}" href="{{url_for('watchlist.index', op='mute', uuid=watch.uuid, tag=active_tag_uuid)}}"><i data-feather="bell-off" class="icon icon-mute"></i></a>
</div>
</td>
<td class="title-col inline">
<div class="grid-wrapper">
{% if 'favicons_enabled' not in ui_settings or ui_settings['favicons_enabled'] %}
<div class="favicon">
<a target="_blank" rel="noopener" href="{{ watch.link.replace('source:','') }}">
{# Intersection Observer lazy loading: store real URL in data-src, load only when visible in viewport #}
<img alt="Favicon thumbnail"
class="favicon lazy-favicon"
loading="lazy"
decoding="async"
title="{{ _('Goto web page') }}"
alt="{{ _('Goto web page') }}"
fetchpriority="low"
{% if favicon %}
data-src="{{url_for('static_content', group='favicon', filename=watch.uuid)}}"
{% endif %}
src='data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="7.087" height="7.087" viewBox="0 0 7.087 7.087"%3E%3Ccircle cx="3.543" cy="3.543" r="3.279" stroke="%23e1e1e1" stroke-width="0.45" fill="none" opacity="0.74"/%3E%3C/svg%3E'>
</a>
</div>
{% endif %}
<div class="watch-text-info">
{%- if watch['processor'] and watch['processor'] in processor_badge_texts -%}
<a href="{{ url_for('watchlist.index', tag=active_tag_uuid, processor=watch['processor']) }}" class="processor-badge processor-badge-{{ watch['processor'] }}{{ ' active' if active_processor == watch['processor'] else '' }}" title="{{ processor_descriptions.get(watch['processor'], watch['processor']) }}">{{ processor_badge_texts[watch['processor']] }}</a>
{%- endif -%}
<span class="watch-title">
{% if system_use_url_watchlist or watch.get('use_page_title_in_list') %}
{{ watch.label }}
{% else %}
{{ watch.get('title') or watch.link }}
{% endif %}
<a class="external" target="_blank" rel="noopener" href="{{ watch.link.replace('source:','') }}">&nbsp;</a>
</span>
{%- for watch_tag_uuid, watch_tag in datastore.get_all_tags_for_watch(watch['uuid']).items() -%}
<a href="{{url_for('watchlist.index', tag=watch_tag_uuid) }}" class="watch-tag-list tag-{{ watch_tag.title|sanitize_tag_class }}">{{ watch_tag.title }}</a>
{%- endfor -%}
<div class="error-text" style="display:none;">{{ error_texts|safe }}</div>
{%- if watch['processor'] == 'text_json_diff' -%}
{%- if watch['has_ldjson_price_data'] and not watch['track_ldjson_price_data'] -%}
<div class="ldjson-price-track-offer">Switch to Restock & Price watch mode? <a href="{{url_for('price_data_follower.accept', uuid=watch.uuid)}}" class="pure-button button-xsmall">Yes</a> <a href="{{url_for('price_data_follower.reject', uuid=watch.uuid)}}" class="">No</a></div>
{%- endif -%}
{%- endif -%}
</div>
<div class="status-icons">
<a class="link-spread" href="{{url_for('ui.form_share_put_watch', uuid=watch.uuid)}}"><img src="{{url_for('static_content', group='images', filename='spread.svg')}}" class="status-icon icon icon-spread" title="{{ _('Create a link to share watch config with others') }}" ></a>
{%- set effective_fetcher = watch.get_fetch_backend if watch.get_fetch_backend != "system" else system_default_fetcher -%}
{%- if effective_fetcher and ("html_webdriver" in effective_fetcher or "html_" in effective_fetcher or "extra_browser_" in effective_fetcher) -%}
{{ effective_fetcher|fetcher_status_icons }}
{%- endif -%}
{%- if watch.is_pdf -%}<img class="status-icon" src="{{url_for('static_content', group='images', filename='pdf-icon.svg')}}" alt="Converting PDF to text" >{%- endif -%}
{%- if watch.has_browser_steps -%}<img class="status-icon status-browsersteps" src="{{url_for('static_content', group='images', filename='steps.svg')}}" alt="Browser Steps is enabled" >{%- endif -%}
</div>
{%- if watch['processor'] == 'restock_diff' -%}
{#- @todo - this could be injected somehow watch.extra_row_info or something -#}
<div class="restock-info-wrap">
{%- if watch.has_restock_info -%}
<span class="restock-label {{'in-stock' if watch['restock']['in_stock'] else 'not-in-stock' }}" title="{{ _('Detecting restock and price') }}">
<!-- maybe some object watch['processor'][restock_diff] or.. -->
{%- if watch['restock']['in_stock']-%} {{ _('In stock') }} {%- else-%} {{ _('Not in stock') }} {%- endif -%}
</span>
{%- endif -%}
{%- if watch.get('restock') and watch['restock'].get('price') -%}
{%- set restock = watch['restock'] -%}
{%- set price = restock.get('price') -%}
{%- set currency = restock.get('currency') if restock.get('currency','') else '' -%}
{%- if price is not none and (price|string)|regex_search('\d') -%}
<span class="restock-label price" title="{{ _('Price') }}">
{# @todo: make parse_currency/parse_decimal aware of the locale of the actual web page and use that instead changedetectionio/processors/restock_diff/__init__.py #}
{%- if price is number -%}{# It's a number so we can convert it to their locale' #}
{{ price|format_number_locale }} {{ currency }}<!-- as number -->
{%- else -%}{# It's totally fine if it arrives as something else, the website might be something weird in this field #}
{{ price }} {{ currency }}<!-- as string -->
{%- endif -%}
</span>
{%- set price_change_pct = restock.get_price_change_percent() -%}
{%- if price_change_pct is not none -%}
{%- set prev_price = restock.get('last_price') -%}
{%- set prev_disp = (prev_price|format_number_locale ~ ' ' ~ currency) if prev_price is number else prev_price -%}
{%- if price_change_pct < 0 -%}
<span class="price-change down" title="{{ _('Price change since previous price (%(prev)s)', prev=prev_disp) }}">▼ {{ '%g'|format(price_change_pct) }}%</span>
{%- else -%}
<span class="price-change up" title="{{ _('Price change since previous price (%(prev)s)', prev=prev_disp) }}">▲ +{{ '%g'|format(price_change_pct) }}%</span>
{%- endif -%}
{%- endif -%}
{%- endif -%}
{%- elif not watch.has_restock_info -%}
<span class="restock-label error">{{ _('No information') }}</span>
{%- endif -%}
</div>
{%- endif -%}
</div>
</td>
{#
{%- if any_has_restock_price_processor -%}
<td class="restock-and-price">
</td>
{%- endif -%}
#}
{#last_checked becomes fetch-start-time#}
<td class="last-checked" data-timestamp="{{ watch.last_checked }}" data-fetchduration={{ watch.fetch_time }} data-eta_complete="{{ watch.last_checked+watch.fetch_time }}" data-label="{{ _('Checked') }}">
<div class="spinner-wrapper" style="display:none;" >
<span class="spinner"></span><span class="status-text">&nbsp;{{ watch['__check_status'] or _('Checking now') }}</span>
</div>
<span class="innertext">{{watch|format_last_checked_time|safe}}</span>
</td>
<td class="last-changed" data-timestamp="{{ watch.last_changed }}" data-label="{{ _('Changed') }}">
<span class="innertext">{%- if watch.history_n >=2 and watch.last_changed >0 -%}
{{watch.last_changed|format_timestamp_timeago}}
{%- else -%}
{{ _('Not yet') }}
{%- endif -%}
</span>
</td>
<td class="buttons">
<div>
{%- set target_attr = ' target="' ~ watch.uuid ~ '"' if datastore.data['settings']['application']['ui'].get('open_diff_in_new_tab') else '' -%}
<a href="" class="already-in-queue-button recheck cdio-btn cdio-btn--primary cdio-btn--sm" style="display: none;" disabled="disabled"><i data-feather="clock"></i>{{ _('Queued') }}</a>
<a href="{{ url_for('ui.form_watch_checknow', uuid=watch.uuid, tag=request.args.get('tag')) }}" data-op='recheck' class="ajax-op recheck cdio-btn cdio-btn--primary cdio-btn--sm"><i data-feather="refresh-cw"></i>{{ _('Recheck') }}</a>
<a href="{{ url_for('ui.ui_edit.edit_page', uuid=watch.uuid, tag=active_tag_uuid)}}#general" class="cdio-btn cdio-btn--primary cdio-btn--sm">{{ _('Edit') }}</a>
<a href="{{ url_for('ui.ui_diff.diff_history_page', uuid=watch.uuid)}}" {{target_attr}} class="cdio-btn cdio-btn--primary cdio-btn--sm history-link ai-history-btn" style="display: none;" data-uuid="{{ watch.uuid }}" data-summary-url="{{ url_for('ui.ui_diff.diff_llm_summary', uuid=watch.uuid) }}" data-processor-data-url="{{ url_for('ui.ui_diff.diff_history_page_processor_data', uuid=watch.uuid) }}"><span class="btn-label-history">{{ _('History') }}</span><span class="btn-label-summary">&#x2728; {{ _('Summary') }}</span></a>
<a href="{{ url_for('ui.ui_preview.preview_page', uuid=watch.uuid)}}" {{target_attr}} class="cdio-btn cdio-btn--primary cdio-btn--sm preview-link" style="display: none;">{{ _('Preview') }}</a>
</div>
</td>
</tr>
@@ -215,12 +215,9 @@ window.watchOverviewI18n = {
{%- set sort_attribute = sort_attribute or 'last_changed' -%}
{%- set pagination_page = request.args.get('page', 0) -%}
{%- set cols_required = 6 -%}
{%- set any_has_restock_price_processor = datastore.any_watches_have_processor_by_name("restock_diff") -%}
{%- set any_has_restock_price_processor = 0 -%}
{%- if any_has_restock_price_processor -%}
{%- set cols_required = cols_required + 1 -%}
{%- endif -%}
{%- set ui_settings = datastore.data['settings']['application']['ui'] -%}
{%- set wrapper_classes = [
'has-unread-changes' if unread_changes_count else '',
'has-error' if errored_count else '',
@@ -271,9 +268,11 @@ window.watchOverviewI18n = {
</div>
{% endif %}
<div id="buttons-for-all-watches">
{%- if unread_count -%}
{# Always rendered, hidden by CSS unless #watch-table-wrapper has .has-unread-changes.
It used to be {% if unread_count %}-gated, which meant it could not exist in the DOM
of another open tab — so marking viewed (or a new change arriving) in one tab could
never show/hide it in the other. Presence in the DOM is what lets realtime toggle it. #}
<a id="post-list-mark-views" class="cdio-btn" href="{{ filtered_action_url('ui.mark_all_viewed') }}"><i data-feather="eye"></i>{{ _('Mark all viewed') }}</a>
{%- endif -%}
<a id="recheck-all" class="cdio-btn" href="{{ filtered_action_url('ui.form_watch_checknow') }}"><i data-feather="refresh-cw"></i>{{ _('Recheck all') }} {% if active_tag_uuid %}{{ _("in '%(title)s'", title=active_tag.title) }}{% endif %}</a>
</div>
<a title="{{ _('RSS Feed') }}" href="{{ url_for('rss.feed', tag=active_tag_uuid, token=app_rss_token)}}"><img alt="RSS Feed" id="feed-icon" src="{{url_for('static_content', group='images', filename='generic_feed-icon.svg')}}" height="15"></a>
@@ -350,168 +349,7 @@ window.watchOverviewI18n = {
{%- endif -%}
{%- for watch in (watches|sort(attribute=sort_attribute, reverse=sort_order == 'asc'))|pagination_slice(skip=pagination.skip) -%}
{%- set checking_now = is_checking_now(watch) -%}
{%- set history_n = watch.history_n -%}
{%- set favicon = watch.get_favicon_filename() -%}
{%- set error_texts = watch.compile_error_texts(has_proxies=has_proxies) -%}
{%- set system_use_url_watchlist = datastore.data['settings']['application']['ui'].get('use_page_title_in_list') -%}
{# Class settings mirrored in changedetectionio/static/js/realtime.js for the frontend #}
{# loop.cycle('pure-table-odd', 'pure-table-even'),#}
{%- set row_classes = [
'processor-' ~ watch['processor'],
'has-error' if error_texts|length > 2 else '',
'paused' if watch.paused is defined and watch.paused != False else '',
'unviewed' if watch.has_unviewed else '',
'has-restock-info' if watch.has_restock_info else 'no-restock-info',
'has-favicon' if favicon else '',
'in-stock' if watch.has_restock_info and watch['restock']['in_stock'] else '',
'not-in-stock' if watch.has_restock_info and not watch['restock']['in_stock'] else '',
'queued' if watch.uuid in queued_uuids else '',
'checking-now' if checking_now else '',
'notification_muted' if watch.notification_muted else '',
'single-history' if history_n == 1 else '',
'multiple-history' if history_n >= 2 else '',
'use-html-title' if system_use_url_watchlist else 'no-html-title',
] -%}
<tr id="{{ watch.uuid }}" data-watch-uuid="{{ watch.uuid }}" class="{{ row_classes | reject('equalto', '') | join(' ') }}">
<td class="inline checkbox-uuid" ><div><input name="uuids" type="checkbox" value="{{ watch.uuid}} " >{# <span class="counter-i">{{ loop.index+pagination.skip }}</span>#}</div></td>
<td class="inline watch-controls">
<div>
<a class="ajax-op state-off pause-toggle" data-op="pause" aria-label="{{ _('Pause checks') }}" title="{{ _('Pause checks') }}" href="{{url_for('watchlist.index', op='pause', uuid=watch.uuid, tag=active_tag_uuid)}}"><i data-feather="pause" class="icon icon-pause"></i></a>
<a class="ajax-op state-on pause-toggle" data-op="pause" style="display: none" aria-label="{{ _('UnPause checks') }}" title="{{ _('UnPause checks') }}" href="{{url_for('watchlist.index', op='pause', uuid=watch.uuid, tag=active_tag_uuid)}}"><i data-feather="play" class="icon icon-unpause"></i></a>
<a class="ajax-op state-off mute-toggle" data-op="mute" aria-label="{{ _('Mute notification') }}" title="{{ _('Mute notification') }}" href="{{url_for('watchlist.index', op='mute', uuid=watch.uuid, tag=active_tag_uuid)}}"><i data-feather="bell" class="icon icon-mute"></i></a>
<a class="ajax-op state-on mute-toggle" data-op="mute" style="display: none" aria-label="{{ _('UnMute notification') }}" title="{{ _('UnMute notification') }}" href="{{url_for('watchlist.index', op='mute', uuid=watch.uuid, tag=active_tag_uuid)}}"><i data-feather="bell-off" class="icon icon-mute"></i></a>
</div>
</td>
<td class="title-col inline">
<div class="grid-wrapper">
{% if 'favicons_enabled' not in ui_settings or ui_settings['favicons_enabled'] %}
<div class="favicon">
<a target="_blank" rel="noopener" href="{{ watch.link.replace('source:','') }}">
{# Intersection Observer lazy loading: store real URL in data-src, load only when visible in viewport #}
<img alt="Favicon thumbnail"
class="favicon lazy-favicon"
loading="lazy"
decoding="async"
title="{{ _('Goto web page') }}"
alt="{{ _('Goto web page') }}"
fetchpriority="low"
{% if favicon %}
data-src="{{url_for('static_content', group='favicon', filename=watch.uuid)}}"
{% endif %}
src='data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="7.087" height="7.087" viewBox="0 0 7.087 7.087"%3E%3Ccircle cx="3.543" cy="3.543" r="3.279" stroke="%23e1e1e1" stroke-width="0.45" fill="none" opacity="0.74"/%3E%3C/svg%3E'>
</a>
</div>
{% endif %}
<div class="watch-text-info">
{%- if watch['processor'] and watch['processor'] in processor_badge_texts -%}
<a href="{{ url_for('watchlist.index', tag=active_tag_uuid, processor=watch['processor']) }}" class="processor-badge processor-badge-{{ watch['processor'] }}{{ ' active' if active_processor == watch['processor'] else '' }}" title="{{ processor_descriptions.get(watch['processor'], watch['processor']) }}">{{ processor_badge_texts[watch['processor']] }}</a>
{%- endif -%}
<span class="watch-title">
{% if system_use_url_watchlist or watch.get('use_page_title_in_list') %}
{{ watch.label }}
{% else %}
{{ watch.get('title') or watch.link }}
{% endif %}
<a class="external" target="_blank" rel="noopener" href="{{ watch.link.replace('source:','') }}">&nbsp;</a>
</span>
{%- for watch_tag_uuid, watch_tag in datastore.get_all_tags_for_watch(watch['uuid']).items() -%}
<a href="{{url_for('watchlist.index', tag=watch_tag_uuid) }}" class="watch-tag-list tag-{{ watch_tag.title|sanitize_tag_class }}">{{ watch_tag.title }}</a>
{%- endfor -%}
<div class="error-text" style="display:none;">{{ error_texts|safe }}</div>
{%- if watch['processor'] == 'text_json_diff' -%}
{%- if watch['has_ldjson_price_data'] and not watch['track_ldjson_price_data'] -%}
<div class="ldjson-price-track-offer">Switch to Restock & Price watch mode? <a href="{{url_for('price_data_follower.accept', uuid=watch.uuid)}}" class="pure-button button-xsmall">Yes</a> <a href="{{url_for('price_data_follower.reject', uuid=watch.uuid)}}" class="">No</a></div>
{%- endif -%}
{%- endif -%}
</div>
<div class="status-icons">
<a class="link-spread" href="{{url_for('ui.form_share_put_watch', uuid=watch.uuid)}}"><img src="{{url_for('static_content', group='images', filename='spread.svg')}}" class="status-icon icon icon-spread" title="{{ _('Create a link to share watch config with others') }}" ></a>
{%- set effective_fetcher = watch.get_fetch_backend if watch.get_fetch_backend != "system" else system_default_fetcher -%}
{%- if effective_fetcher and ("html_webdriver" in effective_fetcher or "html_" in effective_fetcher or "extra_browser_" in effective_fetcher) -%}
{{ effective_fetcher|fetcher_status_icons }}
{%- endif -%}
{%- if watch.is_pdf -%}<img class="status-icon" src="{{url_for('static_content', group='images', filename='pdf-icon.svg')}}" alt="Converting PDF to text" >{%- endif -%}
{%- if watch.has_browser_steps -%}<img class="status-icon status-browsersteps" src="{{url_for('static_content', group='images', filename='steps.svg')}}" alt="Browser Steps is enabled" >{%- endif -%}
</div>
{%- if watch['processor'] == 'restock_diff' -%}
{#- @todo - this could be injected somehow watch.extra_row_info or something -#}
<div class="restock-info-wrap">
{%- if watch.has_restock_info -%}
<span class="restock-label {{'in-stock' if watch['restock']['in_stock'] else 'not-in-stock' }}" title="{{ _('Detecting restock and price') }}">
<!-- maybe some object watch['processor'][restock_diff] or.. -->
{%- if watch['restock']['in_stock']-%} {{ _('In stock') }} {%- else-%} {{ _('Not in stock') }} {%- endif -%}
</span>
{%- endif -%}
{%- if watch.get('restock') and watch['restock'].get('price') -%}
{%- set restock = watch['restock'] -%}
{%- set price = restock.get('price') -%}
{%- set currency = restock.get('currency') if restock.get('currency','') else '' -%}
{%- if price is not none and (price|string)|regex_search('\d') -%}
<span class="restock-label price" title="{{ _('Price') }}">
{# @todo: make parse_currency/parse_decimal aware of the locale of the actual web page and use that instead changedetectionio/processors/restock_diff/__init__.py #}
{%- if price is number -%}{# It's a number so we can convert it to their locale' #}
{{ price|format_number_locale }} {{ currency }}<!-- as number -->
{%- else -%}{# It's totally fine if it arrives as something else, the website might be something weird in this field #}
{{ price }} {{ currency }}<!-- as string -->
{%- endif -%}
</span>
{%- set price_change_pct = restock.get_price_change_percent() -%}
{%- if price_change_pct is not none -%}
{%- set prev_price = restock.get('last_price') -%}
{%- set prev_disp = (prev_price|format_number_locale ~ ' ' ~ currency) if prev_price is number else prev_price -%}
{%- if price_change_pct < 0 -%}
<span class="price-change down" title="{{ _('Price change since previous price (%(prev)s)', prev=prev_disp) }}">▼ {{ '%g'|format(price_change_pct) }}%</span>
{%- else -%}
<span class="price-change up" title="{{ _('Price change since previous price (%(prev)s)', prev=prev_disp) }}">▲ +{{ '%g'|format(price_change_pct) }}%</span>
{%- endif -%}
{%- endif -%}
{%- endif -%}
{%- elif not watch.has_restock_info -%}
<span class="restock-label error">{{ _('No information') }}</span>
{%- endif -%}
</div>
{%- endif -%}
</div>
</td>
{#
{%- if any_has_restock_price_processor -%}
<td class="restock-and-price">
</td>
{%- endif -%}
#}
{#last_checked becomes fetch-start-time#}
<td class="last-checked" data-timestamp="{{ watch.last_checked }}" data-fetchduration={{ watch.fetch_time }} data-eta_complete="{{ watch.last_checked+watch.fetch_time }}" data-label="{{ _('Checked') }}">
<div class="spinner-wrapper" style="display:none;" >
<span class="spinner"></span><span class="status-text">&nbsp;{{ watch['__check_status'] or _('Checking now') }}</span>
</div>
<span class="innertext">{{watch|format_last_checked_time|safe}}</span>
</td>
<td class="last-changed" data-timestamp="{{ watch.last_changed }}" data-label="{{ _('Changed') }}">
<span class="innertext">{%- if watch.history_n >=2 and watch.last_changed >0 -%}
{{watch.last_changed|format_timestamp_timeago}}
{%- else -%}
{{ _('Not yet') }}
{%- endif -%}
</span>
</td>
<td class="buttons">
<div>
{%- set target_attr = ' target="' ~ watch.uuid ~ '"' if datastore.data['settings']['application']['ui'].get('open_diff_in_new_tab') else '' -%}
<a href="" class="already-in-queue-button recheck cdio-btn cdio-btn--primary cdio-btn--sm" style="display: none;" disabled="disabled"><i data-feather="clock"></i>{{ _('Queued') }}</a>
<a href="{{ url_for('ui.form_watch_checknow', uuid=watch.uuid, tag=request.args.get('tag')) }}" data-op='recheck' class="ajax-op recheck cdio-btn cdio-btn--primary cdio-btn--sm"><i data-feather="refresh-cw"></i>{{ _('Recheck') }}</a>
<a href="{{ url_for('ui.ui_edit.edit_page', uuid=watch.uuid, tag=active_tag_uuid)}}#general" class="cdio-btn cdio-btn--primary cdio-btn--sm">{{ _('Edit') }}</a>
<a href="{{ url_for('ui.ui_diff.diff_history_page', uuid=watch.uuid)}}" {{target_attr}} class="cdio-btn cdio-btn--primary cdio-btn--sm history-link ai-history-btn" style="display: none;" data-uuid="{{ watch.uuid }}" data-summary-url="{{ url_for('ui.ui_diff.diff_llm_summary', uuid=watch.uuid) }}" data-processor-data-url="{{ url_for('ui.ui_diff.diff_history_page_processor_data', uuid=watch.uuid) }}"><span class="btn-label-history">{{ _('History') }}</span><span class="btn-label-summary">&#x2728; {{ _('Summary') }}</span></a>
<a href="{{ url_for('ui.ui_preview.preview_page', uuid=watch.uuid)}}" {{target_attr}} class="cdio-btn cdio-btn--primary cdio-btn--sm preview-link" style="display: none;">{{ _('Preview') }}</a>
</div>
</td>
</tr>
{%- include "watch-overview-single-row.html" -%}
{%- endfor -%}
</tbody>
</table>
@@ -40,6 +40,30 @@ class SignalHandler:
notification_event_signal.connect(self.handle_notification_event, weak=False)
logger.info("SignalHandler: Connected to notification_event signal")
# One-shot stats refresh for bulk operations that deliberately skip the per-watch
# signal (see set_last_viewed(send_signal=False)) — n signals would mean n full
# rescans of every watch plus 3n broadcasts.
general_stats_signal = signal('general_stats_update')
general_stats_signal.connect(self.handle_general_stats_update, weak=False)
def handle_general_stats_update(self, *args, **kwargs):
"""Emit the global counters once, without touching any individual row.
Sent after a bulk operation. The tab that triggered it is usually reloading anyway;
this is for OTHER open tabs so their unread/error counters don't sit stale.
Note their ROWS still keep a stale 'unviewed' class until the row resync lands —
tracked separately, this only fixes the counters.
"""
try:
errored_count = sum(1 for w in self.datastore.data['watching'].values() if w.get('last_error'))
self.socketio_instance.emit("general_stats_update", {
'count_errors': errored_count,
'unread_changes_count': self.datastore.unread_changes_count,
})
logger.trace("Socket.IO: Emitted one-shot general_stats_update")
except Exception as e:
logger.error(f"Socket.IO error in handle_general_stats_update: {str(e)}")
def handle_watch_small_status_update(self, *args, **kwargs):
"""Small simple status update, for example 'Connecting...'"""
+5
View File
@@ -242,6 +242,11 @@ $(document).ready(function () {
})
socket.on('general_stats_update', function (general_stats) {
// Drives the "Mark all viewed" button, which is always in the DOM and revealed by
// this class (see body.has-any-unviewed in _watch_table.scss). Emitted whenever a
// worker finishes a watch, and once after bulk ops like mark-all-viewed - so every
// open tab shows/hides the button without needing a reload.
document.body.classList.toggle('has-any-unviewed', general_stats.unread_changes_count !== 0);
$('#watch-table-wrapper').toggleClass("has-unread-changes", general_stats.unread_changes_count !==0)
$('#watch-table-wrapper').toggleClass("has-error", general_stats.count_errors !== 0)
// NB: the watch-list status .seg counts (unread/errors/deals) are
@@ -425,6 +425,20 @@ body.watch-selection-active {
flex-wrap: wrap;
gap: $common-gap;
margin: 0;
/* Always in the DOM so realtime can reveal/hide it in any open tab (it used to be
{% if unread_count %}'d away, so another tab could never show it). Revealed by
body.has-any-unviewed - a body class rather than a selector tied to this toolbar,
so it keeps working if the button moves, and it follows the same convention as
body.has-queue / body.is-checking-now. Set server-side via extra_classes and kept
live by the general_stats_update socket event. */
#post-list-mark-views {
display: none;
}
}
body.has-any-unviewed #post-list-mark-views {
display: inline-flex !important;
}
#watch-table-wrapper {
@@ -452,9 +466,11 @@ body.watch-selection-active {
}
}
/* #post-list-mark-views is no longer keyed off this class — see body.has-any-unviewed.
Two classes tracking one fact is how they drift, so prefer the body class for anything new. */
&.has-unread-changes {
#list-related-buttons {
#post-list-unread, #post-list-mark-views {
#post-list-unread {
display: inline-flex !important;
}
}
File diff suppressed because one or more lines are too long
+11 -4
View File
@@ -455,14 +455,21 @@ class ChangeDetectionStore(DatastoreUpdatesMixin, FileSavingDataStore):
# Watch Management Methods
# ============================================================================
def set_last_viewed(self, uuid, timestamp):
def set_last_viewed(self, uuid, timestamp, send_signal=True):
logger.debug(f"Setting watch UUID: {uuid} last viewed to {int(timestamp)}")
self.data['watching'][uuid].update({'last_viewed': int(timestamp)})
self.data['watching'][uuid].commit()
watch_check_update = signal('watch_check_update')
if watch_check_update:
watch_check_update.send(watch_uuid=uuid)
# Bulk callers (mark-all-viewed) pass send_signal=False and emit one summary event
# afterwards instead. Each signal fans out to handle_watch_update(), which rescans
# EVERY watch twice (errored_count + unread_changes_count), takes the queue and
# worker-pool locks, and broadcasts 3 socket events — so signalling per watch makes
# a bulk mark O(n^2) with 3n emits, and floods every connected browser with n
# row updates it will immediately re-render anyway.
if send_signal:
watch_check_update = signal('watch_check_update')
if watch_check_update:
watch_check_update.send(watch_uuid=uuid)
def remove_password(self):
self.__data['settings']['application']['password'] = False
@@ -8,7 +8,11 @@ from changedetectionio.tests.util import wait_for_all_checks
def test_check_plugin_processor(client, live_server, measure_memory_usage, datastore_path):
# requires os-int intelligence plugin installed (first basic one we test with)
res = client.get(url_for("add_watch_ui.add_watch_ui_index"))
# Check the plugin processor shows up in the general "add watch" form on the watch-list overview
# (the unfiltered processor list). NOTE: not /add-watch-ui - that page is the visual/browser flow
# and only offers processors with supports_visual_selector; OSINT is a non-visual network-recon
# processor, so it correctly does NOT appear there.
res = client.get(url_for("watchlist.index"))
assert b'OSINT Reconnaissance' in res.data, "Must have the OSINT plugin installed at test time"
assert b'<input checked id="processor-0" name="processor" type="radio" value="text_json_diff">' in res.data, "But the first text_json_diff processor should always be selected by default in quick watch form"
@@ -0,0 +1,61 @@
#!/usr/bin/env python3
"""Re #4021 - the "Mark all viewed" button must be driven by live state, not by render-time presence.
The button used to be wrapped in {% if unread_count %}, so when nothing was unread it did not
exist in the DOM at all. A second tab could therefore never show it after a change arrived, and
never hide it after another tab marked everything viewed - no socket event can style an element
that isn't there.
It is now always rendered and revealed by body.has-any-unviewed, which is set server-side via
extra_classes and kept live by the general_stats_update socket event. These assertions pin both
halves: the element is always present, and the body class tracks the unviewed state.
"""
from flask import url_for
from .util import set_original_response, set_modified_response, wait_for_all_checks, delete_all_watches
def _body_has_any_unviewed(res):
"""The <body> class list is what CSS keys off - realtime.js toggles the same class."""
for line in res.data.decode('utf-8').split('\n'):
if '<body class="' in line:
return 'has-any-unviewed' in line
raise AssertionError("no <body class=...> found in response")
def test_mark_all_viewed_button_is_always_in_the_dom(client, live_server, measure_memory_usage, datastore_path):
set_original_response(datastore_path=datastore_path)
client.post(
url_for("ui.ui_views.form_quick_watch_add"),
data={"url": url_for('test_endpoint', _external=True), "tags": ''},
follow_redirects=True
)
wait_for_all_checks(client)
# First snapshot only - nothing is unread yet
res = client.get(url_for("watchlist.index"))
assert b'id="post-list-mark-views"' in res.data, \
"Button must be in the DOM even with nothing unread, or another tab can never reveal it"
assert not _body_has_any_unviewed(res), "Nothing unread, so the body class must be absent"
# A real change lands -> unviewed
set_modified_response(datastore_path=datastore_path)
client.get(url_for("ui.form_watch_checknow"), follow_redirects=True)
wait_for_all_checks(client)
res = client.get(url_for("watchlist.index"))
assert b'id="post-list-mark-views"' in res.data
assert _body_has_any_unviewed(res), "Unviewed change present, so the body class must be set"
# Mark all viewed runs synchronously (Re #4021), so the redirect must already reflect it
res = client.get(url_for("ui.mark_all_viewed"), follow_redirects=True)
assert not _body_has_any_unviewed(res), \
"mark_all_viewed must be applied before the redirect renders - it used to run in a " \
"background thread and the page rendered mid-marking"
assert b'id="post-list-mark-views"' in res.data, "Still in the DOM, just hidden by CSS"
assert b'class="has-unread-changes' not in res.data
delete_all_watches(client)
@@ -1398,11 +1398,12 @@ msgid "Mute notifications"
msgstr "Ztlumit oznámení"
#: changedetectionio/blueprint/tags/templates/groups-overview.html changedetectionio/blueprint/ui/edit.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Edit"
msgstr "Upravit"
#: changedetectionio/blueprint/tags/templates/groups-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Recheck"
msgstr "Znovu zkontrolovat"
@@ -2274,7 +2275,8 @@ msgstr ""
msgid "Running now"
msgstr ""
#: changedetectionio/blueprint/ui/templates/queue.html changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/ui/templates/queue.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Queued"
msgstr "Ve frontě"
@@ -2331,6 +2333,88 @@ msgstr ""
msgid "records"
msgstr "záznamy"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Detecting restock and price"
msgstr "Kontrola zásob a ceny"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Not in stock"
msgstr "Není skladem"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "Skladem"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "Cena"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "No information"
msgstr "Žádné informace"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "Zkontrolováno"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "Probíhá kontrola"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "Změněno"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "Historie"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Preview"
msgstr "Náhled"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changedetection.io can monitor more than just web-pages! See our plugins!"
msgstr ""
@@ -2352,12 +2436,6 @@ msgstr ""
msgid "Loading price history…"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "Skladem"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
@@ -2583,14 +2661,6 @@ msgstr ""
msgid "Restock & Price"
msgstr "Doplnění zásob a cena"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "Zkontrolováno"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "Změněno"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No web page change detection 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 nebo"
@@ -2599,71 +2669,6 @@ msgstr "Nejsou nakonfigurována žádná sledování webových stránek, do vý
msgid "import a list"
msgstr "importovat seznam"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Detecting restock and price"
msgstr "Kontrola zásob a ceny"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Not in stock"
msgstr "Není skladem"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "Cena"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No information"
msgstr "Žádné informace"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "Probíhá kontrola"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "Historie"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Preview"
msgstr "Náhled"
#: changedetectionio/conditions/__init__.py
msgid "Choose one - Operator"
msgstr ""
@@ -2826,7 +2831,7 @@ msgstr ""
msgid "Basic fast Plaintext/HTTP Client"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/flask_app.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/flask_app.py
#: changedetectionio/realtime/socket_server.py
msgid "Not yet"
msgstr "Ještě ne"
@@ -1417,11 +1417,12 @@ msgid "Mute notifications"
msgstr "Benachrichtigungen stummschalten"
#: changedetectionio/blueprint/tags/templates/groups-overview.html changedetectionio/blueprint/ui/edit.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Edit"
msgstr "Bearbeiten"
#: changedetectionio/blueprint/tags/templates/groups-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Recheck"
msgstr "Neu prüfen"
@@ -2319,7 +2320,8 @@ msgstr ""
msgid "Running now"
msgstr ""
#: changedetectionio/blueprint/ui/templates/queue.html changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/ui/templates/queue.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Queued"
msgstr "Wartend"
@@ -2376,6 +2378,88 @@ msgstr "Überwachung hinzugefügt."
msgid "records"
msgstr "Einträge"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Detecting restock and price"
msgstr "Erkennen von Lagerbeständen und Preisen"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Not in stock"
msgstr "Nicht auf Lager"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "Auf Lager"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "Preis"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "No information"
msgstr "Keine Informationen"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "Geprüft"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "Jetzt prüfen"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "Geändert"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "Verlauf"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Preview"
msgstr "Vorschau"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changedetection.io can monitor more than just web-pages! See our plugins!"
msgstr ""
@@ -2397,12 +2481,6 @@ msgstr ""
msgid "Loading price history…"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "Auf Lager"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
@@ -2632,14 +2710,6 @@ msgstr ""
msgid "Restock & Price"
msgstr "Auffüllen und Preis"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "Geprüft"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "Geändert"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No web page change detection 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"
@@ -2648,71 +2718,6 @@ msgstr "Es sind keine Website-Überwachungen konfiguriert. Bitte fügen Sie im F
msgid "import a list"
msgstr "eine Liste importieren"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Detecting restock and price"
msgstr "Erkennen von Lagerbeständen und Preisen"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Not in stock"
msgstr "Nicht auf Lager"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "Preis"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No information"
msgstr "Keine Informationen"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "Jetzt prüfen"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "Verlauf"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Preview"
msgstr "Vorschau"
#: changedetectionio/conditions/__init__.py
msgid "Choose one - Operator"
msgstr ""
@@ -2875,7 +2880,7 @@ msgstr ""
msgid "Basic fast Plaintext/HTTP Client"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/flask_app.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/flask_app.py
#: changedetectionio/realtime/socket_server.py
msgid "Not yet"
msgstr "Noch nicht"
@@ -1394,11 +1394,12 @@ msgid "Mute notifications"
msgstr ""
#: changedetectionio/blueprint/tags/templates/groups-overview.html changedetectionio/blueprint/ui/edit.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Edit"
msgstr ""
#: changedetectionio/blueprint/tags/templates/groups-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Recheck"
msgstr ""
@@ -2268,7 +2269,8 @@ msgstr ""
msgid "Running now"
msgstr ""
#: changedetectionio/blueprint/ui/templates/queue.html changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/ui/templates/queue.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Queued"
msgstr ""
@@ -2325,6 +2327,88 @@ msgstr ""
msgid "records"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Detecting restock and price"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Not in stock"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "No information"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Preview"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changedetection.io can monitor more than just web-pages! See our plugins!"
msgstr ""
@@ -2346,12 +2430,6 @@ msgstr ""
msgid "Loading price history…"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
@@ -2577,14 +2655,6 @@ msgstr ""
msgid "Restock & Price"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No web page change detection watches configured, please add a URL in the box above, or"
msgstr ""
@@ -2593,71 +2663,6 @@ msgstr ""
msgid "import a list"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Detecting restock and price"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Not in stock"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No information"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Preview"
msgstr ""
#: changedetectionio/conditions/__init__.py
msgid "Choose one - Operator"
msgstr ""
@@ -2820,7 +2825,7 @@ msgstr ""
msgid "Basic fast Plaintext/HTTP Client"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/flask_app.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/flask_app.py
#: changedetectionio/realtime/socket_server.py
msgid "Not yet"
msgstr ""
@@ -1394,11 +1394,12 @@ msgid "Mute notifications"
msgstr ""
#: changedetectionio/blueprint/tags/templates/groups-overview.html changedetectionio/blueprint/ui/edit.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Edit"
msgstr ""
#: changedetectionio/blueprint/tags/templates/groups-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Recheck"
msgstr ""
@@ -2268,7 +2269,8 @@ msgstr ""
msgid "Running now"
msgstr ""
#: changedetectionio/blueprint/ui/templates/queue.html changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/ui/templates/queue.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Queued"
msgstr ""
@@ -2325,6 +2327,88 @@ msgstr ""
msgid "records"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Detecting restock and price"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Not in stock"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "No information"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Preview"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changedetection.io can monitor more than just web-pages! See our plugins!"
msgstr ""
@@ -2346,12 +2430,6 @@ msgstr ""
msgid "Loading price history…"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
@@ -2577,14 +2655,6 @@ msgstr ""
msgid "Restock & Price"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No web page change detection watches configured, please add a URL in the box above, or"
msgstr ""
@@ -2593,71 +2663,6 @@ msgstr ""
msgid "import a list"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Detecting restock and price"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Not in stock"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No information"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Preview"
msgstr ""
#: changedetectionio/conditions/__init__.py
msgid "Choose one - Operator"
msgstr ""
@@ -2820,7 +2825,7 @@ msgstr ""
msgid "Basic fast Plaintext/HTTP Client"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/flask_app.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/flask_app.py
#: changedetectionio/realtime/socket_server.py
msgid "Not yet"
msgstr ""
@@ -1437,11 +1437,12 @@ msgid "Mute notifications"
msgstr "Silenciar notificaciones"
#: changedetectionio/blueprint/tags/templates/groups-overview.html changedetectionio/blueprint/ui/edit.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Edit"
msgstr "Editar"
#: changedetectionio/blueprint/tags/templates/groups-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Recheck"
msgstr "Vuelva a comprobar"
@@ -2335,7 +2336,8 @@ msgstr ""
msgid "Running now"
msgstr ""
#: changedetectionio/blueprint/ui/templates/queue.html changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/ui/templates/queue.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Queued"
msgstr "En cola"
@@ -2392,6 +2394,88 @@ msgstr "Monitor añadido."
msgid "records"
msgstr "archivos"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Detecting restock and price"
msgstr "Detección de reabastecimiento y precio"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Not in stock"
msgstr "No en stock"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "En stock"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "Precio"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "No information"
msgstr "Sin información"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "Comprobado"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "Comprobando ahora"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "Cambiado"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "Historia"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Preview"
msgstr "Avance"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changedetection.io can monitor more than just web-pages! See our plugins!"
msgstr "¡Changedetection.io puede monitorear más que solo páginas web! ¡Vea nuestros complementos!"
@@ -2413,12 +2497,6 @@ msgstr ""
msgid "Loading price history…"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "En stock"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
@@ -2648,14 +2726,6 @@ msgstr ""
msgid "Restock & Price"
msgstr "Reabastecimiento y precio"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "Comprobado"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "Cambiado"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No web page change detection watches configured, please add a URL in the box above, or"
msgstr "No hay monitores de detección de cambios de página web configuradas; agregue una URL en el cuadro de arriba, o"
@@ -2664,71 +2734,6 @@ msgstr "No hay monitores de detección de cambios de página web configuradas; a
msgid "import a list"
msgstr "importar una lista"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Detecting restock and price"
msgstr "Detección de reabastecimiento y precio"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Not in stock"
msgstr "No en stock"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "Precio"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No information"
msgstr "Sin información"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "Comprobando ahora"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "Historia"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Preview"
msgstr "Avance"
#: changedetectionio/conditions/__init__.py
msgid "Choose one - Operator"
msgstr ""
@@ -2891,7 +2896,7 @@ msgstr ""
msgid "Basic fast Plaintext/HTTP Client"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/flask_app.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/flask_app.py
#: changedetectionio/realtime/socket_server.py
msgid "Not yet"
msgstr "Aún no"
@@ -1403,11 +1403,12 @@ msgid "Mute notifications"
msgstr "Désactiver les notifications"
#: changedetectionio/blueprint/tags/templates/groups-overview.html changedetectionio/blueprint/ui/edit.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Edit"
msgstr "Modifier"
#: changedetectionio/blueprint/tags/templates/groups-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Recheck"
msgstr "Revérifier"
@@ -2279,7 +2280,8 @@ msgstr ""
msgid "Running now"
msgstr ""
#: changedetectionio/blueprint/ui/templates/queue.html changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/ui/templates/queue.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Queued"
msgstr "En file d'attente"
@@ -2336,6 +2338,88 @@ msgstr ""
msgid "records"
msgstr "enregistrements"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Detecting restock and price"
msgstr "Détection du réapprovisionnement et du prix"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Not in stock"
msgstr "Pas en stock"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "En stock"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "Prix"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "No information"
msgstr "Aucune information"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "Vérification"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "Vérifier maintenant"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "Modifié"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "Historique"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Preview"
msgstr "Aperçu"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changedetection.io can monitor more than just web-pages! See our plugins!"
msgstr ""
@@ -2357,12 +2441,6 @@ msgstr ""
msgid "Loading price history…"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "En stock"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
@@ -2588,14 +2666,6 @@ msgstr ""
msgid "Restock & Price"
msgstr "Réapprovisionnement et prix"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "Vérification"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "Modifié"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No web page change detection 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, ou"
@@ -2604,71 +2674,6 @@ msgstr "Aucune surveillance de site Web configurée, veuillez ajouter une URL da
msgid "import a list"
msgstr "importer une liste"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Detecting restock and price"
msgstr "Détection du réapprovisionnement et du prix"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Not in stock"
msgstr "Pas en stock"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "Prix"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No information"
msgstr "Aucune information"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "Vérifier maintenant"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "Historique"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Preview"
msgstr "Aperçu"
#: changedetectionio/conditions/__init__.py
msgid "Choose one - Operator"
msgstr ""
@@ -2831,7 +2836,7 @@ msgstr ""
msgid "Basic fast Plaintext/HTTP Client"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/flask_app.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/flask_app.py
#: changedetectionio/realtime/socket_server.py
msgid "Not yet"
msgstr "Pas encore"
@@ -1396,11 +1396,12 @@ msgid "Mute notifications"
msgstr "Disattiva notifiche"
#: changedetectionio/blueprint/tags/templates/groups-overview.html changedetectionio/blueprint/ui/edit.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Edit"
msgstr "Modifica"
#: changedetectionio/blueprint/tags/templates/groups-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Recheck"
msgstr "Controlla ora"
@@ -2270,7 +2271,8 @@ msgstr ""
msgid "Running now"
msgstr ""
#: changedetectionio/blueprint/ui/templates/queue.html changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/ui/templates/queue.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Queued"
msgstr "In coda"
@@ -2327,6 +2329,88 @@ msgstr ""
msgid "records"
msgstr "record"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Detecting restock and price"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Not in stock"
msgstr "Non disponibile"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "Disponibile"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "Prezzo"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "No information"
msgstr "Nessuna informazione"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "Controllo"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "Controllo in corso"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "Modifica"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "Cronologia"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Preview"
msgstr "Anteprima"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changedetection.io can monitor more than just web-pages! See our plugins!"
msgstr ""
@@ -2348,12 +2432,6 @@ msgstr ""
msgid "Loading price history…"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "Disponibile"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
@@ -2579,14 +2657,6 @@ msgstr ""
msgid "Restock & Price"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "Controllo"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "Modifica"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No web page change detection watches configured, please add a URL in the box above, or"
msgstr "Nessun monitoraggio configurato, aggiungi un URL nella casella sopra, oppure"
@@ -2595,71 +2665,6 @@ msgstr "Nessun monitoraggio configurato, aggiungi un URL nella casella sopra, op
msgid "import a list"
msgstr "importa una lista"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Detecting restock and price"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Not in stock"
msgstr "Non disponibile"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "Prezzo"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No information"
msgstr "Nessuna informazione"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "Controllo in corso"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "Cronologia"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Preview"
msgstr "Anteprima"
#: changedetectionio/conditions/__init__.py
msgid "Choose one - Operator"
msgstr ""
@@ -2822,7 +2827,7 @@ msgstr ""
msgid "Basic fast Plaintext/HTTP Client"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/flask_app.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/flask_app.py
#: changedetectionio/realtime/socket_server.py
msgid "Not yet"
msgstr "Non ancora"
@@ -1402,11 +1402,12 @@ msgid "Mute notifications"
msgstr "通知をミュート"
#: changedetectionio/blueprint/tags/templates/groups-overview.html changedetectionio/blueprint/ui/edit.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Edit"
msgstr "編集"
#: changedetectionio/blueprint/tags/templates/groups-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Recheck"
msgstr "再チェック"
@@ -2287,7 +2288,8 @@ msgstr ""
msgid "Running now"
msgstr ""
#: changedetectionio/blueprint/ui/templates/queue.html changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/ui/templates/queue.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Queued"
msgstr "キュー済み"
@@ -2344,6 +2346,88 @@ msgstr "ウォッチを追加しました。"
msgid "records"
msgstr "件"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Pause checks"
msgstr "チェックを一時停止"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnPause checks"
msgstr "チェックを再開"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Mute notification"
msgstr "通知をミュート"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnMute notification"
msgstr "通知のミュートを解除"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Create a link to share watch config with others"
msgstr "ウォッチ設定を他の人と共有するリンクを作成"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Detecting restock and price"
msgstr "在庫補充と価格を検知中"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Not in stock"
msgstr "在庫なし"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "在庫あり"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "価格"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "No information"
msgstr "情報なし"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "チェック済み"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "今すぐチェック"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "変更済み"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "履歴"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Preview"
msgstr "プレビュー"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changedetection.io can monitor more than just web-pages! See our plugins!"
msgstr "Changedetection.io はウェブページ以外も監視できます!プラグインをご覧ください!"
@@ -2365,12 +2449,6 @@ msgstr ""
msgid "Loading price history…"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "在庫あり"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
@@ -2596,14 +2674,6 @@ msgstr ""
msgid "Restock & Price"
msgstr "在庫補充&価格"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "チェック済み"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "変更済み"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No web page change detection watches configured, please add a URL in the box above, or"
msgstr "ウェブページ変更検知ウォッチが設定されていません。上のボックスにURLを追加するか、"
@@ -2612,71 +2682,6 @@ msgstr "ウェブページ変更検知ウォッチが設定されていません
msgid "import a list"
msgstr "リストをインポート"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Pause checks"
msgstr "チェックを一時停止"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnPause checks"
msgstr "チェックを再開"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Mute notification"
msgstr "通知をミュート"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnMute notification"
msgstr "通知のミュートを解除"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Create a link to share watch config with others"
msgstr "ウォッチ設定を他の人と共有するリンクを作成"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Detecting restock and price"
msgstr "在庫補充と価格を検知中"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Not in stock"
msgstr "在庫なし"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "価格"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No information"
msgstr "情報なし"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "今すぐチェック"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "履歴"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Preview"
msgstr "プレビュー"
#: changedetectionio/conditions/__init__.py
msgid "Choose one - Operator"
msgstr "選択してください - 演算子"
@@ -2839,7 +2844,7 @@ msgstr "単語数はコンテンツの長さを示す簡易指標で、テキス
msgid "Basic fast Plaintext/HTTP Client"
msgstr "基本 (高速なプレーンテキスト/HTTPクライアント)"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/flask_app.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/flask_app.py
#: changedetectionio/realtime/socket_server.py
msgid "Not yet"
msgstr "未実施"
@@ -1404,11 +1404,12 @@ msgid "Mute notifications"
msgstr "알림 음소거"
#: changedetectionio/blueprint/tags/templates/groups-overview.html changedetectionio/blueprint/ui/edit.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Edit"
msgstr "편집"
#: changedetectionio/blueprint/tags/templates/groups-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Recheck"
msgstr "재확인"
@@ -2278,7 +2279,8 @@ msgstr ""
msgid "Running now"
msgstr ""
#: changedetectionio/blueprint/ui/templates/queue.html changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/ui/templates/queue.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Queued"
msgstr "대기 중"
@@ -2335,6 +2337,88 @@ msgstr "모니터링이 추가되었습니다."
msgid "records"
msgstr "항목"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Pause checks"
msgstr "확인 일시중지"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnPause checks"
msgstr "확인 재개"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Mute notification"
msgstr "알림 음소거"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnMute notification"
msgstr "알림 음소거 해제"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Create a link to share watch config with others"
msgstr "다른 사람과 모니터링 설정을 공유할 링크 만들기"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Detecting restock and price"
msgstr "재입고 및 가격 감지"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Not in stock"
msgstr "재고 없음"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "재고 있음"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "가격"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "No information"
msgstr "정보 없음"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "확인됨"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "지금 확인 중"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "변경됨"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Summary"
msgstr "요약"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "기록"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Preview"
msgstr "미리보기"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changedetection.io can monitor more than just web-pages! See our plugins!"
msgstr "changedetection.io는 웹페이지 외에도 다양한 대상을 모니터링할 수 있습니다. 플러그인을 확인해 보세요."
@@ -2356,12 +2440,6 @@ msgstr "전체 기록으로 이동"
msgid "Loading price history…"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "재고 있음"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
@@ -2587,14 +2665,6 @@ msgstr ""
msgid "Restock & Price"
msgstr "재입고 및 가격"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "확인됨"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "변경됨"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No web page change detection watches configured, please add a URL in the box above, or"
msgstr "설정된 웹페이지 변경 감지 모니터링이 없습니다. 위 입력란에 URL을 추가하거나"
@@ -2603,71 +2673,6 @@ msgstr "설정된 웹페이지 변경 감지 모니터링이 없습니다. 위
msgid "import a list"
msgstr "목록 가져오기"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Pause checks"
msgstr "확인 일시중지"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnPause checks"
msgstr "확인 재개"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Mute notification"
msgstr "알림 음소거"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnMute notification"
msgstr "알림 음소거 해제"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Create a link to share watch config with others"
msgstr "다른 사람과 모니터링 설정을 공유할 링크 만들기"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Detecting restock and price"
msgstr "재입고 및 가격 감지"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Not in stock"
msgstr "재고 없음"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "가격"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No information"
msgstr "정보 없음"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "지금 확인 중"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Summary"
msgstr "요약"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "기록"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Preview"
msgstr "미리보기"
#: changedetectionio/conditions/__init__.py
msgid "Choose one - Operator"
msgstr "연산자 선택"
@@ -2830,7 +2835,7 @@ msgstr "단어 수는 텍스트를 공백 기준으로 나누어 계산하는
msgid "Basic fast Plaintext/HTTP Client"
msgstr "일반 텍스트/HTTP 클라이언트"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/flask_app.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/flask_app.py
#: changedetectionio/realtime/socket_server.py
msgid "Not yet"
msgstr "아직 없음"
+88 -83
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: changedetection.io 0.55.8\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-07-13 11:51+0200\n"
"POT-Creation-Date: 2026-08-16 15:15+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1393,11 +1393,12 @@ msgid "Mute notifications"
msgstr ""
#: changedetectionio/blueprint/tags/templates/groups-overview.html changedetectionio/blueprint/ui/edit.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Edit"
msgstr ""
#: changedetectionio/blueprint/tags/templates/groups-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Recheck"
msgstr ""
@@ -2267,7 +2268,8 @@ msgstr ""
msgid "Running now"
msgstr ""
#: changedetectionio/blueprint/ui/templates/queue.html changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/ui/templates/queue.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Queued"
msgstr ""
@@ -2324,6 +2326,88 @@ msgstr ""
msgid "records"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Detecting restock and price"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Not in stock"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "No information"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Preview"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changedetection.io can monitor more than just web-pages! See our plugins!"
msgstr ""
@@ -2345,12 +2429,6 @@ msgstr ""
msgid "Loading price history…"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
@@ -2576,14 +2654,6 @@ msgstr ""
msgid "Restock & Price"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No web page change detection watches configured, please add a URL in the box above, or"
msgstr ""
@@ -2592,71 +2662,6 @@ msgstr ""
msgid "import a list"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Detecting restock and price"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Not in stock"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No information"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Preview"
msgstr ""
#: changedetectionio/conditions/__init__.py
msgid "Choose one - Operator"
msgstr ""
@@ -2819,7 +2824,7 @@ msgstr ""
msgid "Basic fast Plaintext/HTTP Client"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/flask_app.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/flask_app.py
#: changedetectionio/realtime/socket_server.py
msgid "Not yet"
msgstr ""
@@ -1424,11 +1424,12 @@ msgid "Mute notifications"
msgstr "Silenciar notificações"
#: changedetectionio/blueprint/tags/templates/groups-overview.html changedetectionio/blueprint/ui/edit.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Edit"
msgstr "Editar"
#: changedetectionio/blueprint/tags/templates/groups-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Recheck"
msgstr "Rechecar"
@@ -2316,7 +2317,8 @@ msgstr ""
msgid "Running now"
msgstr ""
#: changedetectionio/blueprint/ui/templates/queue.html changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/ui/templates/queue.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Queued"
msgstr "Enfileirado"
@@ -2373,6 +2375,88 @@ msgstr "Monitoramento adicionado."
msgid "records"
msgstr "registros"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Detecting restock and price"
msgstr "Detectando estoque e preço"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Not in stock"
msgstr "Sem estoque"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "Em estoque"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "Preço"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "No information"
msgstr "Sem informações"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "Verificado"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "Verificando agora"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "Alterado"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "Histórico"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Preview"
msgstr "Pré-visualização"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changedetection.io can monitor more than just web-pages! See our plugins!"
msgstr "Changedetection.io pode monitorar mais do que apenas páginas web! Veja nossos plugins!"
@@ -2394,12 +2478,6 @@ msgstr ""
msgid "Loading price history…"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "Em estoque"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
@@ -2627,14 +2705,6 @@ msgstr ""
msgid "Restock & Price"
msgstr "Estoque e Preço"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "Verificado"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "Alterado"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No web page change detection watches configured, please add a URL in the box above, or"
msgstr "Nenhum monitoramento configurado, adicione uma URL na caixa acima ou"
@@ -2643,71 +2713,6 @@ msgstr "Nenhum monitoramento configurado, adicione uma URL na caixa acima ou"
msgid "import a list"
msgstr "importe uma lista"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Detecting restock and price"
msgstr "Detectando estoque e preço"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Not in stock"
msgstr "Sem estoque"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "Preço"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No information"
msgstr "Sem informações"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "Verificando agora"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "Histórico"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Preview"
msgstr "Pré-visualização"
#: changedetectionio/conditions/__init__.py
msgid "Choose one - Operator"
msgstr ""
@@ -2870,7 +2875,7 @@ msgstr ""
msgid "Basic fast Plaintext/HTTP Client"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/flask_app.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/flask_app.py
#: changedetectionio/realtime/socket_server.py
msgid "Not yet"
msgstr "Ainda não"
@@ -1488,11 +1488,12 @@ msgid "Mute notifications"
msgstr "Отключить уведомления"
#: changedetectionio/blueprint/tags/templates/groups-overview.html changedetectionio/blueprint/ui/edit.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Edit"
msgstr "Редактировать"
#: changedetectionio/blueprint/tags/templates/groups-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Recheck"
msgstr "Перепроверить"
@@ -2382,7 +2383,8 @@ msgstr ""
msgid "Running now"
msgstr ""
#: changedetectionio/blueprint/ui/templates/queue.html changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/ui/templates/queue.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Queued"
msgstr "В очереди"
@@ -2439,6 +2441,88 @@ msgstr "Часы добавлены."
msgid "records"
msgstr "записи"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Pause checks"
msgstr "Приостановить проверки"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnPause checks"
msgstr "Возобновить проверку"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Mute notification"
msgstr "Отключить уведомление"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnMute notification"
msgstr "Включить уведомление"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Create a link to share watch config with others"
msgstr "Создайте ссылку, чтобы поделиться конфигурацией часов с другими"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Detecting restock and price"
msgstr "Обнаружение пополнения запасов и цены"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Not in stock"
msgstr "Нет в наличии"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "В наличии"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "Цена"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "No information"
msgstr "Нет информации"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "Проверено"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "Проверяю сейчас"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "Измененный"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Summary"
msgstr "Краткое содержание"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "История"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Preview"
msgstr "Предварительный просмотр"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changedetection.io can monitor more than just web-pages! See our plugins!"
msgstr "Changedetection.io может отслеживать не только веб-страницы! Посмотрите наши плагины!"
@@ -2460,12 +2544,6 @@ msgstr "Перейти к полной истории"
msgid "Loading price history…"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "В наличии"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
@@ -2691,14 +2769,6 @@ msgstr ""
msgid "Restock & Price"
msgstr "Пополнение и цена"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "Проверено"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "Измененный"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No web page change detection watches configured, please add a URL in the box above, or"
msgstr "Не настроено наблюдение за обнаружением изменений веб-страниц. Добавьте URL-адрес в поле выше или"
@@ -2707,71 +2777,6 @@ msgstr "Не настроено наблюдение за обнаружение
msgid "import a list"
msgstr "импортировать список"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Pause checks"
msgstr "Приостановить проверки"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnPause checks"
msgstr "Возобновить проверку"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Mute notification"
msgstr "Отключить уведомление"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnMute notification"
msgstr "Включить уведомление"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Create a link to share watch config with others"
msgstr "Создайте ссылку, чтобы поделиться конфигурацией часов с другими"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Detecting restock and price"
msgstr "Обнаружение пополнения запасов и цены"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Not in stock"
msgstr "Нет в наличии"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "Цена"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No information"
msgstr "Нет информации"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "Проверяю сейчас"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Summary"
msgstr "Краткое содержание"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "История"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Preview"
msgstr "Предварительный просмотр"
#: changedetectionio/conditions/__init__.py
msgid "Choose one - Operator"
msgstr "Выберите один - Оператор"
@@ -2936,7 +2941,7 @@ msgstr "Количество слов — простая мера длины с
msgid "Basic fast Plaintext/HTTP Client"
msgstr "Базовый быстрый текстовый/HTTP-клиент"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/flask_app.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/flask_app.py
#: changedetectionio/realtime/socket_server.py
msgid "Not yet"
msgstr "Еще нет"
@@ -1431,11 +1431,12 @@ msgid "Mute notifications"
msgstr "Bildirimleri sessize al"
#: changedetectionio/blueprint/tags/templates/groups-overview.html changedetectionio/blueprint/ui/edit.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Edit"
msgstr "Düzenle"
#: changedetectionio/blueprint/tags/templates/groups-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Recheck"
msgstr "Yeniden Kontrol Et"
@@ -2321,7 +2322,8 @@ msgstr ""
msgid "Running now"
msgstr ""
#: changedetectionio/blueprint/ui/templates/queue.html changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/ui/templates/queue.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Queued"
msgstr "Sırada"
@@ -2378,6 +2380,88 @@ msgstr "İzleyici eklendi."
msgid "records"
msgstr "kayıtlar"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Detecting restock and price"
msgstr "Yeniden stoklama ve fiyat tespiti"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Not in stock"
msgstr "Stokta yok"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "Stokta"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "Fiyat"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "No information"
msgstr "Bilgi yok"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "Kontrol Edildi"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "Şimdi kontrol ediliyor"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "Değiştirildi"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "Geçmiş"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Preview"
msgstr "Önizleme"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changedetection.io can monitor more than just web-pages! See our plugins!"
msgstr "Changedetection.io web sayfalarından daha fazlasını izleyebilir! Eklentilerimize bakın!"
@@ -2399,12 +2483,6 @@ msgstr ""
msgid "Loading price history…"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "Stokta"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
@@ -2630,14 +2708,6 @@ msgstr ""
msgid "Restock & Price"
msgstr "Yeniden Stoklama ve Fiyat"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "Kontrol Edildi"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "Değiştirildi"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No web page change detection watches configured, please add a URL in the box above, or"
msgstr "Yapılandırılmış web sayfası değişiklik tespiti izleyicisi yok, lütfen yukarıdaki kutuya bir URL ekleyin veya"
@@ -2646,71 +2716,6 @@ msgstr "Yapılandırılmış web sayfası değişiklik tespiti izleyicisi yok, l
msgid "import a list"
msgstr "bir listeyi içe aktarın"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Detecting restock and price"
msgstr "Yeniden stoklama ve fiyat tespiti"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Not in stock"
msgstr "Stokta yok"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "Fiyat"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No information"
msgstr "Bilgi yok"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "Şimdi kontrol ediliyor"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "Geçmiş"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Preview"
msgstr "Önizleme"
#: changedetectionio/conditions/__init__.py
msgid "Choose one - Operator"
msgstr ""
@@ -2873,7 +2878,7 @@ msgstr ""
msgid "Basic fast Plaintext/HTTP Client"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/flask_app.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/flask_app.py
#: changedetectionio/realtime/socket_server.py
msgid "Not yet"
msgstr "Henüz değil"
@@ -1412,11 +1412,12 @@ msgid "Mute notifications"
msgstr "Вимкнути сповіщення"
#: changedetectionio/blueprint/tags/templates/groups-overview.html changedetectionio/blueprint/ui/edit.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Edit"
msgstr "Редагувати"
#: changedetectionio/blueprint/tags/templates/groups-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Recheck"
msgstr "Перевірити знову"
@@ -2300,7 +2301,8 @@ msgstr ""
msgid "Running now"
msgstr ""
#: changedetectionio/blueprint/ui/templates/queue.html changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/ui/templates/queue.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Queued"
msgstr "В черзі"
@@ -2357,6 +2359,88 @@ msgstr "Завдання додано."
msgid "records"
msgstr "записів"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Detecting restock and price"
msgstr "Визначення наявності та ціни"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Not in stock"
msgstr "Немає в наявності"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "В наявності"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "Ціна"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "No information"
msgstr "Немає інформації"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "Перевірено"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "Перевірка..."
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "Змінено"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "Історія"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Preview"
msgstr "Прев'ю"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changedetection.io can monitor more than just web-pages! See our plugins!"
msgstr "Changedetection.io може моніторити більше, ніж просто веб-сторінки! Дивіться наші плагіни!"
@@ -2378,12 +2462,6 @@ msgstr ""
msgid "Loading price history…"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "В наявності"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
@@ -2609,14 +2687,6 @@ msgstr ""
msgid "Restock & Price"
msgstr "Наявність та Ціна"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "Перевірено"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "Змінено"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No web page change detection watches configured, please add a URL in the box above, or"
msgstr "Немає налаштованих завдань для відстеження змін, будь ласка, додайте URL у поле вище або"
@@ -2625,71 +2695,6 @@ msgstr "Немає налаштованих завдань для відстеж
msgid "import a list"
msgstr "імпортуйте список"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Detecting restock and price"
msgstr "Визначення наявності та ціни"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Not in stock"
msgstr "Немає в наявності"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "Ціна"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No information"
msgstr "Немає інформації"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "Перевірка..."
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "Історія"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Preview"
msgstr "Прев'ю"
#: changedetectionio/conditions/__init__.py
msgid "Choose one - Operator"
msgstr ""
@@ -2852,7 +2857,7 @@ msgstr ""
msgid "Basic fast Plaintext/HTTP Client"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/flask_app.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/flask_app.py
#: changedetectionio/realtime/socket_server.py
msgid "Not yet"
msgstr "Ще ні"
@@ -1399,11 +1399,12 @@ msgid "Mute notifications"
msgstr "静音通知"
#: changedetectionio/blueprint/tags/templates/groups-overview.html changedetectionio/blueprint/ui/edit.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Edit"
msgstr "编辑"
#: changedetectionio/blueprint/tags/templates/groups-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Recheck"
msgstr "重新检查"
@@ -2274,7 +2275,8 @@ msgstr ""
msgid "Running now"
msgstr ""
#: changedetectionio/blueprint/ui/templates/queue.html changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/ui/templates/queue.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Queued"
msgstr "队列中"
@@ -2331,6 +2333,88 @@ msgstr "监控项已添加。"
msgid "records"
msgstr "记录"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Detecting restock and price"
msgstr "检测补货与价格"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Not in stock"
msgstr "无库存"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "有库存"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "价格"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "No information"
msgstr "暂无信息"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "检查"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "正在检查"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "变更"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "历史"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Preview"
msgstr "预览"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changedetection.io can monitor more than just web-pages! See our plugins!"
msgstr ""
@@ -2352,12 +2436,6 @@ msgstr ""
msgid "Loading price history…"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "有库存"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
@@ -2583,14 +2661,6 @@ msgstr ""
msgid "Restock & Price"
msgstr "补货与价格"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "检查"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "变更"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No web page change detection watches configured, please add a URL in the box above, or"
msgstr "尚未配置网站监控项,请在上方输入 URL 或"
@@ -2599,71 +2669,6 @@ msgstr "尚未配置网站监控项,请在上方输入 URL 或"
msgid "import a list"
msgstr "导入列表"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Detecting restock and price"
msgstr "检测补货与价格"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Not in stock"
msgstr "无库存"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "价格"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No information"
msgstr "暂无信息"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "正在检查"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "历史"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Preview"
msgstr "预览"
#: changedetectionio/conditions/__init__.py
msgid "Choose one - Operator"
msgstr ""
@@ -2826,7 +2831,7 @@ msgstr ""
msgid "Basic fast Plaintext/HTTP Client"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/flask_app.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/flask_app.py
#: changedetectionio/realtime/socket_server.py
msgid "Not yet"
msgstr "尚未"
@@ -1398,11 +1398,12 @@ msgid "Mute notifications"
msgstr "靜音通知"
#: changedetectionio/blueprint/tags/templates/groups-overview.html changedetectionio/blueprint/ui/edit.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Edit"
msgstr "編輯"
#: changedetectionio/blueprint/tags/templates/groups-overview.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Recheck"
msgstr "複查"
@@ -2274,7 +2275,8 @@ msgstr ""
msgid "Running now"
msgstr ""
#: changedetectionio/blueprint/ui/templates/queue.html changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/blueprint/ui/templates/queue.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Queued"
msgstr "已排程"
@@ -2331,6 +2333,88 @@ msgstr "監測任務已新增。"
msgid "records"
msgstr "記錄"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Detecting restock and price"
msgstr "檢測補貨與價格"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Not in stock"
msgstr "無庫存"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "有庫存"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "價格"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "No information"
msgstr "無資訊"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "檢查"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "正在檢查"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "變更"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "歷史記錄"
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html
msgid "Preview"
msgstr "預覽"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changedetection.io can monitor more than just web-pages! See our plugins!"
msgstr ""
@@ -2352,12 +2436,6 @@ msgstr ""
msgid "Loading price history…"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "In stock"
msgstr "有庫存"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
@@ -2583,14 +2661,6 @@ msgstr ""
msgid "Restock & Price"
msgstr "補貨與價格"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Checked"
msgstr "檢查"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Changed"
msgstr "變更"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No web page change detection watches configured, please add a URL in the box above, or"
msgstr "未設定網站監測任務,請在上方欄位新增 URL,或"
@@ -2599,71 +2669,6 @@ msgstr "未設定網站監測任務,請在上方欄位新增 URL,或"
msgid "import a list"
msgstr "匯入列表"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Pause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnPause checks"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Mute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "UnMute notification"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Goto web page"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Create a link to share watch config with others"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Detecting restock and price"
msgstr "檢測補貨與價格"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Not in stock"
msgstr "無庫存"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/restock_diff/difference.py
#: changedetectionio/processors/restock_diff/templates/restock_diff/difference.html
msgid "Price"
msgstr "價格"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#, python-format
msgid "Price change since previous price (%(prev)s)"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "No information"
msgstr "無資訊"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/templates/base.html
#: changedetectionio/templates/sidebar-nav.html
msgid "Checking now"
msgstr "正在檢查"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Summary"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
#: changedetectionio/processors/text_json_diff/difference.py
msgid "History"
msgstr "歷史記錄"
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html
msgid "Preview"
msgstr "預覽"
#: changedetectionio/conditions/__init__.py
msgid "Choose one - Operator"
msgstr ""
@@ -2826,7 +2831,7 @@ msgstr ""
msgid "Basic fast Plaintext/HTTP Client"
msgstr ""
#: changedetectionio/blueprint/watchlist/templates/watch-overview.html changedetectionio/flask_app.py
#: changedetectionio/blueprint/watchlist/templates/watch-overview-single-row.html changedetectionio/flask_app.py
#: changedetectionio/realtime/socket_server.py
msgid "Not yet"
msgstr "還沒有"