Merge branch 'main' into add_errormessage_20250616

This commit is contained in:
Ludy 2025-06-16 19:05:12 +02:00 committed by GitHub
commit 09d16a78e1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 1127 additions and 1123 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1699,17 +1699,17 @@ fakeScan.resolution=Auflösung (DPI)
# Table of Contents Feature # Table of Contents Feature
home.editTableOfContents.title=Edit Table of Contents home.editTableOfContents.title=Inhaltsverzeichnis bearbeiten
home.editTableOfContents.desc=Add or edit bookmarks and table of contents in PDF documents home.editTableOfContents.desc=Hinzufügen oder Bearbeiten von Lesezeichen und Inhaltsverzeichnissen in PDF-Dokumenten
editTableOfContents.tags=bookmarks,toc,navigation,index,table of contents,chapters,sections,outline editTableOfContents.tags=Lesezeichen,Inhaltsverzeichnis,Navigation,Index,Kapitel,Abschnitte,Gliederung
editTableOfContents.title=Edit Table of Contents editTableOfContents.title=Inhaltsverzeichnis bearbeiten
editTableOfContents.header=Add or Edit PDF Table of Contents editTableOfContents.header=PDF-Inhaltsverzeichnis hinzufügen oder bearbeiten
editTableOfContents.replaceExisting=Replace existing bookmarks (uncheck to append to existing) editTableOfContents.replaceExisting=Vorhandene Lesezeichen ersetzen (deaktivieren, um bestehende hinzuzufügen)
editTableOfContents.editorTitle=Bookmark Editor editTableOfContents.editorTitle=Lesezeichen-Editor
editTableOfContents.editorDesc=Add and arrange bookmarks below. Click + to add child bookmarks. editTableOfContents.editorDesc=Fügen unten Lesezeichen hinzu und ordne sie an. Klicke auf +, um das untergeordnete Lesezeichen hinzuzufügen.
editTableOfContents.addBookmark=Add New Bookmark editTableOfContents.addBookmark=Neues Lesezeichen hinzufügen
editTableOfContents.desc.1=This tool allows you to add or edit the table of contents (bookmarks) in a PDF document. editTableOfContents.desc.1=Mit diesem Werkzeug können Sie das Inhaltsverzeichnis (Lesezeichen) eines PDF-Dokuments hinzufügen oder bearbeiten.
editTableOfContents.desc.2=You can create a hierarchical structure by adding child bookmarks to parent bookmarks. editTableOfContents.desc.2=Sie können eine hierarchische Struktur erstellen, indem Sie untergeordnete Lesezeichen zu übergeordneten hinzufügen.
editTableOfContents.desc.3=Each bookmark requires a title and target page number. editTableOfContents.desc.3=Jedes Lesezeichen benötigt einen Titel und eine Seitenzahl.
editTableOfContents.submit=Apply Table of Contents editTableOfContents.submit=Inhaltsverzeichnis anwenden

View File

