diff --git a/webapp/messages/da.json b/webapp/messages/da.json index b38df206..98b4884e 100644 --- a/webapp/messages/da.json +++ b/webapp/messages/da.json @@ -1,20 +1,16 @@ { "$schema": "https://inlang.com/schema/inlang-message-format", - "my_folders": "Mapper", "my_signatures": "Signaturer", "validate_signatures": "Validere signaturer", "multisignatures": "Multisignaturer", "notifications": "Meddelelser", - "identity": "Identitet", "my_DID": "Min DID", - "my_verifiable_credentials": "Mine Verifiable Credentials", "organizations": "Organisationer", "signatures": "Signaturer", "hello": "Hej", "Forgot_password": "Glemt kodeord?", "Please_enter_here_your_email_to_recover_your_password_": "Indtast venligst din e-mail her for at nulstille din adgangskode.", "Your_email": "Din email", - "Recover_password": "Nulstille kodeord", "Reset_email_sent_successfully": "E-mail til nulstilling af adgangskode blev sendt!", "Please_click_the_link_in_the_email_to_reset_your_password_": "Klik på linket i e-mailen for at nulstille din adgangskode.", "Log_in_with_webauthn": "Log ind med Webauthn", @@ -46,7 +42,6 @@ "Signatures": "Signaturer", "Contact": "Kontakt", "Regenerate_keys": "Gendan private nøgler", - "ou_have_been_redirected_here_because_your_private_keys_are_missing_": "Du er blevet omdirigeret hertil, fordi dine private nøgler mangler.", "You_have_been_redirected_here_because_your_private_keys_are_missing_": "Du er blevet omdirigeret hertil, fordi dine private nøgler mangler.", "Before_using_the_app_again_you_need_to_restore_them_": "Før du bruger appen igen, skal du gendanne dine private nøgler.", "Please_type_here_your_seed_to_restore_your_keyring_": "Indtast venligst dit \"seed\" her for at gendanne dine private nøgler.", @@ -57,23 +52,6 @@ "Your_keys_have_been_regenerated_You_can_now_go_back_to": "Dine nøgler er blevet regenereret. Du kan nu gå tilbage til ", "your_profile": "din profil", "Hello": "Hej,", - "Welcome_to": "Velkommen til", - "Thanks_for_joining_us": "Tak fordi du joiner os!", - "One_last_thing_before_to_using_the_app": "En sidste ting, før du kan begynde at bruge appen:", - "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "vi har brug for dig til at besvare nogle spørgsmål, som vil blive brugt til at generere dine private nøgler. Svarene på disse spørgsmål kommunikeres ALDRIG til os!", - "Generate_your_keys": "Generer dine private nøgler", - "Info": "Info", - "Important_information": "Vigtig information", - "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "Ved at besvare disse spørgsmål genererer appen dine private nøgler, der vil blive brugt til godkendelse, signaturer og kryptering", - "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Sørg for, at du senere kan huske dine svar, da de vil være den eneste måde at gendanne dine private nøgler på", - "Please_answer_at_least_3_of_the_following_questions": "Besvar venligst mindst 3 af følgende spørgsmål: ", - "User_email": "Din email", - "Generate_keys": "Generer private nøgler", - "I_have_the_seed_passphrase": "Jeg har den seed-passphrase", - "Keypair_creation_successful": "Oprettelse af private nøgler lykkedes!", - "Please_store_this_in_a_safe_place_to_recover_your_account_in_the_future_this_passphrase_will_be_shown_only_one_time": "Gem venligst \"seed-passphrase\" et sikkert sted for nemt at gendanne din konto i fremtiden: den vil kun blive vist én gang! Vi opbevarer ikke en sikkerhedskopi af privatlivs- og sikkerhedsmæssige årsager.", - "Copy_seed": "Kopiér seed-passphrase", - "Go_to_Dashboard": "Gå til dashboard", "Your_DID": "Din DID", "add_signature": "tilføje signatur", "signature": "signature", @@ -81,40 +59,23 @@ "My_profile": "Min profil", "Go_Pro": "Opgrader", "Sign_out": "Log ud", - "ORGANIZATIONS": "ORGANISATIONER", "Read_more": "Læs mere", "Here_are_some_Helpful_link": "Her er nogle nyttige links:", "Home": "Home", "Login": "Log ind", "My": "Min", - "Click_to_upload": "Klik for at uploade", - "or_drag_and_drop": "eller drag and drop", - "JSON_signature_downloaded_from_signroom": "JSON-signatur downloadet ", "Validate": "Valider", - "Upload_a_signature_file_and_verify_autenticity": "Upload en signaturfil og bekræft ægtheden", "_Signature_shared_successfully": "✅ Signatur delt med succes", "_Signature_unshared_successfully": "✅ Signaturen blev fjernet", "_Document_signed_successfully": "✅ Dokument underskrevet med succes", - "shared": "delt", - "Validate_signature": "Bekræft signatur", - "Signature": "Signatur:", - "pdf_reader": "PDF-læser", - "Remove_access": "Fjern adgang", - "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Er du sikker på, at du vil fjerne al adgang til signaturen?", - "Undo": "Fortryd", - "Yes_remove_access": "Ja, fjern adgangen", "Original_file": "Original fil", "Signed_file": "Signeret fil", "Preview": "Forhåndsvisning", - "Signed": "Underskrevet", "Edit_profile": "Rediger profil", "Cancel": "Ophæve", "Show_email_to_other_users": "Vis e-mail til andre brugere", "Update_profile": "Opdater profil", "Username": "Brugernavn", - "email": "e-mail", - "You_have_no_keys_yet_": "Du har ingen nøgler endnu.", - "Generate_new_keys": "Generer nye nøgler", "Your_keys": "Dine nøgler", "Checking_your_device": "Tjek din enhed", "Your_device_does_not_have_integrated_Webauthn_support_An_external_authenticator_is_required_": "Din enhed har ikke integreret Webauthn-understøttelse. En ekstern autentificering er\npåkrævet.", @@ -124,9 +85,7 @@ "Your_organizations": "Dine organisationer", "Join_an_organization": "Deltag i en organisation", "Create_a_new_organization": "Opret en ny organisation", - "No_organizations_found_Create_one": "Ingen organisationer fundet. Opret en!", "Settings": "Indstillinger", - "Your_join_requests": "Dine anmodninger om medlemskab", "Pending": "Afventer", "Undo_request": "Fortryd anmodning", "My_organizations": "Mine organisationer", @@ -142,33 +101,15 @@ "Authorization_servers": "Autorisationsservere", "Relying_parties": "Relying parties", "Credential_issuers": "Credential issuers", - "Reject": "Afvise", - "Rejected_requests": "Afviste anmodninger", "Accept": "Acceptere", - "Move_to_pending": "Flyt til afventende", - "Manage_pending_join_requests": "Administrer afventende anmodninger om at deltage", - "No_join_requests": "Ingen anmodninger om medlemskab", - "No_rejected_requests": "Ingen afviste anmodninger", - "Select_credential_cryptography_type": "Vælg credentials kryptografi ", - "Select_one_or_more_templates_for_this_service": "Vælg en eller flere skabeloner til denne tjeneste", - "Select_a_credential_issuer": "Vælg en credential issuer", - "Select_an_authorization_service": "Vælg en authorization server", - "Servers": "Servere", - "Select_a_relying_party": "Vælg en relying party", - "Create_new_Template": "Opret ny skabelon", "Members": "Medlemmer", "Manage_your_organization_public_info": "Administrer din organisations offentlige oplysninger", "Save_changes": "Gem ændringer", - "Manage_members_and_roles": "Administrer medlemmer og roller", - "Services_templates": "Credential skabeloner", "Enter_a_description_for_the_schema": "Indtast en beskrivelse af skemaet", - "Manage_join_requests": "Administrer anmodninger om tilmelding", "Templates": "Skabeloner", "Microservices": "Microservices", - "Organization_settings": "Organisationsindstillinger", "Membership_requests": "Medlemsanmodninger", "Credential_templates": "Credential skabeloner", - "Manage_membership_requests": "Administrer anmodninger om medlemskab", "quick_actions_description": "🙌 Tjek nedenstående links for at komme i gang eller naviger i sidebjælken 😄", "news_section_title": "Nye funktioner", "news_section_description": "Hold dig opdateret med den seneste udvikling og indsigt inden for kryptografi og digitale signaturer.", @@ -186,7 +127,6 @@ "Pending_membership_requests": "Afventende medlemsanmodninger", "new_issuance_flow_description": "Skab problemfri og sikker oplevelse af udstedelse af credentiale for dine brugere.", "Make_changes": "Redigere", - "Template": "Skabelon", "Required": "Påkrævet", "Basic_info": "Grundlæggende info", "template_form_basic_info_description": "Opret skabeloner til at definere udstedelses- og verifikationsflows: skabeloner indeholder parametre og logik for flowene. Skabeloner vælges i flow-editorerne. ", @@ -196,7 +136,6 @@ "form_structure_description": "Definer her de attributter, som brugeren skal indtaste manuelt, i den form, som autoriseringsserveren viser", "Custom_code": "Brugerdefineret kode", "custom_code_description": "Denne kode indeholder forretningslogikken for det flow, vi definerer nu: koden er skrevet i Zencode, start fra eksemplerne og følg dokumentationen for at lære mere", - "select_code_sample": "Vælg Zencode fra eksemplerne", "Create_template": "Opret skabelon", "Update_template": "Opdater skabelon", "Credential_template": "Credential skabelon", @@ -232,7 +171,6 @@ "pending_membership_requests_description": "Her kan du se listen over brugere, der har anmodet om at blive medlem af denne organisation", "members_description": "Liste over eksisterende medlemmer af organisationen: medlemmer kan have forskellige roller, hvilket giver dem forskellige privilegier ", "template_is_public_description": "Denne skabelon kan også bruges af andre organisationer", - "verification_flow_description": "Verifikationen administreres for det meste af DIDroom Verifier-appen. Installer verifikationsappen, log ind med en konto, der er forbundet med denne organisation, og start verifikationsflowet derfra.", "microservice_name_description": "Dette er navnet på mikrotjenesterne, som vil være synlige for slutbrugere", "microservice_endpoint_description": "Slutpunkt for mikrotjenesterne, brugt af kommunikationsprotokoller og synligt af slutbrugere og andre mikrotjenester", "Select_language": "Vælg sprog", @@ -267,13 +205,10 @@ "zencode_script": "Zencode script", "zencode_data": "Zencode-data (JSON)", "folder": "Folder", - "Certificate": "Certifikat", "Title": "Titel", "File": "Fil", "Update_signature": "Opdater signatur", "Sign_file": "Underskriv fil", - "No_signatures_yet": "Ingen underskrifter endnu", - "Start_by_signing_a_document": "Start med at underskrive et dokument", "Start_by_signing_a_file": "Start med at underskrive en fil", "Add_folder": "Tilføj mappe", "validate_signature_description": "Her kan du validere signaturer produceret af denne applikation eller af andre.", @@ -306,11 +241,77 @@ "Years": "år", "Months": "måneder", "Days": "dage", - "Year": "År", - "Month": "Måned", - "Day": "Dag", "Date": "Dato", "Please_add_at_least_one_day": "Tilføj venligst mindst én dag", "Date_must_be_after_today": "Datoen skal være efter i dag", - "start": "Starte" + "start": "Starte", + "Copy_update_script": "Kopiér opdateringsscript", + "my_folders": "Mapper", + "identity": "Identitet", + "my_verifiable_credentials": "Mine Verifiable Credentials", + "Recover_password": "Nulstille kodeord", + "ou_have_been_redirected_here_because_your_private_keys_are_missing_": "Du er blevet omdirigeret hertil, fordi dine private nøgler mangler.", + "Welcome_to": "Velkommen til", + "Thanks_for_joining_us": "Tak fordi du joiner os!", + "One_last_thing_before_to_using_the_app": "En sidste ting, før du kan begynde at bruge appen:", + "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "vi har brug for dig til at besvare nogle spørgsmål, som vil blive brugt til at generere dine private nøgler. Svarene på disse spørgsmål kommunikeres ALDRIG til os!", + "Generate_your_keys": "Generer dine private nøgler", + "Info": "Info", + "Important_information": "Vigtig information", + "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "Ved at besvare disse spørgsmål genererer appen dine private nøgler, der vil blive brugt til godkendelse, signaturer og kryptering", + "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Sørg for, at du senere kan huske dine svar, da de vil være den eneste måde at gendanne dine private nøgler på", + "Please_answer_at_least_3_of_the_following_questions": "Besvar venligst mindst 3 af følgende spørgsmål: ", + "User_email": "Din email", + "Generate_keys": "Generer private nøgler", + "I_have_the_seed_passphrase": "Jeg har den seed-passphrase", + "Keypair_creation_successful": "Oprettelse af private nøgler lykkedes!", + "Please_store_this_in_a_safe_place_to_recover_your_account_in_the_future_this_passphrase_will_be_shown_only_one_time": "Gem venligst \"seed-passphrase\" et sikkert sted for nemt at gendanne din konto i fremtiden: den vil kun blive vist én gang! Vi opbevarer ikke en sikkerhedskopi af privatlivs- og sikkerhedsmæssige årsager.", + "Copy_seed": "Kopiér seed-passphrase", + "Go_to_Dashboard": "Gå til dashboard", + "ORGANIZATIONS": "ORGANISATIONER", + "Click_to_upload": "Klik for at uploade", + "or_drag_and_drop": "eller drag and drop", + "JSON_signature_downloaded_from_signroom": "JSON-signatur downloadet ", + "Upload_a_signature_file_and_verify_autenticity": "Upload en signaturfil og bekræft ægtheden", + "shared": "delt", + "Validate_signature": "Bekræft signatur", + "Signature": "Signatur:", + "pdf_reader": "PDF-læser", + "Remove_access": "Fjern adgang", + "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Er du sikker på, at du vil fjerne al adgang til signaturen?", + "Undo": "Fortryd", + "Yes_remove_access": "Ja, fjern adgangen", + "Signed": "Underskrevet", + "email": "e-mail", + "You_have_no_keys_yet_": "Du har ingen nøgler endnu.", + "Generate_new_keys": "Generer nye nøgler", + "No_organizations_found_Create_one": "Ingen organisationer fundet. Opret en!", + "Your_join_requests": "Dine anmodninger om medlemskab", + "Reject": "Afvise", + "Rejected_requests": "Afviste anmodninger", + "Move_to_pending": "Flyt til afventende", + "Manage_pending_join_requests": "Administrer afventende anmodninger om at deltage", + "No_join_requests": "Ingen anmodninger om medlemskab", + "No_rejected_requests": "Ingen afviste anmodninger", + "Select_credential_cryptography_type": "Vælg credentials kryptografi ", + "Select_one_or_more_templates_for_this_service": "Vælg en eller flere skabeloner til denne tjeneste", + "Select_a_credential_issuer": "Vælg en credential issuer", + "Select_an_authorization_service": "Vælg en authorization server", + "Servers": "Servere", + "Select_a_relying_party": "Vælg en relying party", + "Create_new_Template": "Opret ny skabelon", + "Manage_members_and_roles": "Administrer medlemmer og roller", + "Services_templates": "Credential skabeloner", + "Manage_join_requests": "Administrer anmodninger om tilmelding", + "Organization_settings": "Organisationsindstillinger", + "Manage_membership_requests": "Administrer anmodninger om medlemskab", + "Template": "Skabelon", + "select_code_sample": "Vælg Zencode fra eksemplerne", + "verification_flow_description": "Verifikationen administreres for det meste af DIDroom Verifier-appen. Installer verifikationsappen, log ind med en konto, der er forbundet med denne organisation, og start verifikationsflowet derfra.", + "Certificate": "Certifikat", + "No_signatures_yet": "Ingen underskrifter endnu", + "Start_by_signing_a_document": "Start med at underskrive et dokument", + "Year": "År", + "Month": "Måned", + "Day": "Dag" } diff --git a/webapp/messages/de.json b/webapp/messages/de.json index 60484917..2ac02d71 100644 --- a/webapp/messages/de.json +++ b/webapp/messages/de.json @@ -1,20 +1,16 @@ { "$schema": "https://inlang.com/schema/inlang-message-format", - "my_folders": "Ordner", "my_signatures": "Signaturen", "validate_signatures": "Signaturen validieren", "multisignatures": "Multisignaturen", "notifications": "Benachrichtigungen", - "identity": "Identität", "my_DID": "Mein DID", - "my_verifiable_credentials": "Meine Verifizierbares Berechtigungsnachweis", "organizations": "Organisationen", "signatures": "Signaturen", "hello": "Hallo", "Forgot_password": "Passwort vergessen?", "Please_enter_here_your_email_to_recover_your_password_": "Bitte geben Sie hier Ihre E-Mail-Adresse ein, um Ihr Passwort zurückzusetzen.", "Your_email": "Deine E-Mail", - "Recover_password": "Passwort zurücksetzen", "Reset_email_sent_successfully": "E-Mail zum Zurücksetzen des Passworts erfolgreich gesendet!", "Please_click_the_link_in_the_email_to_reset_your_password_": "Bitte klicken Sie auf den Link in der E-Mail, um Ihr Passwort zurückzusetzen.", "Log_in_with_webauthn": "Melden Sie sich mit Webauthn an", @@ -46,7 +42,6 @@ "Signatures": "Signaturen", "Contact": "Kontakt", "Regenerate_keys": "Private Schlüssel neu generieren", - "ou_have_been_redirected_here_because_your_private_keys_are_missing_": "Sie wurden hierher umgeleitet, weil Ihre privaten Schlüssel fehlen.", "You_have_been_redirected_here_because_your_private_keys_are_missing_": "Sie wurden hierher weitergeleitet, weil Ihre privaten Schlüssel fehlen.", "Before_using_the_app_again_you_need_to_restore_them_": "Bevor Sie die App erneut verwenden, müssen Sie Ihre privaten Schlüssel wiederherstellen.", "Please_type_here_your_seed_to_restore_your_keyring_": "Bitte geben Sie hier Ihren Seed ein, um Ihre privaten Schlüssel wiederherzustellen.", @@ -57,23 +52,6 @@ "Your_keys_have_been_regenerated_You_can_now_go_back_to": "Ihre Schlüssel wurden regeneriert. Sie können jetzt zu zurückkehren ", "your_profile": "dein Profil", "Hello": "Hallo,", - "Welcome_to": "Willkommen zu", - "Thanks_for_joining_us": "Danke, dass Sie dabei sind!", - "One_last_thing_before_to_using_the_app": "Eine letzte Sache, bevor Sie die App nutzen können:", - "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "Sie müssen einige Fragen beantworten, die zur Generierung Ihrer privaten Schlüssel verwendet werden. Die Antworten auf diese Fragen werden uns NIEMALS mitgeteilt!", - "Generate_your_keys": "Generieren Sie Ihre privaten Schlüssel", - "Info": "Info", - "Important_information": "Wichtige Informationen", - "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "Durch die Beantwortung dieser Fragen generiert die App Ihre privaten Schlüssel, die zur Authentifizierung, Signaturen und Verschlüsselung verwendet werden", - "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Bitte stellen Sie sicher, dass Sie sich Ihre Antworten später merken können, da nur so Ihre privaten Schlüssel wiederhergestellt werden können", - "Please_answer_at_least_3_of_the_following_questions": "Bitte beantworten Sie mindestens 3 der folgenden Fragen: ", - "User_email": "Deine E-Mail", - "Generate_keys": "Private Schlüssel generieren", - "I_have_the_seed_passphrase": "Ich habe die Seed-Passphrase", - "Keypair_creation_successful": "Erstellung privater Schlüssel erfolgreich!", - "Please_store_this_in_a_safe_place_to_recover_your_account_in_the_future_this_passphrase_will_be_shown_only_one_time": "Bitte bewahren Sie die „Seed-Passphrase“ an einem sicheren Ort auf, um Ihr Konto in Zukunft problemlos wiederherstellen zu können: Sie wird nur einmal angezeigt! Aus Datenschutz- und Sicherheitsgründen führen wir kein Backup durch.", - "Copy_seed": "Seed-Passphrase kopieren", - "Go_to_Dashboard": "Gehen Sie zum Dashboard", "Your_DID": "Dein DID", "add_signature": "Signatur hinzufügen", "signature": "Signaturen", @@ -81,40 +59,23 @@ "My_profile": "Mein Profil", "Go_Pro": "Upgrade", "Sign_out": "Abmelden", - "ORGANIZATIONS": "ORGANISATIONEN", "Read_more": "Mehr lesen", "Here_are_some_Helpful_link": "Hier sind einige hilfreiche Links:", "Home": "Startseite", "Login": "Login", "My": "Mein", - "Click_to_upload": "Klicken Sie zum Hochladen", - "or_drag_and_drop": "oder per Drag and Drop", - "JSON_signature_downloaded_from_signroom": "JSON-Signatur heruntergeladen ", "Validate": "Validieren", - "Upload_a_signature_file_and_verify_autenticity": "Laden Sie eine Signaturdatei hoch und überprüfen Sie die Echtheit", "_Signature_shared_successfully": "✅ Signatur erfolgreich geteilt", "_Signature_unshared_successfully": "✅ Signatur erfolgreich aufgehoben", "_Document_signed_successfully": "✅ Dokument erfolgreich signiert", - "shared": "geteilt", - "Validate_signature": "Signatur validieren", - "Signature": "Unterschrift:", - "pdf_reader": "PDF-Reader", - "Remove_access": "Zugriff entfernen", - "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Sind Sie sicher, dass Sie jeglichen Zugriff auf die Signatur entfernen möchten?", - "Undo": "Rückgängig", - "Yes_remove_access": "Ja, Zugriff entfernen", "Original_file": "Originaldatei", "Signed_file": "Signierte Datei", "Preview": "Vorschau", - "Signed": "Unterzeichnet", "Edit_profile": "Profil bearbeiten", "Cancel": "Stornieren", "Show_email_to_other_users": "E-Mail anderen Benutzern anzeigen", "Update_profile": "Profil aktualisieren", "Username": "Benutzername", - "email": "E-Mail", - "You_have_no_keys_yet_": "Sie haben noch keine Schlüssel.", - "Generate_new_keys": "Neue Schlüssel generieren", "Your_keys": "Ihre Schlüssel", "Checking_your_device": "Überprüfen Ihres Geräts", "Your_device_does_not_have_integrated_Webauthn_support_An_external_authenticator_is_required_": "Ihr Gerät hat keine integrierte Webauthn-Unterstützung. Ein externer Authentifikator ist\nerforderlich.", @@ -124,9 +85,7 @@ "Your_organizations": "Ihre Organisationen", "Join_an_organization": "Einer Organisation beitreten", "Create_a_new_organization": "Erstellen einer neuen Organisation", - "No_organizations_found_Create_one": "Keine Organisationen gefunden. Erstellen Sie eine!", "Settings": "Einstellungen", - "Your_join_requests": "Ihre Beitrittsanfragen", "Pending": "Anhängig", "Undo_request": "Anfrage rückgängig machen", "My_organizations": "Meine Organisationen", @@ -142,33 +101,15 @@ "Authorization_servers": "Autorisierungsserver", "Relying_parties": "Relying parties", "Credential_issuers": "Credential-Issuers", - "Reject": "Ablehnen", - "Rejected_requests": "Abgelehnte Anfragen", "Accept": "Akzeptieren", - "Move_to_pending": "In den Wartezustand verschieben", - "Manage_pending_join_requests": "Ausstehende Beitrittsanfragen verwalten", - "No_join_requests": "Keine Beitrittsanfragen", - "No_rejected_requests": "Keine abgelehnten Anfragen", - "Select_credential_cryptography_type": "Wählen Sie die Kryptografie der Berechtigungsnachweis aus ", - "Select_one_or_more_templates_for_this_service": "Wählen Sie eine oder mehrere Vorlagen für diesen Dienst aus", - "Select_a_credential_issuer": "Wählen Sie einen Berechtigungsaussteller aus", - "Select_an_authorization_service": "Auswählen eines Authorization-Server", - "Servers": "Serveren", - "Select_a_relying_party": "Wählen Sie eine Relying-Party aus", - "Create_new_Template": "Neue Vorlage erstellen", "Members": "Mitglieder", "Manage_your_organization_public_info": "Verwalten Sie die öffentlichen Informationen Ihrer Organisation", "Save_changes": "Änderungen speichern", - "Manage_members_and_roles": "Verwalten von Mitgliedern und Rollen", - "Services_templates": "Berechtigungsvorlagen", "Enter_a_description_for_the_schema": "Geben Sie eine Beschreibung für das Schema ein.", - "Manage_join_requests": "Beitrittsanfragen verwalten", "Templates": "Vorlagen", "Microservices": "Microservices", - "Organization_settings": "Organisationseinstellungen", "Membership_requests": "Mitgliedschaftsanfragen", "Credential_templates": "Berechtigungsvorlagen", - "Manage_membership_requests": "Mitgliedschaftsanfragen verwalten", "quick_actions_description": "🙌 Schauen Sie sich die Links unten an, um loszulegen, oder navigieren Sie durch die Seitenleiste 😄", "news_section_title": "Neugkeiten", "news_section_description": "Bleiben Sie über die neuesten Entwicklungen und Erkenntnisse aus der Welt der Kryptografie und digitalen Signaturen auf dem Laufenden.", @@ -186,7 +127,6 @@ "Pending_membership_requests": "Ausstehende Mitgliedschaftsanträge", "new_issuance_flow_description": "Sorgen Sie für eine nahtlose und sichere Ausstellung von Credentiale für Ihre Benutzer.", "Make_changes": "Bearbeiten", - "Template": "Vorlage", "Required": "Erforderlich", "Basic_info": "Basisdaten", "template_form_basic_info_description": "Erstellen Sie Vorlagen, um Ausstellungsprozess- und Überprüfungsabläufe zu definieren: Vorlagen enthalten Parameter und Logik der Abläufe. Vorlagen werden in den Ablaufeditoren ausgewählt. ", @@ -196,7 +136,6 @@ "form_structure_description": "Definieren Sie hier die Attribute, die der Benutzer manuell in dem vom Autorisierungsserver bereitgestellten Formular eingeben muss.", "Custom_code": "Benutzerdefinierter Code", "custom_code_description": "Dieser Code enthält die Geschäftslogik des Flows, den wir gerade definieren: Der Code ist in Zencode geschrieben. Beginnen Sie mit den Beispielen und folgen Sie der Dokumentation, um mehr zu erfahren.", - "select_code_sample": "Wählen Sie Zencode aus den Beispielen", "Create_template": "Vorlage erstellen", "Update_template": "Vorlage aktualisieren", "Credential_template": "Berechtigungsvorlage ", @@ -232,7 +171,6 @@ "pending_membership_requests_description": "Hier können Sie die Liste der Benutzer sehen, die eine Mitgliedschaft in dieser Organisation beantragt haben", "members_description": "Liste der bestehenden Mitglieder der Organisation: Mitglieder können unterschiedliche Rollen haben, die ihnen unterschiedliche Berechtigungen verleihen ", "template_is_public_description": "Diese Vorlage kann auch von anderen Organisationen verwendet werden", - "verification_flow_description": "Die Verifizierung wird größtenteils von der DIDroom Verifier-App verwaltet. Installieren Sie die Verifier-App, melden Sie sich mit einem mit dieser Organisation verknüpften Konto an und starten Sie von dort aus den Verifizierungsablauf.", "microservice_name_description": "Dies ist der Name der Microservices, der für Endbenutzer sichtbar sein wird", "microservice_endpoint_description": "Endpunkt der Microservices, der von Kommunikationsprotokollen verwendet wird und für Endbenutzer und andere Microservices sichtbar ist", "Select_language": "Sprache auswählen", @@ -267,13 +205,10 @@ "zencode_script": "Zencode-Skript", "zencode_data": "Zencode-Daten (JSON)", "folder": "Ordner", - "Certificate": "Zertifikat", "Title": "Titel", "File": "Datei", "Update_signature": "Signatur aktualisieren", "Sign_file": "Datei signieren", - "No_signatures_yet": "Noch keine Unterschriften", - "Start_by_signing_a_document": "Beginnen Sie mit der Unterzeichnung eines Dokuments", "Start_by_signing_a_file": "Beginnen Sie mit dem Signieren einer Datei", "Add_folder": "Ordner hinzufügen", "validate_signature_description": "Hier können Sie von dieser oder anderen Anwendungen erstellte Signaturen validieren.", @@ -306,11 +241,77 @@ "Years": "Jahre", "Months": "Monate", "Days": "Tage", - "Year": "Jahr", - "Month": "Monat", - "Day": "Tag", "Date": "Datum", "Please_add_at_least_one_day": "Bitte fügen Sie mindestens einen Tag hinzu", "Date_must_be_after_today": "Das Datum muss nach dem heutigen Tag liegen", - "start": "Start" + "start": "Start", + "Copy_update_script": "Update-Skript kopieren", + "my_folders": "Ordner", + "identity": "Identität", + "my_verifiable_credentials": "Meine Verifizierbares Berechtigungsnachweis", + "Recover_password": "Passwort zurücksetzen", + "ou_have_been_redirected_here_because_your_private_keys_are_missing_": "Sie wurden hierher umgeleitet, weil Ihre privaten Schlüssel fehlen.", + "Welcome_to": "Willkommen zu", + "Thanks_for_joining_us": "Danke, dass Sie dabei sind!", + "One_last_thing_before_to_using_the_app": "Eine letzte Sache, bevor Sie die App nutzen können:", + "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "Sie müssen einige Fragen beantworten, die zur Generierung Ihrer privaten Schlüssel verwendet werden. Die Antworten auf diese Fragen werden uns NIEMALS mitgeteilt!", + "Generate_your_keys": "Generieren Sie Ihre privaten Schlüssel", + "Info": "Info", + "Important_information": "Wichtige Informationen", + "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "Durch die Beantwortung dieser Fragen generiert die App Ihre privaten Schlüssel, die zur Authentifizierung, Signaturen und Verschlüsselung verwendet werden", + "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Bitte stellen Sie sicher, dass Sie sich Ihre Antworten später merken können, da nur so Ihre privaten Schlüssel wiederhergestellt werden können", + "Please_answer_at_least_3_of_the_following_questions": "Bitte beantworten Sie mindestens 3 der folgenden Fragen: ", + "User_email": "Deine E-Mail", + "Generate_keys": "Private Schlüssel generieren", + "I_have_the_seed_passphrase": "Ich habe die Seed-Passphrase", + "Keypair_creation_successful": "Erstellung privater Schlüssel erfolgreich!", + "Please_store_this_in_a_safe_place_to_recover_your_account_in_the_future_this_passphrase_will_be_shown_only_one_time": "Bitte bewahren Sie die „Seed-Passphrase“ an einem sicheren Ort auf, um Ihr Konto in Zukunft problemlos wiederherstellen zu können: Sie wird nur einmal angezeigt! Aus Datenschutz- und Sicherheitsgründen führen wir kein Backup durch.", + "Copy_seed": "Seed-Passphrase kopieren", + "Go_to_Dashboard": "Gehen Sie zum Dashboard", + "ORGANIZATIONS": "ORGANISATIONEN", + "Click_to_upload": "Klicken Sie zum Hochladen", + "or_drag_and_drop": "oder per Drag and Drop", + "JSON_signature_downloaded_from_signroom": "JSON-Signatur heruntergeladen ", + "Upload_a_signature_file_and_verify_autenticity": "Laden Sie eine Signaturdatei hoch und überprüfen Sie die Echtheit", + "shared": "geteilt", + "Validate_signature": "Signatur validieren", + "Signature": "Unterschrift:", + "pdf_reader": "PDF-Reader", + "Remove_access": "Zugriff entfernen", + "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Sind Sie sicher, dass Sie jeglichen Zugriff auf die Signatur entfernen möchten?", + "Undo": "Rückgängig", + "Yes_remove_access": "Ja, Zugriff entfernen", + "Signed": "Unterzeichnet", + "email": "E-Mail", + "You_have_no_keys_yet_": "Sie haben noch keine Schlüssel.", + "Generate_new_keys": "Neue Schlüssel generieren", + "No_organizations_found_Create_one": "Keine Organisationen gefunden. Erstellen Sie eine!", + "Your_join_requests": "Ihre Beitrittsanfragen", + "Reject": "Ablehnen", + "Rejected_requests": "Abgelehnte Anfragen", + "Move_to_pending": "In den Wartezustand verschieben", + "Manage_pending_join_requests": "Ausstehende Beitrittsanfragen verwalten", + "No_join_requests": "Keine Beitrittsanfragen", + "No_rejected_requests": "Keine abgelehnten Anfragen", + "Select_credential_cryptography_type": "Wählen Sie die Kryptografie der Berechtigungsnachweis aus ", + "Select_one_or_more_templates_for_this_service": "Wählen Sie eine oder mehrere Vorlagen für diesen Dienst aus", + "Select_a_credential_issuer": "Wählen Sie einen Berechtigungsaussteller aus", + "Select_an_authorization_service": "Auswählen eines Authorization-Server", + "Servers": "Serveren", + "Select_a_relying_party": "Wählen Sie eine Relying-Party aus", + "Create_new_Template": "Neue Vorlage erstellen", + "Manage_members_and_roles": "Verwalten von Mitgliedern und Rollen", + "Services_templates": "Berechtigungsvorlagen", + "Manage_join_requests": "Beitrittsanfragen verwalten", + "Organization_settings": "Organisationseinstellungen", + "Manage_membership_requests": "Mitgliedschaftsanfragen verwalten", + "Template": "Vorlage", + "select_code_sample": "Wählen Sie Zencode aus den Beispielen", + "verification_flow_description": "Die Verifizierung wird größtenteils von der DIDroom Verifier-App verwaltet. Installieren Sie die Verifier-App, melden Sie sich mit einem mit dieser Organisation verknüpften Konto an und starten Sie von dort aus den Verifizierungsablauf.", + "Certificate": "Zertifikat", + "No_signatures_yet": "Noch keine Unterschriften", + "Start_by_signing_a_document": "Beginnen Sie mit der Unterzeichnung eines Dokuments", + "Year": "Jahr", + "Month": "Monat", + "Day": "Tag" } diff --git a/webapp/messages/en.json b/webapp/messages/en.json index 3ef5f378..ee99a6c2 100644 --- a/webapp/messages/en.json +++ b/webapp/messages/en.json @@ -389,5 +389,7 @@ "you_have_been_invited_by_organization_to_join_the_platform": "You have been invited by {organizationName} to join the platform!", "Please_register_using_the_provided_email_account_": "Please register using the provided email account.", "User_public_keys_are_missing_Please_generate_them_using_the_security_questions_": "User public keys are missing. Please generate them using the security questions.", - "Invalid_seed": "Invalid seed" -} \ No newline at end of file + "Invalid_seed": "Invalid seed", + "decline_membership_request_warning": "decline_membership_request_warning", + "Copy_update_script": "Copy update script" +} diff --git a/webapp/messages/fr.json b/webapp/messages/fr.json index 72bbea20..e289dbfd 100644 --- a/webapp/messages/fr.json +++ b/webapp/messages/fr.json @@ -1,20 +1,16 @@ { "$schema": "https://inlang.com/schema/inlang-message-format", - "my_folders": "Dossiers", "my_signatures": "Signatures", "validate_signatures": "Valider les signatures", "multisignatures": "Multisignatures", "notifications": "Notifications", - "identity": "Identité", "my_DID": "Mon DID", - "my_verifiable_credentials": "Mes identifiants vérifiables", "organizations": "Organisations", "signatures": "Signatures", "hello": "Bonjour", "Forgot_password": "Mot de passe oublié?", "Please_enter_here_your_email_to_recover_your_password_": "Veuillez entrer ici votre email pour réinitialiser votre mot de passe.", "Your_email": "Votre email", - "Recover_password": "Réinitialiser le mot de passe", "Reset_email_sent_successfully": "E-mail de réinitialisation du mot de passe envoyé avec succès !", "Please_click_the_link_in_the_email_to_reset_your_password_": "Veuillez cliquer sur le lien dans l'e-mail pour réinitialiser votre mot de passe.", "Log_in_with_webauthn": "Connectez-vous avec Webauthn", @@ -46,7 +42,6 @@ "Signatures": "Signatures", "Contact": "Contact", "Regenerate_keys": "Régénérer les clés privées", - "ou_have_been_redirected_here_because_your_private_keys_are_missing_": "Vous avez été redirigé ici car vos clés privées sont manquantes.", "You_have_been_redirected_here_because_your_private_keys_are_missing_": "Vous avez été redirigé ici car vos clés privées sont manquantes.", "Before_using_the_app_again_you_need_to_restore_them_": "Avant d'utiliser à nouveau l'application, vous devez restaurer vos clés privées.", "Please_type_here_your_seed_to_restore_your_keyring_": "Veuillez saisir ici votre \"seed\" pour restaurer vos clés privées.", @@ -57,23 +52,6 @@ "Your_keys_have_been_regenerated_You_can_now_go_back_to": "Vos clés ont été régénérées. Vous pouvez maintenant revenir à ", "your_profile": "votre profil", "Hello": "Bonjour,", - "Welcome_to": "Bienvenue à", - "Thanks_for_joining_us": "Merci de nous rejoindre !", - "One_last_thing_before_to_using_the_app": "Une dernière chose avant de pouvoir commencer à utiliser l'application :", - "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "nous avons besoin que vous répondiez à quelques questions, qui seront utilisées pour générer vos clés privées. Les réponses à ces questions ne nous sont JAMAIS communiquées !", - "Generate_your_keys": "Générez vos clés privées", - "Info": "Informations", - "Important_information": "Une information important", - "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "En répondant à ces questions, l'application générera vos clés privées qui serviront à l'authentification, aux signatures et au cryptage", - "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Assurez-vous de pouvoir mémoriser vos réponses ultérieurement, car elles constitueront le seul moyen de restaurer vos clés privées.", - "Please_answer_at_least_3_of_the_following_questions": "Veuillez répondre à au moins 3 des questions suivantes : ", - "User_email": "Votre email", - "Generate_keys": "Générer des clés privées", - "I_have_the_seed_passphrase": "J'ai la phrase secrète du \"seed\"", - "Keypair_creation_successful": "Création de clés privées réussie !", - "Please_store_this_in_a_safe_place_to_recover_your_account_in_the_future_this_passphrase_will_be_shown_only_one_time": "Veuillez conserver la la phrase secrète du \"seed\" dans un endroit sûr pour récupérer facilement votre compte à l'avenir : elle ne sera affichée qu'une seule fois ! Nous ne conservons pas de sauvegarde pour des raisons de confidentialité et de sécurité.", - "Copy_seed": "Copier la phrase secrète du \"seed\"", - "Go_to_Dashboard": "Aller au tableau de bord", "Your_DID": "Votre DID", "add_signature": "ajouter une signature", "signature": "signature", @@ -81,40 +59,23 @@ "My_profile": "Mon profil", "Go_Pro": "Upgrade", "Sign_out": "Se déconnecter", - "ORGANIZATIONS": "ORGANISATIONS", "Read_more": "En savoir plus", "Here_are_some_Helpful_link": "Voici quelques liens utiles :", "Home": "Acceuil", "Login": "Se connecter", "My": "Mon", - "Click_to_upload": "Cliquez pour télécharger", - "or_drag_and_drop": "ou glisser-déposer", - "JSON_signature_downloaded_from_signroom": "Signature JSON téléchargée ", "Validate": "Valider", - "Upload_a_signature_file_and_verify_autenticity": "Téléchargez un fichier de signature et vérifiez l'authenticité", "_Signature_shared_successfully": "✅ Signature partagée avec succès", "_Signature_unshared_successfully": "✅ Signature non partagée avec succès", "_Document_signed_successfully": "✅ Document signé avec succès", - "shared": "partagè", - "Validate_signature": "Valider la signature", - "Signature": "Signature:", - "pdf_reader": "Lecteur PDF", - "Remove_access": "Supprimer l'accès", - "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Êtes-vous sûr de vouloir supprimer tout accès à la signature ?", - "Undo": "Annuler", - "Yes_remove_access": "Oui, supprimer l'accès", "Original_file": "Fichier original", "Signed_file": "Fichier signé", "Preview": "Aperçu", - "Signed": "Signé", "Edit_profile": "Modifier le profil", "Cancel": "Annuler", "Show_email_to_other_users": "Afficher l'e-mail aux autres utilisateurs", "Update_profile": "Mettre à jour le profil", "Username": "Nom d'utilisateur", - "email": "e-mail", - "You_have_no_keys_yet_": "Vous n'avez pas encore de clés.", - "Generate_new_keys": "Générer de nouvelles clés", "Your_keys": "Vos clés", "Checking_your_device": "Vérification de votre appareil", "Your_device_does_not_have_integrated_Webauthn_support_An_external_authenticator_is_required_": "Votre appareil ne dispose pas de support Webauthn intégré. Un authentificateur externe est\nrequis.", @@ -124,9 +85,7 @@ "Your_organizations": "Vos organisations", "Join_an_organization": "Rejoindre une organisation", "Create_a_new_organization": "Créer une nouvelle organisation", - "No_organizations_found_Create_one": "Aucune organisation trouvée. Créez-en une !", "Settings": "Paramètres", - "Your_join_requests": "Vos demandes d'adhésion", "Pending": "En attente", "Undo_request": "Annuler la demande", "My_organizations": "Mes organisations", @@ -142,36 +101,16 @@ "Authorization_servers": "Serveurs d'autorisation", "Relying_parties": "Relying parties", "Credential_issuers": "Émetteurs de identifiants ", - "Reject": "Rejeter", - "Rejected_requests": "Demandes rejetées", "Accept": "Accepter", - "Move_to_pending": "Déplacer vers en attente", - "Manage_pending_join_requests": "Gérer les demandes d'adhésion en attente", - "No_join_requests": "Aucune demande d'adhésion", - "No_rejected_requests": "Aucune demande rejetée", - "Select_credential_cryptography_type": "Sélectionnez le type de cryptographie des identifiants", - "Select_one_or_more_templates_for_this_service": "Sélectionnez un ou plusieurs modèles pour ce service", - "Select_a_credential_issuer": "Sélectionnez un émetteur de identifiants ", - "Select_an_authorization_service": "Sélectionnez un serveur d'autorisation", - "Servers": "Serveurs", - "Select_a_relying_party": "Sélectionnez un relying party", - "Create_new_Template": "Créer un nouveau modèle", "Members": "Membres", "Manage_your_organization_public_info": "Gérez les informations publiques de votre organisation", "Save_changes": "Enregistrer les modifications", - "Manage_members_and_roles": "Gérer les membres et les rôles", - "Services_templates": "Modèles des identifiants ", "Enter_a_description_for_the_schema": "Entrez une description pour le schéma", - "Manage_join_requests": "Gérer les demandes d'adhésion", - "Credential_issuance": "Emission des identifiants ", - "Credential_issuance_QR": "QR de emission des identifiants ", "Templates": "Modèles", "Microservices": "Microservices", "Credential_issuances": "Emissions des identifiants ", - "Organization_settings": "Paramètres de l'organisation", "Membership_requests": "Demandes d'adhésion", "Credential_templates": "Modèles de identifiants", - "Manage_membership_requests": "Gérer les demandes d'adhésion", "quick_actions_description": "🙌 Consultez les liens ci-dessous pour commencer ou parcourez la barre latérale 😄", "news_section_title": "Nouvelles", "news_section_description": "Restez au courant des derniers développements et informations dans le monde de la cryptographie et des signatures numériques.", @@ -190,7 +129,6 @@ "new_issuance_flow_description": "Créez des expériences d’émission de identifiants transparentes et sécurisées pour votre organisation.", "Credential_details": "Détails des identifiants", "Make_changes": "Modifier", - "Template": "Modèle", "Required": "Requis", "Basic_info": "Informations de base", "template_form_basic_info_description": "Créez des modèles pour définir les flux d'émission et de vérification : les modèles contiennent les paramètres et la logique des flux. Les modèles sont sélectionnés dans les éditeurs de flux. ", @@ -200,7 +138,6 @@ "form_structure_description": "Définissez ici les attributs que l'utilisateur doit saisir manuellement, dans le formulaire fourni par le serveur d'autorisation.", "Custom_code": "Code personnalisé", "custom_code_description": "Ce code contient la logique du flux que nous définissons maintenant: le code est écrit en Zencode, partez des exemples et suivez la documentation pour en savoir plus.", - "select_code_sample": "Sélectionnez Zencode parmi les exemples", "Create_template": "Créer un modèle", "Update_template": "Mettre à jour le modèle", "Credential_template": "Modèle de identifiant", @@ -237,7 +174,6 @@ "pending_membership_requests_description": "Ici vous pouvez voir la liste des utilisateurs qui ont demandé à être membres de cette organisation", "members_description": "Liste des membres existants de l'organisation : les membres peuvent avoir différents rôles leur permettant différents privilèges ", "template_is_public_description": "Ce modèle peut également être utilisé par d'autres organisations", - "verification_flow_description": "La vérification est gérée principalement par l'application DIDroom Verifier. Installez l'application de vérification, connectez-vous avec un compte connecté à cette organisation et démarrez le flux de vérification à partir de là.", "microservice_name_description": "Il s'agit du nom du microservice, qui sera visible par les utilisateurs finaux", "microservice_endpoint_description": "URL du microservice, utilisé par les protocoles de communication et visible par les utilisateurs finaux et les autres microservices", "Select_language": "Sélectionner la langue", @@ -273,13 +209,10 @@ "zencode_script": "Script Zencode", "zencode_data": "Données Zencode (JSON)", "folder": "Dossier", - "Certificate": "Certificat", "Title": "Titre", "File": "Déposer", "Update_signature": "Mettre à jour la signature", "Sign_file": "Signer le fichier", - "No_signatures_yet": "Aucune signature pour le moment", - "Start_by_signing_a_document": "Commencez par signer un document", "Start_by_signing_a_file": "Commencez par signer un fichier", "Add_folder": "Ajouter un dossier", "validate_signature_description": "Ici, vous pouvez valider les signatures produites par ces applications ou par d'autres.", @@ -312,11 +245,79 @@ "Years": "Années", "Months": "Mois", "Days": "Jours", - "Year": "Année", - "Month": "Mois", - "Day": "Jour", "Date": "Date", "Please_add_at_least_one_day": "Veuillez ajouter au moins un jour", "Date_must_be_after_today": "La date doit être postérieure à aujourd'hui", - "start": "Commencer" + "start": "Commencer", + "Copy_update_script": "Copier le script de mise à jour", + "my_folders": "Dossiers", + "identity": "Identité", + "my_verifiable_credentials": "Mes identifiants vérifiables", + "Recover_password": "Réinitialiser le mot de passe", + "ou_have_been_redirected_here_because_your_private_keys_are_missing_": "Vous avez été redirigé ici car vos clés privées sont manquantes.", + "Welcome_to": "Bienvenue à", + "Thanks_for_joining_us": "Merci de nous rejoindre !", + "One_last_thing_before_to_using_the_app": "Une dernière chose avant de pouvoir commencer à utiliser l'application :", + "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "nous avons besoin que vous répondiez à quelques questions, qui seront utilisées pour générer vos clés privées. Les réponses à ces questions ne nous sont JAMAIS communiquées !", + "Generate_your_keys": "Générez vos clés privées", + "Info": "Informations", + "Important_information": "Une information important", + "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "En répondant à ces questions, l'application générera vos clés privées qui serviront à l'authentification, aux signatures et au cryptage", + "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Assurez-vous de pouvoir mémoriser vos réponses ultérieurement, car elles constitueront le seul moyen de restaurer vos clés privées.", + "Please_answer_at_least_3_of_the_following_questions": "Veuillez répondre à au moins 3 des questions suivantes : ", + "User_email": "Votre email", + "Generate_keys": "Générer des clés privées", + "I_have_the_seed_passphrase": "J'ai la phrase secrète du \"seed\"", + "Keypair_creation_successful": "Création de clés privées réussie !", + "Please_store_this_in_a_safe_place_to_recover_your_account_in_the_future_this_passphrase_will_be_shown_only_one_time": "Veuillez conserver la la phrase secrète du \"seed\" dans un endroit sûr pour récupérer facilement votre compte à l'avenir : elle ne sera affichée qu'une seule fois ! Nous ne conservons pas de sauvegarde pour des raisons de confidentialité et de sécurité.", + "Copy_seed": "Copier la phrase secrète du \"seed\"", + "Go_to_Dashboard": "Aller au tableau de bord", + "ORGANIZATIONS": "ORGANISATIONS", + "Click_to_upload": "Cliquez pour télécharger", + "or_drag_and_drop": "ou glisser-déposer", + "JSON_signature_downloaded_from_signroom": "Signature JSON téléchargée ", + "Upload_a_signature_file_and_verify_autenticity": "Téléchargez un fichier de signature et vérifiez l'authenticité", + "shared": "partagè", + "Validate_signature": "Valider la signature", + "Signature": "Signature:", + "pdf_reader": "Lecteur PDF", + "Remove_access": "Supprimer l'accès", + "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Êtes-vous sûr de vouloir supprimer tout accès à la signature ?", + "Undo": "Annuler", + "Yes_remove_access": "Oui, supprimer l'accès", + "Signed": "Signé", + "email": "e-mail", + "You_have_no_keys_yet_": "Vous n'avez pas encore de clés.", + "Generate_new_keys": "Générer de nouvelles clés", + "No_organizations_found_Create_one": "Aucune organisation trouvée. Créez-en une !", + "Your_join_requests": "Vos demandes d'adhésion", + "Reject": "Rejeter", + "Rejected_requests": "Demandes rejetées", + "Move_to_pending": "Déplacer vers en attente", + "Manage_pending_join_requests": "Gérer les demandes d'adhésion en attente", + "No_join_requests": "Aucune demande d'adhésion", + "No_rejected_requests": "Aucune demande rejetée", + "Select_credential_cryptography_type": "Sélectionnez le type de cryptographie des identifiants", + "Select_one_or_more_templates_for_this_service": "Sélectionnez un ou plusieurs modèles pour ce service", + "Select_a_credential_issuer": "Sélectionnez un émetteur de identifiants ", + "Select_an_authorization_service": "Sélectionnez un serveur d'autorisation", + "Servers": "Serveurs", + "Select_a_relying_party": "Sélectionnez un relying party", + "Create_new_Template": "Créer un nouveau modèle", + "Manage_members_and_roles": "Gérer les membres et les rôles", + "Services_templates": "Modèles des identifiants ", + "Manage_join_requests": "Gérer les demandes d'adhésion", + "Organization_settings": "Paramètres de l'organisation", + "Manage_membership_requests": "Gérer les demandes d'adhésion", + "Template": "Modèle", + "select_code_sample": "Sélectionnez Zencode parmi les exemples", + "verification_flow_description": "La vérification est gérée principalement par l'application DIDroom Verifier. Installez l'application de vérification, connectez-vous avec un compte connecté à cette organisation et démarrez le flux de vérification à partir de là.", + "Certificate": "Certificat", + "No_signatures_yet": "Aucune signature pour le moment", + "Start_by_signing_a_document": "Commencez par signer un document", + "Year": "Année", + "Month": "Mois", + "Day": "Jour", + "Credential_issuance": "Emission des identifiants ", + "Credential_issuance_QR": "QR de emission des identifiants " } diff --git a/webapp/messages/it.json b/webapp/messages/it.json index 3a87b689..6a06a3fd 100644 --- a/webapp/messages/it.json +++ b/webapp/messages/it.json @@ -1,20 +1,16 @@ { "$schema": "https://inlang.com/schema/inlang-message-format", - "my_folders": "Cartelle", "my_signatures": "Fime", "validate_signatures": "Valida firme", "multisignatures": "Multifirme", "notifications": "Notifiche", - "identity": "Identità", "my_DID": "Il mio DID", - "my_verifiable_credentials": "Le mie Verifiable Credentials", "organizations": "Organizzazioni", "signatures": "Firme", "hello": "Ciao", "Forgot_password": "Hai dimenticato la password?", "Please_enter_here_your_email_to_recover_your_password_": "Inserisci qui la tua email per reimpostare la password.", "Your_email": "La tua email", - "Recover_password": "Resetta la password", "Reset_email_sent_successfully": "E-mail di reimpostazione della password inviata con successo!", "Please_click_the_link_in_the_email_to_reset_your_password_": "Fare clic sul collegamento nell'e-mail per reimpostare la password.", "Log_in_with_webauthn": "Accedi con Webauthn", @@ -46,7 +42,6 @@ "Signatures": "Firme", "Contact": "Contatto", "Regenerate_keys": "Rigenerare le chiavi private", - "ou_have_been_redirected_here_because_your_private_keys_are_missing_": "Sei stato reindirizzato qui perché le tue chiavi private risultano mancanti.", "You_have_been_redirected_here_because_your_private_keys_are_missing_": "Sei stato reindirizzato qui perché mancano le tue chiavi private.", "Before_using_the_app_again_you_need_to_restore_them_": "Prima di utilizzare nuovamente l'app, è necessario ripristinare le chiavi private.", "Please_type_here_your_seed_to_restore_your_keyring_": "Per favore digita qui il tuo \"seed\" per ripristinare le tue chiavi private.", @@ -57,23 +52,6 @@ "Your_keys_have_been_regenerated_You_can_now_go_back_to": "Le tue chiavi sono state rigenerate. Ora puoi tornare a ", "your_profile": "Il tuo profilo", "Hello": "Ciao,", - "Welcome_to": "Benvenuto a", - "Thanks_for_joining_us": "Grazie di essere con noi!", - "One_last_thing_before_to_using_the_app": "Un'ultima cosa prima di iniziare a utilizzare l'app:", - "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "abbiamo bisogno che tu risponda ad alcune domande, che verranno utilizzate per generare le tue chiavi private. Le risposte a queste domande non ci vengono MAI comunicate!", - "Generate_your_keys": "Genera le tue chiavi private", - "Info": "Informazioni", - "Important_information": "Informazioni importanti", - "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "Rispondendo a queste domande, l'app genererà le tue chiavi private che verranno utilizzate per l'autenticazione, le firme e la crittografia", - "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Assicurati di poter ricordare le tue risposte in seguito, poiché saranno l'unico modo per ripristinare le tue chiavi private", - "Please_answer_at_least_3_of_the_following_questions": "Si prega di rispondere ad almeno 3 delle seguenti domande: ", - "User_email": "La tua email", - "Generate_keys": "Genera chiavi private", - "I_have_the_seed_passphrase": "Ho la \"seed passphrase\" ", - "Keypair_creation_successful": "Creazione delle chiavi private riuscita!", - "Please_store_this_in_a_safe_place_to_recover_your_account_in_the_future_this_passphrase_will_be_shown_only_one_time": "Conserva la \"seed passphrase\" in un luogo sicuro per recuperare facilmente il tuo account in futuro: verrà mostrata una sola volta! Non conserviamo un backup per motivi di privacy e sicurezza.", - "Copy_seed": "Copia la seed passphrase", - "Go_to_Dashboard": "Vai alla dashboard", "Your_DID": "Il tuo DID", "add_signature": "aggiungere firma", "signature": "firma", @@ -81,40 +59,23 @@ "My_profile": "Il mio profilo", "Go_Pro": "Upgrade", "Sign_out": "Disconnettiti", - "ORGANIZATIONS": "ORGANIZZAZIONI", "Read_more": "Per saperne di più", "Here_are_some_Helpful_link": "Ecco alcuni link utili:", "Home": "Home", "Login": "Login", "My": "Mio", - "Click_to_upload": "Fare clic per caricare", - "or_drag_and_drop": "oppure fai drag and drop", - "JSON_signature_downloaded_from_signroom": "Firma JSON scaricata ", "Validate": "Controlla", - "Upload_a_signature_file_and_verify_autenticity": "Carica un file di firma e verifica l'autenticità", "_Signature_shared_successfully": "✅ Firma condivisa con successo", "_Signature_unshared_successfully": "✅ Firma annullata con successo", "_Document_signed_successfully": "✅ Documento firmato con successo", - "shared": "condiviso", - "Validate_signature": "Convalida la firma", - "Signature": "Firma:", - "pdf_reader": "Lettore PDF", - "Remove_access": "Rimuovi accesso", - "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Sei sicuro di voler rimuovere ogni accesso alla firma?", - "Undo": "Annulla", - "Yes_remove_access": "Sì, rimuovi l'accesso", "Original_file": "File originale", "Signed_file": "File firmato", "Preview": "Anteprima", - "Signed": "Firmato", "Edit_profile": "Modifica profilo", "Cancel": "Cancella", "Show_email_to_other_users": "Mostra email ad altri utenti", "Update_profile": "Aggiorna profilo", "Username": "Nome utente", - "email": "e-mail", - "You_have_no_keys_yet_": "Non hai ancora le chiavi.", - "Generate_new_keys": "Genera nuove chiavi", "Your_keys": "Le tue chiavi", "Checking_your_device": "Controllo del dispositivo", "Your_device_does_not_have_integrated_Webauthn_support_An_external_authenticator_is_required_": "Il tuo dispositivo non ha il supporto Webauthn integrato. Un autenticatore esterno è\nnecessario.", @@ -124,9 +85,7 @@ "Your_organizations": "Le vostre organizzazioni", "Join_an_organization": "Unisciti a un'organizzazione", "Create_a_new_organization": "Crea una nuova organizzazione", - "No_organizations_found_Create_one": "Nessuna organizzazione trovata. Creane una!", "Settings": "Impostazioni", - "Your_join_requests": "Le tue richieste di adesione", "Pending": "In attesa ", "Undo_request": "Annulla richiesta", "My_organizations": "Le mie organizzazioni", @@ -142,33 +101,15 @@ "Authorization_servers": "Server di autorizzazione", "Relying_parties": "Relying parties", "Credential_issuers": "Credential issuers", - "Reject": "Rifiutare", - "Rejected_requests": "Richieste rifiutate", "Accept": "Accettare", - "Move_to_pending": "Sposta in sospeso", - "Manage_pending_join_requests": "Gestisci le richieste di adesione in sospeso", - "No_join_requests": "Nessuna richiesta di adesione", - "No_rejected_requests": "Nessuna richiesta rifiutata", - "Select_credential_cryptography_type": "Seleziona la crittografia delle credenziali ", - "Select_one_or_more_templates_for_this_service": "Seleziona uno o più modelli per questo servizio", - "Select_a_credential_issuer": "Seleziona un credential issuer", - "Select_an_authorization_service": "Seleziona un authorization server", - "Servers": "Server", - "Select_a_relying_party": "Seleziona un relying party", - "Create_new_Template": "Crea nuovo modello", "Members": "Membri", "Manage_your_organization_public_info": "Gestisci le informazioni pubbliche della tua organizzazione", "Save_changes": "Salvare le modifiche", - "Manage_members_and_roles": "Gestisci membri e ruoli", - "Services_templates": "Modelli di credenziale", "Enter_a_description_for_the_schema": "Inserisci una descrizione per lo schema", - "Manage_join_requests": "Gestisci le richieste di adesione", "Templates": "Modelli", "Microservices": "Microservices", - "Organization_settings": "Impostazioni dell'organizzazione", "Membership_requests": "Richieste di adesione", "Credential_templates": "Modelli di credenziali", - "Manage_membership_requests": "Gestisci le richieste di iscrizione", "quick_actions_description": "🙌 Controlla i link qui sotto per iniziare o naviga nella barra laterale 😄", "news_section_title": "Novità", "news_section_description": "Rimani aggiornato sugli ultimi sviluppi e approfondimenti nel mondo della crittografia e delle firme digitali.", @@ -186,7 +127,6 @@ "Pending_membership_requests": "Richieste di iscrizione in sospeso", "new_issuance_flow_description": "Crea esperienze di rilascio delle credenziali fluide e sicure per i tuoi utenti.", "Make_changes": "Modificare", - "Template": "Modello", "Required": "Necessario", "Basic_info": "Informazioni di base", "template_form_basic_info_description": "Creare template per definire i flussi di emissione e verifica: i template contengono parametri e logica dei flussi. I modelli vengono selezionati all'interno degli editor di flusso. ", @@ -196,7 +136,6 @@ "form_structure_description": "Definire qui gli attributi che l'utente deve inserire manualmente, nel modulo fornito dal server di autorizzazione", "Custom_code": "Codice personalizzato", "custom_code_description": "Questo codice contiene la logica di business del flusso che stiamo definendo adesso: il codice è scritto in Zencode, parti dagli esempi e segui la documentazione per saperne di più", - "select_code_sample": "Seleziona Zencode dagli esempi", "Create_template": "Crea modello", "Update_template": "Aggiorna modello", "Credential_template": "Modello di credenziale", @@ -232,7 +171,6 @@ "pending_membership_requests_description": "Qui puoi vedere l'elenco degli utenti che hanno richiesto di essere membri di questa organizzazione", "members_description": "Elenco dei membri esistenti dell'organizzazione: i membri possono avere ruoli diversi consentendo loro privilegi diversi ", "template_is_public_description": "Questo modello può essere utilizzato anche da altre organizzazioni", - "verification_flow_description": "La verifica è gestita principalmente dall'app DIDroom Verifier. Installa l'app di verifica, accedi con un account collegato a questa organizzazione e avvia il flusso di verifica da lì.", "microservice_name_description": "Questo è il nome dei microservizi, che saranno visibili agli utenti finali", "microservice_endpoint_description": "Endpoint dei microservizi, utilizzato dai protocolli di comunicazione e visibile agli utenti finali e ad altri microservizi", "Select_language": "Seleziona la lingua", @@ -267,13 +205,10 @@ "zencode_script": "Script Zencode", "zencode_data": "Dati Zencode (JSON)", "folder": "Cartella", - "Certificate": "Certificato", "Title": "Titolo", "File": "File", "Update_signature": "Aggiorna firma", "Sign_file": "Firma file", - "No_signatures_yet": "Nessuna firma ancora", - "Start_by_signing_a_document": "Inizia firmando un documento", "Start_by_signing_a_file": "Inizia firmando un file", "Add_folder": "Aggiungi cartella", "validate_signature_description": "Qui puoi convalidare le firme prodotte da questa applicazione o da altre.", @@ -306,11 +241,77 @@ "Years": "Anni", "Months": "Mesi", "Days": "Giorni", - "Year": "Anno", - "Month": "Mese", - "Day": "Giorno", "Date": "Data", "Please_add_at_least_one_day": "Si prega di aggiungere almeno un giorno", "Date_must_be_after_today": "La data deve essere successiva a oggi", - "start": "Inizio" + "start": "Inizio", + "Copy_update_script": "Copia lo script di aggiornamento", + "my_folders": "Cartelle", + "identity": "Identità", + "my_verifiable_credentials": "Le mie Verifiable Credentials", + "Recover_password": "Resetta la password", + "ou_have_been_redirected_here_because_your_private_keys_are_missing_": "Sei stato reindirizzato qui perché le tue chiavi private risultano mancanti.", + "Welcome_to": "Benvenuto a", + "Thanks_for_joining_us": "Grazie di essere con noi!", + "One_last_thing_before_to_using_the_app": "Un'ultima cosa prima di iniziare a utilizzare l'app:", + "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "abbiamo bisogno che tu risponda ad alcune domande, che verranno utilizzate per generare le tue chiavi private. Le risposte a queste domande non ci vengono MAI comunicate!", + "Generate_your_keys": "Genera le tue chiavi private", + "Info": "Informazioni", + "Important_information": "Informazioni importanti", + "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "Rispondendo a queste domande, l'app genererà le tue chiavi private che verranno utilizzate per l'autenticazione, le firme e la crittografia", + "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Assicurati di poter ricordare le tue risposte in seguito, poiché saranno l'unico modo per ripristinare le tue chiavi private", + "Please_answer_at_least_3_of_the_following_questions": "Si prega di rispondere ad almeno 3 delle seguenti domande: ", + "User_email": "La tua email", + "Generate_keys": "Genera chiavi private", + "I_have_the_seed_passphrase": "Ho la \"seed passphrase\" ", + "Keypair_creation_successful": "Creazione delle chiavi private riuscita!", + "Please_store_this_in_a_safe_place_to_recover_your_account_in_the_future_this_passphrase_will_be_shown_only_one_time": "Conserva la \"seed passphrase\" in un luogo sicuro per recuperare facilmente il tuo account in futuro: verrà mostrata una sola volta! Non conserviamo un backup per motivi di privacy e sicurezza.", + "Copy_seed": "Copia la seed passphrase", + "Go_to_Dashboard": "Vai alla dashboard", + "ORGANIZATIONS": "ORGANIZZAZIONI", + "Click_to_upload": "Fare clic per caricare", + "or_drag_and_drop": "oppure fai drag and drop", + "JSON_signature_downloaded_from_signroom": "Firma JSON scaricata ", + "Upload_a_signature_file_and_verify_autenticity": "Carica un file di firma e verifica l'autenticità", + "shared": "condiviso", + "Validate_signature": "Convalida la firma", + "Signature": "Firma:", + "pdf_reader": "Lettore PDF", + "Remove_access": "Rimuovi accesso", + "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Sei sicuro di voler rimuovere ogni accesso alla firma?", + "Undo": "Annulla", + "Yes_remove_access": "Sì, rimuovi l'accesso", + "Signed": "Firmato", + "email": "e-mail", + "You_have_no_keys_yet_": "Non hai ancora le chiavi.", + "Generate_new_keys": "Genera nuove chiavi", + "No_organizations_found_Create_one": "Nessuna organizzazione trovata. Creane una!", + "Your_join_requests": "Le tue richieste di adesione", + "Reject": "Rifiutare", + "Rejected_requests": "Richieste rifiutate", + "Move_to_pending": "Sposta in sospeso", + "Manage_pending_join_requests": "Gestisci le richieste di adesione in sospeso", + "No_join_requests": "Nessuna richiesta di adesione", + "No_rejected_requests": "Nessuna richiesta rifiutata", + "Select_credential_cryptography_type": "Seleziona la crittografia delle credenziali ", + "Select_one_or_more_templates_for_this_service": "Seleziona uno o più modelli per questo servizio", + "Select_a_credential_issuer": "Seleziona un credential issuer", + "Select_an_authorization_service": "Seleziona un authorization server", + "Servers": "Server", + "Select_a_relying_party": "Seleziona un relying party", + "Create_new_Template": "Crea nuovo modello", + "Manage_members_and_roles": "Gestisci membri e ruoli", + "Services_templates": "Modelli di credenziale", + "Manage_join_requests": "Gestisci le richieste di adesione", + "Organization_settings": "Impostazioni dell'organizzazione", + "Manage_membership_requests": "Gestisci le richieste di iscrizione", + "Template": "Modello", + "select_code_sample": "Seleziona Zencode dagli esempi", + "verification_flow_description": "La verifica è gestita principalmente dall'app DIDroom Verifier. Installa l'app di verifica, accedi con un account collegato a questa organizzazione e avvia il flusso di verifica da lì.", + "Certificate": "Certificato", + "No_signatures_yet": "Nessuna firma ancora", + "Start_by_signing_a_document": "Inizia firmando un documento", + "Year": "Anno", + "Month": "Mese", + "Day": "Giorno" } diff --git a/webapp/messages/pt-BR.json b/webapp/messages/pt-BR.json index 5a3bcfa7..dd6bacdd 100644 --- a/webapp/messages/pt-BR.json +++ b/webapp/messages/pt-BR.json @@ -1,20 +1,16 @@ { "$schema": "https://inlang.com/schema/inlang-message-format", - "my_folders": "Pastas", "my_signatures": "Assinaturas", "validate_signatures": "Validar assinaturas", "multisignatures": "Multiassinaturas", "notifications": "Notificações", - "identity": "Identidade", "my_DID": "Meu DID", - "my_verifiable_credentials": "Minhas Verifiable Credentials", "organizations": "Organizações", "signatures": "Assinaturas", "hello": "Olá", "Forgot_password": "Esqueceu sua senha?", "Please_enter_here_your_email_to_recover_your_password_": "Por favor insira aqui seu e-mail para redefinir sua senha.", "Your_email": "Seu email", - "Recover_password": "Redefinir senha", "Reset_email_sent_successfully": "E-mail de redefinição de senha enviado com sucesso!", "Please_click_the_link_in_the_email_to_reset_your_password_": "Clique no link do e-mail para redefinir sua senha.", "Log_in_with_webauthn": "Faça login com Webauthn", @@ -46,7 +42,6 @@ "Signatures": "Assinaturas", "Contact": "Contato", "Regenerate_keys": "Regenerar chaves privadas", - "ou_have_been_redirected_here_because_your_private_keys_are_missing_": "Você foi redirecionado para cá porque suas chaves privadas estão faltando.", "You_have_been_redirected_here_because_your_private_keys_are_missing_": "Você foi redirecionado aqui porque suas chaves privadas estão faltando.", "Before_using_the_app_again_you_need_to_restore_them_": "Antes de usar o aplicativo novamente, você precisa restaurar suas chaves privadas.", "Please_type_here_your_seed_to_restore_your_keyring_": "Por favor digite aqui sua \"seed\" para restaurar suas chaves privadas.", @@ -57,23 +52,6 @@ "Your_keys_have_been_regenerated_You_can_now_go_back_to": "Suas chaves foram regeneradas. Agora você pode voltar para ", "your_profile": "seu perfil", "Hello": "Olá,", - "Welcome_to": "Bem-vindo ao", - "Thanks_for_joining_us": "Obrigado por se juntar a nós!", - "One_last_thing_before_to_using_the_app": "Uma última coisa antes de começar a usar o aplicativo:", - "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "precisamos que você responda algumas perguntas, que serão utilizadas para gerar suas chaves privadas. As respostas a estas perguntas NUNCA nos são comunicadas!", - "Generate_your_keys": "Gere suas chaves privadas", - "Info": "Informações", - "Important_information": "Informação importante", - "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "Ao responder essas perguntas, o app irá gerar suas chaves privadas que serão utilizadas para autenticação, assinaturas e criptografia", - "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Certifique-se de lembrar suas respostas mais tarde, pois elas serão a única maneira de restaurar suas chaves privadas", - "Please_answer_at_least_3_of_the_following_questions": "Por favor, responda pelo menos 3 das seguintes perguntas: ", - "User_email": "Seu email", - "Generate_keys": "Gerar chaves privadas", - "I_have_the_seed_passphrase": "Eu tenho a senha da \"seed\"", - "Keypair_creation_successful": "Criação de chaves privadas bem-sucedida!", - "Please_store_this_in_a_safe_place_to_recover_your_account_in_the_future_this_passphrase_will_be_shown_only_one_time": "Guarde a \"seed passphrase\" em um local seguro para recuperar facilmente sua conta no futuro: ela será mostrada apenas uma vez! Não mantemos backup por motivos de privacidade e segurança.", - "Copy_seed": "Copiar seed passphrase ", - "Go_to_Dashboard": "Ir para a dashboard", "Your_DID": "Seu DID", "add_signature": "adicionar assinatura", "signature": "assinatura", @@ -81,40 +59,23 @@ "My_profile": "Meu perfil", "Go_Pro": "Upgrade", "Sign_out": "Sair", - "ORGANIZATIONS": "ORGANIZAÇÕES", "Read_more": "Consulte Mais informação", "Here_are_some_Helpful_link": "Aqui estão alguns links úteis:", "Home": "Home", "Login": "Conecte-se", "My": "Meu", - "Click_to_upload": "Clique para carregar", - "or_drag_and_drop": "ou arraste e solte", - "JSON_signature_downloaded_from_signroom": "Assinatura JSON baixada ", "Validate": "Validar", - "Upload_a_signature_file_and_verify_autenticity": "Faça upload de um arquivo de assinatura e verifique a autenticidade", "_Signature_shared_successfully": "✅ Assinatura compartilhada com sucesso", "_Signature_unshared_successfully": "✅ Assinatura não compartilhada com sucesso", "_Document_signed_successfully": "✅ Documento assinado com sucesso", - "shared": "compartilhado", - "Validate_signature": "Validar assinatura", - "Signature": "Assinatura:", - "pdf_reader": "Leitor de PDF", - "Remove_access": "Remover acesso", - "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Tem certeza de que deseja remover todo o acesso à assinatura?", - "Undo": "Desfazer", - "Yes_remove_access": "Sim, remover acesso", "Original_file": "Arquivo original", "Signed_file": "Arquivo assinado", "Preview": "Pré-visualização", - "Signed": "Assinado", "Edit_profile": "Editar perfil", "Cancel": "Cancelar", "Show_email_to_other_users": "Mostrar e-mail para outros usuários", "Update_profile": "Atualizar perfil", "Username": "Nome de usuário", - "email": "e-mail", - "You_have_no_keys_yet_": "Você ainda não tem nenhuma chave.", - "Generate_new_keys": "Gerar novas chaves", "Your_keys": "Suas chaves", "Checking_your_device": "Verificando seu dispositivo", "Your_device_does_not_have_integrated_Webauthn_support_An_external_authenticator_is_required_": "Seu dispositivo não tem suporte Webauthn integrado. Um autenticador externo é\nobrigatório.", @@ -124,9 +85,7 @@ "Your_organizations": "Suas organizações", "Join_an_organization": "Junte-se a uma organização", "Create_a_new_organization": "Criar uma nova organização", - "No_organizations_found_Create_one": "Nenhuma organização encontrada. Crie uma!", "Settings": "Configurações", - "Your_join_requests": "Seus pedidos de adesão", "Pending": "Pendente", "Undo_request": "Desfazer solicitação", "My_organizations": "Minhas organizações", @@ -142,33 +101,15 @@ "Authorization_servers": "Servidores de autorização", "Relying_parties": "Relying parties", "Credential_issuers": "Credential issuers", - "Reject": "Rejeitar", - "Rejected_requests": "Pedidos rejeitados", "Accept": "Aceitar", - "Move_to_pending": "Mover para pendente", - "Manage_pending_join_requests": "Gerenciar solicitações pendentes para ingressar", - "No_join_requests": "Nenhuma solicitação de adesão", - "No_rejected_requests": "Nenhuma solicitação rejeitada", - "Select_credential_cryptography_type": "Selecione a criptografia da credencial ", - "Select_one_or_more_templates_for_this_service": "Selecione um ou mais modelos para este serviço", - "Select_a_credential_issuer": "Selecione um credential issuer", - "Select_an_authorization_service": "Selecione um servidor de autorização", - "Servers": "Servidores", - "Select_a_relying_party": "Selecione um relying party", - "Create_new_Template": "Criar novo modelo", "Members": "Membros", "Manage_your_organization_public_info": "Gerencie as informações públicas da sua organização", "Save_changes": "Salvar alterações", - "Manage_members_and_roles": "Gerenciar membros e funções", - "Services_templates": "Modelos de credenciais", "Enter_a_description_for_the_schema": "Insira uma descrição para o esquema", - "Manage_join_requests": "Gerenciar solicitações de adesão", "Templates": "Modelos", "Microservices": "Microservices", - "Organization_settings": "Configurações da organização", "Membership_requests": "Pedidos de adesão", "Credential_templates": "Modelos de credenciais", - "Manage_membership_requests": "Gerenciar solicitações de associação", "quick_actions_description": "🙌 Confira os links abaixo para começar ou navegue na barra lateral 😄", "news_section_title": "O que há de novo", "news_section_description": "Fique atualizado com os últimos desenvolvimentos e insights no mundo da criptografia e assinaturas digitais.", @@ -184,7 +125,6 @@ "Pending_membership_requests": "Pedidos de adesão pendentes", "new_issuance_flow_description": "Crie experiências de emissão de credenciais seguras e integradas para sua organização.", "Make_changes": "Editar", - "Template": "Modelo", "Required": "Obrigatório", "Basic_info": "Informações básicas", "template_form_basic_info_description": "Crie templates para definir fluxos de emissão e verificação: os templates contêm parâmetros e lógica dos fluxos. Os modelos são selecionados nos editores de fluxo. ", @@ -194,7 +134,6 @@ "form_structure_description": "Defina aqui os atributos que o usuário deve inserir manualmente, na forma fornecida pelo servidor de autorização", "Custom_code": "Código personalizado", "custom_code_description": "Este código contém a lógica de negócio do fluxo que estamos definindo agora: o código está escrito em Zencode, comece pelos exemplos e siga a documentação para saber mais", - "select_code_sample": "Selecione Zencode nos exemplos", "Create_template": "Criar modelo", "Update_template": "Atualizar modelo", "Credential_template": "Modelo de credencial", @@ -228,7 +167,6 @@ "templates_description": "Encontre aqui todos os templates dos fluxos de emissão e verificação. Os modelos podem ser de três tipos: Autorização, Emissão ou Verificação. Os templates desempenham um papel central no funcionamento dos fluxos de emissão e verificação de credenciais e, portanto, no comportamento dos seus respectivos microsserviços (Authorization Server, Credential Issuer and Relying Party). ", "pending_membership_requests_description": "Aqui você pode ver a lista de usuários que solicitaram ser membros desta organização", "members_description": "Lista dos membros existentes da organização: os membros podem ter diferentes funções, permitindo-lhes diferentes privilégios ", - "verification_flow_description": "A verificação é gerenciada principalmente pelo aplicativo DIDroom Verifier. Instale o aplicativo verificador, faça login com uma conta conectada a esta organização e inicie o fluxo de verificação a partir daí.", "microservice_name_description": "Este é o nome dos microsserviços que ficarão visíveis para os usuários finais", "microservice_endpoint_description": "Ponto final dos microsserviços, usado por protocolos de comunicação e visível por usuários finais e outros microsserviços", "Select_language": "Selecione o idioma", @@ -263,13 +201,10 @@ "zencode_script": "Zencode script", "zencode_data": "Dados Zencode (JSON)", "folder": "Pasta", - "Certificate": "Certificado", "Title": "Título", "File": "Arquivo", "Update_signature": "Atualizar assinatura", "Sign_file": "Assinar arquivo", - "No_signatures_yet": "Nenhuma assinatura ainda", - "Start_by_signing_a_document": "Comece assinando um documento", "Start_by_signing_a_file": "Comece assinando um arquivo", "Add_folder": "Adicionar pasta", "validate_signature_description": "Aqui você pode validar assinaturas produzidas por este aplicativo ou por outros.", @@ -302,11 +237,77 @@ "Years": "Anos", "Months": "Meses", "Days": "Dias", - "Year": "Ano", - "Month": "Mês", - "Day": "Dia", "Date": "Data", "Please_add_at_least_one_day": "Por favor, adicione pelo menos um dia", "Date_must_be_after_today": "A data deve ser posterior a hoje", - "start": "Começar" + "start": "Começar", + "Copy_update_script": "Copiar script de atualização", + "my_folders": "Pastas", + "identity": "Identidade", + "my_verifiable_credentials": "Minhas Verifiable Credentials", + "Recover_password": "Redefinir senha", + "ou_have_been_redirected_here_because_your_private_keys_are_missing_": "Você foi redirecionado para cá porque suas chaves privadas estão faltando.", + "Welcome_to": "Bem-vindo ao", + "Thanks_for_joining_us": "Obrigado por se juntar a nós!", + "One_last_thing_before_to_using_the_app": "Uma última coisa antes de começar a usar o aplicativo:", + "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "precisamos que você responda algumas perguntas, que serão utilizadas para gerar suas chaves privadas. As respostas a estas perguntas NUNCA nos são comunicadas!", + "Generate_your_keys": "Gere suas chaves privadas", + "Info": "Informações", + "Important_information": "Informação importante", + "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "Ao responder essas perguntas, o app irá gerar suas chaves privadas que serão utilizadas para autenticação, assinaturas e criptografia", + "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Certifique-se de lembrar suas respostas mais tarde, pois elas serão a única maneira de restaurar suas chaves privadas", + "Please_answer_at_least_3_of_the_following_questions": "Por favor, responda pelo menos 3 das seguintes perguntas: ", + "User_email": "Seu email", + "Generate_keys": "Gerar chaves privadas", + "I_have_the_seed_passphrase": "Eu tenho a senha da \"seed\"", + "Keypair_creation_successful": "Criação de chaves privadas bem-sucedida!", + "Please_store_this_in_a_safe_place_to_recover_your_account_in_the_future_this_passphrase_will_be_shown_only_one_time": "Guarde a \"seed passphrase\" em um local seguro para recuperar facilmente sua conta no futuro: ela será mostrada apenas uma vez! Não mantemos backup por motivos de privacidade e segurança.", + "Copy_seed": "Copiar seed passphrase ", + "Go_to_Dashboard": "Ir para a dashboard", + "ORGANIZATIONS": "ORGANIZAÇÕES", + "Click_to_upload": "Clique para carregar", + "or_drag_and_drop": "ou arraste e solte", + "JSON_signature_downloaded_from_signroom": "Assinatura JSON baixada ", + "Upload_a_signature_file_and_verify_autenticity": "Faça upload de um arquivo de assinatura e verifique a autenticidade", + "shared": "compartilhado", + "Validate_signature": "Validar assinatura", + "Signature": "Assinatura:", + "pdf_reader": "Leitor de PDF", + "Remove_access": "Remover acesso", + "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Tem certeza de que deseja remover todo o acesso à assinatura?", + "Undo": "Desfazer", + "Yes_remove_access": "Sim, remover acesso", + "Signed": "Assinado", + "email": "e-mail", + "You_have_no_keys_yet_": "Você ainda não tem nenhuma chave.", + "Generate_new_keys": "Gerar novas chaves", + "No_organizations_found_Create_one": "Nenhuma organização encontrada. Crie uma!", + "Your_join_requests": "Seus pedidos de adesão", + "Reject": "Rejeitar", + "Rejected_requests": "Pedidos rejeitados", + "Move_to_pending": "Mover para pendente", + "Manage_pending_join_requests": "Gerenciar solicitações pendentes para ingressar", + "No_join_requests": "Nenhuma solicitação de adesão", + "No_rejected_requests": "Nenhuma solicitação rejeitada", + "Select_credential_cryptography_type": "Selecione a criptografia da credencial ", + "Select_one_or_more_templates_for_this_service": "Selecione um ou mais modelos para este serviço", + "Select_a_credential_issuer": "Selecione um credential issuer", + "Select_an_authorization_service": "Selecione um servidor de autorização", + "Servers": "Servidores", + "Select_a_relying_party": "Selecione um relying party", + "Create_new_Template": "Criar novo modelo", + "Manage_members_and_roles": "Gerenciar membros e funções", + "Services_templates": "Modelos de credenciais", + "Manage_join_requests": "Gerenciar solicitações de adesão", + "Organization_settings": "Configurações da organização", + "Manage_membership_requests": "Gerenciar solicitações de associação", + "Template": "Modelo", + "select_code_sample": "Selecione Zencode nos exemplos", + "verification_flow_description": "A verificação é gerenciada principalmente pelo aplicativo DIDroom Verifier. Instale o aplicativo verificador, faça login com uma conta conectada a esta organização e inicie o fluxo de verificação a partir daí.", + "Certificate": "Certificado", + "No_signatures_yet": "Nenhuma assinatura ainda", + "Start_by_signing_a_document": "Comece assinando um documento", + "Year": "Ano", + "Month": "Mês", + "Day": "Dia" } diff --git a/webapp/src/lib/components/templateSchemaDisplay.svelte b/webapp/src/lib/components/templateSchemaDisplay.svelte index ea8160a7..69948116 100644 --- a/webapp/src/lib/components/templateSchemaDisplay.svelte +++ b/webapp/src/lib/components/templateSchemaDisplay.svelte @@ -11,8 +11,8 @@ SPDX-License-Identifier: AGPL-3.0-or-later import { flattenCredentialSubjectProperties, objectSchemaToCredentialSubject - } from '@api/download-microservices/utils/credential-subject'; - import { DEFAULT_LOCALE } from '@api/download-microservices/utils/locale'; + } from '@api/download-microservices-[orgId]/utils/credential-subject'; + import { DEFAULT_LOCALE } from '@api/download-microservices-[orgId]/utils/locale'; import { Effect, pipe, Either } from 'effect'; import EmptyState from './emptyState.svelte'; import { ExclamationTriangle } from 'svelte-heros-v2'; @@ -50,7 +50,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later {@const displayName = property.display?.at(0)?.name}

