From 281c1ea7e171d38f2cbc5192fc475ebf7dbdb44b Mon Sep 17 00:00:00 2001 From: skkzsh Date: Sat, 2 May 2026 11:57:13 +0900 Subject: [PATCH] i18n: Clear pre-existing dennis warnings in `messages.pot` (#4112) --- .github/workflows/test-only.yml | 14 ++--- .../blueprint/imports/importer.py | 8 +-- .../blueprint/settings/__init__.py | 4 +- changedetectionio/blueprint/settings/llm.py | 2 +- .../settings/templates/settings_llm_tab.html | 4 +- changedetectionio/blueprint/ui/__init__.py | 4 +- changedetectionio/forms.py | 16 +++--- changedetectionio/store/__init__.py | 2 +- .../translations/cs/LC_MESSAGES/messages.mo | Bin 40832 -> 41180 bytes .../translations/cs/LC_MESSAGES/messages.po | 42 +++++++-------- .../translations/de/LC_MESSAGES/messages.mo | Bin 50296 -> 50644 bytes .../translations/de/LC_MESSAGES/messages.po | 42 +++++++-------- .../en_GB/LC_MESSAGES/messages.po | 24 ++++----- .../en_US/LC_MESSAGES/messages.po | 24 ++++----- .../translations/es/LC_MESSAGES/messages.mo | Bin 71779 -> 72151 bytes .../translations/es/LC_MESSAGES/messages.po | 46 ++++++++-------- .../translations/fr/LC_MESSAGES/messages.mo | Bin 37164 -> 37512 bytes .../translations/fr/LC_MESSAGES/messages.po | 42 +++++++-------- .../translations/it/LC_MESSAGES/messages.mo | Bin 21909 -> 22257 bytes .../translations/it/LC_MESSAGES/messages.po | 42 +++++++-------- .../translations/ja/LC_MESSAGES/messages.mo | Bin 89575 -> 89947 bytes .../translations/ja/LC_MESSAGES/messages.po | 44 +++++++-------- .../translations/ko/LC_MESSAGES/messages.mo | Bin 102657 -> 102951 bytes .../translations/ko/LC_MESSAGES/messages.po | 50 +++++++++--------- changedetectionio/translations/messages.pot | 26 ++++----- .../pt_BR/LC_MESSAGES/messages.mo | Bin 69951 -> 70323 bytes .../pt_BR/LC_MESSAGES/messages.po | 44 +++++++-------- .../translations/tr/LC_MESSAGES/messages.mo | Bin 70899 -> 71271 bytes .../translations/tr/LC_MESSAGES/messages.po | 44 +++++++-------- .../translations/uk/LC_MESSAGES/messages.mo | Bin 84509 -> 84881 bytes .../translations/uk/LC_MESSAGES/messages.po | 46 ++++++++-------- .../translations/zh/LC_MESSAGES/messages.mo | Bin 57784 -> 58132 bytes .../translations/zh/LC_MESSAGES/messages.po | 42 +++++++-------- .../zh_Hant_TW/LC_MESSAGES/messages.mo | Bin 43919 -> 44267 bytes .../zh_Hant_TW/LC_MESSAGES/messages.po | 42 +++++++-------- 35 files changed, 326 insertions(+), 328 deletions(-) diff --git a/.github/workflows/test-only.yml b/.github/workflows/test-only.yml index fb4d0964..2316d05d 100644 --- a/.github/workflows/test-only.yml +++ b/.github/workflows/test-only.yml @@ -35,20 +35,14 @@ jobs: run: | pip install "$(grep -E '^dennis ?>=' requirements.txt)" dennis-cmd lint --errorsonly changedetectionio/translations/ - - name: Lint .pot template with dennis (baseline-limited warnings) - # BASELINE: dennis warnings present when this check was introduced. Ratchet down only. - # Each time a warning is fixed, lower BASELINE_LIMIT to lock in the improvement. - # Once it reaches 0, replace this step with a strict (`warnings > 0` fails) check, - # matching the `.po` step. - env: - BASELINE_LIMIT: 12 + - name: Lint .pot template with dennis (warnings) run: | output=$(dennis-cmd lint changedetectionio/translations/messages.pot) echo "$output" warnings=$(echo "$output" | awk '/Warnings:/ {print $NF; exit}') - if (( ${warnings:-0} > BASELINE_LIMIT )); then - echo "ERROR: ${warnings} dennis warning(s) exceed baseline of ${BASELINE_LIMIT} in messages.pot" - echo "Fix the new warning(s). BASELINE_LIMIT may only ratchet downward." + if (( ${warnings:-0} > 0 )); then + echo "ERROR: ${warnings} dennis warning(s) detected in messages.pot" + echo "Fix the warning(s)." exit 1 fi - name: Lint .po files with dennis (warnings) diff --git a/changedetectionio/blueprint/imports/importer.py b/changedetectionio/blueprint/imports/importer.py index 5e18209b..aa4379dc 100644 --- a/changedetectionio/blueprint/imports/importer.py +++ b/changedetectionio/blueprint/imports/importer.py @@ -75,7 +75,7 @@ class import_url_list(Importer): self.remaining_data = [] self.remaining_data.append(url) - flash(gettext("{} Imported from list in {:.2f}s, {} Skipped.").format(good, time.time() - now, len(self.remaining_data))) + flash(gettext("{count} Imported from list in {duration:.2f}s, {skipped_count} Skipped.").format(count=good, duration=time.time() - now, skipped_count=len(self.remaining_data))) class import_distill_io_json(Importer): @@ -136,7 +136,7 @@ class import_distill_io_json(Importer): self.new_uuids.append(new_uuid) good += 1 - flash(gettext("{} Imported from Distill.io in {:.2f}s, {} Skipped.").format(len(self.new_uuids), time.time() - now, len(self.remaining_data))) + flash(gettext("{count} Imported from Distill.io in {duration:.2f}s, {skipped_count} Skipped.").format(count=len(self.new_uuids), duration=time.time() - now, skipped_count=len(self.remaining_data))) class import_xlsx_wachete(Importer): @@ -212,7 +212,7 @@ class import_xlsx_wachete(Importer): logger.error(e) flash(gettext("Error processing row number {}, check all cell data types are correct, row was skipped.").format(row_id), 'error') - flash(gettext("{} imported from Wachete .xlsx in {:.2f}s").format(len(self.new_uuids), time.time() - now)) + flash(gettext("{count} imported from Wachete .xlsx in {duration:.2f}s").format(count=len(self.new_uuids), duration=time.time() - now)) class import_xlsx_custom(Importer): @@ -293,4 +293,4 @@ class import_xlsx_custom(Importer): logger.error(e) flash(gettext("Error processing row number {}, check all cell data types are correct, row was skipped.").format(row_i), 'error') - flash(gettext("{} imported from custom .xlsx in {:.2f}s").format(len(self.new_uuids), time.time() - now)) \ No newline at end of file + flash(gettext("{count} imported from custom .xlsx in {duration:.2f}s").format(count=len(self.new_uuids), duration=time.time() - now)) \ No newline at end of file diff --git a/changedetectionio/blueprint/settings/__init__.py b/changedetectionio/blueprint/settings/__init__.py index 9bacff0f..7e4e5750 100644 --- a/changedetectionio/blueprint/settings/__init__.py +++ b/changedetectionio/blueprint/settings/__init__.py @@ -181,8 +181,8 @@ def construct_blueprint(datastore: ChangeDetectionStore): # Check CPU core availability and warn if worker count is high cpu_count = os.cpu_count() if cpu_count and new_worker_count >= (cpu_count * 0.9): - flash(gettext("Warning: Worker count ({}) is close to or exceeds available CPU cores ({})").format( - new_worker_count, cpu_count), 'warning') + flash(gettext("Warning: Worker count ({worker_count}) is close to or exceeds available CPU cores ({cpu_count})").format( + worker_count=new_worker_count, cpu_count=cpu_count), 'warning') result = worker_pool.adjust_async_worker_count( new_count=new_worker_count, diff --git a/changedetectionio/blueprint/settings/llm.py b/changedetectionio/blueprint/settings/llm.py index 356358b0..2658633e 100644 --- a/changedetectionio/blueprint/settings/llm.py +++ b/changedetectionio/blueprint/settings/llm.py @@ -122,7 +122,7 @@ def construct_llm_blueprint(datastore: ChangeDetectionStore): except OSError as e: logger.warning(f"Could not remove LLM summary cache file {f}: {e}") logger.info(f"LLM summary cache cleared: {count} file(s) removed") - flash(gettext("AI summary cache cleared (%(n)s file(s) removed).", n=count), 'notice') + flash(gettext("AI summary cache cleared (%(count)s file(s) removed).", count=count), 'notice') return redirect(url_for('settings.settings_page') + '#ai') return llm_blueprint diff --git a/changedetectionio/blueprint/settings/templates/settings_llm_tab.html b/changedetectionio/blueprint/settings/templates/settings_llm_tab.html index 541d1026..636b348d 100644 --- a/changedetectionio/blueprint/settings/templates/settings_llm_tab.html +++ b/changedetectionio/blueprint/settings/templates/settings_llm_tab.html @@ -333,7 +333,7 @@ {{ _('(set via LLM_MAX_INPUT_CHARS)') | safe }} {% else %} {{ form.llm.form.llm_max_input_chars(placeholder='100000', value=llm_stored.get('max_input_chars', 100000) or '') }} - {{ _('characters — currently enforcing: %(n)s', n='{:,}'.format(llm_effective_max_input_chars)) }} + {{ _('characters — currently enforcing: %(limit)s', limit='{:,}'.format(llm_effective_max_input_chars)) }} {% endif %} @@ -364,7 +364,7 @@ {{ _('(set via LLM_MAX_INPUT_CHARS)') | safe }} {% else %} {{ form.llm.form.llm_max_input_chars(placeholder='100000', value=llm_stored.get('max_input_chars', 100000) or '') }} - {{ _('characters — currently enforcing: %(n)s', n='{:,}'.format(llm_effective_max_input_chars)) }} + {{ _('characters — currently enforcing: %(limit)s', limit='{:,}'.format(llm_effective_max_input_chars)) }} {% endif %} diff --git a/changedetectionio/blueprint/ui/__init__.py b/changedetectionio/blueprint/ui/__init__.py index 751b4023..663bacf4 100644 --- a/changedetectionio/blueprint/ui/__init__.py +++ b/changedetectionio/blueprint/ui/__init__.py @@ -307,8 +307,8 @@ def construct_blueprint(datastore: ChangeDetectionStore, update_q, worker_pool, # Provide feedback about skipped watches skipped_count = len(watches_to_queue) - len(watches_to_queue_filtered) if skipped_count > 0: - flash(gettext("Queued {} watches for rechecking ({} already queued or running).").format( - len(watches_to_queue_filtered), skipped_count)) + flash(gettext("Queued {count} watches for rechecking ({skipped_count} already queued or running).").format( + count=len(watches_to_queue_filtered), skipped_count=skipped_count)) else: if len(watches_to_queue_filtered) == 1: flash(gettext("Queued 1 watch for rechecking.")) diff --git a/changedetectionio/forms.py b/changedetectionio/forms.py index eaaedefa..ff5abdfb 100644 --- a/changedetectionio/forms.py +++ b/changedetectionio/forms.py @@ -618,8 +618,8 @@ class ValidateCSSJSONXPATHInput(object): try: elementpath.select(tree, line.strip(), parser=SafeXPath3Parser) except elementpath.ElementPathError as e: - message = field.gettext('\'%s\' is not a valid XPath expression. (%s)') - raise ValidationError(message % (line, str(e))) + message = field.gettext('\'%(expression)s\' is not a valid XPath expression. (%(error)s)') + raise ValidationError(message % {'expression': line, 'error': str(e)}) except: raise ValidationError("A system-error occurred when validating your XPath expression") @@ -633,8 +633,8 @@ class ValidateCSSJSONXPATHInput(object): try: tree.xpath(line.strip()) except etree.XPathEvalError as e: - message = field.gettext('\'%s\' is not a valid XPath expression. (%s)') - raise ValidationError(message % (line, str(e))) + message = field.gettext('\'%(expression)s\' is not a valid XPath expression. (%(error)s)') + raise ValidationError(message % {'expression': line, 'error': str(e)}) except: raise ValidationError("A system-error occurred when validating your XPath expression") @@ -653,8 +653,8 @@ class ValidateCSSJSONXPATHInput(object): try: parse(input) except (JsonPathParserError, JsonPathLexerError) as e: - message = field.gettext('\'%s\' is not a valid JSONPath expression. (%s)') - raise ValidationError(message % (input, str(e))) + message = field.gettext('\'%(expression)s\' is not a valid JSONPath expression. (%(error)s)') + raise ValidationError(message % {'expression': input, 'error': str(e)}) except: raise ValidationError("A system-error occurred when validating your JSONPath expression") @@ -677,8 +677,8 @@ class ValidateCSSJSONXPATHInput(object): validate_jq_expression(input) jq.compile(input) except (ValueError) as e: - message = field.gettext('\'%s\' is not a valid jq expression. (%s)') - raise ValidationError(message % (input, str(e))) + message = field.gettext('\'%(expression)s\' is not a valid jq expression. (%(error)s)') + raise ValidationError(message % {'expression': input, 'error': str(e)}) except: raise ValidationError("A system-error occurred when validating your jq expression") diff --git a/changedetectionio/store/__init__.py b/changedetectionio/store/__init__.py index db17b2bb..f469fdfd 100644 --- a/changedetectionio/store/__init__.py +++ b/changedetectionio/store/__init__.py @@ -743,7 +743,7 @@ class ChangeDetectionStore(DatastoreUpdatesMixin, FileSavingDataStore): current_watch_count = len(self.__data['watching']) if current_watch_count >= page_watch_limit: logger.error(f"Watch limit reached: {current_watch_count}/{page_watch_limit} watches. Cannot add {url}") - flash(gettext("Watch limit reached ({}/{} watches). Cannot add more watches.").format(current_watch_count, page_watch_limit), 'error') + flash(gettext("Watch limit reached ({current}/{limit} watches). Cannot add more watches.").format(current=current_watch_count, limit=page_watch_limit), 'error') return None except ValueError: logger.warning(f"Invalid PAGE_WATCH_LIMIT value: {page_watch_limit}, ignoring limit check") diff --git a/changedetectionio/translations/cs/LC_MESSAGES/messages.mo b/changedetectionio/translations/cs/LC_MESSAGES/messages.mo index bdb14d81e29c2f7e989dcd786209cea96aa06c29..7a7d9394b031860f9a99248133458eae69a223b7 100644 GIT binary patch delta 9425 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 L+ZErg&42zo$p2aa delta 9031 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 diff --git a/changedetectionio/translations/cs/LC_MESSAGES/messages.po b/changedetectionio/translations/cs/LC_MESSAGES/messages.po index 61bec172..5b4d3d71 100644 --- a/changedetectionio/translations/cs/LC_MESSAGES/messages.po +++ b/changedetectionio/translations/cs/LC_MESSAGES/messages.po @@ -160,8 +160,8 @@ msgstr "Importuje se prvních 5000 URL adres, další lze načíst opakovaným i #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from list in {:.2f}s, {} Skipped." -msgstr "{} importováno ze seznamu za {:.2f}s, {} přeskočeno." +msgid "{count} Imported from list in {duration:.2f}s, {skipped_count} Skipped." +msgstr "{count} importováno ze seznamu za {duration:.2f}s, {skipped_count} přeskočeno." #: changedetectionio/blueprint/imports/importer.py msgid "Unable to read JSON file, was it broken?" @@ -173,8 +173,8 @@ msgstr "Strukturovaný JSON text je neplatný, byl poškozen?" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from Distill.io in {:.2f}s, {} Skipped." -msgstr "{} importováno z Distill.io za {:.2f}s, {} přeskočeno." +msgid "{count} Imported from Distill.io in {duration:.2f}s, {skipped_count} Skipped." +msgstr "{count} importováno z Distill.io za {duration:.2f}s, {skipped_count} přeskočeno." #: changedetectionio/blueprint/imports/importer.py msgid "Unable to read export XLSX file, something wrong with the file?" @@ -192,13 +192,13 @@ msgstr "Chyba při zpracování řádku {}, zkontrolujte že všechny typy dat v #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from Wachete .xlsx in {:.2f}s" -msgstr "{} importováno z Wachete .xlsx za {:.2f}s" +msgid "{count} imported from Wachete .xlsx in {duration:.2f}s" +msgstr "{count} importováno z Wachete .xlsx za {duration:.2f}s" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from custom .xlsx in {:.2f}s" -msgstr "{} importováno z vlastního .xlsx za {:.2f}s" +msgid "{count} imported from custom .xlsx in {duration:.2f}s" +msgstr "{count} importováno z vlastního .xlsx za {duration:.2f}s" #: changedetectionio/blueprint/imports/templates/import.html msgid "URL List" @@ -313,8 +313,8 @@ msgstr "Ochrana heslem odebrána." #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format -msgid "Warning: Worker count ({}) is close to or exceeds available CPU cores ({})" -msgstr "Upozornění: Počet pracovních procesů ({}) se blíží nebo překračuje počet CPU jader ({})" +msgid "Warning: Worker count ({worker_count}) is close to or exceeds available CPU cores ({cpu_count})" +msgstr "Upozornění: Počet pracovních procesů ({worker_count}) se blíží nebo překračuje počet CPU jader ({cpu_count})" #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format @@ -369,7 +369,7 @@ msgstr "" #: changedetectionio/blueprint/settings/llm.py #, python-format -msgid "AI summary cache cleared (%(n)s file(s) removed)." +msgid "AI summary cache cleared (%(count)s file(s) removed)." msgstr "" #: changedetectionio/blueprint/settings/templates/notification-log.html @@ -1071,7 +1071,7 @@ msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html #, python-format -msgid "characters — currently enforcing: %(n)s" +msgid "characters — currently enforcing: %(limit)s" msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html @@ -1429,8 +1429,8 @@ msgstr "" #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format -msgid "Queued {} watches for rechecking ({} already queued or running)." -msgstr "Do fronty přidáno {} sledování k opětovné kontrole ({} již ve frontě nebo běží)." +msgid "Queued {count} watches for rechecking ({skipped_count} already queued or running)." +msgstr "Do fronty přidáno {count} sledování k opětovné kontrole ({skipped_count} již ve frontě nebo běží)." #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format @@ -2668,18 +2668,18 @@ msgstr "RegEx '%s' není platný regulární výraz." #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid XPath expression. (%s)" -msgstr "'%s' není platný výraz XPath. (%s)" +msgid "'%(expression)s' is not a valid XPath expression. (%(error)s)" +msgstr "'%(expression)s' není platný výraz XPath. (%(error)s)" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid JSONPath expression. (%s)" -msgstr "'%s' není platný výraz JSONPath. (%s)" +msgid "'%(expression)s' is not a valid JSONPath expression. (%(error)s)" +msgstr "'%(expression)s' není platný výraz JSONPath. (%(error)s)" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid jq expression. (%s)" -msgstr "'%s' není platný výraz jq. (%s)" +msgid "'%(expression)s' is not a valid jq expression. (%(error)s)" +msgstr "'%(expression)s' není platný výraz jq. (%(error)s)" #: changedetectionio/forms.py msgid "Empty value not allowed." @@ -3381,7 +3381,7 @@ msgstr "" #: changedetectionio/store/__init__.py #, python-brace-format -msgid "Watch limit reached ({}/{} watches). Cannot add more watches." +msgid "Watch limit reached ({current}/{limit} watches). Cannot add more watches." msgstr "" #: changedetectionio/templates/_common_fields.html diff --git a/changedetectionio/translations/de/LC_MESSAGES/messages.mo b/changedetectionio/translations/de/LC_MESSAGES/messages.mo index 72fcc2259988e3c88e422fc066370e2df24ed780..1f74db27d49055ffe19ceda49131e4ed4b5b0ce5 100644 GIT binary patch delta 9855 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 SHsOD#`+jXk&HdU7KK}z6(_H5O diff --git a/changedetectionio/translations/de/LC_MESSAGES/messages.po b/changedetectionio/translations/de/LC_MESSAGES/messages.po index e8ead9b0..62e67247 100644 --- a/changedetectionio/translations/de/LC_MESSAGES/messages.po +++ b/changedetectionio/translations/de/LC_MESSAGES/messages.po @@ -162,8 +162,8 @@ msgstr "Es werden 5.000 der ersten URLs aus Ihrer Liste importiert, der Rest kan #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from list in {:.2f}s, {} Skipped." -msgstr "{} aus Liste importiert in {:.2f}s, {} übersprungen." +msgid "{count} Imported from list in {duration:.2f}s, {skipped_count} Skipped." +msgstr "{count} aus Liste importiert in {duration:.2f}s, {skipped_count} übersprungen." #: changedetectionio/blueprint/imports/importer.py msgid "Unable to read JSON file, was it broken?" @@ -175,8 +175,8 @@ msgstr "JSON-Struktur sieht ungültig aus, ist sie beschädigt?" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from Distill.io in {:.2f}s, {} Skipped." -msgstr "{} aus Distill.io importiert in {:.2f}s, {} übersprungen." +msgid "{count} Imported from Distill.io in {duration:.2f}s, {skipped_count} Skipped." +msgstr "{count} aus Distill.io importiert in {duration:.2f}s, {skipped_count} übersprungen." #: changedetectionio/blueprint/imports/importer.py msgid "Unable to read export XLSX file, something wrong with the file?" @@ -194,13 +194,13 @@ msgstr "Fehler bei der Verarbeitung von Zeile {}, prüfen Sie, ob alle Zelldaten #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from Wachete .xlsx in {:.2f}s" -msgstr "{} aus Wachete .xlsx importiert in {:.2f}s" +msgid "{count} imported from Wachete .xlsx in {duration:.2f}s" +msgstr "{count} aus Wachete .xlsx importiert in {duration:.2f}s" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from custom .xlsx in {:.2f}s" -msgstr "{} aus benutzerdefinierter .xlsx importiert in {:.2f}s" +msgid "{count} imported from custom .xlsx in {duration:.2f}s" +msgstr "{count} aus benutzerdefinierter .xlsx importiert in {duration:.2f}s" #: changedetectionio/blueprint/imports/templates/import.html msgid "URL List" @@ -319,8 +319,8 @@ msgstr "Passwortschutz entfernt." #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format -msgid "Warning: Worker count ({}) is close to or exceeds available CPU cores ({})" -msgstr "Warnung: Anzahl der Worker ({}) nähert sich oder überschreitet die verfügbaren CPU-Kerne ({})" +msgid "Warning: Worker count ({worker_count}) is close to or exceeds available CPU cores ({cpu_count})" +msgstr "Warnung: Anzahl der Worker ({worker_count}) nähert sich oder überschreitet die verfügbaren CPU-Kerne ({cpu_count})" #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format @@ -375,7 +375,7 @@ msgstr "" #: changedetectionio/blueprint/settings/llm.py #, python-format -msgid "AI summary cache cleared (%(n)s file(s) removed)." +msgid "AI summary cache cleared (%(count)s file(s) removed)." msgstr "" #: changedetectionio/blueprint/settings/templates/notification-log.html @@ -1087,7 +1087,7 @@ msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html #, python-format -msgid "characters — currently enforcing: %(n)s" +msgid "characters — currently enforcing: %(limit)s" msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html @@ -1452,8 +1452,8 @@ msgstr "1 Überwachung zur erneuten Überprüfung in Warteschlange gestellt." #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format -msgid "Queued {} watches for rechecking ({} already queued or running)." -msgstr "{} Überwachungen zur erneuten Überprüfung eingereiht ({} bereits in Warteschlange oder laufend)." +msgid "Queued {count} watches for rechecking ({skipped_count} already queued or running)." +msgstr "{count} Überwachungen zur erneuten Überprüfung eingereiht ({skipped_count} bereits in Warteschlange oder laufend)." #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format @@ -2719,18 +2719,18 @@ msgstr "RegEx „%s“ ist kein gültiger regulärer Ausdruck." #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid XPath expression. (%s)" -msgstr "„%s“ ist kein gültiger XPath-Ausdruck. (%s)" +msgid "'%(expression)s' is not a valid XPath expression. (%(error)s)" +msgstr "„%(expression)s“ ist kein gültiger XPath-Ausdruck. (%(error)s)" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid JSONPath expression. (%s)" -msgstr "„%s“ ist kein gültiger JSONPath-Ausdruck. (%s)" +msgid "'%(expression)s' is not a valid JSONPath expression. (%(error)s)" +msgstr "„%(expression)s“ ist kein gültiger JSONPath-Ausdruck. (%(error)s)" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid jq expression. (%s)" -msgstr "„%s“ ist kein gültiger JQ-Ausdruck. (%s)" +msgid "'%(expression)s' is not a valid jq expression. (%(error)s)" +msgstr "„%(expression)s“ ist kein gültiger JQ-Ausdruck. (%(error)s)" #: changedetectionio/forms.py msgid "Empty value not allowed." @@ -3435,7 +3435,7 @@ msgstr "Das Protokoll wird nicht unterstützt oder das URL-Format ist ungültig. #: changedetectionio/store/__init__.py #, python-brace-format -msgid "Watch limit reached ({}/{} watches). Cannot add more watches." +msgid "Watch limit reached ({current}/{limit} watches). Cannot add more watches." msgstr "" #: changedetectionio/templates/_common_fields.html diff --git a/changedetectionio/translations/en_GB/LC_MESSAGES/messages.po b/changedetectionio/translations/en_GB/LC_MESSAGES/messages.po index edd9ad78..aa094f98 100644 --- a/changedetectionio/translations/en_GB/LC_MESSAGES/messages.po +++ b/changedetectionio/translations/en_GB/LC_MESSAGES/messages.po @@ -160,7 +160,7 @@ msgstr "" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from list in {:.2f}s, {} Skipped." +msgid "{count} Imported from list in {duration:.2f}s, {skipped_count} Skipped." msgstr "" #: changedetectionio/blueprint/imports/importer.py @@ -173,7 +173,7 @@ msgstr "" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from Distill.io in {:.2f}s, {} Skipped." +msgid "{count} Imported from Distill.io in {duration:.2f}s, {skipped_count} Skipped." msgstr "" #: changedetectionio/blueprint/imports/importer.py @@ -192,12 +192,12 @@ msgstr "" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from Wachete .xlsx in {:.2f}s" +msgid "{count} imported from Wachete .xlsx in {duration:.2f}s" msgstr "" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from custom .xlsx in {:.2f}s" +msgid "{count} imported from custom .xlsx in {duration:.2f}s" msgstr "" #: changedetectionio/blueprint/imports/templates/import.html @@ -311,7 +311,7 @@ msgstr "" #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format -msgid "Warning: Worker count ({}) is close to or exceeds available CPU cores ({})" +msgid "Warning: Worker count ({worker_count}) is close to or exceeds available CPU cores ({cpu_count})" msgstr "" #: changedetectionio/blueprint/settings/__init__.py @@ -367,7 +367,7 @@ msgstr "" #: changedetectionio/blueprint/settings/llm.py #, python-format -msgid "AI summary cache cleared (%(n)s file(s) removed)." +msgid "AI summary cache cleared (%(count)s file(s) removed)." msgstr "" #: changedetectionio/blueprint/settings/templates/notification-log.html @@ -1069,7 +1069,7 @@ msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html #, python-format -msgid "characters — currently enforcing: %(n)s" +msgid "characters — currently enforcing: %(limit)s" msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html @@ -1425,7 +1425,7 @@ msgstr "" #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format -msgid "Queued {} watches for rechecking ({} already queued or running)." +msgid "Queued {count} watches for rechecking ({skipped_count} already queued or running)." msgstr "" #: changedetectionio/blueprint/ui/__init__.py @@ -2662,17 +2662,17 @@ msgstr "" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid XPath expression. (%s)" +msgid "'%(expression)s' is not a valid XPath expression. (%(error)s)" msgstr "" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid JSONPath expression. (%s)" +msgid "'%(expression)s' is not a valid JSONPath expression. (%(error)s)" msgstr "" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid jq expression. (%s)" +msgid "'%(expression)s' is not a valid jq expression. (%(error)s)" msgstr "" #: changedetectionio/forms.py @@ -3375,7 +3375,7 @@ msgstr "" #: changedetectionio/store/__init__.py #, python-brace-format -msgid "Watch limit reached ({}/{} watches). Cannot add more watches." +msgid "Watch limit reached ({current}/{limit} watches). Cannot add more watches." msgstr "" #: changedetectionio/templates/_common_fields.html diff --git a/changedetectionio/translations/en_US/LC_MESSAGES/messages.po b/changedetectionio/translations/en_US/LC_MESSAGES/messages.po index 9e25a1c6..1c6b87c0 100644 --- a/changedetectionio/translations/en_US/LC_MESSAGES/messages.po +++ b/changedetectionio/translations/en_US/LC_MESSAGES/messages.po @@ -160,7 +160,7 @@ msgstr "" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from list in {:.2f}s, {} Skipped." +msgid "{count} Imported from list in {duration:.2f}s, {skipped_count} Skipped." msgstr "" #: changedetectionio/blueprint/imports/importer.py @@ -173,7 +173,7 @@ msgstr "" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from Distill.io in {:.2f}s, {} Skipped." +msgid "{count} Imported from Distill.io in {duration:.2f}s, {skipped_count} Skipped." msgstr "" #: changedetectionio/blueprint/imports/importer.py @@ -192,12 +192,12 @@ msgstr "" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from Wachete .xlsx in {:.2f}s" +msgid "{count} imported from Wachete .xlsx in {duration:.2f}s" msgstr "" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from custom .xlsx in {:.2f}s" +msgid "{count} imported from custom .xlsx in {duration:.2f}s" msgstr "" #: changedetectionio/blueprint/imports/templates/import.html @@ -311,7 +311,7 @@ msgstr "" #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format -msgid "Warning: Worker count ({}) is close to or exceeds available CPU cores ({})" +msgid "Warning: Worker count ({worker_count}) is close to or exceeds available CPU cores ({cpu_count})" msgstr "" #: changedetectionio/blueprint/settings/__init__.py @@ -367,7 +367,7 @@ msgstr "" #: changedetectionio/blueprint/settings/llm.py #, python-format -msgid "AI summary cache cleared (%(n)s file(s) removed)." +msgid "AI summary cache cleared (%(count)s file(s) removed)." msgstr "" #: changedetectionio/blueprint/settings/templates/notification-log.html @@ -1069,7 +1069,7 @@ msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html #, python-format -msgid "characters — currently enforcing: %(n)s" +msgid "characters — currently enforcing: %(limit)s" msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html @@ -1425,7 +1425,7 @@ msgstr "" #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format -msgid "Queued {} watches for rechecking ({} already queued or running)." +msgid "Queued {count} watches for rechecking ({skipped_count} already queued or running)." msgstr "" #: changedetectionio/blueprint/ui/__init__.py @@ -2662,17 +2662,17 @@ msgstr "" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid XPath expression. (%s)" +msgid "'%(expression)s' is not a valid XPath expression. (%(error)s)" msgstr "" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid JSONPath expression. (%s)" +msgid "'%(expression)s' is not a valid JSONPath expression. (%(error)s)" msgstr "" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid jq expression. (%s)" +msgid "'%(expression)s' is not a valid jq expression. (%(error)s)" msgstr "" #: changedetectionio/forms.py @@ -3375,7 +3375,7 @@ msgstr "" #: changedetectionio/store/__init__.py #, python-brace-format -msgid "Watch limit reached ({}/{} watches). Cannot add more watches." +msgid "Watch limit reached ({current}/{limit} watches). Cannot add more watches." msgstr "" #: changedetectionio/templates/_common_fields.html diff --git a/changedetectionio/translations/es/LC_MESSAGES/messages.mo b/changedetectionio/translations/es/LC_MESSAGES/messages.mo index 2d6d61e2e698d54ccd9339dfc092e099fb15ee16..5a57c19c8850635cb1a0e7ef8cadcf79c908241c 100644 GIT binary patch delta 12589 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 Bs3rga delta 8045 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 J|5n}V{{qdL9zg&A diff --git a/changedetectionio/translations/fr/LC_MESSAGES/messages.po b/changedetectionio/translations/fr/LC_MESSAGES/messages.po index 433925c6..13a62a71 100644 --- a/changedetectionio/translations/fr/LC_MESSAGES/messages.po +++ b/changedetectionio/translations/fr/LC_MESSAGES/messages.po @@ -160,8 +160,8 @@ msgstr "Importation de 5 000 des premières URL de votre liste, le reste peut ê #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from list in {:.2f}s, {} Skipped." -msgstr "{} importées de la liste en {:.2f}s, {} ignorées." +msgid "{count} Imported from list in {duration:.2f}s, {skipped_count} Skipped." +msgstr "{count} importées de la liste en {duration:.2f}s, {skipped_count} ignorées." #: changedetectionio/blueprint/imports/importer.py msgid "Unable to read JSON file, was it broken?" @@ -173,8 +173,8 @@ msgstr "La structure JSON semble invalide, est-elle corrompue ?" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from Distill.io in {:.2f}s, {} Skipped." -msgstr "{} importées de Distill.io en {:.2f}s, {} ignorées." +msgid "{count} Imported from Distill.io in {duration:.2f}s, {skipped_count} Skipped." +msgstr "{count} importées de Distill.io en {duration:.2f}s, {skipped_count} ignorées." #: changedetectionio/blueprint/imports/importer.py msgid "Unable to read export XLSX file, something wrong with the file?" @@ -194,13 +194,13 @@ msgstr "" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from Wachete .xlsx in {:.2f}s" -msgstr "{} importées de Wachete .xlsx en {:.2f}s" +msgid "{count} imported from Wachete .xlsx in {duration:.2f}s" +msgstr "{count} importées de Wachete .xlsx en {duration:.2f}s" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from custom .xlsx in {:.2f}s" -msgstr "{} importées de .xlsx personnalisé en {:.2f}s" +msgid "{count} imported from custom .xlsx in {duration:.2f}s" +msgstr "{count} importées de .xlsx personnalisé en {duration:.2f}s" #: changedetectionio/blueprint/imports/templates/import.html msgid "URL List" @@ -315,8 +315,8 @@ msgstr "" #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format -msgid "Warning: Worker count ({}) is close to or exceeds available CPU cores ({})" -msgstr "Avertissement: Le nombre de workers ({}) approche ou dépasse les cœurs CPU disponibles ({})" +msgid "Warning: Worker count ({worker_count}) is close to or exceeds available CPU cores ({cpu_count})" +msgstr "Avertissement: Le nombre de workers ({worker_count}) approche ou dépasse les cœurs CPU disponibles ({cpu_count})" #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format @@ -371,7 +371,7 @@ msgstr "" #: changedetectionio/blueprint/settings/llm.py #, python-format -msgid "AI summary cache cleared (%(n)s file(s) removed)." +msgid "AI summary cache cleared (%(count)s file(s) removed)." msgstr "" #: changedetectionio/blueprint/settings/templates/notification-log.html @@ -1075,7 +1075,7 @@ msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html #, python-format -msgid "characters — currently enforcing: %(n)s" +msgid "characters — currently enforcing: %(limit)s" msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html @@ -1434,8 +1434,8 @@ msgstr "" #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format -msgid "Queued {} watches for rechecking ({} already queued or running)." -msgstr "{} moniteurs mis en file d'attente ({} déjà en file ou en cours)." +msgid "Queued {count} watches for rechecking ({skipped_count} already queued or running)." +msgstr "{count} moniteurs mis en file d'attente ({skipped_count} déjà en file ou en cours)." #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format @@ -2675,18 +2675,18 @@ msgstr "RegEx '%s' n'est pas une expression régulière valide." #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid XPath expression. (%s)" -msgstr "'%s' n'est pas une expression XPath valide. (%s)" +msgid "'%(expression)s' is not a valid XPath expression. (%(error)s)" +msgstr "'%(expression)s' n'est pas une expression XPath valide. (%(error)s)" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid JSONPath expression. (%s)" -msgstr "'%s' n'est pas une expression JSONPath valide. (%s)" +msgid "'%(expression)s' is not a valid JSONPath expression. (%(error)s)" +msgstr "'%(expression)s' n'est pas une expression JSONPath valide. (%(error)s)" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid jq expression. (%s)" -msgstr "'%s' n'est pas une expression jq valide. (%s)" +msgid "'%(expression)s' is not a valid jq expression. (%(error)s)" +msgstr "'%(expression)s' n'est pas une expression jq valide. (%(error)s)" #: changedetectionio/forms.py msgid "Empty value not allowed." @@ -3388,7 +3388,7 @@ msgstr "" #: changedetectionio/store/__init__.py #, python-brace-format -msgid "Watch limit reached ({}/{} watches). Cannot add more watches." +msgid "Watch limit reached ({current}/{limit} watches). Cannot add more watches." msgstr "" #: changedetectionio/templates/_common_fields.html diff --git a/changedetectionio/translations/it/LC_MESSAGES/messages.mo b/changedetectionio/translations/it/LC_MESSAGES/messages.mo index d4e1f39aeafeb5b4002056e777bcdcf607cf5419..a49ecffaf0a60ae6a0ef61b8f16c2ee41167c7d0 100644 GIT binary patch delta 5953 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 delta 5623 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 diff --git a/changedetectionio/translations/it/LC_MESSAGES/messages.po b/changedetectionio/translations/it/LC_MESSAGES/messages.po index 10094f9c..789dd5dd 100644 --- a/changedetectionio/translations/it/LC_MESSAGES/messages.po +++ b/changedetectionio/translations/it/LC_MESSAGES/messages.po @@ -160,8 +160,8 @@ msgstr "Importazione delle prime 5.000 URL dalla tua lista, il resto può essere #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from list in {:.2f}s, {} Skipped." -msgstr "{} Importate dalla lista in {:.2f}s, {} Ignorate." +msgid "{count} Imported from list in {duration:.2f}s, {skipped_count} Skipped." +msgstr "{count} Importate dalla lista in {duration:.2f}s, {skipped_count} Ignorate." #: changedetectionio/blueprint/imports/importer.py msgid "Unable to read JSON file, was it broken?" @@ -173,8 +173,8 @@ msgstr "La struttura JSON sembra non valida, è danneggiata?" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from Distill.io in {:.2f}s, {} Skipped." -msgstr "{} Importate da Distill.io in {:.2f}s, {} Ignorate." +msgid "{count} Imported from Distill.io in {duration:.2f}s, {skipped_count} Skipped." +msgstr "{count} Importate da Distill.io in {duration:.2f}s, {skipped_count} Ignorate." #: changedetectionio/blueprint/imports/importer.py msgid "Unable to read export XLSX file, something wrong with the file?" @@ -194,13 +194,13 @@ msgstr "" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from Wachete .xlsx in {:.2f}s" -msgstr "{} importate da Wachete .xlsx in {:.2f}s" +msgid "{count} imported from Wachete .xlsx in {duration:.2f}s" +msgstr "{count} importate da Wachete .xlsx in {duration:.2f}s" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from custom .xlsx in {:.2f}s" -msgstr "{} importate da .xlsx personalizzato in {:.2f}s" +msgid "{count} imported from custom .xlsx in {duration:.2f}s" +msgstr "{count} importate da .xlsx personalizzato in {duration:.2f}s" #: changedetectionio/blueprint/imports/templates/import.html msgid "URL List" @@ -313,8 +313,8 @@ msgstr "" #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format -msgid "Warning: Worker count ({}) is close to or exceeds available CPU cores ({})" -msgstr "Avviso: Il numero di worker ({}) si avvicina o supera i core CPU disponibili ({})" +msgid "Warning: Worker count ({worker_count}) is close to or exceeds available CPU cores ({cpu_count})" +msgstr "Avviso: Il numero di worker ({worker_count}) si avvicina o supera i core CPU disponibili ({cpu_count})" #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format @@ -369,7 +369,7 @@ msgstr "" #: changedetectionio/blueprint/settings/llm.py #, python-format -msgid "AI summary cache cleared (%(n)s file(s) removed)." +msgid "AI summary cache cleared (%(count)s file(s) removed)." msgstr "" #: changedetectionio/blueprint/settings/templates/notification-log.html @@ -1071,7 +1071,7 @@ msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html #, python-format -msgid "characters — currently enforcing: %(n)s" +msgid "characters — currently enforcing: %(limit)s" msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html @@ -1427,8 +1427,8 @@ msgstr "" #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format -msgid "Queued {} watches for rechecking ({} already queued or running)." -msgstr "{} monitor in coda ({} già in coda o in esecuzione)." +msgid "Queued {count} watches for rechecking ({skipped_count} already queued or running)." +msgstr "{count} monitor in coda ({skipped_count} già in coda o in esecuzione)." #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format @@ -2664,18 +2664,18 @@ msgstr "La RegEx '%s' non è un'espressione regolare valida." #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid XPath expression. (%s)" -msgstr "'%s' non è un'espressione XPath valida. (%s)" +msgid "'%(expression)s' is not a valid XPath expression. (%(error)s)" +msgstr "'%(expression)s' non è un'espressione XPath valida. (%(error)s)" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid JSONPath expression. (%s)" -msgstr "'%s' non è un'espressione JSONPath valida. (%s)" +msgid "'%(expression)s' is not a valid JSONPath expression. (%(error)s)" +msgstr "'%(expression)s' non è un'espressione JSONPath valida. (%(error)s)" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid jq expression. (%s)" -msgstr "'%s' non è un'espressione jq valida. (%s)" +msgid "'%(expression)s' is not a valid jq expression. (%(error)s)" +msgstr "'%(expression)s' non è un'espressione jq valida. (%(error)s)" #: changedetectionio/forms.py msgid "Empty value not allowed." @@ -3377,7 +3377,7 @@ msgstr "Protocollo non consentito o formato URL non valido" #: changedetectionio/store/__init__.py #, python-brace-format -msgid "Watch limit reached ({}/{} watches). Cannot add more watches." +msgid "Watch limit reached ({current}/{limit} watches). Cannot add more watches." msgstr "" #: changedetectionio/templates/_common_fields.html diff --git a/changedetectionio/translations/ja/LC_MESSAGES/messages.mo b/changedetectionio/translations/ja/LC_MESSAGES/messages.mo index 56223d1ed1fbae6ff9a8f068925879b2cabbfae1..562ad453e7fa3fd9e718a90ef403b3c051b993f5 100644 GIT binary patch delta 14305 zcmb8#2~?F;zsK?C2nZ-5qJSeFM+OyfLJ$;0oaZ?tM+C(QMad~UX-;KUhKibVrKKhs z8j?wxWtur;Wv`h{PC1oXS!(M2{?2}S@A6&iU3cBJ-gQ5F@8@~;@ZbNvkJ`Pw*XwMF z*Gnm`B+Ig{w6Lt!7#U+(t#C9t@m0*i577goT3S|ZY>MTvKl)+@24FTmhEJouJA>n} zU973^z?Iai##vS_?uxTq7Hw7}qgKLntcuf+cdR@N!ei)-=TQ^6hGp;48vHggTpWZ=c4*KfKBm8yvxk|ZyNMrIo^uENYsS-*=C_u`V>Bn3(*TNVp+U~ zY4|55VPC?ji7rJ=Yy~n$Yo}emj#a69x!PD3(YKs93I||&EWrxsnaE@?80%tNREL?i zE^JJF1xDdvd;4YH7(YdS#<$K>P^fRAX71V1 zvT9&eR944gY3z*3`d+rf(3|>1?2OZJFn)mD(Aml4#CTMW96?3!OVoE4(2w!0>lEta z9n`>1dJDuhs0sB(O=J{m0@G|4q9(q=u5UrD^j*|Ihi$(?t@siuV)s$~l<7kJD^jRR zp&mw|>itkJjz&!^7kzLw@;~c!{!baaiJHJYBps}BT`h~N!s><9Z~^MOS5XVthCOi~ zl4e%9Zp1&6LQmq=58pwBx@>oo)q$uLC8JJBFH{c9M@48aHo)Vk<8;?<59(ni7>?y= zZ-$CUTVx2U7kc8F9>iaJv5|)AxCQmW$C!v;Vk8DJ?PyFwO>h$Gy=k`du{`yqs1?74 zA@~-S#g9-C`3%GG1~$YXS1&V@WYj<%u?*&50M4@8UqDT$7`augJE&Y~(%W?06Mdl8MjUc8Hb_z;zRemrzv7^oG+V-xI)6LB6+ z!P__z$Fh%=@FaTSMO4JDVF2DjEzqOCd*Uw3pMsJv5_NuiAqi?_qi(Qb)D~43z&(yt zP?4Hp`#NgEC($3zp(cFYZug=Si5TblR^ew#39&qkh#OR zpk`Vt&4jQGR-oSAt`9^-W(dY(CMp6Ou@vsaS8x|Dg)lp_|KS7=6lc>m? zwcGEY27HJ*O}-?KZp=Vbq@5Vb_*OIpsL!ZfUk!)>2L#^UxF5p_1-3R8G8un&=Vx z`3Y2Rd|}tGp(b<__1$k6i(X^RJ<|r8QtyfWjBm}M;DbxB6Rtvicph8fALzvBab^O& zk;}~*iCWQKEQ8lk6aN#H{S`RF%`hF~FdzN!GgO4WMOQ5fm+S_g31-Cs*o*cc)Jik4 z5XT|^vz*!H=lVrVrhWl6P}oE>@igp6eLN~+yHQDZ70C#>Rt%XG0&4w6B&aV_$|~H{DDf=zwCO=$>bIF+SmiUd=UfjCdQ!0G|NiD zR;c%9qE@~L)6n%bg2KW)%;vZNYTRvre8~R~q>QhkpXO&Qh#imp=k+B$xGf<&gY5OKtqF#)e z&~el$IgOh51?++kP!sF?wD~*XRMeJiLY<})sEFJ_msV10w&}16D!FQ*CK81TVQbW0 zrlKY^6g6NrY9i0#t(Eg z3h541`vKHd{0S-oCr~+X0hRS-=bB>|jLMaUn1O?_9v(!J&ANh>@g^!+ediG>t)SvO zv$ATaJ#2uQKx@>Bdf3kgV-xD*(TVF&6Wos-@CYiR0rSap3`6y|54EKyPz(4O>!OEi zfeB4G>W1rz`d}(*;Ac_y!wS@dwxN=6AJ)PnsE}U6s_4DY)N5mH>TOU14aYh--+sOY zby2wvQ3#>%4QhbjF%`X@H7gy8HK{Mb6x@kiiq>r;Z>_P}v zsAP>oMYI#@cn-t>{r-=!AI!u^9z2IxxEr;HH5Z!+?nY(xrx<}gFPN*kDQW@P*bwLA zKrF;?Ec>EqZ*DsrHQ^Vq0pnZmQ)rCWuq9S|$qdvNHPDNw=f&6&ub}q4$r7`--BEj) zgQsvI4!|^yQVo0?HIb8e0PkQT?#*NWyHL1Cp)Yn=YW98=YNfxUuFPn{pwN!RvN#0; z@oCi7cclM2lwGXj9z7q-$K-uY`{3&g;Dsk{k+C2W}-2ug$zL@xhsc4GKFtY9oAfJ zI+}`_z;mc1T#eeQL-zAeQ5Vd2*Z@ndF@HjeLcO1kI!%i)826xZ?F8x~s=C%4VVBj0 zg7!WQHGvtZm7c<(co{Wt$93j;cT_UHj@rYoP!qj?8u&JLM(28yd}FW$^%-`32WsN` z(NE|9JO%CHO;o5WZ!j}=qA&HXsO0I7n#d4Tl8(egJc>FMWjC7Ngb=JwJr)OJe+$@<4dNFpy+o-*5^SWg{k6GAV?N|#_ zHkqu?L?!bS)I^@arkIDyi9?%+e@zPKXz;}QsF{`8Y&!5kbr6h|u^uWCZLlSDrD`IY$T)3v7l1P)Yin?ON3LZ=?47BYfGxeS@41mzBNU{OBA*E-Ndnz$D8D z*p>Pz?1Z5^%*sZgR`wPi#2?WQH|;d%z7Umc_fab@_qN%hK%7lI6sO{Pcb)yOT*&1> z!z%m|gLau0ui+r-<9D0TAI3)1Z(SIh%nccfI)(#Lxv|u4--&_LPvQhTkBUg2Vl#oEm_|Jd zbMPa(J@#GVA4Eekg(>(LM&mJz!w0AjV)t^7<5o<^xcAIT)}U7QKI-DRjCC<`pUH)u z*qZt?s4Y8yui|Z-jH^o6e|_lxz6ot_45jWu4ZId}vBG}-NgfyA8ti$%toR1%I9eZ= z`@tK>QFUTxT#R+_D^!H;p|;Tfps6PubeX@S^`v1a50+pI{)$>z_=jd?z3?~cc{m>z zd}Jcve~8P7dNlUNY;1-HP<#CcYC<8*UJ;#(30Q*4p?fY0l__*NY>r_%YD>1F_V56P z;Bl;jm#{XLIbx1eBUH|$*!Hs>iTZvDj>p-!0DnP6cIqdl?z&1rp~*RFer)EU>RVA0 zDZxbi0wb}~r^ZCoUXMY&{~}hzji~S5K_%~}wm+fX^E_srhhR;e|3(zlad-Q{G}MbP zm=~-K*qQnPRHVutH_z*$Zn~D}i?eVxF2K_0d&0aIfWxTQ!5%mlm1Cb{X~ws1QP7O< z;5saSlGR`VvdvcFXRH#vPMMA;q9QUCwZbA)$DiBQ{@g@n5^93WF$}-KK=k~=T*)C= zp7E`k6x2~;9F1Mk19#~K+=KP-FzUUZF&)c%X_9UNHlw~DwesIlTXPSUE6&r#b{IrG z6BU6c(WMVwp`dKth+5f)ww_;^4pXoN?Om}9&PG3c9!KIzOvVS8gKht1{@$<)mG!@% zRvvN2WPbwoqdxr%@z(^7)1VoDiK%!Ov$5aT=2(7+dav$Tvw{Yw6|_a=&M;Jj7GYQ1 ziOTl-$j^W^?;DdFEzgQ@_REt6gHxL2Wmp!qI=JOFovLVAriF}eOwgcD2&F%xDmrK`bYDRPpMdq`WjTo zi&2p{gj&HdtcB-L?>$5fQ0=_QjdrN^WtfCJQ3Kz?Cg}3Hz@J(uw8AXhhFWRxMKiGh zxSaY+_ymSs;=hvOTGT+DFPjKXvYm;V=seU!U&cPT5;c+QcDv6{?i`HOkp z7pG89$Bv9|{fmMhI&Yd}Yh?Q*YQUqm7ciRoebfY^el;sg#Te?tuqo!-eu6#pJ~qT| zx6E(MbW{!;Kvz!+Us2Em!hSO|ZH~`T?}b{)Sq#K#znhCD3X`ah!1DMi>Q}80Gw>#= zzX5-k@6u5NK7r}@yj{Qf2j^c8O5ZjeRY&c8L)40zVKW?qt#BCd<8YJBj}5#?+||#zNbMexrz$;T~vrG-ZkxQP#^X{?PVG& zXQtwET#f^=(LM8L#(6l5`uA80+x~6(NkI?l{ZQjR=Axh(jzDE+F4o08r~%JmQ@n~P zSmVC=>-GrL^A}JNe8qMrs=tp>k^CC9@*nJa`3Gj;U{t%yNuf7|9vFk`aTtDu8X)$e zu{|!P-Uk(#?{OTKwH)pVPD8bC#c6mNyJ1g}PHtM*3h6Avaufx5?si>S- zjqX4HucM$2KgKukI1a(7WgPBvdm43YJjyz(-8c&OU=2Tq`?upXD)|D+nE^+mR=5(? z??qIyUB_y88?{w|{tnC4fkJBvaX1$hi4xRl_zbmzA5bd|EbnmtEx7}#eKBgwN>Df5 zQPcnx0vztY0X0I^+n^#l2zAv@##Z=BfWzhftJi7!#oiSh)^r|>#~1N3Ho>WZW-iwm!ZJ}?H61na9hF?B<9##?qTv{7rr|-R zy)E{n-W%2723(Crs8iD~*i2*->Rgu#F?(DAb&UI=`kQXoU&bivMW{$za#7IC{41Lf z*Fx3%V$X1q1}v1x?QN;DnZ>Je_;a7 zui@5Z9i*V-vO(~9v%*EFftI2ED7G4P8cI+T z^{ivso!EzZG8W)6Y^ZE*U)OYygWB8asL-uPCDj&G1h(6jp!WEg{S~E;9=AXPTB1b zQ0F=%%3LG~s17HiA~FLt@t06JRDeph_fY*g8=L2msOOzs6qI}e><0@_5!htckE4?6 z2I|<9k9N5K38fqEq<#|>@{LVQ$akYA_$#)<;HD1uKf4V={YFf}C-DgCJy(ZjX79(M z8kXAiV!QsMUH5Koj$1Tp%Z8wi?Mqk>Kg88|6(ev#3y1qZTJ1#j`vd-srDGiKKO=gy zbT8CpWl_+t)e^M$-#Hvc{o7b`VI;;m-2b8R7;dD!TPu^Czo3#VGTwwX6P4`~Q4x9C zZqGx7dX4QCR78v1&pCf*C_F~PdDLDfBp64dK3t0W(b$0V@n5J8hPHNCvvD?R%RJhc z_Zpz~dIW0a<4`%W1a%5lpeA?_J#_w0Q_w(PqdK~bO2YDq=7Vrlhka2O%V1Q;ucA6S zjPBEd8t5)6868RH>J7m(>b-FyzJ>ZOv@Pdf$=8H}l4As_qjymqok6|$J?i}bh8j2_ z*<4h^Q6XQ5n&1k29yj77Y~0TDw*j@V{itz%LLJ+r6wbdw@=S`!?(L`nuHiZiXzy_U z``-@KRb0P=dA<|X;c3*5%LCL+8QamUJOQ;ueNbCB1$BD1q9XVcCSp`4m&xi0og7v^ z4XaTTXx`amcPeUvi?KiML9Nuki@9(rqqgp4RBo)pVOYPb>1P3IBHK_AJdVnlkZ$Jr zN*4u%qy+V1aCe9MpITxunEC`%sOF)2uTc{^i<(I39%icoP!R}0EunZCbN2IL15K8XK}F(e)cbSo z`kS_Ip$6WG>UR(76nucW_z+z+DC9ooaQ{D#8J1WWcqW0_(4#7^TX5h`J=lf8< z1wWyVQ`JFcLW69F*p5IgBoq5#J}Nn{590i5!1`(C!)CTEaW3ugI2-q4Urc`7oR;O- zn)=VEi8LH+Ivj`^Xo>9ys6YAqhB|)9L(F@NY(E+jU^;k6gFcKLTF4KW!!JBz+QgiU z$&<6PCq(4=#Y9vN&&bKi&WV^DVTILuBG_#>k=W#=?6uitG4I&CVH{kz-o&cCC%}O`n)+*DkER zRX#m8CnsaVlv#~uj>{UKHKp*(y18ZSJ_m29*?44b&hRNry;W4x%vqBgIv*Wjmb0%J zFv^-~=CNc;mH+oQ?{BFc^yoPM^mb)SEuVj$6qeZ<;Q44YdloeR?*Us_(B!{AEGdZc z{r5iPg%rdT{!(yyq*-@(XKafabahvlpG8^Q?2`KP%2( zHOLWJ?vX9ce|(Umo;}UkgB(@<9i9K<-7A9}H6MAmzPBCY{OB}Cokt(#N2NJ@@SmXMaYCmNJ4^$goH#45hOH*5Mzk8#+YtMt2M+_u9PDYs#P^aMTxnz zk|;HlbV#Yv+fps1rB#u<5ME0N$zU8zZ#t`Zs zV;FviTEIWp1e+yWRwwL>>Sr;w!R5&=GxH-f=)p4>gEvtV3gs!;3boQ6n27_>6U)#S z_uvSuz%E$7vzh1!)Wk+3bFpSS^}Sf1`Uw{WqHkTrC$PaI41x=>HXcW9$+sAZUMZ%- zILDqCPy1+WiOcXAtiU1Iu8UdeQjDg42sNSWsK~pjbhRw{wvurp&cRHq-_5eB;Vi6* z^ROl^K!RhfM0I!)l?(S!p{?HCY*{VGC=91P85My{r(T3j7~eWbK_S0@>#?7I2KAvBi`f{2g;F9Es0kKfH>{iG*GzN0y@^Sd7)N6#W?A+DoA+ z9zqR#6$8+dUNxZ*)I?gMLY?9`05$Q^PJJqBrFp12+79eS6 zo#{*bvnd1-ug7pMD%7Vj9?zpzxsU2ND8sy<+F)zy zolxg{GOGXAQ0Kl3b=;5Qljy2C$g&=#FbQ?zVf4desO0+s-7gH(imGsPYpjns*bism zdpHi;u#a`H2tBb36|p_&kL9QZeu7NgWu2v<PT-1bud9Q1Mu^56K(S800QShcA+c5_x zQJ;g!cnzmxB(FCm%^D0xo7u)=1ZpCKuqh5lO(YK$!R1bUHEQD9Fc-^45q}+z=+S0n z30RMMPgE$!U@$JhPPi3o<0WKK)-6;rrjIczn~xe`DJs;fFb;n}ZE2mc=KDYcjHKRm ztjo+an}%96%)~HUh}!cls8g{YwU=+Bj@>D2g}-7)4F8w;W;7fdQJ;&7zn??1EKr z87g;HVs$LTYPb)*@g3Bb9mP=m-QCXq2Rvm$7lyjf3e{0RtcuyFq#FK&>breQ+;o;uWauKZk9xIcK>ejzT|NgNo2LbTy{1(`on&wc@XEAYMSNG;T7T zV_W2Z)>Zz)+u9mD#eD9Uq6Yc}HSvfXlY|MV2|tTUx@D*r&o*T5t%@A>U!nV!1|5q# zs4VuIYLX=!W2m>p7C01%qE&#p|5xXF^=W1ztuc-E8K^CI7nQ8XXxnguk%BlP2PdN@ zv;b@164bDIqbW?FK{NUoSK?_@NXIWQ z?a!cIOfFOe3Q#%l3M%Ulp^n{gY=xI`JO&h)<2xHkHfsZh;5JmURum8-t>8a2D8!$m z_V5yF0=G~r@>poD2ViUJ5g3k-p(Z{Pd*VD)M33UjcmdVlv_)o13s4K#ijjEGMInO1 zx2QLq^_+Pi7B%oAsP{vE)P%;OPRTTEjPp=ivP$Y71&EF%xQt?WiZB2TnvyFbBOc4}EY6w!+n@34DY)6`x~OyogHH zN>oH2ppK{Ci|UX4Z$v>CT48fc!3p>jY7ft#Civ7+lht_`L;XGMgjZ45BVRI~CCNC1 z`jZ%qhn)87jzP=Jgu7!4#R7wTBvU=q1me&i+n{ozJ8FXIs09qd+BgFJa8eQR*G%Wopbl1}_H-TUoqZ0K z#dk3f|3(e$zs5{31e;NBh6?cjRA^_To;!#&@O|g{r&x#j@6L5!*DI#O092ON$C{Xc znrU~`fRCdd9EsC#8Vruz|c(G zz&ad^rKo|cylN&AhA!P0K|vvm!>X8q9+>LXdtoQ){V@$+Kt<>@@^Z8uV1Ko5GapLl zP+9*cDw(~un~4Nt8|uwaIWc@Y@oz+7Dh*X}1$yFYR0qYV4oXm2T#kywX{?49QCs#s z>bVV@L@y4jil>_a^i)qgfBspp{NwUZF$?I8x<3Q;{9tU0u1pGX6qaKQR$w$<|{wyj|4=^2D>~}spP^V?J<62aNHlR1|LTz0+Hpa`? z3q9VVo$;-H6x87i)Xb0IahU|elhT~AlxY=p1K!x~QoQ%JrA~O1*nZQIG zLH!w=hNqqO9_7TpE)4@H%)s&33ctpV==-*Lpa(9ceh{;;=R0O4C8(91K)rbGU?jGG z*W^Mb>Q%fP6YwN%MUVH)?}@Ly$NuZV&R5F;!JG#KHuwb6|Tq3LuSQ) zqK;#Y!{+@^2PaaG!``?So8T2xguFg5y+0uST`6SJFd8>tB0fZ|tlbf_vXOY3 z`X*e2t3EUl2t8_kPVbBvv_Fe&@gz3JD#y%(B2f`tft~O;YRkP`EGvY<5KO}y)Rr7X z?cqrb#&1w7xs4GR{2z0il2AF5;W*ZDD(d+>oP;mobNDwZvIQTTy6YYVg~IiT`LJ1u zsvks6#eZ|^;Go67cdW3VKodoY3^%)W2m=6g?t4n$1Y(t#<%{V zpcz;D%=`s343|-V7uiOu-{r+`zYbqv7T zUzk^NB-UblE0%&f>V!|?Q1rmVx&e=36rM%h_ZMbi@EMbIx!9Kar>K?NXUzn>P`MK4 zI1uYnpN@*a^XSq8uTxOA?n15Xlw<8LO@|rSj`pGGgD;^UzJlX$J9b0guS{~KV-oel zsI31RwerMsCi{EiW7HR&BmSDeH#8`jzQbWy{k-{G%~%{w{S@lH)?b?ybU>{j9hEzi zP!U>#eX#wvwD399R<-}H86X+ssK1Ar&`;>z^Gn7^R4%l~x;WZJp(BNvxD6o9YTtrgumUykKiC>wbu0P$MIj9*U^%8> zlPhLoS-6_|dVB^GzGpI6idxCwA4~-2IW9&`bR|~9jW`ImqbBl)(_Z(g`;F?d!YHUC z|7&JN9Z(PU!VnyQ3gMHExmZB`B~%gxUMJkTj$5$lk0u8`#*x(P{$%=_j@_uwK}GI8 zce{&YLqW-O#<_4Ck5Kpc*-YRg)B~5C`fsSD^S)uOC*T2;11_s7Xt5^j$%+N>WErV7i^2OFbPX>7yf|S+tt6D72d%> zn-g=-B<+y<=2)&kP5fny!`D$0`x15REAJD36>iX=mE6M+tp0}yaX6~IFY3V&sJ(m= zl`{pn8n@yQO#0J&XIzP6sNcXUnEsdPCj&jGk423;-bFz(oPx^Ee2m1Sr~!Y(Hh2$H zvH9QTpW9PV*VkcPeBH4E)!!LZB(I`Y{)o4>3TW z|Nhlf;Ejjc`$TMr1DyI~$LAb3p(av}TG1g?>zlejemY40`;%rn- z>_GST|1t{d@C?3=-{2@L@V4FmCagpq8-E|$+K)5vAU5~4-JczmsN`$lX9k>!TH$t7 zzqe4y_6LTdM-AJ(RgKWqlZHMNI^qgcB#xu9{vv7xzo1sysHW}ySMsB%_O+-jJC1tO zokI=Ku$Jxq7f=$a-WL_wCs42Y`KaUkdM(@K{-;-^bK@v~+xj;b=HN2CgRQZkwwcgd z$c|aZFdKUYm=*4H+=nmI{toI?Wbjh(#V1e;n~vJ5MW~6t7w9q_e?r4>8oox&v|Sz3 zo{j^kk3x0$1}eEeM4g%ebTiZqUy3cM??FZ4vWtRd<{fN8 z9EPe7#1zaz4ZIcgKsh$W%cxV}6=Ej(FVsNOP|3Rl^*$+a+Hat?qFO!EUj!z&bUkWW2~~dOB2(KI(hGN>l_d<1zdbUFzs?lfcxc=f}EC;U%Y`7!{%t)PP4&EBMrD z{{wZd1LDk!q&=#`$*73TL`{4NDu+r?$#wwMUua8nJqmR_)kQ(cm*HHQ~wy1 zRM$|)#wXr(|Adl;Z&LpW74r41OvrbmCipXU$J(uJ_s?#Rqdp@h;ONQ3HfHa$ zQ4PzS`aY-rty8bk)*QDMs4W|YI<`wN3g5?K{2pU4Kf!kY(W(s9?*;rD?RK{NJK{rR zp)PA&qWQFX5&2GFox?HQc)q=PVI+01-G6BO4{o77t)ofKA5lpbm1IIY7M1N!qau>) zw7-N3^%}=*sEF=yU+4Utp)iz&i>SSBpKQ!RJ-7_@p;3&B@C#H2!#mkl9zKiOvWKYq znszo58i`u@6Q~?{5p@a*Q4_2{_wWCwC}^OwsE)ovC85tF=7A=tJ3P--M|0!!yM|bqn@kRh4ZiEi>09C7>Vj=KdPfMs2jgQo&R4@ z1Gn#LUR0T=kS{<@un=Fw^*9xqcQgGJqZalKYMe^cu}$vI`BzBhbvN0)12w=8xDkC* zZTIhgrKneN;~wUE8LGoms1^Q!dQ-OTX;$7IwMG3=TQUW8dbXn?ScxeZlg9bihscC9 z+bY5$)CA&tne2WHHNnOBIPOKQ)VsIs{^cVOwRN*mxv>z(pkE);&m`1DR-z)f4`<>7 z=lXP4UlWows2hL7b{NploZDWgP>n`y#TL|r_M;|p3AI%}q9Sk;wUE20$Smz|w&)|& zas3Ll<-X~*`)j(Z69v8V_oF&Gh0%DiiGplyw%9)ybUY-GVMYdwWEG`x>>aA=0@{tLw<)Iifwdp!p=z!ua>%N%#(6zco1 zH%1OJ$9FR7({(Kl!}^b!3C%$DyA4BhM;V2tG#o`G%g?BlHhIiEkb-(3$8i?w`aD$j zuf+~nf?8Q6YJy&m8~sqv`#T1sBGwQCG{er$g@LFQ4ncJ^78Sxpn2!gX>q&!6mZzcy z8jiYulv7{e_#A5BC8&N^qE10EDhbb{s{w@pLu~i|d1MkQn-`;!>}AxR9l}u?CX_JD*uk+AY9U?lF`SA@&SS$k{~FL5ZXT%NSR0?Bxh_6|^RXvh z!#)^4!gl{*VGe2{2T>hXq6TV^X-r3b^Kqe$-$~Sc!6S_sBmGSWOK8x8Z;jmhV}flL zZc7ZeqYCe}iz(cc7+lyVv5wotiM6XtkJ)=9ad2v3!`#rlJ#)*O6#8y#RhYW*mdD)q z+`T_#a zR%QOm$^|8r`Q?=h7FXsismy;qJoo?HSkx=iZlt#8qF*!ZYDHTz?FR1Z0jd+L{15Av BCN%&6 diff --git a/changedetectionio/translations/ja/LC_MESSAGES/messages.po b/changedetectionio/translations/ja/LC_MESSAGES/messages.po index 78b234a1..098f827d 100644 --- a/changedetectionio/translations/ja/LC_MESSAGES/messages.po +++ b/changedetectionio/translations/ja/LC_MESSAGES/messages.po @@ -161,8 +161,8 @@ msgstr "リストの最初の5,000件のURLをインポートしています。 #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from list in {:.2f}s, {} Skipped." -msgstr "{} 件をリストから {:.2f}秒でインポートしました。{} 件をスキップしました。" +msgid "{count} Imported from list in {duration:.2f}s, {skipped_count} Skipped." +msgstr "{count} 件をリストから {duration:.2f}秒でインポートしました。{skipped_count} 件をスキップしました。" #: changedetectionio/blueprint/imports/importer.py msgid "Unable to read JSON file, was it broken?" @@ -174,8 +174,8 @@ msgstr "JSONの構造が無効のようです。ファイルが壊れていま #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from Distill.io in {:.2f}s, {} Skipped." -msgstr "{} 件を Distill.io から {:.2f}秒でインポートしました。{} 件をスキップしました。" +msgid "{count} Imported from Distill.io in {duration:.2f}s, {skipped_count} Skipped." +msgstr "{count} 件を Distill.io から {duration:.2f}秒でインポートしました。{skipped_count} 件をスキップしました。" #: changedetectionio/blueprint/imports/importer.py msgid "Unable to read export XLSX file, something wrong with the file?" @@ -193,13 +193,13 @@ msgstr "行番号 {} の処理中にエラーが発生しました。すべて #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from Wachete .xlsx in {:.2f}s" -msgstr "{} 件を Wachete .xlsx から {:.2f}秒でインポートしました" +msgid "{count} imported from Wachete .xlsx in {duration:.2f}s" +msgstr "{count} 件を Wachete .xlsx から {duration:.2f}秒でインポートしました" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from custom .xlsx in {:.2f}s" -msgstr "{} 件をカスタム .xlsx から {:.2f}秒でインポートしました" +msgid "{count} imported from custom .xlsx in {duration:.2f}s" +msgstr "{count} 件をカスタム .xlsx から {duration:.2f}秒でインポートしました" #: changedetectionio/blueprint/imports/templates/import.html msgid "URL List" @@ -315,8 +315,8 @@ msgstr "パスワード保護が解除されました。" #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format -msgid "Warning: Worker count ({}) is close to or exceeds available CPU cores ({})" -msgstr "警告:ワーカー数({})が利用可能なCPUコア数({})に近いか超えています" +msgid "Warning: Worker count ({worker_count}) is close to or exceeds available CPU cores ({cpu_count})" +msgstr "警告:ワーカー数({worker_count})が利用可能なCPUコア数({cpu_count})に近いか超えています" #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format @@ -371,7 +371,7 @@ msgstr "" #: changedetectionio/blueprint/settings/llm.py #, python-format -msgid "AI summary cache cleared (%(n)s file(s) removed)." +msgid "AI summary cache cleared (%(count)s file(s) removed)." msgstr "" #: changedetectionio/blueprint/settings/templates/notification-log.html @@ -1076,7 +1076,7 @@ msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html #, python-format -msgid "characters — currently enforcing: %(n)s" +msgid "characters — currently enforcing: %(limit)s" msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html @@ -1433,8 +1433,8 @@ msgstr "1件のウォッチを再チェックのためキューに追加しま #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format -msgid "Queued {} watches for rechecking ({} already queued or running)." -msgstr "{} 件のウォッチを再チェックのためキューに追加しました({} 件はすでにキュー済みまたは実行中)。" +msgid "Queued {count} watches for rechecking ({skipped_count} already queued or running)." +msgstr "{count} 件のウォッチを再チェックのためキューに追加しました({skipped_count} 件はすでにキュー済みまたは実行中)。" #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format @@ -2681,18 +2681,18 @@ msgstr "正規表現 '%s' は有効な正規表現ではありません。" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid XPath expression. (%s)" -msgstr "'%s' は有効なXPath式ではありません。(%s)" +msgid "'%(expression)s' is not a valid XPath expression. (%(error)s)" +msgstr "'%(expression)s' は有効なXPath式ではありません。(%(error)s)" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid JSONPath expression. (%s)" -msgstr "'%s' は有効なJSONPath式ではありません。(%s)" +msgid "'%(expression)s' is not a valid JSONPath expression. (%(error)s)" +msgstr "'%(expression)s' は有効なJSONPath式ではありません。(%(error)s)" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid jq expression. (%s)" -msgstr "'%s' は有効なjq式ではありません。(%s)" +msgid "'%(expression)s' is not a valid jq expression. (%(error)s)" +msgstr "'%(expression)s' は有効なjq式ではありません。(%(error)s)" #: changedetectionio/forms.py msgid "Empty value not allowed." @@ -3394,8 +3394,8 @@ msgstr "ウォッチのプロトコルが許可されていないか、URL形式 #: changedetectionio/store/__init__.py #, python-brace-format -msgid "Watch limit reached ({}/{} watches). Cannot add more watches." -msgstr "ウォッチの上限に達しました({}/{} ウォッチ)。これ以上ウォッチを追加できません。" +msgid "Watch limit reached ({current}/{limit} watches). Cannot add more watches." +msgstr "ウォッチの上限に達しました({current}/{limit} ウォッチ)。これ以上ウォッチを追加できません。" #: changedetectionio/templates/_common_fields.html msgid "Body for all notifications — You can use" diff --git a/changedetectionio/translations/ko/LC_MESSAGES/messages.mo b/changedetectionio/translations/ko/LC_MESSAGES/messages.mo index 0ab9e7fd19d33cc617798d67c5f63760a4f0cd9d..1953859622d99d56dfc46e23479c30b30821fdce 100644 GIT binary patch delta 16705 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 VmHuDeYWlz2i`_kKk!yOP{|5kiIq?7h delta 16380 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 diff --git a/changedetectionio/translations/ko/LC_MESSAGES/messages.po b/changedetectionio/translations/ko/LC_MESSAGES/messages.po index 1078b3c7..9d62c841 100644 --- a/changedetectionio/translations/ko/LC_MESSAGES/messages.po +++ b/changedetectionio/translations/ko/LC_MESSAGES/messages.po @@ -160,8 +160,8 @@ msgstr "목록의 처음 5,000개 URL만 가져옵니다. 나머지는 다시 #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from list in {:.2f}s, {} Skipped." -msgstr "목록에서 {}개를 {:.2f}초 만에 가져왔습니다. {}개는 건너뛰었습니다." +msgid "{count} Imported from list in {duration:.2f}s, {skipped_count} Skipped." +msgstr "목록에서 {count}개를 {duration:.2f}초 만에 가져왔습니다. {skipped_count}개는 건너뛰었습니다." #: changedetectionio/blueprint/imports/importer.py msgid "Unable to read JSON file, was it broken?" @@ -173,8 +173,8 @@ msgstr "JSON 구조가 올바르지 않습니다. 파일이 손상되었나요?" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from Distill.io in {:.2f}s, {} Skipped." -msgstr "Distill.io에서 {}개를 {:.2f}초 만에 가져왔습니다. {}개는 건너뛰었습니다." +msgid "{count} Imported from Distill.io in {duration:.2f}s, {skipped_count} Skipped." +msgstr "Distill.io에서 {count}개를 {duration:.2f}초 만에 가져왔습니다. {skipped_count}개는 건너뛰었습니다." #: changedetectionio/blueprint/imports/importer.py msgid "Unable to read export XLSX file, something wrong with the file?" @@ -192,13 +192,13 @@ msgstr "{}행 처리 중 오류가 발생했습니다. 모든 셀 데이터 형 #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from Wachete .xlsx in {:.2f}s" -msgstr "Wachete .xlsx에서 {}개를 {:.2f}초 만에 가져왔습니다." +msgid "{count} imported from Wachete .xlsx in {duration:.2f}s" +msgstr "Wachete .xlsx에서 {count}개를 {duration:.2f}초 만에 가져왔습니다." #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from custom .xlsx in {:.2f}s" -msgstr "사용자 지정 .xlsx에서 {}개를 {:.2f}초 만에 가져왔습니다." +msgid "{count} imported from custom .xlsx in {duration:.2f}s" +msgstr "사용자 지정 .xlsx에서 {count}개를 {duration:.2f}초 만에 가져왔습니다." #: changedetectionio/blueprint/imports/templates/import.html msgid "URL List" @@ -313,8 +313,8 @@ msgstr "비밀번호 보호가 해제되었습니다." #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format -msgid "Warning: Worker count ({}) is close to or exceeds available CPU cores ({})" -msgstr "경고: 워커 수({})가 사용 가능한 CPU 코어 수({})에 근접하거나 초과합니다" +msgid "Warning: Worker count ({worker_count}) is close to or exceeds available CPU cores ({cpu_count})" +msgstr "경고: 워커 수({worker_count})가 사용 가능한 CPU 코어 수({cpu_count})에 근접하거나 초과합니다" #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format @@ -369,8 +369,8 @@ msgstr "AI / LLM 설정이 제거되었습니다." #: changedetectionio/blueprint/settings/llm.py #, python-format -msgid "AI summary cache cleared (%(n)s file(s) removed)." -msgstr "AI 요약 캐시가 지워졌습니다(%(n)s개 파일 제거됨)." +msgid "AI summary cache cleared (%(count)s file(s) removed)." +msgstr "AI 요약 캐시가 지워졌습니다(%(count)s개 파일 제거됨)." #: changedetectionio/blueprint/settings/templates/notification-log.html msgid "Notification debug log" @@ -1077,8 +1077,8 @@ msgstr "(LLM_MAX_INPUT_CHARS로 설정됨)" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html #, python-format -msgid "characters — currently enforcing: %(n)s" -msgstr "문자 - 현재 적용 중: %(n)s" +msgid "characters — currently enforcing: %(limit)s" +msgstr "문자 - 현재 적용 중: %(limit)s" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html msgid "No AI usage recorded yet." @@ -1435,8 +1435,8 @@ msgstr "모니터링 1개를 재확인 대기열에 추가했습니다." #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format -msgid "Queued {} watches for rechecking ({} already queued or running)." -msgstr "{}개 모니터링을 재확인 대기열에 추가했습니다. ({}개는 이미 대기 중이거나 실행 중)" +msgid "Queued {count} watches for rechecking ({skipped_count} already queued or running)." +msgstr "{count}개 모니터링을 재확인 대기열에 추가했습니다. ({skipped_count}개는 이미 대기 중이거나 실행 중)" #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format @@ -2672,18 +2672,18 @@ msgstr "정규식 '%s'은(는) 유효하지 않습니다." #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid XPath expression. (%s)" -msgstr "'%s'은(는) 유효한 XPath 표현식이 아닙니다. (%s)" +msgid "'%(expression)s' is not a valid XPath expression. (%(error)s)" +msgstr "'%(expression)s'은(는) 유효한 XPath 표현식이 아닙니다. (%(error)s)" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid JSONPath expression. (%s)" -msgstr "'%s'은(는) 유효한 JSONPath 표현식이 아닙니다. (%s)" +msgid "'%(expression)s' is not a valid JSONPath expression. (%(error)s)" +msgstr "'%(expression)s'은(는) 유효한 JSONPath 표현식이 아닙니다. (%(error)s)" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid jq expression. (%s)" -msgstr "'%s'은(는) 유효한 jq 표현식이 아닙니다. (%s)" +msgid "'%(expression)s' is not a valid jq expression. (%(error)s)" +msgstr "'%(expression)s'은(는) 유효한 jq 표현식이 아닙니다. (%(error)s)" #: changedetectionio/forms.py msgid "Empty value not allowed." @@ -3385,8 +3385,8 @@ msgstr "모니터링 프로토콜이 허용되지 않거나 URL 형식이 올바 #: changedetectionio/store/__init__.py #, python-brace-format -msgid "Watch limit reached ({}/{} watches). Cannot add more watches." -msgstr "모니터링 한도에 도달했습니다. ({}/{}개) 더 이상 모니터링을 추가할 수 없습니다." +msgid "Watch limit reached ({current}/{limit} watches). Cannot add more watches." +msgstr "모니터링 한도에 도달했습니다. ({current}/{limit}개) 더 이상 모니터링을 추가할 수 없습니다." #: changedetectionio/templates/_common_fields.html msgid "Body for all notifications — You can use" @@ -3843,7 +3843,7 @@ msgstr "이 태그/그룹의 모든 모니터링에 판단 기준을 설정합 #: changedetectionio/templates/edit/include_llm_intent.html #, python-format msgid "From group '%(name)s': %(value)s" -msgstr "'%(name)s' 그룹에서 가져옴: %(value)s" +msgstr "" #: changedetectionio/templates/edit/include_llm_intent.html msgid "e.g. Alert me when the price drops below $300, or a new product is launched. Ignore footer and navigation changes." diff --git a/changedetectionio/translations/messages.pot b/changedetectionio/translations/messages.pot index ce4f2330..6f2a7138 100644 --- a/changedetectionio/translations/messages.pot +++ b/changedetectionio/translations/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: changedetection.io 0.55.3\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2026-04-28 16:31+0900\n" +"POT-Creation-Date: 2026-04-30 19:35+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -159,7 +159,7 @@ msgstr "" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from list in {:.2f}s, {} Skipped." +msgid "{count} Imported from list in {duration:.2f}s, {skipped_count} Skipped." msgstr "" #: changedetectionio/blueprint/imports/importer.py @@ -172,7 +172,7 @@ msgstr "" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from Distill.io in {:.2f}s, {} Skipped." +msgid "{count} Imported from Distill.io in {duration:.2f}s, {skipped_count} Skipped." msgstr "" #: changedetectionio/blueprint/imports/importer.py @@ -191,12 +191,12 @@ msgstr "" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from Wachete .xlsx in {:.2f}s" +msgid "{count} imported from Wachete .xlsx in {duration:.2f}s" msgstr "" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from custom .xlsx in {:.2f}s" +msgid "{count} imported from custom .xlsx in {duration:.2f}s" msgstr "" #: changedetectionio/blueprint/imports/templates/import.html @@ -310,7 +310,7 @@ msgstr "" #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format -msgid "Warning: Worker count ({}) is close to or exceeds available CPU cores ({})" +msgid "Warning: Worker count ({worker_count}) is close to or exceeds available CPU cores ({cpu_count})" msgstr "" #: changedetectionio/blueprint/settings/__init__.py @@ -366,7 +366,7 @@ msgstr "" #: changedetectionio/blueprint/settings/llm.py #, python-format -msgid "AI summary cache cleared (%(n)s file(s) removed)." +msgid "AI summary cache cleared (%(count)s file(s) removed)." msgstr "" #: changedetectionio/blueprint/settings/templates/notification-log.html @@ -1068,7 +1068,7 @@ msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html #, python-format -msgid "characters — currently enforcing: %(n)s" +msgid "characters — currently enforcing: %(limit)s" msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html @@ -1424,7 +1424,7 @@ msgstr "" #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format -msgid "Queued {} watches for rechecking ({} already queued or running)." +msgid "Queued {count} watches for rechecking ({skipped_count} already queued or running)." msgstr "" #: changedetectionio/blueprint/ui/__init__.py @@ -2661,17 +2661,17 @@ msgstr "" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid XPath expression. (%s)" +msgid "'%(expression)s' is not a valid XPath expression. (%(error)s)" msgstr "" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid JSONPath expression. (%s)" +msgid "'%(expression)s' is not a valid JSONPath expression. (%(error)s)" msgstr "" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid jq expression. (%s)" +msgid "'%(expression)s' is not a valid jq expression. (%(error)s)" msgstr "" #: changedetectionio/forms.py @@ -3374,7 +3374,7 @@ msgstr "" #: changedetectionio/store/__init__.py #, python-brace-format -msgid "Watch limit reached ({}/{} watches). Cannot add more watches." +msgid "Watch limit reached ({current}/{limit} watches). Cannot add more watches." msgstr "" #: changedetectionio/templates/_common_fields.html diff --git a/changedetectionio/translations/pt_BR/LC_MESSAGES/messages.mo b/changedetectionio/translations/pt_BR/LC_MESSAGES/messages.mo index 7acab35d2dca4bc6535af5dd95eebc2424d80201..41f45929e92172fe7a7cd11d883947efce086f76 100644 GIT binary patch delta 12436 zcmbW-cX(A*y2tT-NFfR7h0p>g4MIzS&=Q(J5;{W>!~g;zA)zEp570nftY}gU}x0l zR^SA5OEUdQxPty^Y>UM$ESD8ZV`~e`YKMC<41Y&W7~Imbe6S`~$4IP&jj!3);nYS3q9<-ccifJtxC`UZb(e;68Oib$vLp<{cDDVH ze^xgCQHa-~LbxAa!s|E&7x7eI{280zeI!^`WAdT5c+mCp&W%;c`mAor=W7W1%vS$Y>L0weP=hbfR?D8cEsM;2i@^StcPn* z&)wCH_!BMb2m>k_AI=8v467A-Vh-xYiMG>G5n6!S`3elj^{8X|9%_dNu@QcY&Cn;^ zEUXP`o-U|)C#DmBPL#Ek0p;`(>H%&U=6%orljt`_9j{E(PM$-`##({7cnSyNL*32w z=TWJ85p|kg#ag%D;9{R4HJk0C|qvM$o-&p>itUNZPJj=*cEH(oF9(n9v4 zC!R-D_jh*xE>@@i0JV|of3vJ=SQA%bZPdi?pib2h^u}{IQRn|MjZ_8(vx*`t#a#3p zV7>(lFoFJ3)I@u*As$9e_!BBc_wBwrg`kCo;B>5mHE=m<;p?$BzKu&~xmx5)5H{C9-Ji4O9v|hMLefLm&DrPzk7uGL9)*g` zc=W?!R3v5(CH|`JQU;WxH&MCVjdgIJ?K#Y$Ux}@7Kyp#LZ;Ws6Y}ajl}!oyG>#2d`ra>O0a2si*}EL(**(pmuT)wa`1LA`Ifp zw!AQ4yJg;kXhN*$Pz74`E~c9Gl_;9H;Z&bhP=va?}m~fm+BZ)WmhOOlY%E zMVDju7o)0vDQf4tF&6Kjsyu@CxDyAUj%N|77S>^1+>EKrZylnc>UGODIq^rWJRIv` zQ*4jj?fzW!puZlqpx5m26Q~GX!`Ao!J7a4qSJgfh6`^^kl&nTqI*pAq^oIKpRTL3p z%>)gRtXR!ZD_?}l?Q*;SGRD#0iXQldJ$?oik?&9wJ9EuxNJOQo4eGQF&L#c>XpCkc z65l};*O%yqUU_DRzNqUhQ9FDXmE&C0181U&c8z`gG%CbDqN?3{oGI2?sPPuq75k1O z{?%!eGN2W`hzik0RL*u|AYMgH{5w8`0pm?-`eOt7`Pc)OU=f}|9lzca%mU`37Wy12 zA{Dm#Tr@%%_!PB}%cyF-fjVCIu_xA=Xcm-(@${Er9PYu!cm=&MgfpcL)I&Y5CHi72 z`eS!g1csne<|?A06-`4;xB&IRmyuV2wHf`!x%=!u`8&iz;DjWBS3RI|~JsN83uOCjw;Lk_adM6GzV-JgPrNC_&0 z&tWTk1$9hMqe6WSm6D$@5i8LTn>=p5%-W(N(gB-b@5hOM9*wCCJdfX?CYn0U6x$M1 zbss^!0e?YVPkO?EmW=pN=)dJ@e}$zaWF;@=LjrDEu<7b#GR<)Tf#g8@h}d>dNa+uQ(QDs z7H+Nssd)xg`Ri4UW4d<=c?94hx$uxjC`s=tkT4|qLg78r*5d=j?D z)>sdVkeYK@OKE7ra#ZNnU?)6mZm_)Om?8>5U5~&}Oh*-MChGH}u{MrF?QjliL1p&! z4XDp;MNYQ07xnX})oQLe9*a>S--zvS2gc(q`+C&V=9kJ;RAjQSs(7&r{cljk7&Fg2 z=SkE8o<$Y$I*h`9qKff4>hDiho%!a5eyC$H4VBARP{p$oqtSDL30)IZPBTyw=Ad@= zK0bz@q6fBIXs)-zB>Kxxso95G*hzFXrtvL}9_agwDW<`w^POY&SD{wE1smZBtd4iE z2|hq?Y_iDILNaOr9WV#GqEfmEYv2#)#M_IAzitd)Y;qTYZuHxrCQL;Y-3ScF0*u9Z zs0VFDrD6wq;W2E6U!b1jw!{=`b<`;dMjh8E)V$M{5Pu&UE(R2mh3Jl}P}RB)Gw>X; zXsh9~=G|R^e)K;_f4qP#@FpsCu}jVM_NePUQ41bw_p?zED|XS)gfmbfeF_!QXHYwS z7t`@L>H%TP%mX7)_a~x`Q(L?LFzUYH=!2k$`6(F8{MI0QU@Qi5 z!z>KKQgq@g*b)z52v*wq@rA(ytVmSIlX01YzZYO8{j-=2Q^RHtXKEN(I z|7kCn>YR@%uESWY8&O4+wZe>##Q^$?Q8n`t>VdD}INX6#G3G_{GvF$GoPOX+ey6|% z*d5!hGRJoo>hDk1S{e%F_oxZ|UoyoLjLM-Cb>5p}1op-bI1ZEXHSC6GQ7MR8ZGN6; zg4$3T>iT$e;x^ll(WM>Sq%j8F)|j2;qC#7Q8h;vx;#E}c)7F~f*$b89e2l?&F&e){ z73~9@iRtV3V!}hH`D(2<8)>|r`0Ili4CsRsP`O@;+Sz`53@b4UhrVozXg6wSw@}4a z`xWzdfw4H5{%-WdmK%&Is9Jak6LB$y;rkn0CS;#6P>+E#_JvApLqA}nnJ@zt@)A6N zJ5e<<>s3<|w^3E@`I>o?cEAMs^H3?=j@@xTHblSI%`s1Q(a?$>Lsj=u)XrZ)E$Ay$ zDsH1rh4&^Cy1J-PwnH!MiJEAj?MQokA`W4E3KrmT?1vpUn^WOhLZc1?cQ71-x0o7e zf|{@uw!#dI!xB{JHlj|$E)2z^sAKpIYQc9=pRcji^doE&F^ci7=&SReLqj_$!rC|o z+u>@ve+o6xO;l}E<1A^%t#JT$!WvkLTEJ@ThVNhs-oprN^@fSWK@l@O_NMpHcURzip0Z z6zaHUpyqoPT}~PYXf(p_&>#KZF`a$+7M+P>k#UVTv()hlxZB3}!q96}mpC2WFxZr{XYt0VmN;e ztdBD=246xgcrR+=&r#0{*=hGHs&&1jEub>_{;RBQ7Wmt{= zOQ=+=MGt%x18}Q-eK#tid$2C%?lCEugDUEkSc0!%Z*(>Mkjke~ghg11s_uz+drQNJiC63hG$)z!^9I71@tbkvor0yn#s=w7)7ME~_hzZVY6iZd{8a z@l9-l!3WF)Jy8=3#i2MFJK!$V0`H*~?s3o@*JRYf#-obz35>*LsEAddpOU_hMkoUx zV>Et;ZPDkD`CCs{Y)F4D#^M&#LO;P&ynr6q;IP?YENUU?s0B~P&Nu`0+z-$l@2b!I z)*mz`V(X90gI_@v(L1Q(IgD9&0rlXFBc=wXph8@N4e%M%LN=ohzG=G)^_)XkAHT)s z==dl352ukpL&cGS3eg~p!znlg*I;|BdDOfq2Vyn)J5Uqv!s>ViwV;dWjWYGze4Z_d(U%eAN5F<@JU6x{bl^42-}5_$n&L_fQe}13j_X zm*#;ju`~SwY>C@YpTCIBvH28NT4FK5;Jfw*3?>jzA_<-L>;R}7=dk3=X)@! zYM(Uj0t5L)}TKK75b5=+%7_2EX7W^26cSTqwc?n&G0^IK~2wA{f{eFDkf;66*Tn0 zkI)Uh&zaEqVGH_Quog~6CoVyyh5H3PL zT#ee$mTw8PR&sy=<^DKE<9Qs8ZWqi>M`3IFOHsvj2wUN=sL(gPXm;KfHNg9@p2^haSwT!6a&FeROQ=G(I|>Uuw9!7eM;9+-*R;R=k#9jM%$wZ|V| zUHT1vG)0w)vGhk^Pn?63@dPfxwCiR8pJ5I9H_;F8qjv85lO+G4RSi~%T3L+U?|_;x z4Qt~lOvmZyhI=s#528Pw!S;9+mGih8=Katfm4Ys)h&_y@Sc03G-wOQM>~t4)p??mW zW8_Wqs_chaSUIW)w_z6kfQi`mmU&;eFoFKt*b*TtI=rG&bDD=Jc#x22D&?_@Y{T4(+|C4Qnd(m-!?per*R~%y=!z-n$(QO6vj_s z2MoDK{C#Qkzh`nZ0##(=&>iQZ2QEbAY$?Xz3-z+q0Grvh|EFd{zX(Vt;X881yutFQC0sr>hrfy z6W+yo*y#^*Y=@yXl!%e7ay@A2_JGR1r`{sP7p%4Axwz;T?6rmRK0*2yS zs0k0D7JLz(#>+Si3m%xrxsK8ZVc>i0g}H`}CvZAm#{M|Q;i$^> zyBJPCyqcpbVhO0vbw(ZIzhf$vVFsQs*Iib)o1<#N?x+c7;8-ljruYD(uql;S2m9hs z%tNJQA1cRRp;FSv!(q+DOzethP?2$ZI;tX)g8D8Qf{*C@FQE~^!1ve>J*qpZBJwcm zIOW-{K;`TsY=Ix6ir3xC>^KN@Jqo8{6YP!a(Hnn4%~Oebb%%QsVdl4-G?b%?1rkLL0F7q(G$<0YU~15{r&GJ z`+`-&QS~mbj;e)pd=^Vl$0f?wET9+a!9%efPC%t%BL?9v)M+?wdlt2zYgkp(sD%Xh zIb2mcs_AD!9fPXcK{x>aj#}w{)B{hVLU|sYcm)*!AAd7J2do~b_Qk8Hh@=ENs$NV(Q1=(19FD^-#J|S;nUU9{Nh1I?62OceLkT7O);izKPof6+7r=+NvbNZiV zC~*!n6UJN9tEMb1tNnldNLhSYRM?-Vu^(3UNLi%UzphkFD?9G?=SZ$CuTwU!JoK*v zwzjud7p0f)_a^u{I^(6J2S1(pJG{l)6LQGe}cI^(cO{j z`1f#bU+Li(>}?)e{EIBHBm(Z51k;_NYTQbA#{#++kDIVa>5 t6_0XePjpWIe>^I$JTt)2;C~Ny`Ro8koZp`wTK-L-BXs+|0LPP#{{lp|`NaSL delta 12020 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 Mythvea*TKU4}A#+djJ3c delta 12202 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 diff --git a/changedetectionio/translations/uk/LC_MESSAGES/messages.po b/changedetectionio/translations/uk/LC_MESSAGES/messages.po index 49d5203a..61fe7b17 100644 --- a/changedetectionio/translations/uk/LC_MESSAGES/messages.po +++ b/changedetectionio/translations/uk/LC_MESSAGES/messages.po @@ -159,8 +159,8 @@ msgstr "Імпортуються перші 5000 URL з вашого списк #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from list in {:.2f}s, {} Skipped." -msgstr "{} Імпортовано зі списку за {:.2f}с, {} Пропущено." +msgid "{count} Imported from list in {duration:.2f}s, {skipped_count} Skipped." +msgstr "{count} Імпортовано зі списку за {duration:.2f}с, {skipped_count} Пропущено." #: changedetectionio/blueprint/imports/importer.py msgid "Unable to read JSON file, was it broken?" @@ -172,8 +172,8 @@ msgstr "Структура JSON виглядає некоректною, мож #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from Distill.io in {:.2f}s, {} Skipped." -msgstr "{} Імпортовано з Distill.io за {:.2f}с, {} Пропущено." +msgid "{count} Imported from Distill.io in {duration:.2f}s, {skipped_count} Skipped." +msgstr "{count} Імпортовано з Distill.io за {duration:.2f}с, {skipped_count} Пропущено." #: changedetectionio/blueprint/imports/importer.py msgid "Unable to read export XLSX file, something wrong with the file?" @@ -191,13 +191,13 @@ msgstr "Помилка обробки рядка {}, перевірте прав #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from Wachete .xlsx in {:.2f}s" -msgstr "{} імпортовано з Wachete .xlsx за {:.2f}с" +msgid "{count} imported from Wachete .xlsx in {duration:.2f}s" +msgstr "{count} імпортовано з Wachete .xlsx за {duration:.2f}с" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from custom .xlsx in {:.2f}s" -msgstr "{} імпортовано з власного .xlsx за {:.2f}с" +msgid "{count} imported from custom .xlsx in {duration:.2f}s" +msgstr "{count} імпортовано з власного .xlsx за {duration:.2f}с" #: changedetectionio/blueprint/imports/templates/import.html msgid "URL List" @@ -312,8 +312,10 @@ msgstr "Захист паролем вимкнено." #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format -msgid "Warning: Worker count ({}) is close to or exceeds available CPU cores ({})" -msgstr "Увага: Кількість воркерів ({}) наближається до кількості доступних ядер процесора або перевищує її ({})" +msgid "Warning: Worker count ({worker_count}) is close to or exceeds available CPU cores ({cpu_count})" +msgstr "" +"Увага: Кількість воркерів ({worker_count}) наближається до кількості доступних ядер процесора або перевищує її " +"({cpu_count})" #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format @@ -368,7 +370,7 @@ msgstr "" #: changedetectionio/blueprint/settings/llm.py #, python-format -msgid "AI summary cache cleared (%(n)s file(s) removed)." +msgid "AI summary cache cleared (%(count)s file(s) removed)." msgstr "" #: changedetectionio/blueprint/settings/templates/notification-log.html @@ -1082,7 +1084,7 @@ msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html #, python-format -msgid "characters — currently enforcing: %(n)s" +msgid "characters — currently enforcing: %(limit)s" msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html @@ -1443,8 +1445,8 @@ msgstr "1 завдання додано в чергу на перевірку." #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format -msgid "Queued {} watches for rechecking ({} already queued or running)." -msgstr "Додано {} завдань у чергу ({} вже в черзі або виконуються)." +msgid "Queued {count} watches for rechecking ({skipped_count} already queued or running)." +msgstr "Додано {count} завдань у чергу ({skipped_count} вже в черзі або виконуються)." #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format @@ -2692,18 +2694,18 @@ msgstr "RegEx '%s' не є допустимим регулярним вираз #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid XPath expression. (%s)" -msgstr "'%s' не є допустимим виразом XPath. (%s)" +msgid "'%(expression)s' is not a valid XPath expression. (%(error)s)" +msgstr "'%(expression)s' не є допустимим виразом XPath. (%(error)s)" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid JSONPath expression. (%s)" -msgstr "'%s' не є допустимим виразом JSONPath. (%s)" +msgid "'%(expression)s' is not a valid JSONPath expression. (%(error)s)" +msgstr "'%(expression)s' не є допустимим виразом JSONPath. (%(error)s)" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid jq expression. (%s)" -msgstr "'%s' не є допустимим виразом jq. (%s)" +msgid "'%(expression)s' is not a valid jq expression. (%(error)s)" +msgstr "'%(expression)s' не є допустимим виразом jq. (%(error)s)" #: changedetectionio/forms.py msgid "Empty value not allowed." @@ -3405,8 +3407,8 @@ msgstr "Протокол завдання не дозволено або нев #: changedetectionio/store/__init__.py #, python-brace-format -msgid "Watch limit reached ({}/{} watches). Cannot add more watches." -msgstr "Досягнуто ліміту завдань ({}/{}). Неможливо додати більше." +msgid "Watch limit reached ({current}/{limit} watches). Cannot add more watches." +msgstr "Досягнуто ліміту завдань ({current}/{limit}). Неможливо додати більше." #: changedetectionio/templates/_common_fields.html msgid "Body for all notifications — You can use" diff --git a/changedetectionio/translations/zh/LC_MESSAGES/messages.mo b/changedetectionio/translations/zh/LC_MESSAGES/messages.mo index c308e72a187b40eae67003e148f94299cffccdf9..c50133b9187a71483919282023d4fcf2c55769c5 100644 GIT binary patch delta 11749 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 XXCuS@Hn!XcXRG~vkNkvlvx@y2&n%#Q delta 11303 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 a(Es~^&yDK;{h-s0n*Y^Uu;4~+vHu0Euj)tu diff --git a/changedetectionio/translations/zh/LC_MESSAGES/messages.po b/changedetectionio/translations/zh/LC_MESSAGES/messages.po index 549af80e..36aab44d 100644 --- a/changedetectionio/translations/zh/LC_MESSAGES/messages.po +++ b/changedetectionio/translations/zh/LC_MESSAGES/messages.po @@ -160,8 +160,8 @@ msgstr "仅导入列表前 5,000 个 URL,其余可稍后继续导入。" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from list in {:.2f}s, {} Skipped." -msgstr "从列表导入 {} 条,用时 {:.2f} 秒,跳过 {} 条。" +msgid "{count} Imported from list in {duration:.2f}s, {skipped_count} Skipped." +msgstr "从列表导入 {count} 条,用时 {duration:.2f} 秒,跳过 {skipped_count} 条。" #: changedetectionio/blueprint/imports/importer.py msgid "Unable to read JSON file, was it broken?" @@ -173,8 +173,8 @@ msgstr "JSON 结构无效,文件是否损坏?" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from Distill.io in {:.2f}s, {} Skipped." -msgstr "从 Distill.io 导入 {} 条,用时 {:.2f} 秒,跳过 {} 条。" +msgid "{count} Imported from Distill.io in {duration:.2f}s, {skipped_count} Skipped." +msgstr "从 Distill.io 导入 {count} 条,用时 {duration:.2f} 秒,跳过 {skipped_count} 条。" #: changedetectionio/blueprint/imports/importer.py msgid "Unable to read export XLSX file, something wrong with the file?" @@ -192,13 +192,13 @@ msgstr "处理第 {} 行时出错,请检查单元格数据类型是否正确 #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from Wachete .xlsx in {:.2f}s" -msgstr "从 Wachete .xlsx 导入 {} 条,用时 {:.2f} 秒" +msgid "{count} imported from Wachete .xlsx in {duration:.2f}s" +msgstr "从 Wachete .xlsx 导入 {count} 条,用时 {duration:.2f} 秒" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from custom .xlsx in {:.2f}s" -msgstr "从自定义 .xlsx 导入 {} 条,用时 {:.2f} 秒" +msgid "{count} imported from custom .xlsx in {duration:.2f}s" +msgstr "从自定义 .xlsx 导入 {count} 条,用时 {duration:.2f} 秒" #: changedetectionio/blueprint/imports/templates/import.html msgid "URL List" @@ -315,8 +315,8 @@ msgstr "已移除密码保护。" #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format -msgid "Warning: Worker count ({}) is close to or exceeds available CPU cores ({})" -msgstr "警告:工作线程数({})接近或超过可用CPU核心数({})" +msgid "Warning: Worker count ({worker_count}) is close to or exceeds available CPU cores ({cpu_count})" +msgstr "警告:工作线程数({worker_count})接近或超过可用CPU核心数({cpu_count})" #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format @@ -371,7 +371,7 @@ msgstr "" #: changedetectionio/blueprint/settings/llm.py #, python-format -msgid "AI summary cache cleared (%(n)s file(s) removed)." +msgid "AI summary cache cleared (%(count)s file(s) removed)." msgstr "" #: changedetectionio/blueprint/settings/templates/notification-log.html @@ -1073,7 +1073,7 @@ msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html #, python-format -msgid "characters — currently enforcing: %(n)s" +msgid "characters — currently enforcing: %(limit)s" msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html @@ -1429,8 +1429,8 @@ msgstr "已将 1 个监控项加入重新检查队列。" #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format -msgid "Queued {} watches for rechecking ({} already queued or running)." -msgstr "{}个监视器已加入队列({}个已在队列中)。" +msgid "Queued {count} watches for rechecking ({skipped_count} already queued or running)." +msgstr "{count}个监视器已加入队列({skipped_count}个已在队列中)。" #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format @@ -2667,18 +2667,18 @@ msgstr "正则表达式“%s”无效。" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid XPath expression. (%s)" -msgstr "“%s”不是有效的 XPath 表达式。(%s)" +msgid "'%(expression)s' is not a valid XPath expression. (%(error)s)" +msgstr "“%(expression)s”不是有效的 XPath 表达式。(%(error)s)" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid JSONPath expression. (%s)" -msgstr "“%s”不是有效的 JSONPath 表达式。(%s)" +msgid "'%(expression)s' is not a valid JSONPath expression. (%(error)s)" +msgstr "“%(expression)s”不是有效的 JSONPath 表达式。(%(error)s)" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid jq expression. (%s)" -msgstr "“%s”不是有效的 jq 表达式。(%s)" +msgid "'%(expression)s' is not a valid jq expression. (%(error)s)" +msgstr "“%(expression)s”不是有效的 jq 表达式。(%(error)s)" #: changedetectionio/forms.py msgid "Empty value not allowed." @@ -3380,7 +3380,7 @@ msgstr "监控协议不允许或 URL 格式无效" #: changedetectionio/store/__init__.py #, python-brace-format -msgid "Watch limit reached ({}/{} watches). Cannot add more watches." +msgid "Watch limit reached ({current}/{limit} watches). Cannot add more watches." msgstr "" #: changedetectionio/templates/_common_fields.html diff --git a/changedetectionio/translations/zh_Hant_TW/LC_MESSAGES/messages.mo b/changedetectionio/translations/zh_Hant_TW/LC_MESSAGES/messages.mo index eef6591f50c9884c9073f3dabef7895a459e0052..5d7895a19f574593d8546c0f00db073fc149eb4f 100644 GIT binary patch delta 9798 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 SE&4aMh5vW-D{i0r+BTWU>6E9GaWYQI}$thFyS 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 a8#`9gr1hS7|No7>_x41T&f7Dx!hZm#wHAi} diff --git a/changedetectionio/translations/zh_Hant_TW/LC_MESSAGES/messages.po b/changedetectionio/translations/zh_Hant_TW/LC_MESSAGES/messages.po index 3bb7be08..3208ab9e 100644 --- a/changedetectionio/translations/zh_Hant_TW/LC_MESSAGES/messages.po +++ b/changedetectionio/translations/zh_Hant_TW/LC_MESSAGES/messages.po @@ -160,8 +160,8 @@ msgstr "正在匯入清單中的前 5,000 個 URL,其餘的可以再次匯入 #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from list in {:.2f}s, {} Skipped." -msgstr "{} 已從清單匯入,耗時 {:.2f} 秒,跳過 {} 筆。" +msgid "{count} Imported from list in {duration:.2f}s, {skipped_count} Skipped." +msgstr "{count} 已從清單匯入,耗時 {duration:.2f} 秒,跳過 {skipped_count} 筆。" #: changedetectionio/blueprint/imports/importer.py msgid "Unable to read JSON file, was it broken?" @@ -173,8 +173,8 @@ msgstr "JSON 結構看起來無效,檔案是否已損毀?" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} Imported from Distill.io in {:.2f}s, {} Skipped." -msgstr "{} 已從 Distill.io 匯入,耗時 {:.2f} 秒,跳過 {} 筆。" +msgid "{count} Imported from Distill.io in {duration:.2f}s, {skipped_count} Skipped." +msgstr "{count} 已從 Distill.io 匯入,耗時 {duration:.2f} 秒,跳過 {skipped_count} 筆。" #: changedetectionio/blueprint/imports/importer.py msgid "Unable to read export XLSX file, something wrong with the file?" @@ -192,13 +192,13 @@ msgstr "處理第 {} 行時發生錯誤,請檢查所有儲存格資料類型 #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from Wachete .xlsx in {:.2f}s" -msgstr "{} 已從 Wachete .xlsx 匯入,耗時 {:.2f} 秒" +msgid "{count} imported from Wachete .xlsx in {duration:.2f}s" +msgstr "{count} 已從 Wachete .xlsx 匯入,耗時 {duration:.2f} 秒" #: changedetectionio/blueprint/imports/importer.py #, python-brace-format -msgid "{} imported from custom .xlsx in {:.2f}s" -msgstr "{} 已從自訂 .xlsx 匯入,耗時 {:.2f} 秒" +msgid "{count} imported from custom .xlsx in {duration:.2f}s" +msgstr "{count} 已從自訂 .xlsx 匯入,耗時 {duration:.2f} 秒" #: changedetectionio/blueprint/imports/templates/import.html msgid "URL List" @@ -314,8 +314,8 @@ msgstr "密碼保護已移除。" #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format -msgid "Warning: Worker count ({}) is close to or exceeds available CPU cores ({})" -msgstr "警告:工作程式數量({})接近或超過可用CPU核心數({})" +msgid "Warning: Worker count ({worker_count}) is close to or exceeds available CPU cores ({cpu_count})" +msgstr "警告:工作程式數量({worker_count})接近或超過可用CPU核心數({cpu_count})" #: changedetectionio/blueprint/settings/__init__.py #, python-brace-format @@ -370,7 +370,7 @@ msgstr "" #: changedetectionio/blueprint/settings/llm.py #, python-format -msgid "AI summary cache cleared (%(n)s file(s) removed)." +msgid "AI summary cache cleared (%(count)s file(s) removed)." msgstr "" #: changedetectionio/blueprint/settings/templates/notification-log.html @@ -1072,7 +1072,7 @@ msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html #, python-format -msgid "characters — currently enforcing: %(n)s" +msgid "characters — currently enforcing: %(limit)s" msgstr "" #: changedetectionio/blueprint/settings/templates/settings_llm_tab.html @@ -1428,8 +1428,8 @@ msgstr "已將 1 個監測任務排入複查佇列。" #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format -msgid "Queued {} watches for rechecking ({} already queued or running)." -msgstr "已將 {} 個監測任務排入複查佇列({} 個已在佇列中或正在執行)。" +msgid "Queued {count} watches for rechecking ({skipped_count} already queued or running)." +msgstr "已將 {count} 個監測任務排入複查佇列({skipped_count} 個已在佇列中或正在執行)。" #: changedetectionio/blueprint/ui/__init__.py #, python-brace-format @@ -2666,18 +2666,18 @@ msgstr "RegEx 「%s」不是有效的正規表示式。" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid XPath expression. (%s)" -msgstr "「%s」不是有效的 XPath 表達式 (%s)。" +msgid "'%(expression)s' is not a valid XPath expression. (%(error)s)" +msgstr "「%(expression)s」不是有效的 XPath 表達式 (%(error)s)。" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid JSONPath expression. (%s)" -msgstr "「%s」不是有效的 JSONPath 表達式 (%s)。" +msgid "'%(expression)s' is not a valid JSONPath expression. (%(error)s)" +msgstr "「%(expression)s」不是有效的 JSONPath 表達式 (%(error)s)。" #: changedetectionio/forms.py #, python-format -msgid "'%s' is not a valid jq expression. (%s)" -msgstr "「%s」不是有效的 jq 表達式 (%s)。" +msgid "'%(expression)s' is not a valid jq expression. (%(error)s)" +msgstr "「%(expression)s」不是有效的 jq 表達式 (%(error)s)。" #: changedetectionio/forms.py msgid "Empty value not allowed." @@ -3379,7 +3379,7 @@ msgstr "監測協定不被允許或 URL 格式無效" #: changedetectionio/store/__init__.py #, python-brace-format -msgid "Watch limit reached ({}/{} watches). Cannot add more watches." +msgid "Watch limit reached ({current}/{limit} watches). Cannot add more watches." msgstr "" #: changedetectionio/templates/_common_fields.html