@ -220,12 +220,12 @@ addToDoc=Hozzáadás a dokumentumhoz
reset=Visszaállítás reset=Visszaállítás
apply=Alkalmaz apply=Alkalmaz
noFileSelected=Nincs fájl kiválasztva. Kérjük, töltsön fel egyet. noFileSelected=Nincs fájl kiválasztva. Kérjük, töltsön fel egyet.
view=View view=Megtekintés
cancel=Cancel cancel=Mégse
back.toSettings=Back to Settings back.toSettings=Vissza a Beállításokhoz
back.toHome=Back to Home back.toHome=Vissza a Kezdőlapra
back.toAdmin=Back to Admin back.toAdmin=Vissza a Rendszergazdai beállításokhoz
legal.privacy=Adatvédelmi irányelvek legal.privacy=Adatvédelmi irányelvek
legal.terms=Felhasználási feltételek legal.terms=Felhasználási feltételek
@ -393,13 +393,13 @@ adminUserSettings.teamHidden=Hidden
adminUserSettings.totalMembers=Összes tag adminUserSettings.totalMembers=Összes tag
adminUserSettings.confirmDeleteTeam=Biztosan törli ezt a csapatot? adminUserSettings.confirmDeleteTeam=Biztosan törli ezt a csapatot?
teamCreated=Team created successfully teamCreated=Csapat sikeresen létrehozva
teamExists=A team with that name already exists teamExists=A csapat már létezik
teamNameExists=Another team with that name already exists teamNameExists=A csapat neve már létezik
teamNotFound=Team not found teamNotFound=Csapat nem található
teamDeleted=Team deleted teamDeleted=Csapat törölve
teamHasUsers=Cannot delete a team with users assigned teamHasUsers=Nem lehet törölni egy olyan csapatot, amelyhez felhasználók vannak rendelve
teamRenamed=Team renamed successfully teamRenamed=Csapat sikeresen átnevezve
# Team user management # Team user management
team.addUser=Felhasználó hozzáadása a csapathoz team.addUser=Felhasználó hozzáadása a csapathoz
@ -411,16 +411,16 @@ team.back=Vissza a csapatokhoz
team.internal=Belső csapat team.internal=Belső csapat
team.internalTeamNotAccessible=A belső csapat egy rendszer csapat, és nem érhető el team.internalTeamNotAccessible=A belső csapat egy rendszer csapat, és nem érhető el
team.cannotMoveInternalUsers=A belső csapatban lévő felhasználók nem mozgathatók más csapatokba. team.cannotMoveInternalUsers=A belső csapatban lévő felhasználók nem mozgathatók más csapatokba.
team.hidden=Hidden team.hidden=Rejtett csapat
team.name=Team Name team.name=Csapat neve
team.totalMembers=Total Members team.totalMembers=Összes tag
team.members=Members team.members=Tagok
team.username=Username team.username=Felhasználónév
team.role=Role team.role=Szerepkör
team.status=Status team.status=Állapot
team.enabled=Enabled team.enabled=Engedélyezve
team.disabled=Disabled team.disabled=Letiltva
team.noMembers=This team has no members yet. team.noMembers=Ez a csapat még nem rendelkezik tagokkal.

View File

