From f59df49588939b9ec084be2e7bef63c754f00e20 Mon Sep 17 00:00:00 2001 From: Matthias Nannt Date: Wed, 20 Aug 2025 14:55:58 +0200 Subject: [PATCH] chore: backport ecr build and push action --- .github/workflows/build-and-push-ecr.yml | 99 ++++++++++++++++++++++++ apps/web/locales/de-DE.json | 14 +--- apps/web/locales/en-US.json | 14 +--- apps/web/locales/fr-FR.json | 14 +--- apps/web/locales/pt-BR.json | 14 +--- apps/web/locales/pt-PT.json | 14 +--- apps/web/locales/ro-RO.json | 14 +--- apps/web/locales/zh-Hant-TW.json | 14 +--- 8 files changed, 113 insertions(+), 84 deletions(-) create mode 100644 .github/workflows/build-and-push-ecr.yml diff --git a/.github/workflows/build-and-push-ecr.yml b/.github/workflows/build-and-push-ecr.yml new file mode 100644 index 0000000000..31f50dc1ad --- /dev/null +++ b/.github/workflows/build-and-push-ecr.yml @@ -0,0 +1,99 @@ +name: Build & Push Docker to ECR + +on: + workflow_dispatch: + inputs: + image_tag: + description: "Image tag to push (e.g., v3.16.1)" + required: true + default: "v3.16.1" + +permissions: + contents: read + id-token: write + +env: + ECR_REGION: ${{ vars.ECR_REGION }} + # ECR settings are sourced from repository/environment variables for portability across envs/forks + ECR_REGISTRY: ${{ vars.ECR_REGISTRY }} + ECR_REPOSITORY: ${{ vars.ECR_REPOSITORY }} + DOCKERFILE: apps/web/Dockerfile + CONTEXT: . + +jobs: + build-and-push: + name: Build and Push + runs-on: ubuntu-latest + timeout-minutes: 45 + steps: + - name: Harden the runner (Audit all outbound calls) + uses: step-security/harden-runner@ec9f2d5744a09debf3a187a3f4f675c53b671911 # v2.13.0 + with: + egress-policy: audit + + - name: Checkout repository + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Validate image tag input + shell: bash + env: + IMAGE_TAG: ${{ inputs.image_tag }} + run: | + set -euo pipefail + if [[ -z "${IMAGE_TAG}" ]]; then + echo "❌ Image tag is required (non-empty)." + exit 1 + fi + if (( ${#IMAGE_TAG} > 128 )); then + echo "❌ Image tag must be at most 128 characters." + exit 1 + fi + if [[ ! "${IMAGE_TAG}" =~ ^[a-z0-9._-]+$ ]]; then + echo "❌ Image tag may only contain lowercase letters, digits, '.', '_' and '-'." + exit 1 + fi + if [[ "${IMAGE_TAG}" =~ ^[.-] || "${IMAGE_TAG}" =~ [.-]$ ]]; then + echo "❌ Image tag must not start or end with '.' or '-'." + exit 1 + fi + + - name: Validate required variables + shell: bash + env: + ECR_REGISTRY: ${{ env.ECR_REGISTRY }} + ECR_REPOSITORY: ${{ env.ECR_REPOSITORY }} + ECR_REGION: ${{ env.ECR_REGION }} + run: | + set -euo pipefail + if [[ -z "${ECR_REGISTRY}" || -z "${ECR_REPOSITORY}" || -z "${ECR_REGION}" ]]; then + echo "ECR_REGION, ECR_REGISTRY and ECR_REPOSITORY must be set via repository or environment variables (Settings → Variables)." + exit 1 + fi + + - name: Configure AWS credentials (OIDC) + uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a + with: + role-to-assume: ${{ secrets.AWS_ECR_PUSH_ROLE_ARN }} + aws-region: ${{ env.ECR_REGION }} + + - name: Log in to Amazon ECR + uses: aws-actions/amazon-ecr-login@062b18b96a7aff071d4dc91bc00c4c1a7945b076 + + - name: Set up Depot CLI + uses: depot/setup-action@b0b1ea4f69e92ebf5dea3f8713a1b0c37b2126a5 # v1.6.0 + + - name: Build and push image (Depot remote builder) + uses: depot/build-push-action@636daae76684e38c301daa0c5eca1c095b24e780 # v1.14.0 + with: + project: tw0fqmsx3c + token: ${{ secrets.DEPOT_PROJECT_TOKEN }} + context: ${{ env.CONTEXT }} + file: ${{ env.DOCKERFILE }} + platforms: linux/amd64,linux/arm64 + push: true + tags: | + ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:${{ inputs.image_tag }} + ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:latest + secrets: | + database_url=${{ secrets.DUMMY_DATABASE_URL }} + encryption_key=${{ secrets.DUMMY_ENCRYPTION_KEY }} diff --git a/apps/web/locales/de-DE.json b/apps/web/locales/de-DE.json index c39014f3f2..e14ebd4225 100644 --- a/apps/web/locales/de-DE.json +++ b/apps/web/locales/de-DE.json @@ -141,7 +141,6 @@ "apply_filters": "Filter anwenden", "are_you_sure": "Bist Du sicher?", "attributes": "Attribute", - "avatar": "Avatar", "back": "Zurück", "billing": "Abrechnung", "booked": "Gebucht", @@ -748,6 +747,7 @@ "api_key_label": "API-Schlüssel Label", "api_key_security_warning": "Aus Sicherheitsgründen wird der API-Schlüssel nur einmal nach der Erstellung angezeigt. Bitte kopiere ihn sofort an einen sicheren Ort.", "api_key_updated": "API-Schlüssel aktualisiert", + "delete_permission": "Berechtigung löschen", "duplicate_access": "Doppelter Projektzugriff nicht erlaubt", "no_api_keys_yet": "Du hast noch keine API-Schlüssel", "no_env_permissions_found": "Keine Umgebungsberechtigungen gefunden", @@ -1111,9 +1111,7 @@ }, "profile": { "account_deletion_consequences_warning": "Was passiert, wenn Du das Konto löschst", - "avatar_update_failed": "Aktualisierung des Avatars fehlgeschlagen. Bitte versuche es erneut.", "backup_code": "Backup-Code", - "change_image": "Bild ändern", "confirm_delete_account": "Lösche dein Konto mit all deinen persönlichen Informationen und Daten", "confirm_delete_my_account": "Konto löschen", "confirm_your_current_password_to_get_started": "Bestätige dein aktuelles Passwort, um loszulegen.", @@ -1124,17 +1122,13 @@ "email_change_initiated": "Deine Anfrage zur Änderung der E-Mail wurde eingeleitet.", "enable_two_factor_authentication": "Zwei-Faktor-Authentifizierung aktivieren", "enter_the_code_from_your_authenticator_app_below": "Gib den Code aus deiner Authentifizierungs-App unten ein.", - "file_size_must_be_less_than_10mb": "Dateigröße muss weniger als 10MB sein.", - "invalid_file_type": "Ungültiger Dateityp. Nur JPEG-, PNG- und WEBP-Dateien sind erlaubt.", "lost_access": "Zugriff verloren", "or_enter_the_following_code_manually": "Oder gib den folgenden Code manuell ein:", - "organization_identification": "Hilf deiner Organisation, Dich auf Formbricks zu identifizieren", "organizations_delete_message": "Du bist der einzige Besitzer dieser Organisationen, also werden sie auch gelöscht.", "permanent_removal_of_all_of_your_personal_information_and_data": "Dauerhafte Entfernung all deiner persönlichen Informationen und Daten", "personal_information": "Persönliche Informationen", "please_enter_email_to_confirm_account_deletion": "Bitte gib {email} in das folgende Feld ein, um die endgültige Löschung deines Kontos zu bestätigen:", "profile_updated_successfully": "Dein Profil wurde erfolgreich aktualisiert", - "remove_image": "Bild entfernen", "save_the_following_backup_codes_in_a_safe_place": "Speichere die folgenden Backup-Codes an einem sicheren Ort.", "scan_the_qr_code_below_with_your_authenticator_app": "Scanne den QR-Code unten mit deiner Authentifizierungs-App.", "security_description": "Verwalte dein Passwort und andere Sicherheitseinstellungen wie Zwei-Faktor-Authentifizierung (2FA).", @@ -1144,10 +1138,8 @@ "two_factor_code": "Zwei-Faktor-Code", "unlock_two_factor_authentication": "Zwei-Faktor-Authentifizierung mit einem höheren Plan freischalten", "update_personal_info": "Persönliche Daten aktualisieren", - "upload_image": "Bild hochladen", "warning_cannot_delete_account": "Du bist der einzige Besitzer dieser Organisation. Bitte übertrage das Eigentum zuerst an ein anderes Mitglied.", - "warning_cannot_undo": "Das kann nicht rückgängig gemacht werden", - "you_must_select_a_file": "Du musst eine Datei auswählen." + "warning_cannot_undo": "Das kann nicht rückgängig gemacht werden" }, "teams": { "add_members_description": "Füge Mitglieder zum Team hinzu und bestimme ihre Rolle.", @@ -1715,10 +1707,8 @@ "language_help_text": "Die Meta-Daten werden basierend auf dem `lang` Wert in der URL geladen.", "link_description": "Linkbeschreibung", "link_description_description": "Beschreibung mit 55-200 Zeichen funktionieren am besten.", - "link_description_placeholder": "Hilf uns, indem du deine Gedanken teilst.", "link_title": "Linktitel", "link_title_description": "Kurze Titel funktionieren am besten als Meta-Titel.", - "link_title_placeholder": "Kundenfeedback-Umfrage", "preview_image": "Vorschaubild", "preview_image_description": "Querformatige Bilder mit kleiner Dateigröße (<4MB) funktionieren am besten.", "title": "Link-Einstellungen" diff --git a/apps/web/locales/en-US.json b/apps/web/locales/en-US.json index 17efae6545..740e5d30cc 100644 --- a/apps/web/locales/en-US.json +++ b/apps/web/locales/en-US.json @@ -141,7 +141,6 @@ "apply_filters": "Apply filters", "are_you_sure": "Are you sure?", "attributes": "Attributes", - "avatar": "Avatar", "back": "Back", "billing": "Billing", "booked": "Booked", @@ -748,6 +747,7 @@ "api_key_label": "API Key Label", "api_key_security_warning": "For security reasons, the API key will only be shown once after creation. Please copy it to your destination right away.", "api_key_updated": "API Key updated", + "delete_permission": "Delete permission", "duplicate_access": "Duplicate project access not allowed", "no_api_keys_yet": "You don't have any API keys yet", "no_env_permissions_found": "No environment permissions found", @@ -1111,9 +1111,7 @@ }, "profile": { "account_deletion_consequences_warning": "Account deletion consequences", - "avatar_update_failed": "Avatar update failed. Please try again.", "backup_code": "Backup Code", - "change_image": "Change image", "confirm_delete_account": "Delete your account with all of your personal information and data", "confirm_delete_my_account": "Delete My Account", "confirm_your_current_password_to_get_started": "Confirm your current password to get started.", @@ -1124,17 +1122,13 @@ "email_change_initiated": "Your email change request has been initiated.", "enable_two_factor_authentication": "Enable two factor authentication", "enter_the_code_from_your_authenticator_app_below": "Enter the code from your authenticator app below.", - "file_size_must_be_less_than_10mb": "File size must be less than 10MB.", - "invalid_file_type": "Invalid file type. Only JPEG, PNG, and WEBP files are allowed.", "lost_access": "Lost access", "or_enter_the_following_code_manually": "Or enter the following code manually:", - "organization_identification": "Assist your organization in identifying you on Formbricks", "organizations_delete_message": "You are the only owner of these organizations, so they will be deleted as well.", "permanent_removal_of_all_of_your_personal_information_and_data": "Permanent removal of all of your personal information and data", "personal_information": "Personal information", "please_enter_email_to_confirm_account_deletion": "Please enter {email} in the following field to confirm the definitive deletion of your account:", "profile_updated_successfully": "Your profile was updated successfully", - "remove_image": "Remove image", "save_the_following_backup_codes_in_a_safe_place": "Save the following backup codes in a safe place.", "scan_the_qr_code_below_with_your_authenticator_app": "Scan the QR code below with your authenticator app.", "security_description": "Manage your password and other security settings like two-factor authentication (2FA).", @@ -1144,10 +1138,8 @@ "two_factor_code": "Two-Factor Code", "unlock_two_factor_authentication": "Unlock two-factor authentication with a higher plan", "update_personal_info": "Update your personal information", - "upload_image": "Upload image", "warning_cannot_delete_account": "You are the only owner of this organization. Please transfer ownership to another member first.", - "warning_cannot_undo": "This cannot be undone", - "you_must_select_a_file": "You must select a file." + "warning_cannot_undo": "This cannot be undone" }, "teams": { "add_members_description": "Add members to the team and determine their role.", @@ -1715,10 +1707,8 @@ "language_help_text": "The meta data is loaded based on the `lang` value in the URL.", "link_description": "Link description", "link_description_description": "Descriptions between 55-200 characters perform best.", - "link_description_placeholder": "Help us improve by sharing your thoughts.", "link_title": "Link title", "link_title_description": "Short titles perform best as Meta Titles.", - "link_title_placeholder": "Customer Feedback Survey", "preview_image": "Preview image", "preview_image_description": "Landscape images with small file sizes (<4MB) perform best.", "title": "Link settings" diff --git a/apps/web/locales/fr-FR.json b/apps/web/locales/fr-FR.json index db6c01cb44..c26c7037e2 100644 --- a/apps/web/locales/fr-FR.json +++ b/apps/web/locales/fr-FR.json @@ -141,7 +141,6 @@ "apply_filters": "Appliquer des filtres", "are_you_sure": "Es-tu sûr ?", "attributes": "Attributs", - "avatar": "Avatar", "back": "Retour", "billing": "Facturation", "booked": "Réservé", @@ -748,6 +747,7 @@ "api_key_label": "Étiquette de clé API", "api_key_security_warning": "Pour des raisons de sécurité, la clé API ne sera affichée qu'une seule fois après sa création. Veuillez la copier immédiatement à votre destination.", "api_key_updated": "Clé API mise à jour", + "delete_permission": "Supprimer une permission", "duplicate_access": "L'accès en double au projet n'est pas autorisé", "no_api_keys_yet": "Vous n'avez pas encore de clés API.", "no_env_permissions_found": "Aucune autorisation d'environnement trouvée", @@ -1111,9 +1111,7 @@ }, "profile": { "account_deletion_consequences_warning": "Conséquences de la suppression de compte", - "avatar_update_failed": "La mise à jour de l'avatar a échoué. Veuillez réessayer.", "backup_code": "Code de sauvegarde", - "change_image": "Changer l'image", "confirm_delete_account": "Supprimez votre compte avec toutes vos informations personnelles et données.", "confirm_delete_my_account": "Supprimer mon compte", "confirm_your_current_password_to_get_started": "Confirmez votre mot de passe actuel pour commencer.", @@ -1124,17 +1122,13 @@ "email_change_initiated": "Votre demande de changement d'email a été initiée.", "enable_two_factor_authentication": "Activer l'authentification à deux facteurs", "enter_the_code_from_your_authenticator_app_below": "Entrez le code de votre application d'authentification ci-dessous.", - "file_size_must_be_less_than_10mb": "La taille du fichier doit être inférieure à 10 Mo.", - "invalid_file_type": "Type de fichier invalide. Seuls les fichiers JPEG, PNG et WEBP sont autorisés.", "lost_access": "Accès perdu", "or_enter_the_following_code_manually": "Ou entrez le code suivant manuellement :", - "organization_identification": "Aidez votre organisation à vous identifier sur Formbricks", "organizations_delete_message": "Tu es le seul propriétaire de ces organisations, elles seront aussi supprimées.", "permanent_removal_of_all_of_your_personal_information_and_data": "Suppression permanente de toutes vos informations et données personnelles.", "personal_information": "Informations personnelles", "please_enter_email_to_confirm_account_deletion": "Veuillez entrer {email} dans le champ suivant pour confirmer la suppression définitive de votre compte :", "profile_updated_successfully": "Votre profil a été mis à jour avec succès.", - "remove_image": "Supprimer l'image", "save_the_following_backup_codes_in_a_safe_place": "Enregistrez les codes de sauvegarde suivants dans un endroit sûr.", "scan_the_qr_code_below_with_your_authenticator_app": "Scannez le code QR ci-dessous avec votre application d'authentification.", "security_description": "Gérez votre mot de passe et d'autres paramètres de sécurité comme l'authentification à deux facteurs (2FA).", @@ -1144,10 +1138,8 @@ "two_factor_code": "Code à deux facteurs", "unlock_two_factor_authentication": "Débloquez l'authentification à deux facteurs avec une offre supérieure", "update_personal_info": "Mettez à jour vos informations personnelles", - "upload_image": "Télécharger l'image", "warning_cannot_delete_account": "Tu es le seul propriétaire de cette organisation. Transfère la propriété à un autre membre d'abord.", - "warning_cannot_undo": "Ceci ne peut pas être annulé", - "you_must_select_a_file": "Vous devez sélectionner un fichier." + "warning_cannot_undo": "Ceci ne peut pas être annulé" }, "teams": { "add_members_description": "Ajoutez des membres à l'équipe et déterminez leur rôle.", @@ -1715,10 +1707,8 @@ "language_help_text": "Les métadonnées sont chargées en fonction de la valeur « lang » dans l'URL.", "link_description": "Description du lien", "link_description_description": "« Les descriptions entre 55 et 200 caractères donnent les meilleurs résultats. »", - "link_description_placeholder": "Aidez-nous à nous améliorer en partageant vos pensées.", "link_title": "Titre du lien", "link_title_description": "Les titres courts fonctionnent mieux comme titres méta.", - "link_title_placeholder": "Sondage de Retour Clients", "preview_image": "Aperçu de l'image", "preview_image_description": "Les images en paysage avec de petites tailles de fichier (<4MB) fonctionnent le mieux.", "title": "Paramètres de lien" diff --git a/apps/web/locales/pt-BR.json b/apps/web/locales/pt-BR.json index 1d0772ef42..1103460944 100644 --- a/apps/web/locales/pt-BR.json +++ b/apps/web/locales/pt-BR.json @@ -141,7 +141,6 @@ "apply_filters": "Aplicar filtros", "are_you_sure": "Certeza?", "attributes": "atributos", - "avatar": "Avatar", "back": "Voltar", "billing": "Faturamento", "booked": "Reservado", @@ -748,6 +747,7 @@ "api_key_label": "Rótulo da Chave API", "api_key_security_warning": "Por motivos de segurança, a chave da API será mostrada apenas uma vez após a criação. Por favor, copie-a para o seu destino imediatamente.", "api_key_updated": "Chave de API atualizada", + "delete_permission": "Remover permissão", "duplicate_access": "Acesso duplicado ao projeto não permitido", "no_api_keys_yet": "Você ainda não tem nenhuma chave de API", "no_env_permissions_found": "Nenhuma permissão de ambiente encontrada", @@ -1111,9 +1111,7 @@ }, "profile": { "account_deletion_consequences_warning": "Consequências da exclusão da conta", - "avatar_update_failed": "Falha ao atualizar o avatar. Por favor, tente novamente.", "backup_code": "Código de Backup", - "change_image": "Mudar imagem", "confirm_delete_account": "Apague sua conta com todas as suas informações pessoais e dados", "confirm_delete_my_account": "Excluir Minha Conta", "confirm_your_current_password_to_get_started": "Confirme sua senha atual para começar.", @@ -1124,17 +1122,13 @@ "email_change_initiated": "Sua solicitação de alteração de e-mail foi iniciada.", "enable_two_factor_authentication": "Ativar autenticação de dois fatores", "enter_the_code_from_your_authenticator_app_below": "Digite o código do seu app autenticador abaixo.", - "file_size_must_be_less_than_10mb": "O tamanho do arquivo deve ser menor que 10MB.", - "invalid_file_type": "Tipo de arquivo inválido. Só são permitidos arquivos JPEG, PNG e WEBP.", "lost_access": "Perdi o acesso", "or_enter_the_following_code_manually": "Ou insira o seguinte código manualmente:", - "organization_identification": "Ajude sua organização a te identificar no Formbricks", "organizations_delete_message": "Você é o único dono dessas organizações, então elas também serão apagadas.", "permanent_removal_of_all_of_your_personal_information_and_data": "Remoção permanente de todas as suas informações e dados pessoais", "personal_information": "Informações pessoais", "please_enter_email_to_confirm_account_deletion": "Por favor, insira {email} no campo abaixo para confirmar a exclusão definitiva da sua conta:", "profile_updated_successfully": "Seu perfil foi atualizado com sucesso", - "remove_image": "Remover imagem", "save_the_following_backup_codes_in_a_safe_place": "Guarde os seguintes códigos de backup em um lugar seguro.", "scan_the_qr_code_below_with_your_authenticator_app": "Escaneie o código QR abaixo com seu app autenticador.", "security_description": "Gerencie sua senha e outras configurações de segurança como a autenticação de dois fatores (2FA).", @@ -1144,10 +1138,8 @@ "two_factor_code": "Código de Dois Fatores", "unlock_two_factor_authentication": "Desbloqueia a autenticação de dois fatores com um plano melhor", "update_personal_info": "Atualize suas informações pessoais", - "upload_image": "Enviar imagem", "warning_cannot_delete_account": "Você é o único dono desta organização. Transfere a propriedade para outra pessoa primeiro.", - "warning_cannot_undo": "Isso não pode ser desfeito", - "you_must_select_a_file": "Você tem que selecionar um arquivo." + "warning_cannot_undo": "Isso não pode ser desfeito" }, "teams": { "add_members_description": "Adicione membros à equipe e determine sua função.", @@ -1715,10 +1707,8 @@ "language_help_text": "Os metadados são carregados com base no valor `lang` na URL.", "link_description": "Descrição do link", "link_description_description": "\"Descrições entre 55-200 caracteres têm um melhor desempenho.\"", - "link_description_placeholder": "Ajude-nos a melhorar compartilhando suas opiniões.", "link_title": "Título do link", "link_title_description": "Títulos curtos têm melhor desempenho como Meta Títulos.", - "link_title_placeholder": "Pesquisa de Feedback do Cliente", "preview_image": "Imagem de prévia", "preview_image_description": "Imagens em paisagem com tamanhos de arquivo pequenos (<4MB) têm o melhor desempenho.", "title": "Configurações de link" diff --git a/apps/web/locales/pt-PT.json b/apps/web/locales/pt-PT.json index dd7345cb2e..ae4fceb203 100644 --- a/apps/web/locales/pt-PT.json +++ b/apps/web/locales/pt-PT.json @@ -141,7 +141,6 @@ "apply_filters": "Aplicar filtros", "are_you_sure": "Tem a certeza?", "attributes": "Atributos", - "avatar": "Avatar", "back": "Voltar", "billing": "Faturação", "booked": "Reservado", @@ -748,6 +747,7 @@ "api_key_label": "Etiqueta da Chave API", "api_key_security_warning": "Por razões de segurança, a chave API será mostrada apenas uma vez após a criação. Por favor, copie-a para o seu destino imediatamente.", "api_key_updated": "Chave API atualizada", + "delete_permission": "Eliminar permissão", "duplicate_access": "Acesso duplicado ao projeto não permitido", "no_api_keys_yet": "Ainda não tem nenhuma chave API", "no_env_permissions_found": "Nenhuma permissão de ambiente encontrada", @@ -1111,9 +1111,7 @@ }, "profile": { "account_deletion_consequences_warning": "Consequências da eliminação da conta", - "avatar_update_failed": "Falha na atualização do avatar. Por favor, tente novamente.", "backup_code": "Código de Backup", - "change_image": "Alterar imagem", "confirm_delete_account": "Eliminar a sua conta com todas as suas informações e dados pessoais", "confirm_delete_my_account": "Eliminar a Minha Conta", "confirm_your_current_password_to_get_started": "Confirme a sua palavra-passe atual para começar.", @@ -1124,17 +1122,13 @@ "email_change_initiated": "O seu pedido de alteração de email foi iniciado.", "enable_two_factor_authentication": "Ativar autenticação de dois fatores", "enter_the_code_from_your_authenticator_app_below": "Introduza o código da sua aplicação de autenticação abaixo.", - "file_size_must_be_less_than_10mb": "O tamanho do ficheiro deve ser inferior a 10MB.", - "invalid_file_type": "Tipo de ficheiro inválido. Apenas são permitidos ficheiros JPEG, PNG e WEBP.", "lost_access": "Perdeu o acesso", "or_enter_the_following_code_manually": "Ou insira o seguinte código manualmente:", - "organization_identification": "Ajude a sua organização a identificá-lo no Formbricks", "organizations_delete_message": "É o único proprietário destas organizações, por isso também serão eliminadas.", "permanent_removal_of_all_of_your_personal_information_and_data": "Remoção permanente de todas as suas informações e dados pessoais", "personal_information": "Informações pessoais", "please_enter_email_to_confirm_account_deletion": "Por favor, insira {email} no campo seguinte para confirmar a eliminação definitiva da sua conta:", "profile_updated_successfully": "O seu perfil foi atualizado com sucesso", - "remove_image": "Remover imagem", "save_the_following_backup_codes_in_a_safe_place": "Guarde os seguintes códigos de backup num local seguro.", "scan_the_qr_code_below_with_your_authenticator_app": "Digitalize o código QR abaixo com a sua aplicação de autenticação.", "security_description": "Gerir a sua palavra-passe e outras definições de segurança, como a autenticação de dois fatores (2FA).", @@ -1144,10 +1138,8 @@ "two_factor_code": "Código de Dois Fatores", "unlock_two_factor_authentication": "Desbloqueie a autenticação de dois fatores com um plano superior", "update_personal_info": "Atualize as suas informações pessoais", - "upload_image": "Carregar imagem", "warning_cannot_delete_account": "É o único proprietário desta organização. Transfira a propriedade para outro membro primeiro.", - "warning_cannot_undo": "Isto não pode ser desfeito", - "you_must_select_a_file": "Deve selecionar um ficheiro." + "warning_cannot_undo": "Isto não pode ser desfeito" }, "teams": { "add_members_description": "Adicionar membros à equipa e determinar o seu papel.", @@ -1715,10 +1707,8 @@ "language_help_text": "Os metadados são carregados com base no valor `lang` no URL.", "link_description": "Descrição do link", "link_description_description": "Descrições entre 55 a 200 caracteres têm melhor desempenho.", - "link_description_placeholder": "Ajude-nos a melhorar compartilhando suas opiniões.", "link_title": "Título do Link", "link_title_description": "Títulos curtos têm melhor desempenho como Meta Titles.", - "link_title_placeholder": "Inquérito de Feedback do Cliente", "preview_image": "Pré-visualização da imagem", "preview_image_description": "Imagens de paisagem com tamanhos pequenos (<4MB) apresentam melhor desempenho.", "title": "Definições de ligação" diff --git a/apps/web/locales/ro-RO.json b/apps/web/locales/ro-RO.json index a2c55d26a7..7ab0ddb562 100644 --- a/apps/web/locales/ro-RO.json +++ b/apps/web/locales/ro-RO.json @@ -141,7 +141,6 @@ "apply_filters": "Aplică filtre", "are_you_sure": "Ești sigur?", "attributes": "Atribute", - "avatar": "Avatar", "back": "Înapoi", "billing": "Facturare", "booked": "Rezervat", @@ -748,6 +747,7 @@ "api_key_label": "Etichetă Cheie API", "api_key_security_warning": "Din motive de securitate, cheia API va fi afișată o singură dată după creare. Vă rugăm să o copiați imediat la destinație.", "api_key_updated": "Cheie API actualizată", + "delete_permission": "Șterge permisiunea", "duplicate_access": "Accesul dublu la proiect nu este permis", "no_api_keys_yet": "Nu aveți încă chei API", "no_env_permissions_found": "Nu s-au găsit permisiuni pentru mediu", @@ -1111,9 +1111,7 @@ }, "profile": { "account_deletion_consequences_warning": "Consecințele ștergerii contului", - "avatar_update_failed": "Actualizarea avatarului a eșuat. Vă rugăm să încercați din nou.", "backup_code": "Cod de rezervă", - "change_image": "Schimbă imaginea", "confirm_delete_account": "Șterge contul tău cu toate informațiile personale și datele tale", "confirm_delete_my_account": "Șterge Contul Meu", "confirm_your_current_password_to_get_started": "Confirmaţi parola curentă pentru a începe.", @@ -1124,17 +1122,13 @@ "email_change_initiated": "Cererea dvs. de schimbare a e-mailului a fost inițiată.", "enable_two_factor_authentication": "Activează autentificarea în doi pași", "enter_the_code_from_your_authenticator_app_below": "Introduceți codul din aplicația dvs. de autentificare mai jos.", - "file_size_must_be_less_than_10mb": "Dimensiunea fișierului trebuie să fie mai mică de 10MB.", - "invalid_file_type": "Tip de fișier invalid. Sunt permise numai fișiere JPEG, PNG și WEBP.", "lost_access": "Acces pierdut", "or_enter_the_following_code_manually": "Sau introduceți manual următorul cod:", - "organization_identification": "Ajutați organizația să vă identifice pe Formbricks", "organizations_delete_message": "Ești singurul proprietar al acestor organizații, deci ele vor fi șterse și ele.", "permanent_removal_of_all_of_your_personal_information_and_data": "Ștergerea permanentă a tuturor informațiilor și datelor tale personale", "personal_information": "Informații personale", "please_enter_email_to_confirm_account_deletion": "Vă rugăm să introduceți {email} în câmpul următor pentru a confirma ștergerea definitivă a contului dumneavoastră:", "profile_updated_successfully": "Profilul dvs. a fost actualizat cu succes", - "remove_image": "Șterge imaginea", "save_the_following_backup_codes_in_a_safe_place": "Salvează următoarele coduri de rezervă într-un loc sigur.", "scan_the_qr_code_below_with_your_authenticator_app": "Scanați codul QR de mai jos cu aplicația dvs. de autentificare.", "security_description": "Gestionează parola și alte setări de securitate, precum autentificarea în doi pași (2FA).", @@ -1144,10 +1138,8 @@ "two_factor_code": "Codul cu doi factori", "unlock_two_factor_authentication": "Deblocați autentificarea în doi pași cu un plan superior", "update_personal_info": "Actualizează informațiile tale personale", - "upload_image": "Încărcați imagine", "warning_cannot_delete_account": "Ești singurul proprietar al acestei organizații. Te rugăm să transferi proprietatea către un alt membru mai întâi.", - "warning_cannot_undo": "Aceasta nu poate fi anulată", - "you_must_select_a_file": "Trebuie să selectați un fișier." + "warning_cannot_undo": "Aceasta nu poate fi anulată" }, "teams": { "add_members_description": "Adaugă membri în echipă și stabilește rolul lor.", @@ -1715,10 +1707,8 @@ "language_help_text": "Meta datele sunt încărcate pe baza valorii `lang` din URL.", "link_description": "Descriere legătură", "link_description_description": "Descrierile între 55-200 de caractere au cele mai bune performanțe.", - "link_description_placeholder": "Ajutați-ne să ne îmbunătățim împărtășindu-vă gândurile.", "link_title": "Titlu link", "link_title_description": "Titlurile scurte funcționează cel mai bine ca Meta Title-uri.", - "link_title_placeholder": "Chestionar de feedback al clienților", "preview_image": "Previzualizare imagine", "preview_image_description": "Imaginile panoramice cu dimensiuni de fișier mici (<4MB) au cel mai bun randament.", "title": "Setări link" diff --git a/apps/web/locales/zh-Hant-TW.json b/apps/web/locales/zh-Hant-TW.json index 73eb4fc6a8..29f99ede6a 100644 --- a/apps/web/locales/zh-Hant-TW.json +++ b/apps/web/locales/zh-Hant-TW.json @@ -141,7 +141,6 @@ "apply_filters": "套用篩選器", "are_you_sure": "您確定嗎?", "attributes": "屬性", - "avatar": "頭像", "back": "返回", "billing": "帳單", "booked": "已預訂", @@ -748,6 +747,7 @@ "api_key_label": "API 金鑰標籤", "api_key_security_warning": "為安全起見,API 金鑰僅在建立後顯示一次。請立即將其複製到您的目的地。", "api_key_updated": "API 金鑰已更新", + "delete_permission": "刪除 權限", "duplicate_access": "不允許重複的 project 存取", "no_api_keys_yet": "您還沒有任何 API 金鑰", "no_env_permissions_found": "找不到環境權限", @@ -1111,9 +1111,7 @@ }, "profile": { "account_deletion_consequences_warning": "帳戶刪除後果", - "avatar_update_failed": "頭像更新失敗。請再試一次。", "backup_code": "備份碼", - "change_image": "變更圖片", "confirm_delete_account": "刪除您的帳戶以及您的所有個人資訊和資料", "confirm_delete_my_account": "刪除我的帳戶", "confirm_your_current_password_to_get_started": "確認您目前的密碼以開始使用。", @@ -1124,17 +1122,13 @@ "email_change_initiated": "您的 email 更改請求已啟動。", "enable_two_factor_authentication": "啟用雙重驗證", "enter_the_code_from_your_authenticator_app_below": "在下方輸入您驗證器應用程式中的程式碼。", - "file_size_must_be_less_than_10mb": "檔案大小必須小於 10MB。", - "invalid_file_type": "無效的檔案類型。僅允許 JPEG、PNG 和 WEBP 檔案。", "lost_access": "無法存取", "or_enter_the_following_code_manually": "或手動輸入下列程式碼:", - "organization_identification": "協助您的組織在 Formbricks 上識別您", "organizations_delete_message": "您是這些組織的唯一擁有者,因此它們也 將被刪除。", "permanent_removal_of_all_of_your_personal_information_and_data": "永久移除您的所有個人資訊和資料", "personal_information": "個人資訊", "please_enter_email_to_confirm_account_deletion": "請在以下欄位中輸入 '{'email'}' 以確認永久刪除您的帳戶:", "profile_updated_successfully": "您的個人資料已成功更新", - "remove_image": "移除圖片", "save_the_following_backup_codes_in_a_safe_place": "將下列備份碼儲存在安全的地方。", "scan_the_qr_code_below_with_your_authenticator_app": "使用您的驗證器應用程式掃描下方的 QR 碼。", "security_description": "管理您的密碼和其他安全性設定,例如雙重驗證 (2FA)。", @@ -1144,10 +1138,8 @@ "two_factor_code": "雙重驗證碼", "unlock_two_factor_authentication": "使用更高等級的方案解鎖雙重驗證", "update_personal_info": "更新您的個人資訊", - "upload_image": "上傳圖片", "warning_cannot_delete_account": "您是此組織的唯一擁有者。請先將所有權轉讓給其他成員。", - "warning_cannot_undo": "此操作無法復原", - "you_must_select_a_file": "您必須選取檔案。" + "warning_cannot_undo": "此操作無法復原" }, "teams": { "add_members_description": "將成員新增至團隊並確定其角色。", @@ -1715,10 +1707,8 @@ "language_help_text": "中 繼資料 會 根據 URL 中 的 `lang` 值 載入。", "link_description": "連結描述", "link_description_description": "描述在 55 - 200 個字符之間的表現最好。", - "link_description_placeholder": "幫助 我們 改善 , 分享 您 的 想法 。", "link_title": "連結標題", "link_title_description": "短 標題 在 Meta Titles 中表現最佳。", - "link_title_placeholder": "顧客 回饋 調查", "preview_image": "預覽 圖片", "preview_image_description": "景觀 圖片 檔案 大小 小於 4MB 效果 最佳。", "title": "連結 設定"