- {m.Property_ID()}: {propertyId} + {m.Property_ID()}: {propertyId}

{#if displayName}

diff --git a/webapp/src/lib/templates/utils.ts b/webapp/src/lib/templates/utils.ts index 5ebe7947..6b343291 100644 --- a/webapp/src/lib/templates/utils.ts +++ b/webapp/src/lib/templates/utils.ts @@ -8,7 +8,7 @@ import { objectSchemaValidator } from '$lib/jsonSchema/types'; import { objectSchemaToCredentialSubject, flattenCredentialSubjectProperties -} from '@api/download-microservices/utils/credential-subject'; +} from '@api/download-microservices-[orgId]/utils/credential-subject'; // diff --git a/webapp/src/routes/[[lang]]/my/organizations/[id]/microservices/+page.svelte b/webapp/src/routes/[[lang]]/my/organizations/[id]/microservices/+page.svelte index 53c00e13..31263008 100644 --- a/webapp/src/routes/[[lang]]/my/organizations/[id]/microservices/+page.svelte +++ b/webapp/src/routes/[[lang]]/my/organizations/[id]/microservices/+page.svelte @@ -15,7 +15,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later import { ProtectedOrgUI } from '$lib/organizations'; import PortalWrapper from '$lib/components/portalWrapper.svelte'; import { getErrorMessage } from '$lib/errorHandling.js'; - import { requestDownloadMicroservices } from '@api/download-microservices/index.js'; + import { requestDownloadMicroservices } from '@api/download-microservices-[orgId]/utils'; import { dowloadResponseAsZip } from '$lib/utils/clientFileDownload.js'; import MicroserviceCollectionManager from './_partials/microserviceCollectionManager.svelte'; @@ -45,8 +45,6 @@ SPDX-License-Identifier: AGPL-3.0-or-later if (!response.ok) throw new Error(response.statusText); dowloadResponseAsZip(response, 'microservices.zip'); } - - // diff --git a/webapp/src/routes/[[lang]]/my/organizations/[id]/microservices/_partials/microserviceCollectionManager.svelte b/webapp/src/routes/[[lang]]/my/organizations/[id]/microservices/_partials/microserviceCollectionManager.svelte index bd98d927..20300d3f 100644 --- a/webapp/src/routes/[[lang]]/my/organizations/[id]/microservices/_partials/microserviceCollectionManager.svelte +++ b/webapp/src/routes/[[lang]]/my/organizations/[id]/microservices/_partials/microserviceCollectionManager.svelte @@ -9,6 +9,8 @@ SPDX-License-Identifier: AGPL-3.0-or-later {#each records as record} - +