@ -549,9 +549,9 @@ home.compressPdfs.title=壓縮
home.compressPdfs.desc=壓縮 PDF 以減少其檔案大小。 home.compressPdfs.desc=壓縮 PDF 以減少其檔案大小。
compressPdfs.tags=壓縮,小,微小 compressPdfs.tags=壓縮,小,微小
home.unlockPDFForms.title=Unlock PDF Forms home.unlockPDFForms.title=解鎖 PDF 表單
home.unlockPDFForms.desc=Remove read-only property of form fields in a PDF document. home.unlockPDFForms.desc=移除 PDF 文件中表單欄位的唯讀屬性
unlockPDFForms.tags=remove,delete,form,field,readonly unlockPDFForms.tags=移除,刪除,表格,欄位,唯讀
home.changeMetadata.title=變更中繼資料 home.changeMetadata.title=變更中繼資料
home.changeMetadata.desc=從 PDF 檔案中變更/移除/新增中繼資料 home.changeMetadata.desc=從 PDF 檔案中變更/移除/新增中繼資料
@ -675,21 +675,21 @@ home.HTMLToPDF.desc=將任何 HTML 檔案或壓縮檔轉換為 PDF
HTMLToPDF.tags=標記,網頁內容,轉換,轉檔 HTMLToPDF.tags=標記,網頁內容,轉換,轉檔
#eml-to-pdf #eml-to-pdf
home.EMLToPDF.title=Email to PDF home.EMLToPDF.title=電子郵件轉 PDF
home.EMLToPDF.desc=Converts email (EML) files to PDF format including headers, body, and inline images home.EMLToPDF.desc=將電子郵件 (EML) 檔案轉換為 PDF 格式,包含標頭、內文及內嵌圖片
EMLToPDF.tags=email,conversion,eml,message,transformation,convert,mail EMLToPDF.tags=電子郵件,轉換,EML,訊息,轉檔,轉換,郵件
EMLToPDF.title=Email To PDF EMLToPDF.title=電子郵件轉 PDF
EMLToPDF.header=Email To PDF EMLToPDF.header=電子郵件轉 PDF
EMLToPDF.submit=Convert EMLToPDF.submit=轉換
EMLToPDF.downloadHtml=Download HTML intermediate file instead of PDF EMLToPDF.downloadHtml=下載 HTML 中繼檔案而非 PDF
EMLToPDF.downloadHtmlHelp=This allows you to see the HTML version before PDF conversion and can help debug formatting issues EMLToPDF.downloadHtmlHelp=可讓您在轉換為 PDF 前先檢視 HTML 版本,有助於除錯格式問題
EMLToPDF.includeAttachments=Include attachments in PDF EMLToPDF.includeAttachments=在 PDF 中包含附件
EMLToPDF.maxAttachmentSize=Maximum attachment size (MB) EMLToPDF.maxAttachmentSize=附件大小上限 (MB)
EMLToPDF.help=Converts email (EML) files to PDF format including headers, body, and inline images EMLToPDF.help=將電子郵件 (EML) 檔案轉換為 PDF 格式,包含標頭、內文及內嵌圖片
EMLToPDF.troubleshootingTip1=Email to HTML is a more reliable process, so with batch-processing it is recommended to save both EMLToPDF.troubleshootingTip1=電子郵件轉 HTML 的流程較為穩定可靠,因此在批次處理時建議同時儲存兩種格式
EMLToPDF.troubleshootingTip2=With a small number of Emails, if the PDF is malformed, you can download HTML and override some of the problematic HTML/CSS code. EMLToPDF.troubleshootingTip2=若電子郵件數量不多且 PDF 格式錯誤,您可下載 HTML 檔案並手動修正有問題的 HTML/CSS 程式碼
EMLToPDF.troubleshootingTip3=Embeddings, however, do not work with HTMLs EMLToPDF.troubleshootingTip3=然而,內嵌內容在 HTML 中無法正常運作
home.MarkdownToPDF.title=Markdown 轉 PDF home.MarkdownToPDF.title=Markdown 轉 PDF
home.MarkdownToPDF.desc=將任何 Markdown 檔案轉換為 PDF home.MarkdownToPDF.desc=將任何 Markdown 檔案轉換為 PDF
@ -876,28 +876,28 @@ getPdfInfo.title=取得 PDF 資訊
getPdfInfo.header=取得 PDF 資訊 getPdfInfo.header=取得 PDF 資訊
getPdfInfo.submit=取得資訊 getPdfInfo.submit=取得資訊
getPdfInfo.downloadJson=下載 JSON getPdfInfo.downloadJson=下載 JSON
getPdfInfo.summary=PDF Summary getPdfInfo.summary=PDF 摘要
getPdfInfo.summary.encrypted=This PDF is encrypted so may face issues with some applications getPdfInfo.summary.encrypted=此 PDF 已加密,部分應用程式可能無法正常使用
getPdfInfo.summary.permissions=This PDF has {0} restricted permissions which may limit what you can do with it getPdfInfo.summary.permissions=此 PDF 有 {0} 項權限限制,可能會限制可執行的操作
getPdfInfo.summary.compliance=This PDF complies with the {0} standard getPdfInfo.summary.compliance=此 PDF 符合 {0} 標準
getPdfInfo.summary.basicInfo=Basic Information getPdfInfo.summary.basicInfo=基本資訊
getPdfInfo.summary.docInfo=Document Information getPdfInfo.summary.docInfo=文件資訊
getPdfInfo.summary.encrypted.alert=Encrypted PDF - This document is password protected getPdfInfo.summary.encrypted.alert=已加密的 PDF - 此文件受密碼保護
getPdfInfo.summary.not.encrypted.alert=Unencrypted PDF - No password protection getPdfInfo.summary.not.encrypted.alert=未加密的 PDF - 無密碼保護
getPdfInfo.summary.permissions.alert=Restricted Permissions - {0} actions are not allowed getPdfInfo.summary.permissions.alert=權限限制 - 不允許執行 {0} 項操作
getPdfInfo.summary.all.permissions.alert=All Permissions Allowed getPdfInfo.summary.all.permissions.alert=允許所有權限
getPdfInfo.summary.compliance.alert={0} Compliant getPdfInfo.summary.compliance.alert=符合 {0} 標準
getPdfInfo.summary.no.compliance.alert=No Compliance Standards getPdfInfo.summary.no.compliance.alert=未符合任何合規標準
getPdfInfo.summary.security.section=Security Status getPdfInfo.summary.security.section=安全性狀態
getPdfInfo.section.BasicInfo=Basic Information about the PDF document including file size, page count, and language getPdfInfo.section.BasicInfo=PDF 文件的基本資訊,包括檔案大小、頁數和語言
getPdfInfo.section.Metadata=Document metadata including title, author, creation date and other document properties getPdfInfo.section.Metadata=文件中繼資料,包括標題、作者、建立日期和其他文件屬性
getPdfInfo.section.DocumentInfo=Technical details about the PDF document structure and version getPdfInfo.section.DocumentInfo=PDF 文件結構與版本的技術詳細資訊
getPdfInfo.section.Compliancy=PDF standards compliance information (PDF/A, PDF/X, etc.) getPdfInfo.section.Compliancy=PDF 標準合規資訊 (PDF/A、PDF/X 等)
getPdfInfo.section.Encryption=Security and encryption details of the document getPdfInfo.section.Encryption=文件的安全性和加密詳細資訊
getPdfInfo.section.Permissions=Document permission settings that control what actions can be performed getPdfInfo.section.Permissions=控制可執行操作的文件權限設定
getPdfInfo.section.Other=Additional document components like bookmarks, layers, and embedded files getPdfInfo.section.Other=其他文件元件,例如書籤、圖層與內嵌檔案
getPdfInfo.section.FormFields=Interactive form fields present in the document getPdfInfo.section.FormFields=文件中的互動式表單欄位
getPdfInfo.section.PerPageInfo=Detailed information about each page in the document getPdfInfo.section.PerPageInfo=文件中每一頁的詳細資訊
#markdown-to-pdf #markdown-to-pdf
@ -1421,9 +1421,9 @@ changeMetadata.selectText.5=新增自訂中繼資料項目
changeMetadata.submit=變更 changeMetadata.submit=變更
#unlockPDFForms #unlockPDFForms
unlockPDFForms.title=Remove Read-Only from Form Fields unlockPDFForms.title=移除表單欄位的唯讀限制
unlockPDFForms.header=Unlock PDF Forms unlockPDFForms.header=解鎖 PDF 表單
unlockPDFForms.submit=Remove unlockPDFForms.submit=移除
#pdfToPDFA #pdfToPDFA
pdfToPDFA.title=PDF 轉 PDF/A pdfToPDFA.title=PDF 轉 PDF/A
@ -1641,7 +1641,7 @@ validateSignature.cert.bits=位元
#################### ####################
cookieBanner.popUp.title=我們如何使用 Cookies cookieBanner.popUp.title=我們如何使用 Cookies
cookieBanner.popUp.description.1=我們使用 Cookies 和其他技術來讓 Stirling PDF 變得更好——幫助我們改善工具並繼續創造您會喜愛的新功能 cookieBanner.popUp.description.1=我們使用 Cookies 和其他技術來讓 Stirling PDF 變得更好——幫助我們改善工具並繼續創造您會喜愛的新功能
cookieBanner.popUp.description.2=如果您仍不想,點「不,謝謝」只會開啟必要的 Cookies 好讓網站功能保持運作 cookieBanner.popUp.description.2=如果您仍不想,點「不,謝謝」只會開啟必要的 Cookies 好讓網站功能保持運作
cookieBanner.popUp.acceptAllBtn=接受 cookieBanner.popUp.acceptAllBtn=接受
cookieBanner.popUp.acceptNecessaryBtn=不,謝謝 cookieBanner.popUp.acceptNecessaryBtn=不,謝謝
cookieBanner.popUp.showPreferencesBtn=管理偏好設定 cookieBanner.popUp.showPreferencesBtn=管理偏好設定
@ -1659,7 +1659,7 @@ cookieBanner.preferencesModal.necessary.title.1=必要的 Cookies
cookieBanner.preferencesModal.necessary.title.2=永遠開啟 cookieBanner.preferencesModal.necessary.title.2=永遠開啟
cookieBanner.preferencesModal.necessary.description=這些 Cookies 對網站正常運作至關重要。它們讓核心功能,像是隱私設定、登入、填入表格能夠運作——這也是為什麼它們不能被關掉。 cookieBanner.preferencesModal.necessary.description=這些 Cookies 對網站正常運作至關重要。它們讓核心功能,像是隱私設定、登入、填入表格能夠運作——這也是為什麼它們不能被關掉。
cookieBanner.preferencesModal.analytics.title=分析 Cookies cookieBanner.preferencesModal.analytics.title=分析 Cookies
cookieBanner.preferencesModal.analytics.description=這些 Cookies 幫助我們分析您如何使用我們的工具,好讓我們能專注在建社群最重視的功能。儘管放心—— Stirling PDF 不會且永不追蹤您的文件 cookieBanner.preferencesModal.analytics.description=這些 Cookies 幫助我們分析您如何使用我們的工具,好讓我們能專注在社群最重視的功能。儘管放心—— Stirling PDF 不會且永不追蹤您的文件
#fakeScan #fakeScan
fakeScan.title=Fake Scan fakeScan.title=Fake Scan

