diff --git a/apps/OpenSign/Dockerfile b/apps/OpenSign/Dockerfile deleted file mode 100644 index e916c26793..0000000000 --- a/apps/OpenSign/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -# Use an official Node runtime as the base image -FROM node:18 - -# Set the working directory inside the container -WORKDIR /usr/src/app - -# Copy package.json and package-lock.json first to leverage Docker cache -COPY ./package*.json ./ - -# Install application dependencies -RUN npm install - -# Copy the current directory contents into the container -COPY ./ . -COPY ./.husky . - -# Make port 3000 available to the world outside this container -EXPOSE 3000 - -# Define environment variables if needed -# ENV NODE_ENV production - -# Run the application -ENTRYPOINT npm run start - diff --git a/apps/OpenSign/Dockerhubfile b/apps/OpenSign/Dockerhubfile index 395bad9d64..6f2d22e295 100644 --- a/apps/OpenSign/Dockerhubfile +++ b/apps/OpenSign/Dockerhubfile @@ -13,6 +13,10 @@ RUN npm install # Copy the current directory contents into the container COPY apps/OpenSign/ . COPY apps/OpenSign/.husky . +COPY apps/OpenSign/entrypoint.sh . + +# make the entrypoint.sh file executable +RUN chmod +x entrypoint.sh # Define environment variables if needed ENV NODE_ENV=production @@ -20,8 +24,13 @@ ENV GENERATE_SOURCEMAP=false # build RUN npm run build +# Inject env.js loader into index.html +RUN sed -i '/
/a\' build/index.html + # Make port 3000 available to the world outside this container EXPOSE 3000 +ENTRYPOINT ["./entrypoint.sh"] + # Run the application CMD ["npm", "start"] diff --git a/apps/OpenSign/entrypoint.sh b/apps/OpenSign/entrypoint.sh new file mode 100644 index 0000000000..91553527a1 --- /dev/null +++ b/apps/OpenSign/entrypoint.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +ENV_FILE=./build/env.js +DOTENV_FILE=./.env.prod # ✅ use .env.prod + +echo "Generating runtime env file at $ENV_FILE..." + +echo "window.RUNTIME_ENV = {" > $ENV_FILE + +# List of keys to include +RUNTIME_KEYS="REACT_APP_SERVERURL" + +for key in $RUNTIME_KEYS; do + # First check docker env (-e), fallback to .env file + value=$(printenv "$key") + + if [ -z "$value" ] && [ -f "$DOTENV_FILE" ]; then + # fallback: read from .env + value=$(grep "^$key=" "$DOTENV_FILE" | cut -d '=' -f2- | tr -d '\r\n' | sed 's/"/\\"/g') + else + value=$(echo "$value" | sed 's/"/\\"/g') + fi + + echo " $key: \"$value\"," >> $ENV_FILE +done + +echo "};" >> $ENV_FILE + +exec "$@" diff --git a/apps/OpenSign/package.json b/apps/OpenSign/package.json index 6daf4a8bbc..2f99feb7e6 100644 --- a/apps/OpenSign/package.json +++ b/apps/OpenSign/package.json @@ -19,6 +19,7 @@ "jwt-decode": "^4.0.0", "moment": "^2.30.1", "parse": "^6.1.1", + "pkijs": "^3.0.8", "pdf-lib": "^1.17.1", "print-js": "^1.6.0", "prismjs": "^1.30.0", diff --git a/apps/OpenSign/public/locales/de/translation.json b/apps/OpenSign/public/locales/de/translation.json index 39bfb31e83..888ce95dc9 100644 --- a/apps/OpenSign/public/locales/de/translation.json +++ b/apps/OpenSign/public/locales/de/translation.json @@ -1,6 +1,7 @@ { "header-news": "Neue Funktion: Benutzer des Teams-Plans können jetzt ihre eigenen AWS S3-Buckets für die Dateispeicherung integrieren", "header-news-btn": "Jetzt einrichten", + "sandbox-news": "Dies ist eine Sandbox-Umgebung. Bitte nicht für produktive Zwecke verwenden.", "create-account": "Konto erstellen", "login": "Anmelden", "language": "Sprache", @@ -675,7 +676,7 @@ "public-template-mssg-1": "Um OpenSign in Ihr React- oder Next.js-Projekt zu integrieren, führen Sie einfach den folgenden Befehl aus:", "public-template-mssg-2": "Stellen Sie sicher, dass npm oder yarn in Ihrem Projekt eingerichtet ist. Wenn Sie Yarn verwenden, können Sie npm install durch yarn add @opensign/react ersetzen.", "public-template-mssg-3": "Benötigen Sie weitere Details oder Beispiele?", - "public-template-mssg-4": "Besuchen Sie die", + "public-template-mssg-4": "Besuchen Sie die ", "public-template-mssg-5": " npm für die neuesten Updates, detaillierte Dokumentationen und Versionshistorie.", "public-template-mssg-6": "Bevor Sie diesen Code-Schnipsel verwenden können, müssen Sie diese Vorlage öffentlich machen.", "public-template-mssg-7": "Bevor Sie einen öffentlichen Link generieren können, müssen Sie diese Vorlage öffentlich machen.", @@ -980,5 +981,46 @@ "finish-mssg": "Sind Sie sicher, dass Sie das Dokument abschließen möchten?", "review": "Überprüfen", "next-field": "Nächstes Feld", - "required-mssg": "{{leftRequiredWidget}} von {{totalWidget}} Feldern übrig" + "required-mssg": "{{leftRequiredWidget}} von {{totalWidget}} Feldern übrig", + "verify-document-signature": "Dokumentensignatur überprüfen", + "select-pdf-document": "PDF-Dokument auswählen", + "selected-file": "Ausgewählte Datei", + "verify-signature": "Signatur überprüfen", + "verification-status": "Überprüfungsstatus", + "verification-in-progress": "Überprüfung läuft...", + "verification-results-will-appear-here": "Überprüfungsergebnisse werden hier angezeigt", + "please-select-pdf": "Bitte wählen Sie eine gültige PDF-Datei aus", + "please-select-file-to-verify": "Bitte wählen Sie eine Datei zur Überprüfung aus", + "no-signature-found": "Keine Signatur im Dokument gefunden", + "error-verifying-pdf": "Fehler beim Überprüfen der PDF", + "signature-valid-basic": "Signatur ist gültig", + "signature-invalid-basic": "Signatur ist ungültig", + "all-signatures-verified-convincing": "Dokument überprüft: Alle Signaturen wurden erfolgreich validiert.", + "some-signatures-invalid-basic": "Einige Signaturen sind ungültig", + "no-signatures-processed": "Keine Signaturen verarbeitet", + "unnamed-signature-field": "Unbenanntes Signaturfeld", + "error-processing-signature": "Fehler beim Verarbeiten der Signatur", + "signer-info-not-available": "Signaturinformationen nicht verfügbar", + "cert-validity-not-checked": "Gültigkeit des Zertifikats nicht geprüft", + "valid": "Gültig", + "expired-or-not-yet-valid": "Abgelaufen oder noch nicht gültig", + "valid-from": "Gültig von", + "to": "bis", + "signer": "Unterzeichner", + "issuer": "Aussteller", + "not-available": "Nicht verfügbar", + "not-performed": "Nicht durchgeführt", + "missing-acrofield-dict": "Fehlendes Acrofield-Wörterbuch", + "signature-dictionary-not-found-or-invalid": "Signaturwörterbuch nicht gefunden oder ungültig", + "missing-or-invalid-byterange": "Fehlender oder ungültiger ByteRange", + "missing-or-invalid-contents": "Fehlender oder ungültiger Inhalt", + "missing-signature-contents": "Fehlender Signaturinhalt", + "invalid-signature-hex-format": "Ungültiges Signatur-Hex-Format", + "unsupported-signature-format-not-signeddata": "Nicht unterstütztes Signaturformat - nicht SignedData", + "signer-certificate-not-found": "Unterzeichnerzertifikat nicht gefunden", + "no-certificates-in-signature": "Keine Zertifikate in der Signatur", + "no-signer-info-in-pkcs7": "Keine Signaturinformationen in PKCS#7", + "could-not-parse-signer-info": "Signaturinformationen konnten nicht analysiert werden", + "not-calculated": "Nicht berechnet", + "not-found-in-signature": "Nicht in Signatur gefunden" } diff --git a/apps/OpenSign/public/locales/en/translation.json b/apps/OpenSign/public/locales/en/translation.json index 1f493bf0b1..bc19fa4a2a 100644 --- a/apps/OpenSign/public/locales/en/translation.json +++ b/apps/OpenSign/public/locales/en/translation.json @@ -1,6 +1,7 @@ { "header-news": "New feature: Protect your account with Two-Factor Authentication (2FA) and enjoy the future of login with Passkeys — no passwords needed.", "header-news-btn": "Setup now", + "sandbox-news": "This is a sandbox environment. Please do not use it for production purposes.", "create-account": "Create account", "login": "Login", "language": "Language", @@ -675,7 +676,7 @@ "public-template-mssg-1": "To integrate OpenSign into your React or Next.js project, simply run the following command:", "public-template-mssg-2": "Ensure you have npm or yarn set up in your project. If you're using Yarn, you can replace npm install with yarn add @opensign/react.", "public-template-mssg-3": "Need more details or examples?", - "public-template-mssg-4": "Visit the", + "public-template-mssg-4": "Visit the ", "public-template-mssg-5": " npm for the latest updates, detailed documentation, and version history.", "public-template-mssg-6": "Before you can use this code snippet, you must make this template public.", "public-template-mssg-7": "Before you can generate a public link you must make this template public.", @@ -980,5 +981,46 @@ "finish-mssg":" Are you sure you want to finish the document ?", "review":"Review", "next-field":"Next Field", - "required-mssg":"{{leftRequiredWidget}} of {{totalWidget}} fields left" + "required-mssg":"{{leftRequiredWidget}} of {{totalWidget}} fields left", + "verify-document-signature": "Verify Document Signature", + "select-pdf-document": "Select PDF Document", + "selected-file": "Selected file", + "verify-signature": "Verify Signature", + "verification-status": "Verification Status", + "verification-in-progress": "Verification in progress...", + "verification-results-will-appear-here": "Verification results will appear here", + "please-select-pdf": "Please select a valid PDF file", + "please-select-file-to-verify": "Please select a file to verify", + "no-signature-found": "No signature found in the document", + "error-verifying-pdf": "Error verifying PDF", + "signature-valid-basic": "Signature is valid", + "signature-invalid-basic": "Signature is invalid", + "all-signatures-verified-convincing": "Document Verified: All signatures have been successfully validated.", + "some-signatures-invalid-basic": "Some signatures are invalid", + "no-signatures-processed": "No signatures were processed", + "unnamed-signature-field": "Unnamed Signature Field", + "error-processing-signature": "Error processing signature", + "signer-info-not-available": "Signer information not available", + "cert-validity-not-checked": "Certificate validity not checked", + "valid": "Valid", + "expired-or-not-yet-valid": "Expired or not yet valid", + "valid-from": "Valid from", + "to": "to", + "signer": "Signer", + "issuer": "Issuer", + "not-available": "Not available", + "not-performed": "Not performed", + "missing-acrofield-dict": "Missing acrofield dictionary", + "signature-dictionary-not-found-or-invalid": "Signature dictionary not found or invalid", + "missing-or-invalid-byterange": "Missing or invalid ByteRange", + "missing-or-invalid-contents": "Missing or invalid Contents", + "missing-signature-contents": "Missing signature contents", + "invalid-signature-hex-format": "Invalid signature hex format", + "unsupported-signature-format-not-signeddata": "Unsupported signature format - not SignedData", + "signer-certificate-not-found": "Signer certificate not found", + "no-certificates-in-signature": "No certificates in signature", + "no-signer-info-in-pkcs7": "No signer info in PKCS#7", + "could-not-parse-signer-info": "Could not parse signer info", + "not-calculated": "Not calculated", + "not-found-in-signature": "Not found in signature" } \ No newline at end of file diff --git a/apps/OpenSign/public/locales/es/translation.json b/apps/OpenSign/public/locales/es/translation.json index e224ef7843..21f9332a18 100644 --- a/apps/OpenSign/public/locales/es/translation.json +++ b/apps/OpenSign/public/locales/es/translation.json @@ -1,6 +1,7 @@ { "header-news": "Nueva característica: los usuarios del plan Teams ahora pueden integrar sus propios depósitos de AWS S3 para el almacenamiento de archivos", "header-news-btn": "Configurar ahora", + "sandbox-news": "Este es un entorno sandbox. Por favor, no lo utilice con fines de producción.", "create-account": "Crear cuenta", "login": "Iniciar sesión", "language": "Idioma", @@ -675,7 +676,7 @@ "public-template-mssg-1": "Para integrar OpenSign a tu proyecto React o Next.js, simplemente ejecuta los siguientes comandos:", "public-template-mssg-2": "Asegúrate de tener «npm» o «yarn» configurado en tu proyecto. Si estás usando «yarn», puedes reemplazar «npm install» con «yarn add @opensign/react».", "public-template-mssg-3": "¿Necesitas más detalles o ejemplos?", - "public-template-mssg-4": "Visita la", + "public-template-mssg-4": "Visita la ", "public-template-mssg-5": " «npm» para las últimas actualizaciones, documentación detallada e historial de versiones.", "public-template-mssg-6": "Antes de que puedas usar este fragmento de código, debes convertir esta plantilla en pública.", "public-template-mssg-7": "Antes de poder generar un enlace público, debes hacer que esta plantilla sea pública.", @@ -980,5 +981,46 @@ "finish-mssg": "¿Está seguro de que desea finalizar el documento?", "review": "Revisar", "next-field": "Siguiente campo", - "required-mssg": "{{leftRequiredWidget}} de {{totalWidget}} campos restantes" + "required-mssg": "{{leftRequiredWidget}} de {{totalWidget}} campos restantes", + "verify-document-signature": "Verificar firma del documento", + "select-pdf-document": "Seleccionar documento PDF", + "selected-file": "Archivo seleccionado", + "verify-signature": "Verificar firma", + "verification-status": "Estado de verificación", + "verification-in-progress": "Verificación en curso...", + "verification-results-will-appear-here": "Los resultados de la verificación aparecerán aquí", + "please-select-pdf": "Por favor, seleccione un archivo PDF válido", + "please-select-file-to-verify": "Por favor, seleccione un archivo para verificar", + "no-signature-found": "No se encontró ninguna firma en el documento", + "error-verifying-pdf": "Error al verificar el PDF", + "signature-valid-basic": "La firma es válida", + "signature-invalid-basic": "La firma no es válida", + "all-signatures-verified-convincing": "Documento verificado: Todas las firmas han sido validadas exitosamente.", + "some-signatures-invalid-basic": "Algunas firmas no son válidas", + "no-signatures-processed": "No se procesaron firmas", + "unnamed-signature-field": "Campo de firma sin nombre", + "error-processing-signature": "Error al procesar la firma", + "signer-info-not-available": "Información del firmante no disponible", + "cert-validity-not-checked": "Validez del certificado no verificada", + "valid": "Válido", + "expired-or-not-yet-valid": "Caducado o aún no válido", + "valid-from": "Válido desde", + "to": "hasta", + "signer": "Firmante", + "issuer": "Emisor", + "not-available": "No disponible", + "not-performed": "No realizado", + "missing-acrofield-dict": "Falta el diccionario Acrofield", + "signature-dictionary-not-found-or-invalid": "Diccionario de firmas no encontrado o inválido", + "missing-or-invalid-byterange": "ByteRange faltante o inválido", + "missing-or-invalid-contents": "Contenido faltante o inválido", + "missing-signature-contents": "Falta el contenido de la firma", + "invalid-signature-hex-format": "Formato hexadecimal de firma inválido", + "unsupported-signature-format-not-signeddata": "Formato de firma no compatible - no SignedData", + "signer-certificate-not-found": "Certificado del firmante no encontrado", + "no-certificates-in-signature": "No hay certificados en la firma", + "no-signer-info-in-pkcs7": "No hay información del firmante en PKCS#7", + "could-not-parse-signer-info": "No se pudo analizar la información del firmante", + "not-calculated": "No calculado", + "not-found-in-signature": "No encontrado en la firma" } diff --git a/apps/OpenSign/public/locales/fr/translation.json b/apps/OpenSign/public/locales/fr/translation.json index a2ae43c172..28d9255f4b 100644 --- a/apps/OpenSign/public/locales/fr/translation.json +++ b/apps/OpenSign/public/locales/fr/translation.json @@ -1,6 +1,7 @@ { "header-news": "Nouvelle fonctionnalité : les utilisateurs du forfait Teams peuvent désormais intégrer leurs propres compartiments AWS S3 pour le stockage de fichiers", "header-news-btn": "Configurer maintenant", + "sandbox-news": "Ceci est un environnement sandbox. Veuillez ne pas l'utiliser à des fins de production.", "create-account": "Créer un compte", "login": "Se Connecter", "language": "Langue", @@ -675,7 +676,7 @@ "public-template-mssg-1": "Pour intégrer OpenSign dans votre projet React ou Next.js, exécutez simplement la commande suivante :", "public-template-mssg-2": "Assurez-vous que npm ou Yarn est configuré dans votre projet. Si vous utilisez Yarn, vous pouvez remplacer npm install par Yarn Add @opensign/react.", "public-template-mssg-3": "Besoin de plus de détails ou d'exemples ?", - "public-template-mssg-4": "Visitez le", + "public-template-mssg-4": "Visitez le ", "public-template-mssg-5": "npm pour les dernières mises à jour, une documentation détaillée et l'historique des versions.", "public-template-mssg-6": "Avant de pouvoir utiliser cet extrait de code, vous devez rendre ce modèle public.", "public-template-mssg-7": "Avant de pouvoir générer un lien public, vous devez rendre ce modèle public.", @@ -980,5 +981,46 @@ "finish-mssg": "Êtes-vous sûr de vouloir terminer le document ?", "review": "Revoir", "next-field": "Champ suivant", - "required-mssg":"{{leftRequiredWidget}} champs sur {{totalWidget}} restants" + "required-mssg":"{{leftRequiredWidget}} champs sur {{totalWidget}} restants", + "verify-document-signature": "Vérifier la signature du document", + "select-pdf-document": "Sélectionner le document PDF", + "selected-file": "Fichier sélectionné", + "verify-signature": "Vérifier la signature", + "verification-status": "État de la vérification", + "verification-in-progress": "Vérification en cours...", + "verification-results-will-appear-here": "Les résultats de la vérification apparaîtront ici", + "please-select-pdf": "Veuillez sélectionner un fichier PDF valide", + "please-select-file-to-verify": "Veuillez sélectionner un fichier à vérifier", + "no-signature-found": "Aucune signature trouvée dans le document", + "error-verifying-pdf": "Erreur lors de la vérification du PDF", + "signature-valid-basic": "La signature est valide", + "signature-invalid-basic": "La signature est invalide", + "all-signatures-verified-convincing": "Document vérifié : Toutes les signatures ont été validées avec succès.", + "some-signatures-invalid-basic": "Certaines signatures sont invalides", + "no-signatures-processed": "Aucune signature traitée", + "unnamed-signature-field": "Champ de signature sans nom", + "error-processing-signature": "Erreur lors du traitement de la signature", + "signer-info-not-available": "Informations sur le signataire non disponibles", + "cert-validity-not-checked": "Validité du certificat non vérifiée", + "valid": "Valide", + "expired-or-not-yet-valid": "Expiré ou pas encore valide", + "valid-from": "Valide du", + "to": "au", + "signer": "Signataire", + "issuer": "Émetteur", + "not-available": "Non disponible", + "not-performed": "Non effectué", + "missing-acrofield-dict": "Dictionnaire Acrofield manquant", + "signature-dictionary-not-found-or-invalid": "Dictionnaire de signatures introuvable ou invalide", + "missing-or-invalid-byterange": "ByteRange manquant ou invalide", + "missing-or-invalid-contents": "Contenu manquant ou invalide", + "missing-signature-contents": "Contenu de la signature manquant", + "invalid-signature-hex-format": "Format hexadécimal de signature invalide", + "unsupported-signature-format-not-signeddata": "Format de signature non pris en charge - pas SignedData", + "signer-certificate-not-found": "Certificat du signataire introuvable", + "no-certificates-in-signature": "Aucun certificat dans la signature", + "no-signer-info-in-pkcs7": "Aucune information sur le signataire dans PKCS#7", + "could-not-parse-signer-info": "Impossible d'analyser les informations sur le signataire", + "not-calculated": "Non calculé", + "not-found-in-signature": "Introuvable dans la signature" } diff --git a/apps/OpenSign/public/locales/hi/translation.json b/apps/OpenSign/public/locales/hi/translation.json new file mode 100644 index 0000000000..6288f6c667 --- /dev/null +++ b/apps/OpenSign/public/locales/hi/translation.json @@ -0,0 +1,1026 @@ +{ + "header-news": "नई सुविधा: अपने खाते को टू-फैक्टर ऑथेंटिकेशन (2FA) से सुरक्षित करें और पासकीज़ के साथ लॉगिन के भविष्य का आनंद लें - पासवर्ड की आवश्यकता नहीं।", + "header-news-btn": "अभी सेटअप करें", + "sandbox-news": "यह एक सैंडबॉक्स वातावरण है। कृपया इसे उत्पादन उद्देश्यों के लिए उपयोग न करें।", + "create-account": "खाता बनाएं", + "login": "लॉग इन करें", + "language": "भाषा", + "name": "नाम", + "phone": "फ़ोन", + "phone-optional": "वैकल्पिक", + "email": "ईमेल", + "company": "कंपनी", + "job-title": "पद", + "profile": "प्रोफ़ाइल", + "log-out": "लॉग आउट", + "is-email-verified": "क्या ईमेल सत्यापित है", + "public-profile": "सार्वजनिक प्रोफ़ाइल", + "tagline": "टैगलाइन ", + "has-requested-you-to-sign": "ने आपसे हस्ताक्षर करने का अनुरोध किया है", + "has-requested-you-to-review-and-sign": " ने आपसे समीक्षा और हस्ताक्षर करने का अनुरोध किया है", + "input-required": "कृपया इस फ़ील्ड को भरें।", + "sort-order": { + "Ascending": "आरोही", + "Descending": "अवरोही", + "Name": "नाम", + "Date": "दिनांक" + }, + "context-menu": { + "Download": "डाउनलोड करें", + "Rename": "नाम बदलें", + "Move": "स्थानांतरित करें", + "Delete": "हटाएं" + }, + "action": "कार्रवाई", + "add": "जोड़ें", + "add-new-folder": "नया फ़ोल्डर जोड़ें", + "disable-documentId": "दस्तावेज़ आईडी अक्षम करें", + "edit": "संपादित करें", + "change-password": "पासवर्ड बदलें", + "save": "सहेजें", + "cancel": "रद्द करें", + "upgrade-now": "अभी अपग्रेड करें", + "contact-now": "अभी संपर्क करें", + "upgrade-to": "इसमें अपग्रेड करें", + "plan": "योजना", + "subscription-renew-warning": "आपकी सदस्यता {{remainingDays}} दिनों में समाप्त हो जाएगी। कृपया अपनी सदस्यता नवीनीकृत करें।", + "subscribe-card-teamplan": "सहयोग की पूरी शक्ति को अनलॉक करें! असीमित संगठन, टीम और पदानुक्रम बनाएं। टीमों में टेम्पलेट को निर्बाध रूप से साझा करें और कस्टम उपयोगकर्ता भूमिकाएँ असाइन करें। आज ही अपने वर्कफ़्लो को उन्नत करें!", + "subscribe-card-plan": "केवल {{premiumPrice}}/माह से शुरू होने वाली प्रीमियम सुविधाओं को अनलॉक करें। अपने शामिल प्रीमियम क्रेडिट के बाद प्रति अतिरिक्त क्रेडिट केवल {{addonPrice}} पर बढ़ी हुई प्रदर्शन का आनंद लें।", + "user-name-limit-char": "8 वर्णों से कम का उपयोगकर्ता नाम रखने के लिए कृपया सदस्यता लें", + "tour-content": "इसे फिर से न दिखाएं", + "pro": "प्रो", + "team": "टीम", + "user": "उपयोगकर्ता", + "docs": "दस्तावेज़", + "session-expired": "आपका सत्र समाप्त हो गया है।", + "public-profile-help": "यह आपका सार्वजनिक URL है। इसे कॉपी करें या हस्ताक्षरकर्ता के साथ साझा करें, और आप अपने सभी सार्वजनिक रूप से सेट किए गए टेम्पलेट देख पाएंगे।", + "welcome": "वापसी पर स्वागत है!", + "Login-to-your-account": "अपने खाते में प्रवेश करे", + "password": "पासवर्ड", + "forgot-password": "पासवर्ड भूल गए?", + "loading": "लोड हो रहा है...", + "of": "का", + "sign-SSO": "SSO के साथ साइन इन करें", + "login-page": "लॉगिन पृष्ठ", + "or": "या", + "signup-page": "साइनअप पृष्ठ", + "password-length": "पासवर्ड 8 वर्ण लंबा होना चाहिए", + "password-case": "पासवर्ड में अपरकेस अक्षर, लोअरकेस अक्षर, अंक होना चाहिए", + "password-special-char": " पासवर्ड में विशेष वर्ण होना चाहिए", + "agreee": "मैं सहमत हूँ", + "term": "सेवा की शर्तें", + "subscribe-to-opensign": "OpenSign न्यूज़लेटर की सदस्यता लें", + "register": "पंजीकृत करें", + "sidebar": { + "Dashboard": "डैशबोर्ड", + "Sign yourself": "स्वयं हस्ताक्षर करें", + "Request signatures": "हस्ताक्षर का अनुरोध करें", + "Templates": "टेम्पलेट्स", + "Analytics": "विश्लेषिकी", + "Branding": "ब्रांडिंग", + "Mail": "मेल", + "Storage": "भंडारण", + "Signing certificate": "हस्ताक्षर प्रमाण पत्र", + "Teams": "टीमें", + "General": "सामान्य", + "Teams-Children": { + "Organizations": "संगठन", + "OrgAdmins": "संगठन व्यवस्थापक" + }, + "Templates-Children": { + "Create template": "टेम्पलेट बनाएं", + "Manage templates": "टेम्पलेट प्रबंधित करें", + "Embedding": "एम्बेडिंग" + }, + "OpenSign™ Drive": "{{appName}} ड्राइव", + "Reports": "रिपोर्ट", + "Documents": "दस्तावेज़", + "Documents-Children": { + "Need your sign": "आपके हस्ताक्षर की आवश्यकता है", + "In Progress": "प्रगति में है", + "Completed": "पूरा हुआ", + "Drafts": "ड्राफ्ट", + "Declined": "अस्वीकृत", + "Expired": "समाप्त" + }, + "Contactbook": "संपर्क पुस्तिका", + "Settings": "सेटिंग्स", + "Settings-Children": { + "My Signature": "मेरा हस्ताक्षर", + "API Token": "एपीआई टोकन", + "Webhook": "वेबहूक", + "Preferences": "वरीयताएँ", + "Teams": "टीमें", + "Team-update-successfully": "टीम सफलतापूर्वक अपडेट की गई।", + "Users": "उपयोगकर्ता" + } + }, + "dashboard-card": { + "Need your Signature": "आपके हस्ताक्षर की आवश्यकता है", + "Out for signatures": "हस्ताक्षर के लिए बाहर" + }, + "report-name": { + "Draft Documents": "ड्राफ्ट दस्तावेज़", + "Need your sign": "आपके हस्ताक्षर की आवश्यकता है", + "In-progress documents": "प्रगति में दस्तावेज़", + "Completed Documents": "पूर्ण दस्तावेज़", + "Declined Documents": "अस्वीकृत दस्तावेज़", + "Expired Documents": "समाप्त दस्तावेज़", + "Recently sent for signatures": "हाल ही में हस्ताक्षर के लिए भेजे गए", + "Recent signature requests": "हालिया हस्ताक्षर अनुरोध", + "Drafts": "ड्राफ्ट", + "Contactbook": "संपर्क पुस्तिका", + "Templates": "टेम्पलेट्स", + "Teams": "टीमें", + "Users": "उपयोगकर्ता" + }, + "btnLabel": { + "sign": "हस्ताक्षर करें", + "Sign": "हस्ताक्षर", + "Resend": "पुनः भेजें", + "Rename": "नाम बदलें", + "Revoke": "रद्द करें", + "Delete": "हटाएं", + "Use": "उपयोग करें", + "Quick send": "त्वरित भेजें", + "Edit": "संपादित करें", + "Share with team": "टीम के साथ साझा करें", + "Share with user": "सहकर्मी के साथ साझा करें", + "Share": "साझा करें", + "View": "देखें", + "option": "विकल्प", + "Embed": "एम्बेड करें", + "Copy TemplateId": "टेम्पलेट आईडी कॉपी करें", + "Copy Public URL": "सार्वजनिक URL कॉपी करें", + "extend-expiry-date": "समाप्ति तिथि बढ़ाएँ", + "Duplicate Template": "डुप्लिकेट टेम्पलेट", + "Duplicate": "डुप्लिकेट", + "daily-mail-quota": "दैनिक ईमेल कोटा", + "Save as template": "टेम्पलेट के रूप में सहेजें", + "Fix & resend": "ठीक करें और पुनः भेजें", + "Kiosk Mode": "कियोस्क मोड" + }, + "report-heading": { + "Sr.No": "क्रमांक", + "Title": "शीर्षक", + "Email": "ईमेल", + "Phone": "फ़ोन", + "File": "फ़ाइल", + "Owner": "मालिक", + "Signers": "हस्ताक्षरकर्ता", + "Note": "टिप्पणी", + "Folder": "फ़ोल्डर", + "Reason": "कारण", + "Parent Team": "मूल टीम", + "Active": "सक्रिय", + "Role": "भूमिका", + "Team": "टीम", + "Name": "नाम", + "Status": "स्थिति", + "created-date": "निर्माण तिथि", + "Type": "प्रकार", + "Logs": "लॉग", + "Expiry-date": "समाप्ति तिथि" + }, + "report-help": { + "Draft Documents": "ये वे दस्तावेज़ हैं जिन्हें आपने शुरू तो किया है लेकिन भेजने के लिए अंतिम रूप नहीं दिया है।", + "Need your sign": "यह उन दस्तावेज़ों की सूची है जो आपके हस्ताक्षर की प्रतीक्षा कर रहे हैं", + "In-progress documents": "यह उन दस्तावेज़ों की सूची है जिन्हें आपने हस्ताक्षर के लिए अन्य पक्षों को भेजा है।", + "Completed Documents": "यह उन दस्तावेज़ों की सूची है जिन पर सभी पक्षों द्वारा हस्ताक्षर किए गए हैं।", + "Declined Documents": "यह उन दस्तावेज़ों की सूची है जिन्हें किसी एक हस्ताक्षरकर्ता द्वारा अस्वीकार कर दिया गया है।", + "Expired Documents": "यह उन दस्तावेज़ों की सूची है जिनकी समाप्ति तिथि आ गई है।", + "Contactbook": "यह आपके द्वारा जोड़े गए संपर्कों/हस्ताक्षरकर्ताओं की सूची है। जब आप किसी नए दस्तावेज़ में हस्ताक्षरकर्ताओं को जोड़ने का प्रयास करेंगे तो ये सुझावों के रूप में दिखाई देंगे।", + "Templates": "यह उन टेम्पलेट्स की सूची है जो दस्तावेज़ बनाने के लिए आपके लिए उपलब्ध हैं। आप टेम्पलेट का उपयोग करके एक नया दस्तावेज़ बनाने के लिए 'उपयोग करें' बटन पर क्लिक कर सकते हैं, दस्तावेज़ को संशोधित कर सकते हैं और अगले चरण में हस्ताक्षरकर्ताओं को जोड़ सकते हैं।" + }, + "form-name": { + "Sign Yourself": "स्वयं हस्ताक्षर करें", + "Request Signatures": "हस्ताक्षर का अनुरोध करें", + "New Template": "नया टेम्पलेट" + }, + "file-type": "pdf, png, jpg, jpeg", + "docx": "docx", + "file-selected": "फ़ाइल चयनित", + "template-title": "टेम्पलेट शीर्षक", + "document-title": "दस्तावेज़ शीर्षक", + "description": "विवरण", + "time-to-complete": "पूरा करने का समय (दिन)", + "send-in-order": "क्रम से भेजें", + "send-in-order-help": { + "p1": "चुनें कि आप दस्तावेज़ हस्ताक्षरकर्ताओं को हस्ताक्षर अनुरोध कैसे भेजना चाहते हैं:", + "p2": "इस विकल्प का चयन करने पर हस्ताक्षर अनुरोध शुरू में पहले हस्ताक्षरकर्ता को भेजा जाएगा। एक बार जब पहला हस्ताक्षरकर्ता अपना हिस्सा पूरा कर लेता है, तो क्रम में अगला हस्ताक्षरकर्ता अनुरोध प्राप्त करेगा। यह प्रक्रिया तब तक जारी रहती है जब तक सभी हस्ताक्षरकर्ता दस्तावेज़ पर हस्ताक्षर नहीं कर देते। यह विधि सुनिश्चित करती है कि दस्तावेज़ पर एक विशिष्ट क्रम में हस्ताक्षर किए जाएं।", + "p3": "इस विकल्प का चयन करने पर हस्ताक्षर लिंक सभी हस्ताक्षरकर्ताओं को एक साथ भेजे जाएंगे। प्रत्येक हस्ताक्षरकर्ता अपनी सुविधानुसार दस्तावेज़ पर हस्ताक्षर कर सकता है, भले ही अन्य हस्ताक्षरकर्ताओं ने अपने हस्ताक्षर पूरे कर लिए हों या नहीं। यह विधि तेज़ है लेकिन प्रतिभागियों के बीच किसी भी हस्ताक्षर क्रम को लागू नहीं करती है।", + "p4": "वह विकल्प चुनें जो आपके दस्तावेज़ प्रसंस्करण की आवश्यकताओं के लिए सबसे उपयुक्त हो।" + }, + "no": "नहीं", + "auto-reminder": "स्वतः अनुस्मारक", + "remind-once": " प्रत्येक (दिन) में एक बार याद दिलाएं", + "next": "अगला", + "select-folder": "फ़ोल्डर चुनें", + "OpenSign-drive": "{{appName}} ड्राइव", + "drive-document-status": { + "Completed": "पूरा हुआ", + "Declined": "अस्वीकृत", + "Draft": "ड्राफ्ट", + "Expired": "समाप्त", + "In Progress": "प्रगति में है" + }, + "select-folder-help": "यदि आप कोई फ़ोल्डर नहीं चुनते हैं, तो आपका हस्ताक्षरित दस्तावेज़ मुख्य {{appName}} ड्राइव फ़ोल्डर में सहेजा जाएगा।", + "no-data": "कोई डेटा नहीं मिला", + "save-here": "यहां सहेजें", + "back": "वापस", + "add-folder": "फ़ोल्डर जोड़ें", + "create-folder": "फ़ोल्डर बनाएं", + "parent-folder": "मूल फ़ोल्डर", + "create": "बनाएं", + "signers": "हस्ताक्षरकर्ता", + "signers-help": "अपने सहेजे गए संपर्कों से सुझाए गए हस्ताक्षरकर्ताओं को देखने के लिए किसी संपर्क का नाम टाइप करना शुरू करें या नए जोड़ें। वांछित क्रम में हस्ताक्षरकर्ताओं को जोड़कर हस्ताक्षर क्रम की व्यवस्था करें। हस्ताक्षरकर्ताओं को शामिल करने के लिए '+' बटन और उन्हें हटाने के लिए 'x' का उपयोग करें। प्रत्येक हस्ताक्षरकर्ता को सूचीबद्ध क्रम में दस्तावेज़ पर हस्ताक्षर करने के लिए एक ईमेल संकेत प्राप्त होगा।", + "bcc-help": "अपने सहेजे गए संपर्कों से सुझाव देखने के लिए किसी संपर्क का नाम टाइप करना शुरू करें या नए जोड़ें। किसी उपयोगकर्ता को जोड़ने के लिए '+' बटन और उसे हटाने के लिए 'x' का उपयोग करें। चयनित उपयोगकर्ता का ईमेल Bcc (ब्लाइंड कार्बन कॉपी) के रूप में जोड़ा जाएगा। दस्तावेज़ पूरा होने के बाद प्रत्येक उपयोगकर्ता को एक ईमेल सूचना प्राप्त होगी।", + "add-signer": "हस्ताक्षरकर्ता जोड़ें", + "contact-not-found": "संपर्क नहीं मिला", + "add-yourself": "स्वयं को जोड़ें", + "submit": "जमा करें", + "reset": "रीसेट करें", + "my-signature": "मेरा हस्ताक्षर", + "signature": "हस्ताक्षर", + "upload-image": " छवि अपलोड करें", + "clear": "स्पष्ट", + "upload-signature/Image": "कृपया हस्ताक्षर/छवि अपलोड करें", + "initials": "हस्ताक्षर", + "API": "एपीआई", + "api-token": "एपीआई टोकन", + "regenerate-token": "लाइव टोकन पुनः उत्पन्न करें", + "remove-background": "पृष्ठभूमि हटाएं", + "generate-token": "लाइव टोकन उत्पन्न करें", + "view-docs": "दस्तावेज़ देखें", + "generate-token-alert": "क्या आप वाकई टोकन पुनः उत्पन्न करना चाहते हैं, इससे पुराना टोकन समाप्त हो जाएगा?", + "yes": "हाँ", + "copied": "कॉपी किया गया", + "something-went-wrong-mssg": "कुछ गलत हो गया, इस पृष्ठ को रीफ्रेश करने से यह समस्या हल हो सकती है।", + "token-generated": "टोकन सफलतापूर्वक उत्पन्न हुआ।", + "webhook": "वेबहूक", + "update-webhook": "वेबहूक अपडेट करें", + "add-webhook": "वेबहूक जोड़ें", + "webhook-added": "वेबहूक सफलतापूर्वक जोड़ा गया।", + "team-disabled": "टीम अक्षम", + "Team enabled": "टीम सक्षम", + "are-you-sure": "क्या आप वाकई चाहते हैं", + "disable": "अक्षम करें", + "enable": "सक्षम करें", + "this-team": " यह टीम?", + "edit-team": "टीम संपादित करें", + "name-of-team": "टीम का नाम", + "prev": "पिछला", + "no-data-avaliable": "कोई डेटा उपलब्ध नहीं है", + "add-team": "टीम जोड़ें", + "page-not-found": "पृष्ठ नहीं मिला", + "users-from-teams": "टीमों से उपयोगकर्ता", + "user-status": "उपयोगकर्ता स्थिति", + "activate": "सक्रिय करें", + "deactivate": "निष्क्रिय करें", + "this-user": " यह उपयोगकर्ता", + "delete-user": "उपयोगकर्ता हटाएं", + "delete": "हटाएं", + "add-user": "उपयोगकर्ता जोड़ें", + "password-generateed": "पासवर्ड केवल एक बार उत्पन्न होगा; इसे कॉपी करना सुनिश्चित करें।", + "Team status": "टीम स्थिति", + "user-deactivated": "उपयोगकर्ता निष्क्रिय।", + "user-activated": "उपयोगकर्ता सक्रिय।", + "public": "सार्वजनिक", + "download": "डाउनलोड करें", + "view": "देखें", + "make-template-public": "टेम्पलेट को सार्वजनिक करें", + "make-template-private": "टेम्पलेट को निजी बनाएं", + "make-template-public-alert": "क्या आप वाकई इस टेम्पलेट को सार्वजनिक करना चाहते हैं?", + "make-template-private-alert-non": "क्या आप वाकई इस टेम्पलेट को निजी बनाना चाहते हैं?", + "make-template-private-alert": "क्या आप वाकई इस टेम्पलेट को निजी बनाना चाहते हैं? इससे यह आपके सार्वजनिक प्रोफ़ाइल से हट जाएगा।", + "public-role": "सार्वजनिक भूमिका", + "public-url": "सार्वजनिक प्रोफ़ाइल", + "embed-template": "टेम्पलेट एम्बेड करें", + "public-url-copy": "यह आपका सार्वजनिक URL है: ", + "public-url-copy-mssg": "इसे कॉपी करें या हस्ताक्षरकर्ता के साथ साझा करें, और आप अपने सभी सार्वजनिक रूप से सेट किए गए टेम्पलेट देख पाएंगे।", + "add-public-url-alert": "आप अपना {{appName}} सार्वजनिक प्रोफ़ाइल उत्पन्न कर सकते हैं", + "share-with-alert": "यदि किसी भी भूमिका में पहले से ही संपर्क असाइन किए गए हैं तो आप टेम्पलेट साझा नहीं कर सकते। कृपया टेम्पलेट साझा करने से पहले भूमिकाओं से सभी संपर्क असाइनमेंट हटा दें।", + "share-with": "इसके साथ साझा करें", + "team-not-found": "टीम नहीं मिली", + "roles": "भूमिकाएँ", + "delete-document": "दस्तावेज़ हटाएं", + "delete-document-alert": "क्या आप वाकई इस दस्तावेज़ को हटाना चाहते हैं?", + "quick-send": "त्वरित भेजें", + "add-new": "नया जोड़ें", + "send": "भेजें", + "quick-send-alert-1": "इस दस्तावेज़ में सभी भूमिकाएँ वर्तमान में संपर्कों से जुड़ी हुई हैं। इस टेम्पलेट की प्रतियां कई हस्ताक्षरकर्ताओं को त्वरित रूप से भेजने के लिए, कृपया सुनिश्चित करें कि कम से कम एक भूमिका किसी भी संपर्क से जुड़ी नहीं है।", + "quick-send-alert-2": "कृपया सुनिश्चित करें कि सभी प्राप्तकर्ताओं के लिए कम से कम एक हस्ताक्षर विजेट जोड़ा गया है।", + "quick-send-alert-3": "कृपया इस टेम्पलेट में कम से कम एक भूमिका जोड़ें।", + "quick-send-alert-4": "त्वरित भेजें सीमा तक पहुँच गया।", + "copy-link": "लिंक कॉपी करें", + "copy": "कॉपी करें", + "revoke-document": "दस्तावेज़ रद्द करें", + "revoke-document-alert": "क्या आप वाकई इस दस्तावेज़ को रद्द करना चाहते हैं?", + "resend-mail": "मेल पुनः भेजें", + "resend-mail-help": "आप निम्नलिखित चर का उपयोग कर सकते हैं जिन्हें उनके वास्तविक मानों से बदल दिया जाएगा:- {{document_title}}, {{sender_name}}, {{sender_mail}}, {{sender_phone}}, {{receiver_name}}, {{receiver_email}}, {{receiver_phone}}, {{expiry_date}}, {{company_name}}, {{signing_url}}, {{note}}.", + "subject": "विषय", + "body": "मुख्य भाग", + "add-contact": "संपर्क जोड़ें", + "edit-contact": "संपर्क संपादित करें", + "add-signer-alert": "संपर्क पहले से मौजूद है! कृपया इसे 'हस्ताक्षरकर्ता' ड्रॉपडाउन से चुनें", + "record-delete-alert": "रिकॉर्ड सफलतापूर्वक हटाया गया!", + "record-revoke-alert": "रिकॉर्ड सफलतापूर्वक रद्द किया गया!", + "mail-sent-alert": "मेल सफलतापूर्वक भेजा गया।", + "document-sent-alert": "दस्तावेज़ सफलतापूर्वक भेजा गया!", + "template-share-alert": "टेम्पलेट सफलतापूर्वक साझा किया गया।", + "template-public-alert-1": "आपने टेम्पलेट को सफलतापूर्वक सार्वजनिक कर दिया है।", + "template-public-alert-2": "आपने टेम्पलेट को सफलतापूर्वक निजी बना दिया है।", + "template-public-alert-3": "आपको सार्वजनिक हस्ताक्षरकर्ताओं के लिए एक भूमिका का चयन करने की आवश्यकता है।", + "template-public-alert-4": "कृपया सुनिश्चित करें कि सभी हस्ताक्षरकर्ताओं के लिए कम से कम एक हस्ताक्षर विजेट जोड़ा गया है।", + "template-public-alert-5": "चूंकि इस टेम्पलेट में क्रम से भेजें सक्षम है, इसलिए सार्वजनिक भूमिका को शीर्ष पर रखा जाना चाहिए।", + "template-public-alert-6": "कृपया सार्वजनिक भूमिका उपयोगकर्ता को छोड़कर सभी भूमिकाओं में हस्ताक्षरकर्ताओं को संलग्न करें।", + "template-public-alert-7": "कृपया इस टेम्पलेट को सार्वजनिक करने के लिए कम से कम एक सार्वजनिक भूमिका असाइन करें।", + "loader": " इसमें कुछ समय लग सकता है", + "pages": "पृष्ठ", + "document-signed": "दस्तावेज़ पर हस्ताक्षर किए गए", + "close": "बंद करें", + "validation-alert": "सत्यापन चेतावनी", + "validate-alert-mssg": " इनपुट नियमित अभिव्यक्ति द्वारा निर्धारित मानदंडों को पूरा नहीं करता है।", + "otp-verification": "ओटीपी सत्यापन", + "enter-otp": "ओटीपी दर्ज करें", + "verify": "सत्यापित करें", + "verify-email-1": "ईमेल सत्यापित करें", + "resend": "पुनः भेजें", + "contact-details": "संपर्क विवरण", + "verify-email": "जारी रखने के लिए कृपया अपना ईमेल सत्यापित करें। यह आपके OpenSign खाते से जुड़े ईमेल की पुष्टि करने के लिए एक बार का कदम है।", + "send-otp": " ओटीपी भेजें", + "otp-placeholder": "ईमेल पर प्राप्त सत्यापन कोड दर्ज करें", + "loading-doc": "दस्तावेज़ लोड हो रहा है..", + "widgets-name": { + "signature": "हस्ताक्षर", + "stamp": "मोहर", + "initials": "हस्ताक्षर", + "name": "नाम", + "job title": "पद", + "company": "कंपनी", + "date": "दिनांक", + "text": "पाठ", + "text input": "पाठ इनपुट", + "checkbox": "चेकबॉक्स", + "dropdown": "ड्रॉपडाउन", + "radio button": "रेडियो बटन", + "image": "छवि", + "email": "ईमेल" + }, + "fields": "क्षेत्र", + "recipients": "प्राप्तकर्ता", + "please-add": "कृपया जोड़ें", + "signed-by": "द्वारा हस्ताक्षरित", + "more": "अधिक", + "sent": "भेजा गया", + "print": "प्रिंट करें", + "certificate": "प्रमाण पत्र", + "decline": "अस्वीकार करें", + "finish": "समाप्त करें", + "mail": "मेल", + "sign-now": "अभी हस्ताक्षर करें", + "successfully-signed": "सफलतापूर्वक हस्ताक्षर किए गए!", + "email-mssg": " यहां जोड़े गए प्राप्तकर्ताओं को हस्ताक्षरित दस्तावेज़ की एक प्रति मिलेगी।", + "email-error-1": " कृपया सही ईमेल पता प्रदान करें", + "email-error-2": "आप एक बार में केवल दस प्राप्तकर्ताओं को भेज सकते हैं।", + "Email-verified-alert-1": "ईमेल सत्यापित है।", + "Email-verified-alert-2": "ईमेल पहले से ही सत्यापित है।", + "upload-stamp-image": "मोहर छवि अपलोड करें", + "draw": "आरेखित करें", + "type": "प्रकार", + "color-type": { + "red": "लाल", + "blue": "नीला", + "black": "काला", + "yellow": "पीला" + }, + "my-initials": "मेरे हस्ताक्षर", + "upload": "अपलोड करें", + "initial-teb": "हस्ताक्षर", + "signature-tab": "हस्ताक्षर", + "initial-alert": "मेरा आद्याक्षर नहीं मिला", + "copy-title": "विजेट को इसमें कॉपी करें", + "contact-delete-alert": "क्या आप वाकई इस संपर्क को हटाना चाहते हैं?", + "reset-password-alert-1": "पासवर्ड रीसेट लिंक आपके ईमेल आईडी पर भेज दिया गया है", + "reset-password-alert-2": "कृपया ईमेल एडॉप्टर सेटअप करें ", + "reset-password-alert-3": "अपना पासवर्ड रीसेट करें", + "faild-animation": "एनिमेशन लोड करने में विफल", + "apply": "लागू करें", + "copy-type": { + "All pages": "सभी पृष्ठ", + "All pages but last": "अंतिम को छोड़कर सभी पृष्ठ", + "All pages but first": "पहले को छोड़कर सभी पृष्ठ", + "Next to current widget": "वर्तमान विजेट के आगे" + }, + "options": "विकल्प", + "minimun-check": "न्यूनतम जाँच", + "maximum-check": "अधिकतम जाँच", + "default-value": "डिफ़ॉल्ट मान", + "select": "चुनें", + "read-only": "केवल पढ़ने के लिए है", + "hide-labels": "लेबल छिपाएँ", + "checkbox": "चेकबॉक्स", + "alert": "चेतावनी", + "zoom-in": "ज़ूम इन करें", + "zoom-out": "ज़ूम आउट करें", + "document-signed-alert": "बधाई हो! 🎉 इस दस्तावेज़ पर आपके द्वारा सफलतापूर्वक हस्ताक्षर किए गए हैं!", + "otp-sent-alert": "आपके ईमेल पर ओटीपी भेजा गया", + "fields-required": "आवश्यक फ़ील्ड", + "signature-widget-alert-1": "कृपया सुनिश्चित करें कि कम से कम एक हस्ताक्षर विजेट जोड़ा गया है", + "signature-widget-alert-2": "कृपया सुनिश्चित करें कि सभी फ़ील्ड सटीक रूप से भरे गए हैं और सभी आवश्यकताओं को पूरा करते हैं।", + "encrypted-pdf-alert": "वर्तमान में एन्क्रिप्टेड पीडीएफ फाइलें समर्थित नहीं हैं।", + "encrypted-pdf-alert-1": "PFX फ़ाइल पासवर्ड अमान्य है।", + "user-not-exist": "उपयोगकर्ता मौजूद नहीं है", + "template-role-alert": "कृपया पहले भूमिकाएँ जोड़ें", + "create-document": "दस्तावेज़ बनाएं", + "template-created-alert": "आप अभी बनाए गए टेम्पलेट के साथ क्या करना चाहेंगे? ", + "signers-alert": "हस्ताक्षरकर्ता चेतावनी", + "template-creation-alert-1": "प्लेसहोल्डर जोड़ने के लिए कृपया हस्ताक्षरकर्ता चुनें!", + "ok": "ठीक है", + "radio-group": "रेडियो समूह", + "dropdown-options": "ड्रॉपडाउन विकल्प", + "add-role": "भूमिका जोड़ें", + "role-ex": " उदा: ग्राहक, मानव संसाधन, निदेशक, प्रबंधक, छात्र, आदि", + "add/choose-signer": "हस्ताक्षरकर्ता जोड़ें/चुनें", + "choose-from-contacts": "संपर्कों में से चुनें", + "select-signer": " कृपया हस्ताक्षरकर्ता चुनें", + "edit-template": "टेम्पलेट संपादित करें", + "widget-info": "विजेट जानकारी", + "validation": "सत्यापन", + "invalid-default-value": "अमान्य डिफ़ॉल्ट मान", + "hint": "संकेत", + "color": "रंग", + "role-help": { + "p1": "टेम्पलेट भूमिकाएँ क्या हैं?", + "p2": "दस्तावेज़ को पूरा करने के लिए आवश्यक प्रत्येक भूमिका को निर्दिष्ट करके शुरू करें। हस्ताक्षर प्रक्रिया में शामिल पक्षों और उनकी जिम्मेदारियों के बारे में सोचें। सामान्य भूमिकाओं में आंतरिक दस्तावेज़ों के लिए मानव संसाधन, समझौतों के लिए ग्राहक या व्यावसायिक समझौतों के लिए विक्रेता शामिल हैं।", + "p3": "कुछ भूमिकाओं में उपयोगकर्ताओं को पहले से क्यों संलग्न करें?", + "p4": "उन भूमिकाओं के लिए जिनमें लगातार एक ही व्यक्ति शामिल होता है (जैसे, कर्मचारी प्रस्ताव पत्रों पर सीईओ के हस्ताक्षर), आप टेम्पलेट के भीतर किसी भूमिका में किसी उपयोगकर्ता को पहले से संलग्न कर सकते हैं। यह कदम वैकल्पिक है लेकिन दस्तावेज़ों में दक्षता और निरंतरता के लिए अनुशंसित है।", + "p5": "मैं प्रत्येक भूमिका से जुड़े उपयोगकर्ता को कब निर्दिष्ट करूं?", + "p6": "जब आप अपने टेम्पलेट से कोई दस्तावेज़ बनाते हैं, तो आपको प्रत्येक परिभाषित भूमिका में उपयोगकर्ताओं को संलग्न करने के लिए प्रेरित किया जाएगा। यदि किसी भूमिका में पहले से ही कोई उपयोगकर्ता संलग्न है, तो यह पहले से भरा जाएगा, लेकिन दस्तावेज़ भेजने से पहले आप इसे आवश्यकतानुसार संशोधित कर सकते हैं।" + }, + "add-recipients": "प्राप्तकर्ता जोड़ें", + "loading-mssg": "इसमें कुछ समय लग सकता है", + "send-mail": "मेल भेजें", + "signature-field-widget": "प्रत्येक उपयोगकर्ता के लिए कम से कम एक हस्ताक्षर फ़ील्ड जोड़ा जाना चाहिए। आपने {{signersName}} के लिए हस्ताक्षर फ़ील्ड नहीं जोड़े हैं", + "placeholder-alert-1": "कृपया सुनिश्चित करें कि सभी प्राप्तकर्ताओं के लिए कम से कम एक हस्ताक्षर विजेट जोड़ा गया है।", + "placeholder-alert-2": "कृपया पुष्टि करें कि आपने टेक्स्ट फ़ील्ड भर दिया है।", + "placeholder-alert-3": " क्या आप वाकई इस दस्तावेज़ को हस्ताक्षर के लिए भेजना चाहते हैं?", + "placeholder-alert-4": "आपने सभी प्राप्तकर्ताओं को सफलतापूर्वक मेल भेज दिए हैं!", + "placeholder-mail-alert": "आपने {{name}} को सफलतापूर्वक ईमेल भेज दिया है। {{name}} द्वारा दस्तावेज़ पर हस्ताक्षर करने के बाद बाद के हस्ताक्षरकर्ताओं को ईमेल प्राप्त होंगे", + "placeholder-mail-alert-you": "आपके द्वारा दस्तावेज़ पर हस्ताक्षर करने के बाद बाद के हस्ताक्षरकर्ताओं को ईमेल प्राप्त होंगे।", + "placeholder-alert-5": "क्या आप अभी दस्तावेज़ पर हस्ताक्षर करना चाहते हैं?", + "placeholder-alert-6": "मेल भेजने के लिए कृपया मेल एडॉप्टर सेटअप करें!", + "placeholder-alert-7": "प्लेसहोल्डर जोड़ने के लिए कृपया हस्ताक्षरकर्ता चुनें!", + "email-subject": "ईमेल विषय", + "email-body": "ईमेल मुख्य भाग", + "email-placeholder": "ईमेल का मुख्य भाग जोड़ें", + "reset-to-default": "डिफ़ॉल्ट पर रीसेट करें", + "cutomize-email": "ईमेल अनुकूलित करें", + "upgrade-to-customize-email": "ईमेल अनुकूलित करने के लिए अपग्रेड करें", + "sign-url": "यूआरएल पर हस्ताक्षर करें", + "mails-sent": "मेल भेजे गए", + "mail-not-delivered": "मेल वितरित नहीं किया गया", + "document-alert": "दस्तावेज़ चेतावनी", + "owner-subscription-expired": "मालिक की सदस्यता समाप्त हो गई है।", + "subscription-expired": "सदस्यता समाप्त", + "owner-doesnt-have-paid-plan": "मालिक के पास भुगतान योजना नहीं है।", + "alert-message": "चेतावनी संदेश", + "document-decline": "दस्तावेज़ अस्वीकार", + "decline-alert-1": "क्या आप वाकई इस दस्तावेज़ को अस्वीकार करना चाहते हैं?", + "decline-alert-2": "आपने इस दस्तावेज़ को अस्वीकार कर दिया है!", + "decline-alert-3": "आप इस दस्तावेज़ पर हस्ताक्षर नहीं कर सकते क्योंकि इसे अस्वीकार/रद्द कर दिया गया है।", + "sign here": "यहां हस्ताक्षर करें", + "guest-email-alert": "सत्यापन कोड आपके ईमेल पर भेजा गया है", + "get-otp-alert": "आपको ईमेल के माध्यम से एक सत्यापन कोड मिलेगा", + "user-already-exist": "उपयोगकर्ता पहले से मौजूद है।", + "server-error": "आंतरिक सर्वर त्रुटि!", + "fill-required-details!": "कृपया आवश्यक विवरण भरें!", + "sign-up-form": "साइन अप फॉर्म", + "sign-up": "साइन अप करें", + "folder-already-exist!": "फ़ोल्डर पहले से मौजूद है!", + "please-select-position!": "कृपया स्थिति चुनें!", + "default-sign-alert": "क्या आप वाकई सभी अनुरोधित {{widgetsType}} विजेट्स पर स्वतः हस्ताक्षर करना चाहते हैं?", + "Your-Signature": "आपका हस्ताक्षर", + "auto-sign-all": "सभी पर स्वतः हस्ताक्षर करें", + "generating-certificate": "प्रमाण पत्र तैयार किया जा रहा है", + "pdf-download": "पीडीएफ डाउनलोड करें", + "generate-certificate-alert": " आपका समापन प्रमाण पत्र तैयार किया जा रहा है। कृपया कुछ क्षण प्रतीक्षा करें। यदि डाउनलोड शीघ्र ही शुरू नहीं होता है, तो बटन पर फिर से क्लिक करें।", + "generate-certificate-err": "हम वर्तमान में प्रमाण पत्र निर्माण के साथ एक समस्या का सामना कर रहे हैं। कृपया बाद में पुनः प्रयास करें।", + "folder-already-exist": "फ़ोल्डर पहले से मौजूद है!", + "folder-created-successfully": "फ़ोल्डर सफलतापूर्वक बनाया गया!", + "fill-folder-name": "कृपया फ़ोल्डर का नाम भरें", + "already-exists-this-username": "इस उपयोगकर्ता नाम वाला उपयोगकर्ता पहले से मौजूद है!", + "verification-code-sent": "सत्यापन मेल आपके ई-मेल पर भेज दिया गया है!", + "registered-user-successfully": "उपयोगकर्ता सफलतापूर्वक पंजीकृत हुआ।", + "role-not-found": "भूमिका नहीं मिली।", + "do-not-access": "आपके पास पहुंच नहीं है, कृपया व्यवस्थापक से संपर्क करें।", + "add-admin": "व्यवस्थापक जोड़ें", + "opensign-setup": "{{appName}} सेटअप", + "join-discord": "हमारे डिस्कॉर्ड सर्वर से जुड़ें", + "admin-already-exist": "व्यवस्थापक पहले से मौजूद है।", + "password-update-alert-1": "पासवर्ड सफलतापूर्वक अपडेट किया गया।", + "password-update-alert-2": "आपका वर्तमान पासवर्ड गायब है या गलत है।", + "password-update-alert-3": "आपका वर्तमान पासवर्ड गायब है या गलत है।", + "password-update-alert-4": "आपका पासवर्ड और पुष्टिकरण पासवर्ड मेल नहीं खाते।", + "current-password": "वर्तमान पासवर्ड", + "new-password": "नया पासवर्ड", + "confirm-password": "पासवर्ड की पुष्टि करें", + "file-alert-1": "चयनित फ़ाइल का आकार बहुत बड़ा है। कृपया इससे छोटी फ़ाइल चुनें", + "file-alert-2": "कृपया फ़ाइल चुनें।", + "file-alert-3": "दस्तावेज़ अपलोड होने तक कृपया प्रतीक्षा करें।", + "enter-pdf-password": "पीडीएफ पासवर्ड दर्ज करें", + "correct-password": "कृपया सही पासवर्ड प्रदान करें", + "decrypting-pdf": " पीडीएफ डिक्रिप्ट किया जा रहा है, कृपया प्रतीक्षा करें...", + "invalid-otp": "अमान्य ओटीपी", + "user-not-found": "उपयोगकर्ता नहीं मिला", + "enter-otp-alert": "कृपया ओटीपी दर्ज करें!", + "get-verification-code": "सत्यापन कोड प्राप्त करें", + "get-verification-code-2": "आपको ईमेल के माध्यम से एक सत्यापन कोड मिलेगा", + "enter-verification-code": "सत्यापन कोड दर्ज करें", + "provide-your-details": "अपना विवरण प्रदान करें", + "provide-email": "कृपया ईमेल प्रदान करें।", + "additional-info": "अतिरिक्त जानकारी", + "signature-saved-alert": "हस्ताक्षर सफलतापूर्वक सहेजा गया।", + "saved-successfully": "सफलतापूर्वक सहेजा गया।", + "fill-field": "कृपया इस फ़ील्ड को भरें", + "error-template": "त्रुटि: टेम्पलेट नहीं मिला!", + "error": "त्रुटि", + "invalid-document": "त्रुटi: अमान्य दस्तावेज़!", + "document-not-found": "दस्तावेज़ नहीं मिला!", + "document-signed-alert-1": "आपने दस्तावेज़ पर सफलतापूर्वक हस्ताक्षर कर दिए हैं। आप आंशिक रूप से हस्ताक्षरित दस्तावेज़ की एक प्रति डाउनलोड या प्रिंट कर सकते हैं। डिजिटल रूप से हस्ताक्षरित दस्तावेज़ और समापन प्रमाण पत्र की एक प्रति सभी हस्ताक्षरकर्ताओं द्वारा हस्ताक्षर किए जाने के बाद मालिक और सभी हस्ताक्षरकर्ताओं को ईमेल पर भेजी जाएगी।", + "encrypted-pdf-not-support": "वर्तमान में एन्क्रिप्टेड पीडीएफ फाइलें समर्थित नहीं हैं।", + "document-signed-alert-4": " बधाई हो! 🎉 इस दस्तावेज़ पर सभी प्रतिभागियों द्वारा सफलतापूर्वक हस्ताक्षर किए गए हैं!", + "document-signed-alert-5": "इस दस्तावेज़ पर सभी हस्ताक्षरकर्ताओं द्वारा हस्ताक्षर किए गए हैं।", + "document-signed-alert-6": "इस दस्तावेज़ को एक या अधिक प्राप्तकर्ताओं द्वारा अस्वीकार कर दिया गया है।", + "document-signed-alert-7": "यह दस्तावेज़ अब उपलब्ध नहीं है।", + "document-signed-alert-8": "दस्तावेज़ पर हस्ताक्षर के लिए पहले ही भेज दिया गया है।", + "yet-to-sign": "अभी हस्ताक्षर करना बाकी है", + "validation-alert-1": "इनपुट नियमित अभिव्यक्ति द्वारा निर्धारित मानदंडों को पूरा नहीं करता है।", + "account-already-exists": "खाता पहले से मौजूद है!", + "choose-password": "पासवर्ड चुनें", + "enter-password": "पासवर्ड दर्ज करें", + "sure": "निश्चित", + "subscribed-alert": "आपने पहले ही योजना की सदस्यता ले ली है!", + "monthly": "मासिक", + "yearly-upto": "वार्षिक (66% तक की छूट)", + "billed-yearly": "वार्षिक बिल किया गया", + "billed-monthly": "मासिक बिल किया गया", + "plansubscription-1": "इसे स्वयं निःशुल्क होस्ट करें", + "visit-github": "GitHub पर जाएं", + "user-already-exist-name": "इस उपयोगकर्ता नाम वाला उपयोगकर्ता पहले से मौजूद है!", + "do-not-access-contact-admin": "आपके पास पहुंच नहीं है, कृपया व्यवस्थापक से संपर्क करें।", + "filed-required-correctly": "कृपया आवश्यक विवरण सही ढंग से भरें।", + "admin-created": "व्यवस्थापक बनाया गया", + "invalid-masterkey": "अमान्य मास्टरकी", + "master-key": " मास्टर कुंजी", + "profile-update-alert": "प्रोफ़ाइल सफलतापूर्वक अपडेट की गई।", + "date": "दिनांक", + "report-not-found": "रिपोर्ट नहीं मिली", + "please-wait": "कृपया प्रतीक्षा करें", + "select-foler": "फ़ोल्डर चुनें", + "generated-on": "पर उत्पन्न", + "text-field": "पाठ क्षेत्र", + "font-size": "फ़ॉन्ट आकार", + "widget-status": { + "Required": "आवश्यक", + "Optional": "वैकल्पिक" + }, + "all-right": "सर्वाधिकार सुरक्षित", + "version": "संस्करण", + "social-media": { + "github": "GitHub", + "linked-in": "लिंक्डइन", + "twitter": "ट्विटर", + "discord": "डिस्कॉर्ड" + }, + "tour-mssg": { + "home-layout-1": "आप सफलतापूर्वक लॉग इन हो गए हैं! आइए एक नज़र डालते हैं।", + "home-layout-2": "स्व-हस्ताक्षर के लिए दस्तावेज़ अपलोड करने या दूसरों के हस्ताक्षर का अनुरोध करने के लिए, बस संबंधित बटन चुनें।", + "home-layout-3": "आप {{appName}} का उपयोग शुरू करने के लिए तैयार हैं! यदि आपको सहायता की आवश्यकता है तो हमसे संपर्क करने में संकोच न करें।", + "generate-token": "उत्पादन एपीआई टोकन उत्पन्न करने के लिए अभी अपग्रेड करें।", + "opensign-drive-1": "फ़ोल्डर पदानुक्रम के माध्यम से आसानी से नेविगेट करने और प्रत्येक फ़ोल्डर के भीतर दस्तावेज़ देखने के लिए ब्रेडक्रंब लिंक पर क्लिक करें।", + "opensign-drive-2": "नया फ़ोल्डर या दस्तावेज़ बनाने के लिए जोड़ें बटन पर क्लिक करें।", + "opensign-drive-3": "इस मेनू का उपयोग करके अपने दस्तावेज़ों को दिनांक या नाम के अनुसार क्रमबद्ध करें।", + "opensign-drive-4": "दस्तावेज़ों को सूची दृश्य में प्रदर्शित करने के लिए इस मेनू पर क्लिक करें।", + "opensign-drive-5": "दस्तावेज़ सूची चयनित सॉर्टिंग विकल्प के अनुसार प्रदर्शित होती है। प्रत्येक दस्तावेज़ के आगे के आइकन इसकी वर्तमान स्थिति दर्शाते हैं।", + "opensign-drive-6": "डाउनलोड, नाम बदलें, स्थानांतरित करें और हटाएं जैसे विकल्प देखने के लिए किसी दस्तावेज़ पर राइट-क्लिक करें। इसे खोलने के लिए दस्तावेज़ पर क्लिक करें।", + "opensign-drive-7": "विकल्प देखने के लिए किसी भी फ़ोल्डर पर राइट-क्लिक करें। फ़ोल्डर का नाम बदलने के लिए 'नाम बदलें' चुनें या इसकी सामग्री के माध्यम से नेविगेट करने के लिए फ़ोल्डर पर क्लिक करें।", + "pdf-request-file-1": "उन हस्ताक्षरकर्ताओं की सूची जिन्हें अभी भी दस्तावेज़ पर हस्ताक्षर करने की आवश्यकता है।", + "pdf-request-file-2": "हस्ताक्षर करने के लिए दस्तावेज़ पर दिखाई देने वाले किसी भी प्लेसहोल्डर पर क्लिक करें। फिर आपको अपना हस्ताक्षर खींचने, टाइप करने या एक छवि अपलोड करने के विकल्प दिखाई देंगे।", + "pdf-request-file-3": "अपने दस्तावेज़ को नेविगेट करने के लिए अस्वीकार करें, या समाप्त करें बटन पर क्लिक करें। डाउनलोड बटन सहित अतिरिक्त विकल्पों के लिए दीर्घवृत्त मेनू का उपयोग करें।", + "pdf-request-file-4": "उन हस्ताक्षरकर्ताओं की सूची जिन्होंने पहले ही दस्तावेज़ पर हस्ताक्षर कर दिए हैं।", + "pdf-request-file-5": "आप उन सभी स्थानों पर स्वचालित रूप से हस्ताक्षर करने के लिए 'सभी पर स्वतः हस्ताक्षर करें' पर क्लिक कर सकते हैं, जिन पर आपके द्वारा हस्ताक्षर किए जाने हैं। सुनिश्चित करें कि आप इस बटन पर क्लिक करने से पहले दस्तावेज़ की ठीक से समीक्षा कर लें।", + "pdf-request-file-6": "कृपया पृष्ठ संख्या {{pagenumbers}} पर फ़ील्ड पूरी करें, सभी आसान पहचान के लिए एक ही रंग में हाइलाइट किए गए हैं।", + "placeholder-sign-1": "एक प्लेस-होल्डर जोड़ने के लिए इस सूची से एक प्राप्तकर्ता का चयन करें जहां उसे हस्ताक्षर करना है। प्लेसहोल्डर दस्तावेज़ पर छोड़ने के बाद प्राप्तकर्ता के नाम के समान रंग में दिखाई देगा।", + "placeholder-sign-2": "'प्राप्तकर्ता जोड़ें' बटन पर क्लिक करने से आप अधिक हस्ताक्षरकर्ताओं को जोड़ सकेंगे।", + "placeholder-sign-3": "दस्तावेज़ में अधिक प्राप्तकर्ताओं/हस्ताक्षरकर्ताओं को जोड़ने के लिए इस बटन पर क्लिक करें।", + "placeholder-sign-4": "इसे दस्तावेज़ में जोड़ने के लिए किसी फ़ील्ड पर खींचें या क्लिक करें।", + "placeholder-sign-5": "पीडीएफ सामग्री क्षेत्र पहले से ही टेम्पलेट के मौजूदा प्लेसहोल्डर प्रदर्शित करता है। आपकी सुविधा के लिए, ये प्लेसहोल्डर प्राप्तकर्ता के नाम के रंग से मेल खाएंगे, जिससे उन्हें आसानी से पहचाना जा सकेगा।", + "placeholder-sign-6": "'अगला' पर क्लिक करने से दस्तावेज़ सहेजा जाएगा। अगले चरण में आप प्राप्तकर्ताओं को भेजे जाने वाले ईमेल को अनुकूलित कर सकते हैं या हस्ताक्षर लिंक कॉपी कर सकते हैं और उन्हें स्वयं प्राप्तकर्ताओं के साथ साझा कर सकते हैं।", + "report-1": "नया टेम्पलेट बनाने के लिए 'जोड़ें' बटन पर क्लिक करें। टेम्पलेट पुन: प्रयोज्य दस्तावेज़ हैं जिन्हें समान संरचना और अलग-अलग हस्ताक्षरकर्ताओं के साथ नए दस्तावेज़ों को शीघ्रता से उत्पन्न करने के लिए डिज़ाइन किया गया है। उदाहरण के लिए, ऑनबोर्डिंग के लिए एक मानव संसाधन टेम्पलेट में 'मानव संसाधन प्रबंधक' और 'नया कर्मचारी' जैसी पूर्वनिर्धारित भूमिकाएँ हो सकती हैं। हर बार जब आप टेम्पलेट का उपयोग करते हैं, तो आप विभिन्न आने वाले कर्मचारियों को 'नया कर्मचारी' भूमिका सौंप सकते हैं, जबकि 'मानव संसाधन प्रबंधक' भूमिका स्थिर रहती है, जिससे प्रत्येक भर्ती के लिए एक सहज ऑनबोर्डिंग प्रक्रिया सुविधाजनक होती है। ", + "redirect": "किसी मौजूदा टेम्पलेट से नया दस्तावेज़ बनाने के लिए 'उपयोग करें' बटन पर क्लिक करें।", + "bulksend": "केवल प्राप्तकर्ता ईमेल पते बनाकर किसी मौजूदा टेम्पलेट का उपयोग करके कई दस्तावेज़ों को शीघ्रता से भेजने के लिए, 'थोक भेजें' बटन पर क्लिक करें।", + "option": "यह मेनू संपादन और हटाएं जैसे अधिक विकल्प प्रकट करता है। हस्ताक्षरकर्ता भूमिकाएं जोड़ने, फ़ील्ड संशोधित करने और अपने टेम्पलेट को अपडेट करने के लिए 'संपादित करें' बटन का उपयोग करें। परिवर्तन इस टेम्पलेट से बनाए गए सभी भविष्य के दस्तावेज़ों पर लागू होंगे लेकिन मौजूदा दस्तावेज़ों को प्रभावित नहीं करेंगे। हटाएं बटन का उपयोग करके आप टेम्पलेट हटा सकते हैं। ", + "signyour-self-1": "हस्ताक्षर करने से पहले अपने दस्तावेज़ को अनुकूलित करने के लिए अपने पसंदीदा विजेट चुनें और उन्हें पीडीएफ पर खींचें। अपनी आवश्यकताओं के अनुसार दस्तावेज़ को अनुकूलित करने के लिए प्रत्येक संशोधन के लिए सही स्थान चुनें।", + "signyour-self-2": "इस क्षेत्र में कहीं भी खींचें और छोड़ें। आप इसे बाद में आकार बदल सकते हैं और स्थानांतरित कर सकते हैं।", + "template-placeholder-1": "'भूमिका जोड़ें' बटन पर क्लिक करने से आप विभिन्न हस्ताक्षरकर्ता भूमिकाएँ जोड़ सकेंगे। आप बाद के चरणों में प्रत्येक भूमिका में उपयोगकर्ताओं को संलग्न कर सकते हैं।", + "template-placeholder-2": "भूमिकाएँ जोड़ने के बाद, सूची से एक भूमिका चुनें ताकि एक प्लेस-होल्डर जोड़ा जा सके जहाँ उसे हस्ताक्षर करना है। प्लेसहोल्डर दस्तावेज़ पर छोड़ने के बाद भूमिका के नाम के समान रंग में दिखाई देगा।", + "template-placeholder-3": "इसे दस्तावेज़ में जोड़ने के लिए किसी फ़ील्ड पर खींचें या क्लिक करें।", + "template-placeholder-4": "किसी भूमिका के लिए प्लेसहोल्डर को दस्तावेज़ पर कहीं भी खींचें। याद रखें, यह आसान संदर्भ के लिए प्राप्तकर्ता के नाम के समान रंग में दिखाई देगा।", + "template-placeholder-5": "'अगला' पर क्लिक करने से वर्तमान टेम्पलेट संग्रहीत हो जाएगा। सहेजने के बाद, यदि आप चाहें तो इस टेम्पलेट से एक नया दस्तावेज़ बनाने के लिए आपको संकेत दिया जाएगा।", + "webhook-1": "वेबहूक सेट करने के लिए अभी अपग्रेड करें", + "Need your Signature": "इस कार्ड पर क्लिक करने से आप अपनी समीक्षा की प्रतीक्षा कर रहे दस्तावेज़ों की सूची पर पहुंच जाएंगे।", + "Out for signatures": "इस कार्ड पर क्लिक करने से आप हस्ताक्षर की प्रतीक्षा कर रहे दस्तावेज़ों की सूची पर पहुंच जाएंगे।", + "Recent signature requests": "यह उन दस्तावेज़ों की सूची है जो आपके हस्ताक्षर की प्रतीक्षा कर रहे हैं।", + "Recently sent for signatures": "यह उन दस्तावेज़ों की सूची है जिन्हें आपने हस्ताक्षर के लिए अन्य पक्षों को भेजा है।", + "Drafts": "ये वे दस्तावेज़ हैं जिन्हें आपने शुरू तो किया है लेकिन भेजने के लिए अंतिम रूप नहीं दिया है।", + "public-template": "यह वीडियो दर्शाता है कि आप अपना व्यक्तिगत सार्वजनिक प्रोफ़ाइल कैसे सेट अप कर सकते हैं, जैसे 'https://opensign.me/your-username'। आप यह भी सीखेंगे कि अपनी टैगलाइन को कैसे अनुकूलित करें और अपने टेम्पलेट्स को सार्वजनिक हस्ताक्षर के लिए उपलब्ध कराएं।", + "allowModify-widgets": "आप इन फ़ील्ड में से किसी को भी दस्तावेज़ पर खींच और छोड़ सकते हैं, इसके अतिरिक्त दस्तावेज़ निर्माता द्वारा आपके लिए पहले से निर्दिष्ट फ़ील्ड के। " + }, + "enter-email-plaholder": "एक ईमेल पता जोड़ें और एंटर दबाएं", + "success-email-alert": "ईमेल सफलतापूर्वक भेजा गया!", + "expired-doc-title": "समाप्त दस्तावेज़", + "expired-on-mssg": "यह दस्तावेज़ {{expiredDate}} को समाप्त हो गया है और अब हस्ताक्षर के लिए उपलब्ध नहीं है।", + "signature-validate-alert": "कृपया पुष्टि करें कि आपने कम से कम {{minRequiredCount}} चेकबॉक्स चुने हैं।", + "signature-validate-alert-2": "सुनिश्चित करें कि यह फ़ील्ड सटीक रूप से भरा गया है और सभी आवश्यकताओं को पूरा करता है।", + "remaing-users": "शेष उपयोगकर्ता", + "Role": "भूमिका", + "additional-users": "कृपया ऐड-ऑन उपयोगकर्ता खरीदें।", + "Quantity-of-users": "उपयोगकर्ताओं की मात्रा", + "Price": "मूल्य", + "Total-price-for-next-time": "अगली बार के लिए कुल मूल्य", + "Proceed": "आगे बढ़ें", + "Select": "चुनें", + "Add-seats": "सीटें जोड़ें", + "user-name-exist": "उपयोगकर्ता नाम पहले से मौजूद है", + "format": "प्रारूप", + "select-date-format": "एक दिनांक प्रारूप चुनें", + "quantity-of-credits": "प्रीमियम क्रेडिट की मात्रा", + "remaining-credits": "प्रीमियम क्रेडिट उपलब्ध:", + "remaining-credits-help": "अपनी वेबसाइट पर एपीआई दस्तावेज़ हस्ताक्षर, थोक भेजने या OpenSign एकीकरण को एम्बेड करने के लिए प्रीमियम क्रेडिट का उपयोग करें। आपके पास {{allowedcredits}} शामिल क्रेडिट और {{addoncredits}} अतिरिक्त खरीदे गए क्रेडिट शेष हैं।", + "additional-credits": "कृपया प्रीमियम क्रेडिट खरीदें", + "quota-err-quicksend": "कोटा पहुँच गया, आपके पास पर्याप्त क्रेडिट नहीं हैं।", + "buy-credits": "प्रीमियम क्रेडिट खरीदें", + "rotate-right": "दाईं ओर घुमाएँ", + "rotate-left": "बाईं ओर घुमाएँ", + "rotate-alert-mssg": "इस पृष्ठ पर सभी विजेट खो जाएंगे। क्या आप वाकई आगे बढ़ना चाहते हैं?", + "templateid": "टेम्पलेट-आईडी", + "bulk-send-subcription-alert": "थोक भेजने का उपयोग करने के लिए कृपया व्यावसायिक या टीम योजना में अपग्रेड करें।", + "generate-test-token": "परीक्षण टोकन उत्पन्न करें", + "regenerate-test-token": "परीक्षण टोकन पुनः उत्पन्न करें", + "help-test-token": "इस टोकन का उपयोग https://sandbox.opensignlabs.com/api/v1 समापन बिंदु पर एपीआई का परीक्षण करने के लिए किया जा सकता है, जिससे आप असीमित दस्तावेज़ हस्ताक्षर कर सकते हैं। कृपया ध्यान दें कि सैंडबॉक्स एपीआई आपके दस्तावेज़ों पर स्व-हस्ताक्षरित प्रमाणपत्रों के साथ हस्ताक्षर करेगा, जिन्हें एडोब द्वारा मान्य के रूप में मान्यता नहीं दी जा सकती है। एक बार जब आप अपना परीक्षण पूरा कर लेते हैं, तो आप उत्पादन टोकन उत्पन्न करने के लिए हमारी किसी भुगतान योजना में अपग्रेड कर सकते हैं।", + "help-api-token": "इस टोकन का उपयोग {{origin}}/api/v1 समापन बिंदु पर उत्पादन एपीआई तक पहुंचने के लिए किया जा सकता है। यह केवल हमारी किसी भुगतान योजना पर उत्पन्न किया जा सकता है।", + "reason": "कारण", + "decline-by": "द्वारा अस्वीकृत/रद्द किया गया", + "document-declined": "दस्तावेज़ अस्वीकृत", + "public-template-mssg-1": "OpenSign को अपने React या Next.js प्रोजेक्ट में एकीकृत करने के लिए, बस निम्नलिखित कमांड चलाएँ:", + "public-template-mssg-2": "सुनिश्चित करें कि आपके प्रोजेक्ट में npm या yarn सेटअप है। यदि आप Yarn का उपयोग कर रहे हैं, तो आप npm install को yarn add @opensign/react से बदल सकते हैं।", + "public-template-mssg-3": "अधिक विवरण या उदाहरण चाहिए?", + "public-template-mssg-4": "नवीनतम अपडेट, विस्तृत दस्तावेज़ीकरण और संस्करण इतिहास के लिए ", + "public-template-mssg-5": " npm पर जाएं।", + "public-template-mssg-6": "इस कोड स्निपेट का उपयोग करने से पहले, आपको इस टेम्पलेट को सार्वजनिक करना होगा।", + "public-template-mssg-7": "सार्वजनिक लिंक उत्पन्न करने से पहले आपको इस टेम्पलेट को सार्वजनिक करना होगा।", + "here": "यहां", + "copy-code": "कॉपी करें", + "copied-code": "कॉपी किया गया", + "Installation": "इंस्टॉलेशन", + "Usage": "उपयोग", + "insufficient-credits": "अपर्याप्त हस्ताक्षर क्रेडिट", + "insufficient-credits-mssg": "इस दस्तावेज़ के स्वामी के पास वर्तमान में आपके हस्ताक्षर करने के लिए आवश्यक OpenSign क्रेडिट की कमी है। यदि आपको अधिक विवरण चाहिए तो कृपया स्वामी से संपर्क करें।", + "angular-npm-mssg-1": "OpenSign को अपने Angular प्रोजेक्ट में एकीकृत करने के लिए, बस निम्नलिखित कमांड चलाएँ:", + "quota-mail-info-head": "मासिक ईमेल सीमा", + "quota-mail-info": "सेवा की गुणवत्ता बनाए रखने और स्पैम को रोकने के लिए, OpenSign निःशुल्क योजना पर प्रति माह 15 ईमेल तक की अनुमति देता है। असीमित ईमेल भेजने के लिए अभी अपग्रेड करें।", + "quota-mail-reset": "आपके हस्ताक्षर अनुरोध ईमेल क्रेडिट इस पर रीसेट हो जाएंगे", + "quota-mail": "आपने इस महीने के लिए 15 हस्ताक्षर अनुरोध ईमेल की अपनी सीमा पूरी कर ली है। सीधे ईमेल भेजना जारी रखने के लिए अभी अपग्रेड करें।", + "quota-mail-tip": "सुझाव: आप अभी भी हस्ताक्षर अनुरोध लिंक को मैन्युअल रूप से साझा करके <1>असीमित दस्तावेज़ों1> पर हस्ताक्षर कर सकते हैं।", + "quota-mail-head": "कोटा पहुँच गया", + "unauthorized-modal": "आपको यह कार्रवाई करने की अनुमति नहीं है, कृपया {{adminEmail}} से संपर्क करें।", + "sent-this-month": "इस महीने भेजा गया", + "available-seats": "उपलब्ध सीटें", + "buy-users": "अधिक उपयोगकर्ता खरीदें", + "isenable-otp": "ओटीपी सत्यापन सक्षम करें", + "isenable-otp-help": { + "p1": "क्या आप वन-टाइम पासवर्ड (ओटीपी) का उपयोग करके सत्यापन प्रक्रिया को सक्षम करना चाहेंगे?", + "p2": "इस विकल्प का चयन करने पर ओटीपी सत्यापन सक्षम हो जाएगा। उपयोगकर्ताओं को ईमेल के माध्यम से एक सत्यापन कोड प्राप्त होगा, जिसे उन्हें दस्तावेज़ पर हस्ताक्षर करने के लिए दर्ज करना होगा।", + "p3": "इस विकल्प का चयन करने पर ओटीपी सत्यापन अक्षम हो जाएगा, जिससे उपयोगकर्ता अतिरिक्त चरणों के बिना सीधे दस्तावेज़ पर हस्ताक्षर कर सकेंगे।", + "p4": "कृपया वह विकल्प चुनें जो आपके दस्तावेज़ हस्ताक्षर आवश्यकताओं के लिए सबसे उपयुक्त हो।" + }, + "advanced-options": "उन्नत विकल्प", + "hide-advanced-options": "उन्नत विकल्प छिपाएँ", + "download-files": "फ़ाइलें डाउनलोड करें", + "download-pdf": "पीडीएफ डाउनलोड करें", + "pdf-certificate": "पीडीएफ + प्रमाण पत्र डाउनलोड करें", + "document-logs": "दस्तावेज़ लॉग", + "server-down": "{{appName}} सर्वर से कनेक्ट करने में असमर्थ। यदि आप {{appName}} को स्वयं होस्ट कर रहे हैं, तो कृपया सुनिश्चित करें कि दस्तावेज़ीकरण में सभी चरणों का सही ढंग से पालन किया गया है। यदि आप {{appName}} को स्थानीय रूप से चला रहे हैं, तो आप इसे गलत पोर्ट नंबर के माध्यम से एक्सेस कर रहे होंगे।", + "admin-exists": "व्यवस्थापक पहले से मौजूद है। उपयोगकर्ताओं को प्रबंधित करने के लिए कृपया व्यवस्थापक क्रेडेंशियल का उपयोग करके एप्लिकेशन में लॉगिन करें।", + "enable-tour": "टूर सक्षम करें", + "istourenabled-help": { + "p1": "यह हस्ताक्षरकर्ताओं के लिए एक निर्देशित टूर सक्षम करेगा, जो हस्ताक्षर प्रक्रिया के दौरान निर्देश प्रदान करेगा।", + "p2": "यह निर्देशित टूर को अक्षम कर देगा, जिससे एक तेज़, निर्बाध हस्ताक्षर अनुभव सुनिश्चित होगा।", + "p3": "सुझाव: यदि आपके हस्ताक्षरकर्ता {{appName}} से परिचित हैं और इसका अक्सर उपयोग करते हैं, तो आप एक अधिक सहज अनुभव के लिए निर्देशित टूर को अक्षम करना चाह सकते हैं। वह विकल्प चुनें जो आपके दस्तावेज़ हस्ताक्षर आवश्यकताओं के लिए सबसे उपयुक्त हो।" + }, + "form-title-1": "दस्तावेज़ प्रवाह सेटिंग", + "form-title-2": "सुरक्षा सेटिंग्स", + "public-tour-message": "साझा करने योग्य लिंक उत्पन्न करने से पहले टेम्पलेट को सार्वजनिक होना चाहिए।", + "add-user-template": "इसके लिए फ़ील्ड जोड़ने से पहले आपको एक भूमिका जोड़ने की आवश्यकता है।", + "pdf-uncompatible": "यह पीडीएफ संगत नहीं है, कृपया {{appName}} से संपर्क करें", + "text-field-tour": "दस्तावेज़ भेजे जाने से पहले 'टेक्स्ट' प्रकार के फ़ील्ड पहले से भरे जाने चाहिए। यदि आपको हस्ताक्षरकर्ताओं से इनपुट प्रदान करने की आवश्यकता है, तो इसके बजाय 'टेक्स्ट इनपुट' फ़ील्ड का उपयोग करें।", + "attach-signer-tour": "आपको प्रत्येक भूमिका में एक हस्ताक्षरकर्ता संलग्न करने की आवश्यकता है। आप इस आइकन पर क्लिक करके ऐसा कर सकते हैं। एक बार जब आप एक हस्ताक्षरकर्ता का चयन कर लेते हैं तो यह उस भूमिका से जुड़े सभी फ़ील्ड से जुड़ जाएगा जो एक ही रंग में दिखाई देते हैं।", + "allowed-signature-types": "अनुमत हस्ताक्षर प्रकार", + "at-least-one-signature-type": "कम से कम एक हस्ताक्षर प्रकार सक्षम होना चाहिए।", + "expect-default-one-signature-type": "कृपया डिफ़ॉल्ट के अलावा एक अतिरिक्त हस्ताक्षर प्रकार सक्षम करें।", + "add-signer-note": "ध्यान दें - यह संपर्क आपके संपर्कों में सहेजा जाएगा", + "allowed-signature-types-help": { + "p1": "यह हस्ताक्षर वरीयता नियंत्रित करती है कि आपके हस्ताक्षरकर्ताओं के लिए कौन से हस्ताक्षर विकल्प उपलब्ध हैं। केवल आपके द्वारा चुने गए हस्ताक्षर प्रकार ही दस्तावेज़ पर हस्ताक्षर करते समय हस्ताक्षर विजेट में दिखाई देंगे। उदाहरण के लिए, यदि आप वरीयताओं में केवल 'ड्रा' विकल्प चुनते हैं, तो आपका हस्ताक्षरकर्ता हस्ताक्षर विजेट में केवल 'ड्रा' विकल्प देखेगा, जबकि अन्य तीन विकल्प उपलब्ध नहीं होंगे।", + "l1": "अपनी उंगली या स्टाइलस का उपयोग करके सीधे स्क्रीन पर एक हस्तलिखित हस्ताक्षर बनाएं।", + "l2": "अपना नाम दर्ज करें और हस्ताक्षर बनाने के लिए विभिन्न फ़ॉन्ट शैलियों में से चुनें।", + "l3": "अपने हस्ताक्षर का मौजूदा डिजिटल संस्करण अपलोड करें।", + "l4": "अपनी सेटिंग्स में 'मेरा हस्ताक्षर' के अंतर्गत सहेजी गई एक पूर्व-निर्धारित हस्ताक्षर शैली का उपयोग करें।" + }, + "notify-on-signatures": "हस्ताक्षर पर सूचित करें", + "notify-on-signatures-help": { + "p1": "दस्तावेज़ निर्माता को हर बार एक हस्ताक्षरकर्ता द्वारा दस्तावेज़ पर हस्ताक्षर करने पर एक ईमेल सूचना प्राप्त होगी।", + "note": "ध्यान दें: इस सेटिंग के बावजूद, हस्ताक्षरित दस्तावेज़ और संलग्न समापन प्रमाण पत्र के साथ एक समापन ईमेल हमेशा सभी हस्ताक्षरकर्ताओं और दस्तावेज़ स्वामी को भेजा जाता है।" + }, + "expiry-date": "समाप्ति तिथि", + "expiry-date-updated": "समाप्ति तिथि सफलतापूर्वक {{newexpirydate}} तक बढ़ा दी गई है", + "expiry-date-error": "कृपया वर्तमान से बाद की एक नई समाप्ति तिथि प्रदान करें", + "duplicate-template-alert": "क्या आप वाकई इस टेम्पलेट का डुप्लिकेट बनाना चाहते हैं?", + "duplicate-template-created": "डुप्लिकेट टेम्पलेट सफलतापूर्वक बनाया गया।", + "delete-page": "पृष्ठ हटाएं", + "merge-pdf": "पीडीएफ मर्ज करें", + "add-pages": "पृष्ठ जोड़ें", + "delete-alert": "एकल पृष्ठ नहीं हटाया जा सकता", + "delete-alert-2": "क्या आप वाकई इस पृष्ठ को हटाना चाहते हैं?", + "delete-note": "ध्यान दें: एक बार जब आप इस पृष्ठ को हटा देते हैं, तो आप इसे पूर्ववत नहीं कर सकते।", + "Rotation-alert": "पृष्ठ घुमाएँ", + "bulk-import": "थोक आयात", + "contacts-file": "संपर्क फ़ाइल (xlsx, csv)", + "100-records-only": "वर्तमान में आप केवल 100 रिकॉर्ड तक आयात कर सकते हैं।", + "csv-excel-support-only": "निम्नलिखित प्रारूपों में से किसी एक में फ़ाइल अपलोड करें: CSV, XLSX या XLS।", + "contact-imported": "{{imported}} संपर्क आयात किए गए। {{failed}} संपर्क आयात करने में विफल रहे।", + "invalid-data": "अमान्य डेटा", + "delete-folder-alert": "क्या आप वाकई इस फ़ोल्डर को हटाना चाहते हैं?", + "delete-folder-alert-1": "हटाने में असमर्थ: फ़ोल्डर खाली होना चाहिए।", + "defaultSign-alert": "{{widgetsType}} विजेट स्वतः हस्ताक्षर के लिए उपलब्ध नहीं हैं।", + "embed-heading": "{{appName}} टेम्पलेट एम्बेड करें", + "public-template-edit-title": "सार्वजनिक टेम्पलेट संपादित करें", + "public-template-edit-mssg": "आप सीधे सार्वजनिक टेम्पलेट संपादित नहीं कर सकते। परिवर्तन करने के लिए, टेम्पलेट को निजी पर सेट किया जाएगा, और आपको बाद में इसे फिर से सार्वजनिक करना होगा। क्या आप जारी रखना चाहते हैं?", + "agree-p1": "मैं पुष्टि करता हूं कि मैंने पढ़ लिया है और समझ लिया है ", + "agree-p2": "इलेक्ट्रॉनिक रिकॉर्ड और हस्ताक्षर प्रकटीकरण", + "agree-p3": "और इलेक्ट्रॉनिक रिकॉर्ड और हस्ताक्षर का उपयोग करने के लिए सहमति।", + "agrre-button": " सहमत हूँ और जारी रखें", + "term-cond-title": "नियम और शर्तें", + "term-cond-h": "इलेक्ट्रॉनिक रिकॉर्ड और हस्ताक्षर प्रकटीकरण", + "term-cond-p1": "यह इलेक्ट्रॉनिक रिकॉर्ड और हस्ताक्षर प्रकटीकरण ('प्रकटीकरण') दस्तावेज़ निर्माता ('प्रेषक') और हस्ताक्षरकर्ता ('आप') के बीच एक समझौता है, जिसे {{appName}} प्लेटफ़ॉर्म ('प्लेटफ़ॉर्म') के माध्यम से सुगम बनाया गया है। {{appName}} के माध्यम से दस्तावेज़ों पर हस्ताक्षर करके, आप इस प्रकटीकरण में उल्लिखित शर्तों से सहमत होते हैं। कृपया आगे बढ़ने से पहले इसे ध्यान से पढ़ें।", + "term-cond-h1": "1. उद्देश्य और दायरा", + "term-cond-p2": "यह प्रकटीकरण प्रेषक द्वारा भेजे गए और आपके द्वारा {{appName}} प्लेटफ़ॉर्म के माध्यम से हस्ताक्षरित दस्तावेज़ों के लिए इलेक्ट्रॉनिक रिकॉर्ड और हस्ताक्षर के उपयोग को नियंत्रित करता है। सहमत होकर, आप स्वीकार करते हैं कि:", + "term-cond-p3": "आप {{appName}} के माध्यम से इलेक्ट्रॉनिक रूप से दस्तावेज़ प्राप्त करेंगे और उन पर हस्ताक्षर करेंगे।", + "term-cond-p4": "आपका इलेक्ट्रॉनिक हस्ताक्षर कानूनी रूप से बाध्यकारी है और हस्तलिखित हस्ताक्षर के बराबर है।", + "term-cond-h2": "2. इलेक्ट्रॉनिक रिकॉर्ड और हस्ताक्षर का उपयोग करने की सहमति", + "term-cond-p5": "इस प्रकटीकरण से सहमत होकर:", + "term-cond-p6": "आप {{appName}} का उपयोग करके प्रेषक के साथ इलेक्ट्रॉनिक रूप से लेनदेन करने के लिए सहमति देते हैं और समझते हैं कि यह सहमति वापस लेने तक मान्य है।", + "term-cond-p7": "आप {{appName}} का उपयोग करके इलेक्ट्रॉनिक रूप से दस्तावेज़ों की समीक्षा करने, उन पर हस्ताक्षर करने और उन्हें वापस करने के लिए सहमत हैं।", + "term-cond-p8": "यह सहमति केवल प्रेषक द्वारा प्रदान किए गए विशिष्ट दस्तावेज़ (दस्तावेजों) पर लागू होती है।", + "term-cond-h3": "3. सहमति वापस लेने का अधिकार", + "term-cond-p9": "आपको इलेक्ट्रॉनिक रिकॉर्ड और हस्ताक्षर का उपयोग करने की अपनी सहमति वापस लेने का अधिकार है:", + "term-cond-p10": "प्रेषक से सीधे उनके संचार में प्रदान की गई संपर्क जानकारी का उपयोग करके संपर्क करना।", + "term-cond-p11": "हस्ताक्षर प्रक्रिया को पूरा करने से पहले प्रेषक को सूचित करना।", + "term-cond-h4": "4. हार्डवेयर और सॉफ्टवेयर आवश्यकताएँ", + "term-cond-p12": "{{appName}} का उपयोग करके दस्तावेज़ों पर हस्ताक्षर करने के लिए, आपके पास होना चाहिए:", + "term-cond-p13": "इंटरनेट एक्सेस वाला एक उपकरण।", + "term-cond-p14": "जावास्क्रिप्ट सक्षम वाला एक संगत वेब ब्राउज़र।", + "term-cond-p15": "सूचनाएं और हस्ताक्षरित दस्तावेज़ प्राप्त करने के लिए एक ईमेल खाता।", + "term-cond-p16": "यदि ये आवश्यकताएं बदलती हैं, तो प्रेषक या {{appName}} आपको अपडेट के बारे में सूचित करेंगे।", + "term-cond-h5": "5. रिकॉर्ड का प्रतिधारण और कागजी प्रतियों का अनुरोध", + "term-cond-p17": "आप यह सुनिश्चित करने के लिए ज़िम्मेदार हैं कि आप इलेक्ट्रॉनिक रूप से हस्ताक्षरित दस्तावेज़ (दस्तावेजों) तक पहुँच सकते हैं और उन्हें बनाए रख सकते हैं। {{appName}} हस्ताक्षर प्रक्रिया पूरी होने के तुरंत बाद हस्ताक्षरित दस्तावेज़ को डाउनलोड या प्रिंट करने के लिए उपकरण प्रदान करता है।", + "term-cond-p18": "यदि आप किसी भी इलेक्ट्रॉनिक रूप से हस्ताक्षरित दस्तावेज़ की कागजी प्रति पसंद करते हैं, तो आप इसे सीधे प्रेषक से अनुरोध कर सकते हैं। प्रेषक लागू कानून द्वारा निषिद्ध होने तक कागजी प्रतियां प्रदान करने के लिए उचित शुल्क ले सकता है।", + "term-cond-h6": "6. पावती और समझौता", + "term-cond-p19": "आगे बढ़कर, आप:", + "term-cond-p20": "पुष्टि करें कि आप इस प्रकटीकरण में वर्णित इलेक्ट्रॉनिक दस्तावेज़ों तक पहुँच सकते हैं और उनकी समीक्षा कर सकते हैं।", + "term-cond-p21": "प्रेषक के साथ निर्दिष्ट लेनदेन (लेनदेनों) के लिए इलेक्ट्रॉनिक रिकॉर्ड और हस्ताक्षर का उपयोग करने के लिए सहमत हैं।", + "term-cond-p22": "समझें कि {{appName}} लेनदेन को सुगम बनाने वाला एक प्लेटफ़ॉर्म है और समझौते का पक्षकार नहीं है।", + "term-cond-h7": "7. कानूनी प्रभाव", + "term-cond-p23": "{{appName}} के माध्यम से सुगम बनाया गया आपका इलेक्ट्रॉनिक हस्ताक्षर:", + "term-cond-p24": "संयुक्त राज्य अमेरिका में ई-साइन अधिनियम, यूरोपीय संघ के eIDAS विनियमन और भारत के सूचना प्रौद्योगिकी अधिनियम सहित लागू इलेक्ट्रॉनिक हस्ताक्षर कानूनों का अनुपालन करता है।", + "term-cond-p25": "हस्ताक्षरित दस्तावेज़ (दस्तावेजों) के लिए आपके और प्रेषक के बीच कानूनी रूप से बाध्यकारी है।", + "term-cond-h8": "8. प्लेटफ़ॉर्म भूमिका और देयता की सीमा", + "term-cond-p26": "{{appName}} इलेक्ट्रॉनिक लेनदेन को सुगम बनाने के लिए एक प्लेटफ़ॉर्म के रूप में कार्य करता है। यह प्रेषक द्वारा भेजे गए दस्तावेज़ों की सामग्री, वैधता या प्रवर्तनीयता के लिए ज़िम्मेदार नहीं है। दस्तावेज़ या उसके हस्ताक्षर से संबंधित कोई भी विवाद या समस्या सीधे आपके और प्रेषक के बीच हल की जानी चाहिए।", + "term-cond-h9": "9. समझौते की समाप्ति", + "term-cond-p27": "आपकी सहमति केवल वर्तमान लेनदेन पर लागू होती है जब तक कि प्रेषक द्वारा अन्यथा निर्दिष्ट न किया जाए। {{appName}} अपनी सेवा की शर्तों या नीतियों के उल्लंघन के लिए अपने प्लेटफ़ॉर्म तक पहुंच समाप्त करने का अधिकार सुरक्षित रखता है।", + "term-cond-p28": "'मैं सहमत हूँ' का चयन करके, आप पुष्टि करते हैं कि आप इस इलेक्ट्रॉनिक रिकॉर्ड और हस्ताक्षर प्रकटीकरण की शर्तों को समझते हैं और उनसे सहमत हैं और {{appName}} के माध्यम से प्रेषक द्वारा प्रदान किए गए दस्तावेज़ (दस्तावेजों) पर इलेक्ट्रॉनिक रूप से हस्ताक्षर करने के लिए सहमति देते हैं।", + "term-cond-p29": "यदि इस प्रकटीकरण के बारे में आपके कोई प्रश्न हैं, तो सीधे प्रेषक से संपर्क करें। {{appName}} के साथ तकनीकी सहायता के लिए, पर जाएं ", + "term-cond-p30": " या ईमेल करें", + "js-snippet-msg": "{{appName}} टेम्पलेट्स को अपनी HTML वेबसाइटों या लैंडिंग पृष्ठों में एकीकृत करने के लिए, आप नीचे दिए गए कोड का उपयोग कर सकते हैं:", + "js-snippet-msg-1": "आप टेम्पलेट आईडी इससे प्राप्त कर सकते हैं", + "js-snippet-msg-2": "टेम्पलेट प्रबंधित करें", + "js-snippet-msg-3": "पृष्ठ।", + "agrrement-alert": "आगे बढ़ने के लिए, आपको इलेक्ट्रॉनिक रिकॉर्ड और हस्ताक्षर प्रकटीकरण के लिए सहमति देनी होगी।", + "webhook-already-exists": "URL पहले से मौजूद है! कृपया कोई दूसरा प्रयास करें।", + "webhook-must-be-secure": "वेबहूक URL सुरक्षित होना चाहिए और https:// का उपयोग करना चाहिए", + "provide-test-token": "कृपया एपीआई परीक्षण टोकन उत्पन्न करें", + "invalid-redirect-url": "कृपया मान्य रीडायरेक्ट यूआरएल प्रदान करें।", + "auto-sign-mssg": "सभी पर स्वतः हस्ताक्षर करें", + "already-exist-signer": "चयनित हस्ताक्षरकर्ता पहले से मौजूद है", + "change-signer": "हस्ताक्षरकर्ता बदलें", + "signyour-self-button": "दूसरों को जोड़े बिना दस्तावेज़ पर स्वयं हस्ताक्षर करने के लिए इस विकल्प का उपयोग करें", + "requestsign-button": "दूसरों और स्वयं से एक साथ हस्ताक्षर का अनुरोध करने के लिए इस विकल्प का उपयोग करें।", + "signyour-self-description": "दूसरों को जोड़े बिना दस्तावेज़ पर स्वयं हस्ताक्षर करने के लिए इस फ़ॉर्म का उपयोग करें", + "requestsign-description": "दूसरों और स्वयं से एक साथ हस्ताक्षर का अनुरोध करने के लिए इस फ़ॉर्म का उपयोग करें।", + "template-form-description": "अपने दस्तावेज़ों के लिए पुन: प्रयोज्य टेम्पलेट बनाने के लिए इस फ़ॉर्म का उपयोग करें।", + "allow-modify": " संशोधनों की अनुमति दें", + "allow-modify-help": { + "p1": "क्या आप हस्ताक्षर प्रक्रिया के दौरान दस्तावेज़ में संशोधनों की अनुमति देना चाहते हैं?", + "p2": "इस विकल्प का चयन करने से हस्ताक्षरकर्ताओं को मौजूदा विजेट्स के शीर्ष पर हस्ताक्षर, आद्याक्षर, मोहर या पाठ जैसे अतिरिक्त तत्व जोड़ने की अनुमति मिलती है।", + "p3": "इस विकल्प का चयन करने से हस्ताक्षरकर्ताओं को हस्ताक्षर प्रक्रिया के दौरान दस्तावेज़ में कोई भी সংযোজন करने से प्रतिबंधित किया जाता है।" + }, + "signature-setting": "हस्ताक्षर सेटिंग्स", + "activation-key": "सक्रियण कुंजी", + "paid-selfhost-help": "अधिक जानकारी के लिए कृपया {{appName}} से संपर्क करें ", + "remaining-credits-selfhost-help": "अपनी वेबसाइट पर एपीआई दस्तावेज़ हस्ताक्षर, थोक भेजने {{appName}} एकीकरण के लिए प्रीमियम क्रेडिट का उपयोग करें। आपके पास {{allowedcredits}} शामिल क्रेडिट और {{addoncredits}} अतिरिक्त खरीदे गए क्रेडिट शेष हैं।", + "signature-type": "आपका हस्ताक्षर", + "initial-type": "आपके आद्याक्षर", + "redirect-url": "रीडायरेक्ट यूआरएल", + "bulk-send": "थोक भेजें", + "select-timezone": "समय क्षेत्र", + "current-time": "वर्तमान समय", + "email-help": "सुरक्षा कारणों से आपको ईमेल पता बदलने की अनुमति नहीं है। कृपया नए ईमेल पते का उपयोग करके एक और निःशुल्क खाता बनाएं।", + "doc-sent": "दस्तावेज़ सफलतापूर्वक भेजा गया।", + "no-signer": "हटाएं", + "and": "और", + "make-public": "सार्वजनिक करें", + "general": "सामान्य", + "request-email": "ईमेल का अनुरोध करें", + "completion-email": "समापन ईमेल", + "variables-use": "उपयोग करने के लिए चर", + "send-to-sign": "ने आपसे हस्ताक्षर करने का अनुरोध किया है", + "use-template": "टेम्पलेट का उपयोग करें", + "contact-already-exists": "संपर्क पहले से मौजूद है।", + "docx-error": "हम वर्तमान में DOCX फ़ाइलों को संसाधित करने में कुछ समस्याओं का सामना कर रहे हैं। कृपया PDF फ़ाइल अपलोड करें", + "docx-error-contact": "या support@opensignlabs.com पर हमसे संपर्क करें", + "agreement-note": "ध्यान दें: इससे सहमत होने का मतलब यह नहीं है कि आप तुरंत दस्तावेज़ पर हस्ताक्षर कर रहे हैं। यह आपको केवल दस्तावेज़ की इलेक्ट्रॉनिक रूप से समीक्षा करने की अनुमति देता है। आपके पास इसे पूरा पढ़ने और बाद में हस्ताक्षर करने का निर्णय लेने का अवसर होगा।", + "draft-template-info-p1": "अपने टेम्पलेट को सार्वजनिक करने के लिए, इसमें या तो एक ही भूमिका होनी चाहिए, या, यदि इसमें कई भूमिकाएँ शामिल हैं, तो सभी अतिरिक्त भूमिकाएँ पहले से ही हस्ताक्षरकर्ताओं को सौंपी जानी चाहिए। असाइन न की गई सार्वजनिक भूमिका खाली रहनी चाहिए और उसे पहले स्थान पर रखा जाना चाहिए।", + "visit-below-link": "अधिक जानने के लिए नीचे दिए गए लिंक पर जाएं -", + "storage-help": "BYOC सक्षम करने से आप अपना स्वयं का S3 संग्रहण कनेक्ट कर सकते हैं ताकि आपकी फ़ाइलें पूरी तरह से आपके नियंत्रण में रहें - कोई बाहरी प्रतियां बरकरार न रहें। यदि डेटा स्वायत्तता आपके लिए मायने रखती है, तो इस सुविधा को अनलॉक करने के लिए टीमों में अपग्रेड करने पर विचार करें।", + "daily-quota-reached": "आपने अपना दैनिक कोटा पूरा कर लिया है। सहायता के लिए, कृपया quotas@opensignlabs.com पर संपर्क करें।", + "enabled-signature-type": "सक्षम हस्ताक्षर प्रकार", + "enabled-signature-type-help": "'सक्षम हस्ताक्षर प्रकार' सेटिंग यह निर्धारित करती है कि आपके संगठन में कौन से हस्ताक्षर विकल्प उपलब्ध हैं। उदाहरण के लिए, यदि आप 'ड्रा' विकल्प को अक्षम करते हैं, तो आपके संगठन के सदस्य इसे हस्ताक्षर विजेट में नहीं देख पाएंगे, जबकि अन्य तीन विकल्प पहुंच योग्य रहेंगे।", + "indexing-public-profile": "खोज इंजन द्वारा सार्वजनिक प्रोफ़ाइल को अनुक्रमित करने की अनुमति दें", + "user-created-successfully": "उपयोगकर्ता सफलतापूर्वक बनाया गया।", + "only-15-reminder-allowed": "आप 15 तक स्वचालित अनुस्मारक सेट कर सकते हैं। उदाहरण के लिए, यदि 'TimeToComplete' 15 दिन है और 'RemindOnceInEvery' 1 दिन है, तो आप 15 अनुस्मारक की अधिकतम सीमा तक पहुंच जाएंगे। अपनी सेटिंग्स को तदनुसार समायोजित करें।", + "rate-your-experience": "{{appName}} के साथ आपका अनुभव कैसा रहा?", + "thanks-for-feedback": "आपकी प्रतिक्रिया के लिए धन्यवाद 🙏", + "share-your-feedback": "अपनी प्रतिक्रिया साझा करें", + "share-your-review": "अपनी समीक्षा साझा करें", + "date-format": "दिनांक प्रारूप", + "document-deleted": "दस्तावेज़ हटा दिया गया है या आपके पास पहुंच नहीं है। कृपया प्रेषक से संपर्क करें।", + "save-as-template-?": "क्या आप वाकई इस दस्तावेज़ को टेम्पलेट के रूप में सहेजना चाहते हैं?", + "go-to-manage-templates": "'टेम्पलेट प्रबंधित करें' पर जाएं", + "template-created": "टेम्पलेट बनाया गया", + "how-would-you-like-to-proceed?": "आप कैसे आगे बढ़ना चाहेंगे?", + "failed-to-load-refresh-page": "दस्तावेज़ लोड करने में विफल। कृपया इस पृष्ठ को रीफ्रेश करने का प्रयास करें।", + "document-has-been-signed": "दस्तावेज़ पर सफलतापूर्वक हस्ताक्षर किए गए हैं!", + "document-has-been-signed-by-you": "आपके द्वारा दस्तावेज़ पर सफलतापूर्वक हस्ताक्षर किए गए हैं!", + "participant-completed-signing": "सभी प्रतिभागियों ने हस्ताक्षर प्रक्रिया पूरी कर ली है।", + "you-will-receive-email-shortly": "✅ बस! आपको शीघ्र ही एक पुष्टिकरण ईमेल प्राप्त होगा।", + "please-provide-templateid": "कृपया टेम्पलेट आईडी प्रदान करें", + "this-template-is-not-public": "यह टेम्पलेट सार्वजनिक नहीं है", + "invalid-templateid": "अमान्य टेम्पलेट आईडी", + "contact-billing-at-opensign": "अधिक सीटें जोड़ने के लिए, कृपया सहायता के लिए <1>billing@opensignlabs.com1> पर OpenSign™ से संपर्क करें", + "title-length-alert": "शीर्षक अधिकतम 250 वर्ण लंबा होना चाहिए।", + "note-length-alert": "टिप्पणी अधिकतम 200 वर्ण लंबी होनी चाहिए।", + "description-length-alert": "विवरण अधिकतम 500 वर्ण लंबा होना चाहिए।", + "fix-&-resend-document": "दस्तावेज़ ठीक करें और पुनः भेजें", + "do-you-want-recreate-document?": "यह इस दस्तावेज़ से सभी फ़ील्ड बरकरार रखते हुए एक ड्राफ्ट बनाएगा। क्या आप वाकई इस दस्तावेज़ को फिर से बनाना चाहते हैं?", + "start-editing": "संपादन शुरू करें", + "unsaved-changes-discard-them?": "आपके पास सहेजे न गए परिवर्तन हैं। उन्हें छोड़ दें?", + "yes-discard": "हाँ, छोड़ दें", + "LTV-enabled-signatures": "LTV सक्षम हस्ताक्षर", + "BETA": "बीटा", + "two-factor-authentication": "टू-फैक्टर ऑथेंटिकेशन", + "2fa-help-text": "टू-फैक्टर ऑथेंटिकेशन आपके खाते में सुरक्षा की एक अतिरिक्त परत जोड़ता है, जिसके लिए साइन इन करने के लिए केवल पासवर्ड से अधिक की आवश्यकता होती है।", + "2fa-help-bullet1": "आपके पासवर्ड और सत्यापन कोड दोनों की आवश्यकता होने से सुरक्षा बढ़ाता है।", + "2fa-help-bullet2": "सत्यापन कोड आपके डिवाइस पर एक ऑथेंटिकेटर ऐप द्वारा उत्पन्न होता है।", + "2fa-help-bullet3": "आपका पासवर्ड चोरी हो जाने पर भी आपके खाते की सुरक्षा करता है।", + "setup-2fa": "2FA सेटअप करें", + "setup-2fa-again": "2FA फिर से सेटअप करें", + "2fa-setup-intro": "अपने खाते को टू-फैक्टर ऑथेंटिकेशन से सुरक्षित करें। सक्षम होने पर, आपको हर बार साइन इन करने पर अपने ऑथेंटिकेटर ऐप से एक कोड दर्ज करना होगा।", + "scan-qr-code": "QR कोड स्कैन करें", + "scan-qr-instructions": "इस QR कोड को स्कैन करने के लिए Google Authenticator, Microsoft Authenticator, या Authy जैसे ऑथेंटिकेटर ऐप का उपयोग करें।", + "manual-setup-instructions": "कोड स्कैन नहीं कर सकते? आप इस गुप्त कुंजी का उपयोग करके मैन्युअल रूप से अपना ऑथेंटिकेटर ऐप सेटअप कर सकते हैं:", + "secret-key": "गुप्त कुंजी", + "copied-to-clipboard": "क्लिपबोर्ड पर कॉपी किया गया", + "copy-to-clipboard": "क्लिपबोर्ड पर कॉपी करें", + "recovery-codes": "रिकवरी कोड", + "recovery-codes-instructions": "इन रिकवरी कोड को सुरक्षित स्थान पर सहेजें। यदि आप अपने ऑथेंटिकेटर ऐप तक पहुंच खो देते हैं, तो आप साइन इन करने के लिए इन वन-टाइम कोड में से एक का उपयोग कर सकते हैं।", + "download-recovery-codes": "रिकवरी कोड डाउनलोड करें", + "verification-code": "सत्यापन कोड", + "enter-code-from-authenticator-app": "अपने ऑथेंटिकेटर ऐप से 6-अंकीय कोड दर्ज करें", + "verification-code-required": "सत्यापन कोड आवश्यक है", + "verification-code-invalid": "अमान्य सत्यापन कोड। कृपया पुनः प्रयास करें।", + "2fa-enabled": "2FA सक्षम", + "2fa-enabled-successfully": "टू-फैक्टर ऑथेंटिकेशन सफलतापूर्वक सक्षम किया गया", + "2fa-setup-complete": "सेटअप पूरा!", + "2fa-setup-complete-instructions": "आपका खाता अब टू-फैक्टर ऑथेंटिकेशन से सुरक्षित है। आपको हर बार साइन इन करने पर एक सत्यापन कोड दर्ज करना होगा।", + "two-factor-verification": "टू-फैक्टर वेरिफिकेशन", + "enter-verification-code-instructions": "जारी रखने के लिए अपने ऑथेंटिकेटर ऐप से 6-अंकीय सत्यापन कोड दर्ज करें।", + "recovery-code": "रिकवरी कोड", + "enter-recovery-code-help": "अपना एक रिकवरी कोड दर्ज करें", + "recovery-code-required": "रिकवरी कोड आवश्यक है", + "use-verification-code-instead": "इसके बजाय सत्यापन कोड का उपयोग करें", + "use-recovery-code-instead": "इसके बजाय रिकवरी कोड का उपयोग करें", + "regenerate-2fa-remove-existing": "क्या आप वाकई टू-फैक्टर ऑथेंटिकेशन को फिर से जनरेट करना चाहते हैं? यह कार्रवाई आपकी मौजूदा ऑथेंटिकेशन सेटिंग्स को हटा देगी।", + "use-passkey": "पासकी के साथ साइन इन करें", + "security-section": "सुरक्षा", + "passkey-authentication": "पासकी ऑथेंटिकेशन", + "passkey-not-supported": "आपका ब्राउज़र या डिवाइस पासकी ऑथेंटिकेशन का समर्थन नहीं करता है", + "passkey-description": "पासकी पासवर्ड का एक मजबूत, फ़िशिंग-प्रतिरोधी विकल्प प्रदान करते हैं। आप सुरक्षित रूप से साइन इन करने के लिए अपनी फ़िंगरप्रिंट, चेहरे की पहचान या डिवाइस पिन का उपयोग कर सकते हैं।", + "passkey-tooltip": "पासकी पासवर्ड का एक सरल और अधिक सुरक्षित विकल्प है। वे आपके डिवाइस पर पहले से संग्रहीत फ़िंगरप्रिंट या चेहरे की पहचान जैसे बायोमेट्रिक डेटा का उपयोग करते हैं।", + "security-section-help": "अपने खाते की सुरक्षा के लिए पासकी और ऑथेंटिकेशन विधियों सहित सुरक्षा विकल्पों का प्रबंधन करें।", + "passkey-register": "पासकी पंजीकृत करें", + "passkey-register-another": "एक और पासकी पंजीकृत करें", + "passkey-registered": "पासकी पंजीकृत", + "passkey-registering": "पासकी पंजीकृत की जा रही है...", + "passkey-registered-success": "पासकी सफलतापूर्वक पंजीकृत हुई!", + "passkey-registration-failed": "पासकी पंजीकृत करने में विफल", + "passkey-auth-failed": "पासकी ऑथेंटिकेशन विफल", + "passkey-missing-user-info": "उपयोगकर्ता जानकारी आवश्यक है", + "passkeys-list": "आपकी पासकीज़", + "default-passkey": "आपकी पासकी", + "passkey-rename": "नाम बदलें", + "passkey-delete": "हटाएं", + "passkey-rename-title": "पासकी का नाम बदलें", + "passkey-delete-title": "पासकी हटाएं", + "passkey-delete-confirm": "क्या आप वाकई पासकी \"{{name}}\" को हटाना चाहते हैं?", + "passkey-name": "पासकी नाम", + "passkey-name-placeholder": "इस पासकी के लिए एक वर्णनात्मक नाम दर्ज करें", + "passkey-renamed-success": "पासकी का नाम सफलतापूर्वक बदला गया", + "passkey-deleted-success": "पासकी सफलतापूर्वक हटाई गई", + "passkey-rename-failed": "पासकी का नाम बदलने में विफल", + "passkey-delete-failed": "पासकी हटाने में विफल", + "processing": "संसाधित किया जा रहा है...", + "today": "आज", + "yesterday": "कल", + "days-ago": "{{days}} दिन पहले", + "verify-with-passkey": "पासकी से सत्यापित करें", + "verify-with-otp": "ओटीपी से सत्यापित करें", + "verification": "सत्यापन", + "verify-account": "अपना खाता सत्यापित करें", + "verify-identity": "पहचान सत्यापित करें", + "passkey-verification-failed": "पासकी सत्यापन विफल। कृपया पुनः प्रयास करें या ओटीपी का उपयोग करें।", + "security-auth-help": { + "p1": "अपने डेटा को सुरक्षित रखने के लिए अपने खाते की सुरक्षा सेटिंग्स प्रबंधित करें। OpenSign खाता सुरक्षा बढ़ाने के लिए उन्नत प्रमाणीकरण विधियों का समर्थन करता है।", + "2fa-auth-help": "2FA सक्षम करके सुरक्षा की एक अतिरिक्त परत जोड़ें। इसके लिए आपको अपने पासवर्ड के बाद एक प्रमाणक ऐप से एक सत्यापन कोड दर्ज करना होगा।", + "passkey-auth-help": "बायोमेट्रिक या डिवाइस-आधारित सत्यापन के साथ पासवर्ड रहित साइन-इन के लिए पासकी का उपयोग करें, जो मजबूत सुरक्षा और सुविधा दोनों प्रदान करता है।" + }, + "signer-already-present": "हस्ताक्षरकर्ता पहले से मौजूद है", + "kiosk-sign": "कियोस्क साइन", + "dont-have-access-to-template": "टेम्पलेट हटा दिया गया है या आपके पास पहुंच नहीं है। कृपया प्रेषक से संपर्क करें।", + "kiosk-info": "कियोस्क मोड आपको व्यक्तिगत रूप से हस्ताक्षर शीघ्रता और कुशलता से एकत्र करने देता है। ट्रेड शो, कार्यक्रमों या वॉक-इन परिदृश्यों के लिए आदर्श जहां सभी हस्ताक्षरकर्ता शारीरिक रूप से मौजूद हों। ", + "learn-more": "और जानें", + "finish-mssg": " क्या आप वाकई दस्तावेज़ समाप्त करना चाहते हैं?", + "review": "समीक्षा", + "next-field": "अगला फ़ील्ड", + "required-mssg": "{{totalWidget}} में से {{leftRequiredWidget}} फ़ील्ड शेष हैं", + "verify-document-signature": "दस्तावेज़ हस्ताक्षर सत्यापित करें", + "select-pdf-document": "पीडीएफ दस्तावेज़ चुनें", + "selected-file": "चयनित फ़ाइल", + "verify-signature": "हस्ताक्षर सत्यापित करें", + "verification-status": "सत्यापन स्थिति", + "verification-in-progress": "सत्यापन प्रगति पर है...", + "verification-results-will-appear-here": "सत्यापन परिणाम यहां दिखाई देंगे", + "please-select-pdf": "कृपया एक मान्य पीडीएफ फ़ाइल चुनें", + "please-select-file-to-verify": "कृपया सत्यापित करने के लिए एक फ़ाइल चुनें", + "no-signature-found": "दस्तावेज़ में कोई हस्ताक्षर नहीं मिला", + "error-verifying-pdf": "पीडीएफ सत्यापित करने में त्रुटि", + "signature-valid-basic": "हस्ताक्षर मान्य है", + "signature-invalid-basic": "हस्ताक्षर अमान्य है", + "all-signatures-verified-convincing": "दस्तावेज़ सत्यापित: सभी हस्ताक्षर सफलतापूर्वक मान्य किए गए हैं।", + "some-signatures-invalid-basic": "कुछ हस्ताक्षर अमान्य हैं", + "no-signatures-processed": "कोई हस्ताक्षर संसाधित नहीं किया गया", + "unnamed-signature-field": "अनामांकित हस्ताक्षर फ़ील्ड", + "error-processing-signature": "हस्ताक्षर संसाधित करने में त्रुटि", + "signer-info-not-available": "हस्ताक्षरकर्ता जानकारी उपलब्ध नहीं है", + "cert-validity-not-checked": "प्रमाणपत्र वैधता जाँची नहीं गई", + "valid": "मान्य", + "expired-or-not-yet-valid": "समाप्त या अभी तक मान्य नहीं है", + "valid-from": "से मान्य", + "to": "तक", + "signer": "हस्ताक्षरकर्ता", + "issuer": "जारीकर्ता", + "not-available": "उपलब्ध नहीं है", + "not-performed": "निष्पादित नहीं किया गया", + "missing-acrofield-dict": "एक्रोफ़ील्ड शब्दकोश गायब है", + "signature-dictionary-not-found-or-invalid": "हस्ताक्षर शब्दकोश नहीं मिला या अमान्य है", + "missing-or-invalid-byterange": "बाइटरेंज गायब या अमान्य है", + "missing-or-invalid-contents": "सामग्री गायब या अमान्य है", + "missing-signature-contents": "हस्ताक्षर सामग्री गायब है", + "invalid-signature-hex-format": "अमान्य हस्ताक्षर हेक्स प्रारूप", + "unsupported-signature-format-not-signeddata": "असमर्थित हस्ताक्षर प्रारूप - SignedData नहीं है", + "signer-certificate-not-found": "हस्ताक्षरकर्ता प्रमाणपत्र नहीं मिला", + "no-certificates-in-signature": "हस्ताक्षर में कोई प्रमाणपत्र नहीं है", + "no-signer-info-in-pkcs7": "PKCS#7 में कोई हस्ताक्षरकर्ता जानकारी नहीं है", + "could-not-parse-signer-info": "हस्ताक्षरकर्ता जानकारी पार्स नहीं की जा सकी", + "not-calculated": "गणना नहीं की गई", + "not-found-in-signature": "हस्ताक्षर में नहीं मिला" +} diff --git a/apps/OpenSign/public/locales/it/translation.json b/apps/OpenSign/public/locales/it/translation.json index bb44b7f33e..ff5912cbdc 100644 --- a/apps/OpenSign/public/locales/it/translation.json +++ b/apps/OpenSign/public/locales/it/translation.json @@ -1,6 +1,7 @@ { "header-news": "Nuova funzionalità: Gli utenti del piano Teams possono ora integrare i propri bucket AWS S3 per l'archiviazione dei file", "header-news-btn": "Configura Ora", + "sandbox-news": "Questo è un ambiente sandbox. Si prega di non utilizzarlo per scopi di produzione.", "create-account": "Crea Account", "login": "Accedi", "language": "Lingua", @@ -675,7 +676,7 @@ "public-template-mssg-1": "Per integrare OpenSign nel tuo progetto React o Next.js, esegui semplicemente il seguente comando:", "public-template-mssg-2": "Assicurati di avere npm o yarn configurato nel tuo progetto. Se usi Yarn, puoi sostituire npm install con yarn add @opensign/react.", "public-template-mssg-3": "Hai bisogno di maggiori dettagli o esempi?", - "public-template-mssg-4": "Visita il", + "public-template-mssg-4": "Visita il ", "public-template-mssg-5": " npm per gli aggiornamenti più recenti, documentazione dettagliata e cronologia delle versioni.", "public-template-mssg-6": "Prima di poter utilizzare questo frammento di codice, devi rendere questo modello pubblico.", "public-template-mssg-7": "Prima di poter generare un link pubblico, devi rendere questo modello pubblico.", @@ -980,5 +981,46 @@ "finish-mssg": "Sei sicuro di voler completare il documento?", "review": "Rivedere", "next-field": "Campo successivo", - "required-mssg":"{{leftRequiredWidget}} di {{totalWidget}} campi rimanenti" + "required-mssg":"{{leftRequiredWidget}} di {{totalWidget}} campi rimanenti", + "verify-document-signature": "Verifica firma documento", + "select-pdf-document": "Seleziona documento PDF", + "selected-file": "File selezionato", + "verify-signature": "Verifica firma", + "verification-status": "Stato verifica", + "verification-in-progress": "Verifica in corso...", + "verification-results-will-appear-here": "I risultati della verifica appariranno qui", + "please-select-pdf": "Seleziona un file PDF valido", + "please-select-file-to-verify": "Seleziona un file da verificare", + "no-signature-found": "Nessuna firma trovata nel documento", + "error-verifying-pdf": "Errore durante la verifica del PDF", + "signature-valid-basic": "La firma è valida", + "signature-invalid-basic": "La firma non è valida", + "all-signatures-verified-convincing": "Documento Verificato: Tutte le firme sono state validate con successo.", + "some-signatures-invalid-basic": "Alcune firme non sono valide", + "no-signatures-processed": "Nessuna firma elaborata", + "unnamed-signature-field": "Campo firma senza nome", + "error-processing-signature": "Errore durante l'elaborazione della firma", + "signer-info-not-available": "Informazioni firmatario non disponibili", + "cert-validity-not-checked": "Validità certificato non verificata", + "valid": "Valido", + "expired-or-not-yet-valid": "Scaduto o non ancora valido", + "valid-from": "Valido dal", + "to": "al", + "signer": "Firmatario", + "issuer": "Emittente", + "not-available": "Non disponibile", + "not-performed": "Non eseguito", + "missing-acrofield-dict": "Dizionario Acrofield mancante", + "signature-dictionary-not-found-or-invalid": "Dizionario firme non trovato o non valido", + "missing-or-invalid-byterange": "ByteRange mancante o non valido", + "missing-or-invalid-contents": "Contenuto mancante o non valido", + "missing-signature-contents": "Contenuto firma mancante", + "invalid-signature-hex-format": "Formato esadecimale firma non valido", + "unsupported-signature-format-not-signeddata": "Formato firma non supportato - non SignedData", + "signer-certificate-not-found": "Certificato firmatario non trovato", + "no-certificates-in-signature": "Nessun certificato nella firma", + "no-signer-info-in-pkcs7": "Nessuna informazione firmatario in PKCS#7", + "could-not-parse-signer-info": "Impossibile analizzare le informazioni del firmatario", + "not-calculated": "Non calcolato", + "not-found-in-signature": "Non trovato nella firma" } diff --git a/apps/OpenSign/src/App.jsx b/apps/OpenSign/src/App.jsx index d9fe57668d..6bbacc499f 100644 --- a/apps/OpenSign/src/App.jsx +++ b/apps/OpenSign/src/App.jsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect, lazy } from "react"; +import { useState, useEffect, lazy } from "react"; import { Routes, Route, BrowserRouter } from "react-router"; import { pdfjs } from "react-pdf"; import Form from "./pages/Form"; @@ -106,10 +106,10 @@ function App() { element={This is an automated email from " + appName + ". For any queries regarding this email, please contact the sender " + @@ -3161,3 +3180,46 @@ export const checkRegularExpress = (validateType, setValidatePlaceholder) => { setValidatePlaceholder("please enter value"); } }; +//function to use unlink signer from widgets +export const handleUnlinkSigner = ( + signerPos, + setSignerPos, + signersdata, + setSignersData, + uniqueId +) => { + //remove existing signer's details from 'signerPos' array + const updatePlaceHolder = signerPos.map((x) => { + if (x.Id === uniqueId) { + return { ...x, signerPtr: {}, signerObjId: "" }; + } + return { ...x }; + }); + setSignerPos(updatePlaceHolder); + //remove existing signer's details from 'signersdata' array and keep role and id + const updateSigner = signersdata.map((item) => { + if (item.Id == uniqueId) { + return { Role: item.Role, Id: item.Id, blockColor: item.blockColor }; + } + return item; + }); + setSignersData(updateSigner); +}; +//function is used to get pdf original width and height +export const getOriginalWH = async (pdf) => { + let pdfWHObj = []; + //get total page number + const totalPages = pdf?.numPages; + //according to page number get all pdf's pages width and height + for (let index = 0; index < totalPages; index++) { + try { + const getPage = await pdf.getPage(index + 1); + const width = getPage?.view[2]; + const height = getPage?.view[3]; + pdfWHObj.push({ pageNumber: index + 1, width, height }); + } catch (e) { + console.log(`Error getting page ${index + 1} of PDF: ${e.message}`); + } + } + return pdfWHObj; +}; diff --git a/apps/OpenSign/src/constant/appinfo.js b/apps/OpenSign/src/constant/appinfo.js index a41cff14cf..f8e615f5b2 100644 --- a/apps/OpenSign/src/constant/appinfo.js +++ b/apps/OpenSign/src/constant/appinfo.js @@ -1,9 +1,12 @@ import logo from "../assets/images/logo.png"; +import { getEnv } from "./Utils"; export function serverUrl_fn() { - let baseUrl = process.env.REACT_APP_SERVERURL - ? process.env.REACT_APP_SERVERURL - : window.location.origin + "/api/app"; + const env = getEnv(); + const serverurl = env?.REACT_APP_SERVERURL + ? env.REACT_APP_SERVERURL // env.REACT_APP_SERVERURL is used for prod + : process.env.REACT_APP_SERVERURL; // process.env.REACT_APP_SERVERURL is used for dev (locally) + let baseUrl = serverurl ? serverurl : window.location.origin + "/api/app"; return baseUrl; } export const appInfo = { diff --git a/apps/OpenSign/src/i18n.js b/apps/OpenSign/src/i18n.js index 212960251c..e635921b4c 100644 --- a/apps/OpenSign/src/i18n.js +++ b/apps/OpenSign/src/i18n.js @@ -25,7 +25,7 @@ i18n interpolation: { escapeValue: false // Not needed for react as it escapes by default }, - whitelist: ["en", "es", "fr", "it", "de"] // List of allowed languages + whitelist: ["en", "es", "fr", "it", "de", "hi"] // List of allowed languages }); export default i18n; diff --git a/apps/OpenSign/src/json/menuJson.js b/apps/OpenSign/src/json/menuJson.js index f6801c6b01..340e119786 100644 --- a/apps/OpenSign/src/json/menuJson.js +++ b/apps/OpenSign/src/json/menuJson.js @@ -1,3 +1,13 @@ +const userssetting = [ + { + icon: "fa-light fa-users fa-fw", + title: "Users", + target: "_self", + pageType: "", + description: "", + objectId: "users" + } +]; export const subSetting = [ { icon: "fa-light fa-sliders", @@ -7,14 +17,7 @@ export const subSetting = [ description: "", objectId: "preferences" }, - { - icon: "fa-light fa-users fa-fw", - title: "Users", - target: "_self", - pageType: "", - description: "", - objectId: "users" - } + ...userssetting ]; const sidebarList = [ @@ -65,7 +68,7 @@ const sidebarList = [ pageType: "report", description: "", objectId: "6TeaPr321t" - }, + } ] }, { diff --git a/apps/OpenSign/src/pages/Login.jsx b/apps/OpenSign/src/pages/Login.jsx index a77af33361..554033ea47 100644 --- a/apps/OpenSign/src/pages/Login.jsx +++ b/apps/OpenSign/src/pages/Login.jsx @@ -68,6 +68,7 @@ function Login() { setState({ ...state, loading: false, alertType: type, alertMsg: msg }); setTimeout(() => setState({ ...state, alertMsg: "" }), 2000); }; + const checkUserExt = async () => { const app = await getAppLogo(); if (app?.error === "invalid_json") { @@ -82,11 +83,11 @@ function Login() { } else { setImage(appInfo?.applogo || undefined); } + dispatch(fetchAppInfo()); if (localStorage.getItem("accesstoken")) { setState({ ...state, loading: true }); GetLoginData(); } - dispatch(fetchAppInfo()); }; const handleChange = (event) => { let { name, value } = event.target; @@ -96,20 +97,15 @@ function Login() { setState({ ...state, [name]: value }); }; - const handleSubmit = async (event) => { - localStorage.removeItem("accesstoken"); - event.preventDefault(); - - if (!emailRegex.test(state.email)) { - alert("Please enter a valid email address."); - return; - } + const handleLogin = async ( + ) => { + const email = state?.email + const password = state?.password - const { email, password } = state; if (!email || !password) { return; } - + localStorage.removeItem("accesstoken"); try { setState({ ...state, loading: true }); localStorage.setItem("appLogo", appInfo.applogo); @@ -132,6 +128,14 @@ function Login() { showToast("danger", "Invalid username/password or region"); } }; + const handleLoginBtn = async (event) => { + event.preventDefault(); + if (!emailRegex.test(state.email)) { + alert("Please enter a valid email address."); + return; + } + await handleLogin(); + }; const setThirdpartyLoader = (value) => { setState({ ...state, thirdpartyLoader: value }); @@ -275,7 +279,6 @@ function Login() { const userInformation = JSON.parse( localStorage.getItem("UserInformation") ); - // console.log("payload ", payload); if (payload && payload.sessionToken) { const params = { userDetails: { @@ -289,7 +292,6 @@ function Login() { } }; const userSignUp = await Parse.Cloud.run("usersignup", params); - // console.log("userSignUp ", userSignUp); if (userSignUp && userSignUp.sessionToken) { const LocalUserDetails = { name: userInformation.name, @@ -430,7 +432,7 @@ function Login() {