{record.name} @@ -105,34 +122,44 @@ SPDX-License-Identifier: AGPL-3.0-or-later -
- - - -

{m.Warning()}

-

{m.microservice_edit_warning()}

-
-
- - -
- - +
+ + + +

{m.Warning()}

+

{m.microservice_edit_warning()}

+
+
+ + +
+ + + + +
+ + - -
+ {m.Copy_update_script()} +
diff --git a/webapp/src/routes/api/download-microservices-[orgId]/+server.ts b/webapp/src/routes/api/download-microservices-[orgId]/+server.ts new file mode 100644 index 00000000..e4c0169d --- /dev/null +++ b/webapp/src/routes/api/download-microservices-[orgId]/+server.ts @@ -0,0 +1,155 @@ +// SPDX-FileCopyrightText: 2024 The Forkbomb Company +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import { json, type RequestHandler } from '@sveltejs/kit'; +import AdmZip from 'adm-zip'; +import { create_credential_issuer_zip } from './credential-issuer'; +import { createAuthorizationServerZip } from './authorization-server'; +import { create_relying_party_zip } from './relying-party'; +import { addZipAsSubfolder } from './utils/zip'; +import { createSlug } from './utils/strings'; +import { startDockerCompose, endDockerCompose, setupDockerCompose } from './utils/dockercompose'; + +import PocketBase, { type RecordFullListOptions } from 'pocketbase'; +import { PUBLIC_POCKETBASE_URL } from '$env/static/public'; +import type { + AuthorizationServersResponse, + IssuersResponse, + OrganizationsResponse, + RelyingPartiesResponse, + ServicesResponse, + TemplatesResponse, + TypedPocketBase, + VerificationFlowsResponse +} from '$lib/pocketbase/types'; +import type { Expiration } from '$lib/issuanceFlows/expiration'; + +// + +const DIDROOM_MICROSERVICES_URL = + 'https://github.com/ForkbombEu/DIDroom_microservices/archive/refs/heads/main.zip'; + +export const GET: RequestHandler = async ({ fetch, request, params }) => { + const token = request.headers.get('Authorization'); + if (!token) return errorResponse('missing_token', 401); + + try { + const pb = new PocketBase(PUBLIC_POCKETBASE_URL) as TypedPocketBase; + pb.authStore.save(token, null); + const data = await fetchRequestedData(pb, params.orgId!, fetch); + const didroom_microservices_zip = await fetchZipFileAsBuffer(DIDROOM_MICROSERVICES_URL, fetch); + const zip = createMicroservicesZip(didroom_microservices_zip, data); + return zipResponse(zip); + } catch (e) { + console.log(e); + return errorResponse(e); + } +}; + +// + +async function fetchRequestedData( + pb: TypedPocketBase, + organizationId: string, + fetchFn = fetch +): Promise { + const pbOptions: RecordFullListOptions = { + filter: `organization.id = '${organizationId}'`, + fetch: fetchFn + }; + + const organization = await pb.collection('organizations').getOne(organizationId); + const issuance_flows = await pb + .collection('services') + .getFullList>(pbOptions); + + const verification_flows = await pb.collection('verification_flows').getFullList(pbOptions); + const templates = await pb.collection('templates').getFullList(pbOptions); + + const relying_parties = (await pb.collection('relying_parties').getFullList(pbOptions)).filter( + (rp) => verification_flows.map((vf) => vf.relying_party).includes(rp.id) + ); + const credential_issuers = (await pb.collection('issuers').getFullList(pbOptions)).filter((ci) => + issuance_flows.map((flow) => flow.credential_issuer).includes(ci.id) + ); + const authorization_servers = ( + await pb.collection('authorization_servers').getFullList(pbOptions) + ).filter((as) => issuance_flows.map((flow) => flow.authorization_server).includes(as.id)); + + return { + organization, + issuance_flows, + verification_flows, + templates, + relying_parties, + credential_issuers, + authorization_servers + }; +} + +export type DownloadMicroservicesData = { + authorization_servers: AuthorizationServersResponse[]; + credential_issuers: IssuersResponse[]; + relying_parties: RelyingPartiesResponse[]; + templates: TemplatesResponse[]; + issuance_flows: ServicesResponse[]; + verification_flows: VerificationFlowsResponse[]; + organization: OrganizationsResponse; +}; + +// + +function createMicroservicesZip( + didroom_microservices_zip_buffer: Buffer, + data: DownloadMicroservicesData +): AdmZip { + const zip = new AdmZip(); + + const dockerComposeFiles = startDockerCompose(); + + data.authorization_servers.forEach((a) => { + setupDockerCompose(dockerComposeFiles, a, 'authz_server'); + const az = createAuthorizationServerZip(didroom_microservices_zip_buffer, a, data); + addZipAsSubfolder(zip, az, `as_${createSlug(a.name)}`); + }); + data.relying_parties.forEach((r) => { + setupDockerCompose(dockerComposeFiles, r, 'relying_party'); + const rz = create_relying_party_zip(didroom_microservices_zip_buffer, r, data); + addZipAsSubfolder(zip, rz, `rp_${createSlug(r.name)}`); + }); + data.credential_issuers.forEach((c) => { + setupDockerCompose(dockerComposeFiles, c, 'credential_issuer'); + const cz = create_credential_issuer_zip(didroom_microservices_zip_buffer, c, data); + addZipAsSubfolder(zip, cz, `ci_${createSlug(c.name)}`); + }); + + endDockerCompose(zip, dockerComposeFiles); + return zip; +} + +// + +async function fetchZipFileAsBuffer(url: string, fetchFn = fetch): Promise { + const zipResponse = await fetchFn(url); + return Buffer.from(await zipResponse.arrayBuffer()); +} + +function zipResponse(zip: AdmZip) { + return new Response(zip.toBuffer(), { + status: 200, + headers: { + 'Content-Type': 'application/octet-stream' + } + }); +} + +function errorResponse(e: unknown, status = 500) { + let message = 'Internal Server Error'; + if (e instanceof Error) message = e.message; + else if (typeof e == 'string') message = e; + + return new Response(message, { + status + }); +} diff --git a/webapp/src/routes/api/download-microservices/authorization-server.ts b/webapp/src/routes/api/download-microservices-[orgId]/authorization-server.ts similarity index 93% rename from webapp/src/routes/api/download-microservices/authorization-server.ts rename to webapp/src/routes/api/download-microservices-[orgId]/authorization-server.ts index 5100a854..1ca5ac3a 100644 --- a/webapp/src/routes/api/download-microservices/authorization-server.ts +++ b/webapp/src/routes/api/download-microservices-[orgId]/authorization-server.ts @@ -11,7 +11,6 @@ import type { ServicesResponse, TemplatesResponse } from '$lib/pocketbase/types'; -import type { DownloadMicroservicesRequestBody } from '.'; import type { ObjectSchema } from '$lib/jsonSchema/types'; import { @@ -24,20 +23,20 @@ import { type WellKnown } from './shared-operations'; import { update_zip_json_entry } from './utils/zip'; -import { mergeObjectSchemas } from './utils/credential-subject'; import { config } from './config'; +import type { DownloadMicroservicesData } from './+server'; /* Main */ export function createAuthorizationServerZip( zip_buffer: Buffer, authorization_server: AuthorizationServersResponse, - request_body: DownloadMicroservicesRequestBody + data: DownloadMicroservicesData ) { const zip = new AdmZip(zip_buffer); const authorization_server_related_data = get_authorization_server_related_data_from_request_body( - request_body, + data, authorization_server ); @@ -64,17 +63,17 @@ type AuthorizationServerRelatedData = { }; function get_authorization_server_related_data_from_request_body( - body: DownloadMicroservicesRequestBody, + data: DownloadMicroservicesData, authorization_server: AuthorizationServersResponse ): AuthorizationServerRelatedData { return { credentials: pipe( - body.issuance_flows, + data.issuance_flows, A.filter((issuance_flow) => issuance_flow.authorization_server == authorization_server.id), A.map((issuance_flow) => ({ issuance_flow, authorization_template: pipe( - body.templates, + data.templates, A.findFirst((t) => t.id == issuance_flow.authorization_template), O.getOrThrow ) diff --git a/webapp/src/routes/api/download-microservices/config.ts b/webapp/src/routes/api/download-microservices-[orgId]/config.ts similarity index 100% rename from webapp/src/routes/api/download-microservices/config.ts rename to webapp/src/routes/api/download-microservices-[orgId]/config.ts diff --git a/webapp/src/routes/api/download-microservices/credential-issuer.ts b/webapp/src/routes/api/download-microservices-[orgId]/credential-issuer.ts similarity index 97% rename from webapp/src/routes/api/download-microservices/credential-issuer.ts rename to webapp/src/routes/api/download-microservices-[orgId]/credential-issuer.ts index 3b6caaaa..aceff3ef 100644 --- a/webapp/src/routes/api/download-microservices/credential-issuer.ts +++ b/webapp/src/routes/api/download-microservices-[orgId]/credential-issuer.ts @@ -13,7 +13,6 @@ import type { TemplatesResponse } from '$lib/pocketbase/types'; import type { ObjectSchema } from '$lib/jsonSchema/types'; -import type { DownloadMicroservicesRequestBody } from '.'; import { add_credential_custom_code, @@ -31,6 +30,7 @@ import { import { update_zip_json_entry } from './utils/zip'; import { DEFAULT_LOCALE } from './utils/locale'; import { config } from './config'; +import type { DownloadMicroservicesData } from './+server'; import type { Expiration, ExpirationDate } from '$lib/issuanceFlows/expiration'; /* Main */ @@ -38,7 +38,7 @@ import type { Expiration, ExpirationDate } from '$lib/issuanceFlows/expiration'; export function create_credential_issuer_zip( didroom_microservices_zip_buffer: Buffer, credential_issuer: IssuersResponse, - request_body: DownloadMicroservicesRequestBody + request_body: DownloadMicroservicesData ) { const zip = new AdmZip(didroom_microservices_zip_buffer); @@ -67,13 +67,13 @@ type IssuanceFlow = ServicesResponse & { template: TemplatesResponse function get_credential_issuer_related_data_from_request_body( credential_issuer: IssuersResponse, - body: DownloadMicroservicesRequestBody + data: DownloadMicroservicesData ): CredentialIssuerRelatedData { const { authorization_servers: org_authorization_servers, issuance_flows: org_issuance_flows, templates: org_templates - } = body; + } = data; const related_issuance_flows = org_issuance_flows.filter( (flow) => flow.credential_issuer == credential_issuer.id diff --git a/webapp/src/routes/api/download-microservices/relying-party.ts b/webapp/src/routes/api/download-microservices-[orgId]/relying-party.ts similarity index 92% rename from webapp/src/routes/api/download-microservices/relying-party.ts rename to webapp/src/routes/api/download-microservices-[orgId]/relying-party.ts index 833bd31c..de94d04d 100644 --- a/webapp/src/routes/api/download-microservices/relying-party.ts +++ b/webapp/src/routes/api/download-microservices-[orgId]/relying-party.ts @@ -7,7 +7,6 @@ import { String as S, pipe, Array as A } from 'effect'; import _ from 'lodash/fp'; import type { IssuersResponse, RelyingPartiesResponse } from '$lib/pocketbase/types'; -import type { DownloadMicroservicesRequestBody } from '.'; import { add_microservice_env, @@ -19,16 +18,17 @@ import { import { DEFAULT_LOCALE } from './utils/locale'; import { update_zip_json_entry } from './utils/zip'; import { config } from './config'; +import type { DownloadMicroservicesData } from './+server'; /* Main */ export function create_relying_party_zip( zip_buffer: Buffer, relying_party: RelyingPartiesResponse, - request_body: DownloadMicroservicesRequestBody + data: DownloadMicroservicesData ) { const zip = new AdmZip(zip_buffer); - edit_relying_party_well_known(zip, relying_party, request_body.credential_issuers); + edit_relying_party_well_known(zip, relying_party, data.credential_issuers); add_microservice_env(zip, relying_party); delete_unused_folders(zip, 'relying_party'); delete_tests(zip); diff --git a/webapp/src/routes/api/download-microservices/shared-operations.ts b/webapp/src/routes/api/download-microservices-[orgId]/shared-operations.ts similarity index 100% rename from webapp/src/routes/api/download-microservices/shared-operations.ts rename to webapp/src/routes/api/download-microservices-[orgId]/shared-operations.ts diff --git a/webapp/src/routes/api/download-microservices-[orgId]/utils.ts b/webapp/src/routes/api/download-microservices-[orgId]/utils.ts new file mode 100644 index 00000000..2b6d971d --- /dev/null +++ b/webapp/src/routes/api/download-microservices-[orgId]/utils.ts @@ -0,0 +1,16 @@ +// SPDX-FileCopyrightText: 2024 The Forkbomb Company +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import { pb } from '$lib/pocketbase'; + +// + +export async function requestDownloadMicroservices(organizationId: string, fetchFn = fetch) { + return await fetchFn(`/api/download-microservices-${organizationId}`, { + method: 'GET', + headers: { + Authorization: `Bearer ${pb.authStore.token}` + } + }); +} diff --git a/webapp/src/routes/api/download-microservices/utils/credential-subject.ts b/webapp/src/routes/api/download-microservices-[orgId]/utils/credential-subject.ts similarity index 100% rename from webapp/src/routes/api/download-microservices/utils/credential-subject.ts rename to webapp/src/routes/api/download-microservices-[orgId]/utils/credential-subject.ts diff --git a/webapp/src/routes/api/download-microservices/utils/dockercompose.ts b/webapp/src/routes/api/download-microservices-[orgId]/utils/dockercompose.ts similarity index 100% rename from webapp/src/routes/api/download-microservices/utils/dockercompose.ts rename to webapp/src/routes/api/download-microservices-[orgId]/utils/dockercompose.ts diff --git a/webapp/src/routes/api/download-microservices/utils/locale.ts b/webapp/src/routes/api/download-microservices-[orgId]/utils/locale.ts similarity index 100% rename from webapp/src/routes/api/download-microservices/utils/locale.ts rename to webapp/src/routes/api/download-microservices-[orgId]/utils/locale.ts diff --git a/webapp/src/routes/api/download-microservices/utils/strings.ts b/webapp/src/routes/api/download-microservices-[orgId]/utils/strings.ts similarity index 100% rename from webapp/src/routes/api/download-microservices/utils/strings.ts rename to webapp/src/routes/api/download-microservices-[orgId]/utils/strings.ts diff --git a/webapp/src/routes/api/download-microservices/utils/zip.ts b/webapp/src/routes/api/download-microservices-[orgId]/utils/zip.ts similarity index 100% rename from webapp/src/routes/api/download-microservices/utils/zip.ts rename to webapp/src/routes/api/download-microservices-[orgId]/utils/zip.ts diff --git a/webapp/src/routes/api/download-microservices/index.ts b/webapp/src/routes/api/download-microservices/index.ts deleted file mode 100644 index 66c9b8fe..00000000 --- a/webapp/src/routes/api/download-microservices/index.ts +++ /dev/null @@ -1,84 +0,0 @@ -// SPDX-FileCopyrightText: 2024 The Forkbomb Company -// -// SPDX-License-Identifier: AGPL-3.0-or-later - -import type { Expiration } from '$lib/issuanceFlows/expiration'; -import { pb } from '$lib/pocketbase'; -import type { - AuthorizationServersResponse, - IssuersResponse, - OrganizationsResponse, - RelyingPartiesResponse, - ServicesResponse, - TemplatesResponse, - VerificationFlowsResponse -} from '$lib/pocketbase/types'; -import type { RecordFullListOptions } from 'pocketbase'; - -// - -export async function requestDownloadMicroservices(organizationId: string, fetchFn = fetch) { - const body = await createDownloadMicroservicesRequestBody(organizationId, fetchFn); - return await sendPostRequest('/api/download-microservices', body, fetchFn); -} - -// - -export type DownloadMicroservicesRequestBody = { - authorization_servers: AuthorizationServersResponse[]; - credential_issuers: IssuersResponse[]; - relying_parties: RelyingPartiesResponse[]; - templates: TemplatesResponse[]; - issuance_flows: ServicesResponse[]; - verification_flows: VerificationFlowsResponse[]; - organization: OrganizationsResponse; -}; - -async function createDownloadMicroservicesRequestBody( - organizationId: string, - fetchFn = fetch -): Promise { - const pbOptions: RecordFullListOptions = { - filter: `organization.id = '${organizationId}'`, - fetch: fetchFn - }; - - const organization = await pb.collection('organizations').getOne(organizationId); - const issuance_flows = await pb - .collection('services') - .getFullList>(pbOptions); - const verification_flows = await pb.collection('verification_flows').getFullList(pbOptions); - const templates = await pb.collection('templates').getFullList(pbOptions); - - const relying_parties = (await pb.collection('relying_parties').getFullList(pbOptions)).filter( - (rp) => verification_flows.map((vf) => vf.relying_party).includes(rp.id) - ); - const credential_issuers = (await pb.collection('issuers').getFullList(pbOptions)).filter((ci) => - issuance_flows.map((flow) => flow.credential_issuer).includes(ci.id) - ); - const authorization_servers = ( - await pb.collection('authorization_servers').getFullList(pbOptions) - ).filter((as) => issuance_flows.map((flow) => flow.authorization_server).includes(as.id)); - - return { - organization, - issuance_flows, - verification_flows, - templates, - relying_parties, - credential_issuers, - authorization_servers - }; -} - -// - -function sendPostRequest>(url: string, body: T, fetchFn = fetch) { - return fetchFn(url, { - method: 'POST', - body: JSON.stringify(body), - headers: { - 'content-type': 'application/json' - } - }); -}