View File

@ -7,62 +7,64 @@
</head> </head>
<body> <body>
<th:block th:insert="~{fragments/common :: game}"></th:block>
<div id="page-container"> <div id="page-container">
<div id="content-wrap"> <div id="content-wrap">
<th:block th:insert="~{fragments/navbar.html :: navbar}"></th:block> <th:block th:insert="~{fragments/navbar.html :: navbar}"></th:block>
<div class="container py-4"> <div class="mt-4"></div>
<div class="container">
<div class="row justify-content-center"> <div class="row justify-content-center">
<div class="col-md-6"> <div class="col-md-6 bg-card">
<div class="card shadow-sm"> <div class="tool-header">
<div class="card-body"> <span class="material-symbols-rounded tool-header-icon convertto">email</span>
<div class="tool-header"> <span class="tool-header-text" th:text="#{EMLToPDF.header}"></span>
<span class="material-symbols-rounded tool-header-icon convertto">email</span>
<span class="tool-header-text" th:text="#{EMLToPDF.header}"></span>
</div>
<form method="post" enctype="multipart/form-data" th:action="@{'/api/v1/convert/eml/pdf'}" class="mt-4">
<div th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, accept='.eml,message/rfc822')}">
</div>
<div class="form-check mb-3">
<input type="checkbox" class="form-check-input" name="downloadHtml" id="downloadHtml">
<label class="form-check-label" for="downloadHtml" th:text="#{EMLToPDF.downloadHtml}"></label>
<div class="form-text" th:text="#{EMLToPDF.downloadHtmlHelp}"></div>
</div>
<div id="pdfOnlyOptions">
<div class="form-check mb-3">
<input type="checkbox" class="form-check-input" name="includeAttachments" id="includeAttachments" checked>
<label class="form-check-label" for="includeAttachments" th:text="#{EMLToPDF.includeAttachments}"></label>
</div>
<div class="mb-3">
<label for="maxAttachmentSizeMB" class="form-label" th:text="#{EMLToPDF.maxAttachmentSize}"></label>
<input type="number" class="form-control" id="maxAttachmentSizeMB" name="maxAttachmentSizeMB" value="10" min="1" max="100">
</div>
</div>
<div class="mb-4">
<button class="btn btn-outline-primary" type="button" data-bs-toggle="collapse"
data-bs-target="#info" aria-expanded="false" aria-controls="info" th:text="#{info}">
</button>
<div class="collapse mt-3" id="info">
<div class="card card-body">
<p class="mb-2" th:text="#{EMLToPDF.help}"></p>
<ul class="mb-0">
<li th:text="#{EMLToPDF.troubleshootingTip1}"></li>
<li th:text="#{EMLToPDF.troubleshootingTip2}"></li>
<li th:text="#{EMLToPDF.troubleshootingTip3}"></li>
</ul>
</div>
</div>
</div>
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{EMLToPDF.submit}"></button>
</form>
</div>
</div> </div>
<p th:text="#{processTimeWarning}"></p>
<form method="post" enctype="multipart/form-data" th:action="@{'/api/v1/convert/eml/pdf'}" class="mt-4">
<div
th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, accept='.eml,message/rfc822')}">
</div>
<div class="form-check mb-3">
<input type="checkbox" class="form-check-input" name="downloadHtml" id="downloadHtml">
<label class="form-check-label" for="downloadHtml" th:text="#{EMLToPDF.downloadHtml}"></label>
<div class="form-text" th:text="#{EMLToPDF.downloadHtmlHelp}"></div>
</div>
<div id="pdfOnlyOptions">
<div class="form-check mb-3">
<input type="checkbox" class="form-check-input" name="includeAttachments" id="includeAttachments" checked>
<label class="form-check-label" for="includeAttachments" th:text="#{EMLToPDF.includeAttachments}"></label>
</div>
<div class="mb-3">
<label for="maxAttachmentSizeMB" class="form-label" th:text="#{EMLToPDF.maxAttachmentSize}"></label>
<input type="number" class="form-control" id="maxAttachmentSizeMB" name="maxAttachmentSizeMB" value="10" min="1" max="100">
</div>
</div>
<div class="mb-4">
<button class="btn btn-outline-primary" type="button" data-bs-toggle="collapse"
data-bs-target="#info" aria-expanded="false" aria-controls="info" th:text="#{info}">
</button>
<div class="collapse mt-3" id="info">
<div class="card card-body">
<p class="mb-2" th:text="#{EMLToPDF.help}"></p>
<ul class="mb-0">
<li th:text="#{EMLToPDF.troubleshootingTip1}"></li>
<li th:text="#{EMLToPDF.troubleshootingTip2}"></li>
<li th:text="#{EMLToPDF.troubleshootingTip3}"></li>
</ul>
</div>
</div>
</div>
<div>
<br />
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{EMLToPDF.submit}"></button>
</div>
</form>
</div> </div>
</div> </div>
</div> </div>
@ -75,11 +77,13 @@
const downloadHtml = document.getElementById('downloadHtml'); const downloadHtml = document.getElementById('downloadHtml');
const pdfOnlyOptions = document.getElementById('pdfOnlyOptions'); const pdfOnlyOptions = document.getElementById('pdfOnlyOptions');
const submitBtn = document.getElementById('submitBtn'); const submitBtn = document.getElementById('submitBtn');
const submitText = /*[[#{EMLToPDF.submit}]]*/ 'Convert to PDF';
const downloadHtmlText = 'Download HTML intermediate file instead of PDF';
function updateFormState() { function updateFormState() {
if (pdfOnlyOptions && submitBtn) { if (pdfOnlyOptions && submitBtn) {
pdfOnlyOptions.style.display = downloadHtml.checked ? 'none' : 'block'; pdfOnlyOptions.style.display = downloadHtml.checked ? 'none' : 'block';
submitBtn.textContent = downloadHtml.checked ? 'Download HTML' : '[[#{EMLToPDF.submit}]]'; submitBtn.textContent = downloadHtml.checked ? downloadHtmlText : submitText;
} }
} }

View File

@ -7,7 +7,7 @@
behave==1.2.6 \ behave==1.2.6 \
--hash=sha256:b9662327aa53294c1351b0a9c369093ccec1d21026f050c3bd9b3e5cccf81a86 \ --hash=sha256:b9662327aa53294c1351b0a9c369093ccec1d21026f050c3bd9b3e5cccf81a86 \
--hash=sha256:ebda1a6c9e5bfe95c5f9f0a2794e01c7098b3dde86c10a95d8621c5907ff6f1c --hash=sha256:ebda1a6c9e5bfe95c5f9f0a2794e01c7098b3dde86c10a95d8621c5907ff6f1c
# via -r cucumber\requirements.in # via -r requirements.in
certifi==2024.12.14 \ certifi==2024.12.14 \
--hash=sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56 \ --hash=sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56 \
--hash=sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db --hash=sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db
@ -230,19 +230,19 @@ pycryptodome==3.21.0 \
--hash=sha256:f35e442630bc4bc2e1878482d6f59ea22e280d7121d7adeaedba58c23ab6386b \ --hash=sha256:f35e442630bc4bc2e1878482d6f59ea22e280d7121d7adeaedba58c23ab6386b \
--hash=sha256:f7787e0d469bdae763b876174cf2e6c0f7be79808af26b1da96f1a64bcf47297 \ --hash=sha256:f7787e0d469bdae763b876174cf2e6c0f7be79808af26b1da96f1a64bcf47297 \
--hash=sha256:ff99f952db3db2fbe98a0b355175f93ec334ba3d01bbde25ad3a5a33abc02b58 --hash=sha256:ff99f952db3db2fbe98a0b355175f93ec334ba3d01bbde25ad3a5a33abc02b58
# via -r cucumber\requirements.in # via -r requirements.in
pypdf==5.1.0 \ pypdf==5.1.0 \
--hash=sha256:3bd4f503f4ebc58bae40d81e81a9176c400cbbac2ba2d877367595fb524dfdfc \ --hash=sha256:3bd4f503f4ebc58bae40d81e81a9176c400cbbac2ba2d877367595fb524dfdfc \
--hash=sha256:425a129abb1614183fd1aca6982f650b47f8026867c0ce7c4b9f281c443d2740 --hash=sha256:425a129abb1614183fd1aca6982f650b47f8026867c0ce7c4b9f281c443d2740
# via -r cucumber\requirements.in # via -r requirements.in
reportlab==4.2.5 \ reportlab==4.2.5 \
--hash=sha256:5cf35b8fd609b68080ac7bbb0ae1e376104f7d5f7b2d3914c7adc63f2593941f \ --hash=sha256:5cf35b8fd609b68080ac7bbb0ae1e376104f7d5f7b2d3914c7adc63f2593941f \
--hash=sha256:eb2745525a982d9880babb991619e97ac3f661fae30571b7d50387026ca765ee --hash=sha256:eb2745525a982d9880babb991619e97ac3f661fae30571b7d50387026ca765ee
# via -r cucumber\requirements.in # via -r requirements.in
requests==2.32.3 \ requests==2.32.4 \
--hash=sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760 \ --hash=sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c \
--hash=sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6 --hash=sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422
# via -r cucumber\requirements.in # via -r requirements.in
six==1.17.0 \ six==1.17.0 \
--hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \ --hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \
--hash=sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81 --hash=sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81