Compare commits

...

5 Commits

Author SHA1 Message Date
Matthias Nannt
f4bd2b9289 fix coderabbit issue 2025-04-09 11:19:30 +09:00
Matti Nannt
dba4f53bd8 Potential fix for code scanning alert no. 211: Artifact poisoning
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-03-11 13:52:52 +01:00
Matthias Nannt
f8cbbb15d6 add second action to address security risk 2025-03-11 13:47:47 +01:00
Matthias Nannt
2fa77b8ef6 update action to address codeQL feedback 2025-03-11 13:46:07 +01:00
Matthias Nannt
ec487899da fix: sonarqube not running for contributors 2025-03-11 13:13:14 +01:00
8 changed files with 359 additions and 157 deletions

134
.github/workflows/sonarqube-report.yml vendored Normal file
View File

@@ -0,0 +1,134 @@
name: SonarQube Report
on:
workflow_dispatch:
push:
branches:
- main
workflow_run:
workflows: ["SonarQube Analysis"]
types:
- completed
permissions:
# Needed to download artifacts from previous workflow
actions: read
contents: read
jobs:
report:
name: SonarCloud Report
runs-on: ubuntu-latest
# Only run if the previous workflow was successful
if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
# Download artifacts only for workflow_run events
- name: Create temporary directory for artifacts
if: ${{ github.event_name == 'workflow_run' }}
run: mkdir -p ${{ runner.temp }}/artifacts/
- name: Download analysis package
if: ${{ github.event_name == 'workflow_run' }}
uses: actions/github-script@v7
with:
script: |
const artifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{ github.event.workflow_run.id }}
})
const matchArtifact = artifacts.data.artifacts.find((artifact) => {
return artifact.name == "sonarqube-analysis"
})
if (!matchArtifact) {
throw new Error('No SonarQube analysis artifact found')
}
const download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: 'zip'
})
const fs = require('fs')
const path = require('path')
const tempDir = process.env.RUNNER_TEMP
const artifactPath = path.join(tempDir, 'artifacts', 'sonarqube-analysis.zip')
fs.writeFileSync(artifactPath, Buffer.from(download.data))
# Extract the analysis package
- name: Extract analysis package
if: ${{ github.event_name == 'workflow_run' }}
run: |
unzip -q ${{ runner.temp }}/artifacts/sonarqube-analysis.zip -d ${{ runner.temp }}/artifacts/
tar -xzf ${{ runner.temp }}/artifacts/sonarqube-analysis.tar.gz -C ${{ runner.temp }}/artifacts/
# For direct push to main or manual runs, set up environment and run tests
- name: Setup Node.js 20.x
if: ${{ github.event_name != 'workflow_run' }}
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af
with:
node-version: 20.x
- name: Install pnpm
if: ${{ github.event_name != 'workflow_run' }}
uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2
- name: Install dependencies
if: ${{ github.event_name != 'workflow_run' }}
run: pnpm install --config.platform=linux --config.architecture=x64
- name: Create .env
if: ${{ github.event_name != 'workflow_run' }}
run: cp .env.example .env
- name: Generate Random ENCRYPTION_KEY, CRON_SECRET & NEXTAUTH_SECRET and fill in .env
if: ${{ github.event_name != 'workflow_run' }}
run: |
RANDOM_KEY=$(openssl rand -hex 32)
sed -i "s/ENCRYPTION_KEY=.*/ENCRYPTION_KEY=${RANDOM_KEY}/" .env
sed -i "s/CRON_SECRET=.*/CRON_SECRET=${RANDOM_KEY}/" .env
sed -i "s/NEXTAUTH_SECRET=.*/NEXTAUTH_SECRET=${RANDOM_KEY}/" .env
- name: Run tests with coverage
if: ${{ github.event_name != 'workflow_run' }}
run: |
# Verify repository integrity before running tests
git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin ${{ github.sha }}
git checkout --progress --force ${{ github.sha }}
# Verify that only expected files exist in the test directory
echo "Verifying test directory integrity..."
UNEXPECTED_FILES=$(find apps/web -type f -not -path "*/node_modules/*" -not -path "*/\.*" -not -path "*/coverage/*" | grep -v -E '\.tsx?$|\.jsx?$|package\.json|tsconfig\.json|\.html$|\.css$|\.svg$')
if [ -n "$UNEXPECTED_FILES" ]; then
echo "Warning: Unexpected files detected in apps/web directory:"
echo "$UNEXPECTED_FILES"
exit 1
fi
# Run tests in a more restricted environment
cd apps/web
NODE_OPTIONS="--max-old-space-size=4096 --max-http-header-size=8192" pnpm test:coverage
cd ../../
# The Vitest coverage config is in your vite.config.mts
# Run SonarQube scan
- name: SonarQube Scan
uses: SonarSource/sonarqube-scan-action@bfd4e558cda28cda6b5defafb9232d191be8c203
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL || 'https://sonarcloud.io' }}
# Optional: Get the Quality Gate status
- name: SonarQube Quality Gate check
id: sonarqube-quality-gate-check
uses: sonarsource/sonarqube-quality-gate-action@master
# Force the job to fail if Quality Gate fails
# timeout-minutes: 5
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL || 'https://sonarcloud.io' }}

View File

@@ -1,20 +1,18 @@
name: SonarQube
name: SonarQube Analysis
on:
workflow_dispatch:
push:
branches:
- main
pull_request:
types: [opened, synchronize, reopened]
merge_group:
permissions:
contents: read
jobs:
sonarqube:
name: SonarQube
analyze:
name: Analyze
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
@@ -29,7 +27,7 @@ jobs:
- name: Install dependencies
run: pnpm install --config.platform=linux --config.architecture=x64
- name: create .env
- name: Create .env
run: cp .env.example .env
- name: Generate Random ENCRYPTION_KEY, CRON_SECRET & NEXTAUTH_SECRET and fill in .env
@@ -46,8 +44,48 @@ jobs:
cd ../../
# The Vitest coverage config is in your vite.config.mts
- name: SonarQube Scan
uses: SonarSource/sonarqube-scan-action@bfd4e558cda28cda6b5defafb9232d191be8c203
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
- name: Prepare SonarQube scan info
id: sonarqube-prep
# We'll collect info about the PR without running the actual scan
run: |
echo "PR_NUMBER=${{ github.event.pull_request.number || 'main' }}" >> $GITHUB_OUTPUT
echo "PR_SOURCE=${{ github.event.pull_request.head.repo.full_name || github.repository }}" >> $GITHUB_OUTPUT
echo "PR_BRANCH=${{ github.event.pull_request.head.ref || github.ref_name }}" >> $GITHUB_OUTPUT
echo "PR_BASE=${{ github.event.pull_request.base.ref || '' }}" >> $GITHUB_OUTPUT
# Create analysis properties file
- name: Generate sonar-scanner properties
run: |
{
echo "sonar.projectKey=${{ github.repository_owner }}_formbricks"
echo "sonar.organization=${{ github.repository_owner }}-github"
# If this is a PR, add PR specific properties
if [[ ! -z "${{ steps.sonarqube-prep.outputs.PR_NUMBER }}" && "${{ steps.sonarqube-prep.outputs.PR_NUMBER }}" != "main" ]]; then
echo "sonar.pullrequest.key=${{ steps.sonarqube-prep.outputs.PR_NUMBER }}"
echo "sonar.pullrequest.branch=${{ steps.sonarqube-prep.outputs.PR_BRANCH }}"
echo "sonar.pullrequest.base=${{ steps.sonarqube-prep.outputs.PR_BASE }}"
else
echo "sonar.branch.name=${{ github.ref_name }}"
fi
} > sonar-scanner.properties
# Prepare the project for analysis and save all necessary files
- name: Package project for SonarQube analysis
run: |
# Create a tar file containing all necessary files
tar -czf sonarqube-analysis.tar.gz \
--exclude=node_modules \
--exclude=.git \
sonar-scanner.properties \
sonar-project.properties \
apps/web/coverage \
$(find . -type f -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx")
# Upload the packaged project as an artifact
- name: Upload SonarQube analysis package
uses: actions/upload-artifact@v4
with:
name: sonarqube-analysis
path: sonarqube-analysis.tar.gz
retention-days: 1

View File

@@ -194,7 +194,6 @@
"full_name": "Name",
"gathering_responses": "Antworten sammeln",
"general": "Allgemein",
"get_started": "Leg los",
"go_back": "Geh zurück",
"go_to_dashboard": "Zum Dashboard gehen",
"hidden": "Versteckt",
@@ -238,6 +237,7 @@
"maximum": "Maximal",
"member": "Mitglied",
"members": "Mitglieder",
"membership_not_found": "Mitgliedschaft nicht gefunden",
"metadata": "Metadaten",
"minimum": "Minimum",
"mobile_overlay_text": "Formbricks ist für Geräte mit kleineren Auflösungen nicht verfügbar.",
@@ -270,6 +270,7 @@
"only_owners_managers_and_manage_access_members_can_perform_this_action": "Nur Eigentümer, Manager und Mitglieder mit Zugriff auf das Management können diese Aktion ausführen.",
"or": "oder",
"organization": "Organisation",
"organization_id": "Organisations-ID",
"organization_not_found": "Organisation nicht gefunden",
"organization_teams_not_found": "Organisations-Teams nicht gefunden",
"other": "Andere",
@@ -293,7 +294,6 @@
"privacy": "Datenschutz",
"privacy_policy": "Datenschutzerklärung",
"product_manager": "Produktmanager",
"product_not_found": "Produkt nicht gefunden",
"profile": "Profil",
"project": "Projekt",
"project_configuration": "Projektkonfiguration",
@@ -310,6 +310,7 @@
"remove": "Entfernen",
"reorder_and_hide_columns": "Spalten neu anordnen und ausblenden",
"report_survey": "Umfrage melden",
"request_trial_license": "Testlizenz anfordern",
"reset_to_default": "Auf Standard zurücksetzen",
"response": "Antwort",
"responses": "Antworten",
@@ -354,6 +355,7 @@
"summary": "Zusammenfassung",
"survey": "Umfrage",
"survey_completed": "Umfrage abgeschlossen.",
"survey_id": "Umfrage-ID",
"survey_languages": "Umfragesprachen",
"survey_live": "Umfrage live",
"survey_not_found": "Umfrage nicht gefunden",
@@ -370,7 +372,7 @@
"team": "Team",
"team_access": "Teamzugriff",
"team_name": "Teamname",
"teams": "Teams",
"teams": "Zugriffskontrolle",
"teams_not_found": "Teams nicht gefunden",
"text": "Text",
"time": "Zeit",
@@ -773,20 +775,19 @@
"zapier_integration_description": "Integriere Formbricks mit über 5000 Apps über Zapier"
},
"project": {
"api-keys": {
"api_keys": {
"add_api_key": "API-Schlüssel hinzufügen",
"add_env_api_key": "{environmentType} API-Schlüssel hinzufügen",
"api_key": "API-Schlüssel",
"api_key_copied_to_clipboard": "API-Schlüssel in die Zwischenablage kopiert",
"api_key_created": "API-Schlüssel erstellt",
"api_key_deleted": "API-Schlüssel gelöscht",
"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.",
"dev_api_keys": "API-Schlüssel (Dev)",
"dev_api_keys_description": "API-Schlüssel für deine Entwicklungsumgebung hinzufügen und entfernen.",
"duplicate_access": "Doppelter Projektzugriff nicht erlaubt",
"no_api_keys_yet": "Du hast noch keine API-Schlüssel",
"prod_api_keys": "API-Schlüssel (Prod)",
"prod_api_keys_description": "API-Schlüssel für deine Produktionsumgebung hinzufügen und entfernen.",
"organization_access": "Organisationszugang",
"permissions": "Berechtigungen",
"project_access": "Projektzugriff",
"secret": "Geheimnis",
"unable_to_delete_api_key": "API-Schlüssel kann nicht gelöscht werden"
},
@@ -804,7 +805,6 @@
"formbricks_sdk_connected": "Formbricks SDK ist verbunden",
"formbricks_sdk_not_connected": "Formbricks SDK ist noch nicht verbunden.",
"formbricks_sdk_not_connected_description": "Verbinde deine Website oder App mit Formbricks",
"function": "Funktion",
"have_a_problem": "Hast Du ein Problem?",
"how_to_setup": "Wie einrichten",
"how_to_setup_description": "Befolge diese Schritte, um das Formbricks Widget in deiner App einzurichten.",
@@ -824,11 +824,10 @@
"step_3": "Schritt 3: Debug-Modus",
"switch_on_the_debug_mode_by_appending": "Schalte den Debug-Modus ein, indem Du anhängst",
"tag_of_your_app": "Tag deiner App",
"to_the": "zur",
"to_the_url_where_you_load_the": "URL, wo Du die lädst",
"want_to_learn_how_to_add_user_attributes": "Willst Du lernen, wie man Attribute hinzufügt?",
"you_also_need_to_pass_a": "du musst auch eine bestehen",
"you_are_done": "Du bist fertig \uD83C\uDF89",
"you_can_set_the_user_id_with": "du kannst die Benutzer-ID festlegen mit",
"your_app_now_communicates_with_formbricks": "Deine App kommuniziert jetzt mit Formbricks - sie sendet Ereignisse und lädt Umfragen automatisch!"
},
"general": {
@@ -988,6 +987,12 @@
"with_the_formbricks_sdk": "mit dem Formbricks SDK"
},
"settings": {
"api_keys": {
"add_api_key": "API-Schlüssel hinzufügen",
"add_permission": "Berechtigung hinzufügen",
"api_keys_description": "Verwalte API-Schlüssel, um auf die Formbricks-Management-APIs zuzugreifen",
"only_organization_owners_and_managers_can_manage_api_keys": "Nur Organisationsinhaber und -manager können API-Schlüssel verwalten"
},
"billing": {
"10000_monthly_responses": "10,000 monatliche Antworten",
"1500_monthly_responses": "1,500 monatliche Antworten",
@@ -1029,6 +1034,8 @@
"monthly": "Monatlich",
"monthly_identified_users": "Monatlich identifizierte Nutzer",
"multi_language_surveys": "Mehrsprachige Umfragen",
"per_month": "pro Monat",
"per_year": "pro Jahr",
"plan_upgraded_successfully": "Plan erfolgreich aktualisiert",
"premium_support_with_slas": "Premium-Support mit SLAs",
"priority_support": "Priorisierter Support",
@@ -1039,7 +1046,7 @@
"startup": "Start-up",
"startup_description": "Alles in 'Free' mit zusätzlichen Funktionen.",
"switch_plan": "Plan wechseln",
"switch_plan_confirmation_text": "Bist du sicher, dass du zum {plan}-Plan wechseln möchtest? Dir werden {price} pro Monat berechnet.",
"switch_plan_confirmation_text": "Bist du sicher, dass du zum {plan}-Plan wechseln möchtest? Dir werden {price} {period} berechnet.",
"team_access_roles": "Rollen für Teammitglieder",
"technical_onboarding": "Technische Einführung",
"unable_to_upgrade_plan": "Plan kann nicht aktualisiert werden",
@@ -1133,7 +1140,9 @@
"resend_invitation_email": "Einladungsemail erneut senden",
"share_invite_link": "Einladungslink teilen",
"share_this_link_to_let_your_organization_member_join_your_organization": "Teile diesen Link, damit dein Organisationsmitglied deiner Organisation beitreten kann:",
"test_email_sent_successfully": "Test-E-Mail erfolgreich gesendet"
"test_email_sent_successfully": "Test-E-Mail erfolgreich gesendet",
"use_multi_language_surveys_with_a_higher_plan": "Nutze mehrsprachige Umfragen mit einem höheren Plan",
"use_multi_language_surveys_with_a_higher_plan_description": "Befrage deine Nutzer in verschiedenen Sprachen."
},
"notifications": {
"auto_subscribe_to_new_surveys": "Neue Umfragenbenachrichtigungen abonnieren",
@@ -1177,7 +1186,7 @@
"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.",
"security_description": "Verwalte dein Passwort und andere Sicherheitseinstellungen wie Zwei-Faktor-Authentifizierung (2FA).",
"two_factor_authentication": "Zwei-Faktor-Authentifizierung",
"two_factor_authentication_description": "Füge eine zusätzliche Sicherheitsebene zu deinem Konto hinzu, falls dein Passwort gestohlen wird.",
"two_factor_authentication_enabled_please_enter_the_six_digit_code_from_your_authenticator_app": "Zwei-Faktor-Authentifizierung aktiviert. Bitte gib den sechsstelligen Code aus deiner Authentifizierungs-App ein.",
@@ -1748,9 +1757,6 @@
"how_to_create_a_panel_step_3_description": "Richte in deiner Formbricks-Umfrage versteckte Felder ein, um nachzuverfolgen, welcher Teilnehmer welche Antwort gegeben hat.",
"how_to_create_a_panel_step_4": "Schritt 4: Starte deine Studie",
"how_to_create_a_panel_step_4_description": "Sobald alles eingerichtet ist, kannst Du deine Studie starten. Innerhalb weniger Stunden wirst Du die ersten Antworten erhalten.",
"how_to_embed_a_survey_on_your_react_native_app": "Wie man eine Umfrage in deine React Native App einbettet",
"how_to_embed_a_survey_on_your_web_app": "Wie man eine Umfrage in seine App einbettet",
"identify_users_and_set_attributes": "Benutzer identifizieren und Attribute festlegen",
"impressions": "Eindrücke",
"impressions_tooltip": "Anzahl der Aufrufe der Umfrage.",
"includes_all": "Beinhaltet alles",
@@ -1765,7 +1771,6 @@
"last_month": "Letztes Monat",
"last_quarter": "Letztes Quartal",
"last_year": "Letztes Jahr",
"learn_how_to": "Lerne, wie man",
"link_to_public_results_copied": "Link zu öffentlichen Ergebnissen kopiert",
"make_sure_the_survey_type_is_set_to": "Stelle sicher, dass der Umfragetyp richtig eingestellt ist",
"mobile_app": "Mobile App",
@@ -1776,11 +1781,14 @@
"publish_to_web": "Im Web veröffentlichen",
"publish_to_web_warning": "Du bist dabei, diese Umfrageergebnisse öffentlich zugänglich zu machen.",
"publish_to_web_warning_description": "Deine Umfrageergebnisse werden öffentlich sein. Jeder außerhalb deiner Organisation kann darauf zugreifen, wenn er den Link hat.",
"quickstart_mobile_apps": "Schnellstart: Mobile-Apps",
"quickstart_mobile_apps_description": "Um mit Umfragen in mobilen Apps zu beginnen, folge bitte der Schnellstartanleitung:",
"quickstart_web_apps": "Schnellstart: Web-Apps",
"quickstart_web_apps_description": "Bitte folge der Schnellstartanleitung, um loszulegen:",
"results_are_public": "Ergebnisse sind öffentlich",
"send_preview": "Vorschau senden",
"send_to_panel": "An das Panel senden",
"setup_instructions": "Einrichtung",
"setup_instructions_for_react_native_apps": "Einrichtung für React Native Apps",
"setup_integrations": "Integrationen einrichten",
"share_results": "Ergebnisse teilen",
"share_the_link": "Teile den Link",
@@ -1799,10 +1807,7 @@
"this_quarter": "Dieses Quartal",
"this_year": "Dieses Jahr",
"time_to_complete": "Zeit zur Fertigstellung",
"to_connect_your_app_with_formbricks": "um deine App mit Formbricks zu verbinden",
"to_connect_your_web_app_with_formbricks": "um deine Web-App mit Formbricks zu verbinden",
"to_connect_your_website_with_formbricks": "deine Website mit Formbricks zu verbinden",
"to_run_highly_targeted_surveys": "granular zielgerichtete Umfragen durchführen",
"ttc_tooltip": "Durchschnittliche Zeit bis zum Abschluss der Umfrage.",
"unknown_question_type": "Unbekannter Fragetyp",
"unpublish_from_web": "Aus dem Web entfernen",
@@ -1812,7 +1817,6 @@
"view_site": "Seite ansehen",
"waiting_for_response": "Warte auf eine Antwort \uD83E\uDDD8",
"web_app": "Web-App",
"were_working_on_sdks_for_flutter_swift_and_kotlin": "Wir arbeiten an SDKs für Flutter, Swift und Kotlin.",
"what_is_a_panel": "Was ist ein Panel?",
"what_is_a_panel_answer": "Ein Panel ist eine Gruppe von Teilnehmern, die basierend auf Merkmalen wie Alter, Beruf, Geschlecht usw. ausgewählt werden.",
"what_is_prolific": "Was ist Prolific?",
@@ -1902,6 +1906,7 @@
"preview_survey_questions": "Vorschau der Fragen.",
"question_preview": "Vorschau der Frage",
"response_already_received": "Wir haben bereits eine Antwort für diese E-Mail-Adresse erhalten.",
"response_submitted": "Eine Antwort, die mit dieser Umfrage und diesem Kontakt verknüpft ist, existiert bereits",
"survey_already_answered_heading": "Die Umfrage wurde bereits beantwortet.",
"survey_already_answered_subheading": "Du kannst diesen Link nur einmal verwenden.",
"survey_sent_to": "Umfrage an {email} gesendet",

View File

@@ -194,7 +194,6 @@
"full_name": "Full name",
"gathering_responses": "Gathering responses",
"general": "General",
"get_started": "Get started",
"go_back": "Go Back",
"go_to_dashboard": "Go to Dashboard",
"hidden": "Hidden",
@@ -238,6 +237,7 @@
"maximum": "Maximum",
"member": "Member",
"members": "Members",
"membership_not_found": "Membership not found",
"metadata": "Metadata",
"minimum": "Minimum",
"mobile_overlay_text": "Formbricks is not available for devices with smaller resolutions.",
@@ -270,6 +270,7 @@
"only_owners_managers_and_manage_access_members_can_perform_this_action": "Only owners and managers can perform this action.",
"or": "or",
"organization": "Organization",
"organization_id": "Organization ID",
"organization_not_found": "Organization not found",
"organization_teams_not_found": "Organization teams not found",
"other": "Other",
@@ -293,7 +294,6 @@
"privacy": "Privacy Policy",
"privacy_policy": "Privacy Policy",
"product_manager": "Product Manager",
"product_not_found": "Product not found",
"profile": "Profile",
"project": "Project",
"project_configuration": "Project's Configuration",
@@ -310,6 +310,7 @@
"remove": "Remove",
"reorder_and_hide_columns": "Reorder and hide columns",
"report_survey": "Report Survey",
"request_trial_license": "Request trial license",
"reset_to_default": "Reset to default",
"response": "Response",
"responses": "Responses",
@@ -354,6 +355,7 @@
"summary": "Summary",
"survey": "Survey",
"survey_completed": "Survey completed.",
"survey_id": "Survey ID",
"survey_languages": "Survey Languages",
"survey_live": "Survey live",
"survey_not_found": "Survey not found",
@@ -370,7 +372,7 @@
"team": "Team",
"team_access": "Team Access",
"team_name": "Team name",
"teams": "Teams",
"teams": "Access Control",
"teams_not_found": "Teams not found",
"text": "Text",
"time": "Time",
@@ -773,20 +775,19 @@
"zapier_integration_description": "Integrate Formbricks with 5000+ apps via Zapier"
},
"project": {
"api-keys": {
"api_keys": {
"add_api_key": "Add API Key",
"add_env_api_key": "Add {environmentType} API Key",
"api_key": "API Key",
"api_key_copied_to_clipboard": "API key copied to clipboard",
"api_key_created": "API key created",
"api_key_deleted": "API Key deleted",
"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.",
"dev_api_keys": "Development Env Keys",
"dev_api_keys_description": "Add and remove API keys for your Development environment.",
"duplicate_access": "Duplicate project access not allowed",
"no_api_keys_yet": "You don't have any API keys yet",
"prod_api_keys": "Production Env Keys",
"prod_api_keys_description": "Add and remove API keys for your Production environment.",
"organization_access": "Organization Access",
"permissions": "Permissions",
"project_access": "Project Access",
"secret": "Secret",
"unable_to_delete_api_key": "Unable to delete API Key"
},
@@ -804,7 +805,6 @@
"formbricks_sdk_connected": "Formbricks SDK is connected",
"formbricks_sdk_not_connected": "Formbricks SDK is not yet connected.",
"formbricks_sdk_not_connected_description": "Connect your website or app with Formbricks",
"function": "function",
"have_a_problem": "Have a problem?",
"how_to_setup": "How to setup",
"how_to_setup_description": "Follow these steps to setup the Formbricks widget within your app.",
@@ -824,11 +824,10 @@
"step_3": "Step 3: Debug mode",
"switch_on_the_debug_mode_by_appending": "Switch on the debug mode by appending",
"tag_of_your_app": "tag of your app",
"to_the": "to the",
"to_the_url_where_you_load_the": "to the URL where you load the",
"want_to_learn_how_to_add_user_attributes": "Want to learn how to add user attributes, custom events and more?",
"you_also_need_to_pass_a": "you also need to pass a",
"you_are_done": "You're done \uD83C\uDF89",
"you_can_set_the_user_id_with": "you can set the user id with",
"your_app_now_communicates_with_formbricks": "Your app now communicates with Formbricks - sending events, and loading surveys automatically!"
},
"general": {
@@ -988,6 +987,12 @@
"with_the_formbricks_sdk": "with the Formbricks SDK"
},
"settings": {
"api_keys": {
"add_api_key": "Add API key",
"add_permission": "Add permission",
"api_keys_description": "Manage API keys to access Formbricks management APIs",
"only_organization_owners_and_managers_can_manage_api_keys": "Only organization owners and managers can manage API keys"
},
"billing": {
"10000_monthly_responses": "10000 Monthly Responses",
"1500_monthly_responses": "1500 Monthly Responses",
@@ -1029,6 +1034,8 @@
"monthly": "Monthly",
"monthly_identified_users": "Monthly Identified Users",
"multi_language_surveys": "Multi-Language Surveys",
"per_month": "per month",
"per_year": "per year",
"plan_upgraded_successfully": "Plan upgraded successfully",
"premium_support_with_slas": "Premium support with SLAs",
"priority_support": "Priority Support",
@@ -1039,7 +1046,7 @@
"startup": "Startup",
"startup_description": "Everything in Free with additional features.",
"switch_plan": "Switch Plan",
"switch_plan_confirmation_text": "Are you sure you want to switch to the {plan} plan? You will be charged {price} per month.",
"switch_plan_confirmation_text": "Are you sure you want to switch to the {plan} plan? You will be charged {price} {period}.",
"team_access_roles": "Team Access Roles",
"technical_onboarding": "Technical Onboarding",
"unable_to_upgrade_plan": "Unable to upgrade plan",
@@ -1133,7 +1140,9 @@
"resend_invitation_email": "Resend Invitation Email",
"share_invite_link": "Share Invite Link",
"share_this_link_to_let_your_organization_member_join_your_organization": "Share this link to let your organization member join your organization:",
"test_email_sent_successfully": "Test email sent successfully"
"test_email_sent_successfully": "Test email sent successfully",
"use_multi_language_surveys_with_a_higher_plan": "Use multi-language surveys with a higher plan",
"use_multi_language_surveys_with_a_higher_plan_description": "Survey your users in different languages."
},
"notifications": {
"auto_subscribe_to_new_surveys": "Auto-subscribe to new surveys",
@@ -1177,7 +1186,7 @@
"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.",
"security_description": "Manage your password and other security settings like two-factor authentication (2FA).",
"two_factor_authentication": "Two factor authentication",
"two_factor_authentication_description": "Add an extra layer of security to your account in case your password is stolen.",
"two_factor_authentication_enabled_please_enter_the_six_digit_code_from_your_authenticator_app": "Two-factor authentication enabled. Please enter the six-digit code from your authenticator app.",
@@ -1748,9 +1757,6 @@
"how_to_create_a_panel_step_3_description": "Set up hidden fields in your Formbricks survey to track which participant provided which answer.",
"how_to_create_a_panel_step_4": "Step 4: Launch your study",
"how_to_create_a_panel_step_4_description": "Once everything is setup, you can launch your study. Within a few hours youll receive the first responses.",
"how_to_embed_a_survey_on_your_react_native_app": "How to embed a survey on your React Native app",
"how_to_embed_a_survey_on_your_web_app": "How to embed a survey on your web app",
"identify_users_and_set_attributes": "identify users and set attributes",
"impressions": "Impressions",
"impressions_tooltip": "Number of times the survey has been viewed.",
"includes_all": "Includes all",
@@ -1765,7 +1771,6 @@
"last_month": "Last month",
"last_quarter": "Last quarter",
"last_year": "Last year",
"learn_how_to": "Learn how to",
"link_to_public_results_copied": "Link to public results copied",
"make_sure_the_survey_type_is_set_to": "Make sure the survey type is set to",
"mobile_app": "Mobile app",
@@ -1776,11 +1781,14 @@
"publish_to_web": "Publish to web",
"publish_to_web_warning": "You are about to release these survey results to the public.",
"publish_to_web_warning_description": "Your survey results will be public. Anyone outside your organization can access them if they have the link.",
"quickstart_mobile_apps": "Quickstart: Mobile apps",
"quickstart_mobile_apps_description": "To get started with surveys in mobile apps, please follow the Quickstart guide:",
"quickstart_web_apps": "Quickstart: Web apps",
"quickstart_web_apps_description": "Please follow the Quickstart guide to get started:",
"results_are_public": "Results are public",
"send_preview": "Send preview",
"send_to_panel": "Send to panel",
"setup_instructions": "Setup instructions",
"setup_instructions_for_react_native_apps": "Setup instructions for React Native apps",
"setup_integrations": "Setup integrations",
"share_results": "Share results",
"share_the_link": "Share the link",
@@ -1799,10 +1807,7 @@
"this_quarter": "This quarter",
"this_year": "This year",
"time_to_complete": "Time to Complete",
"to_connect_your_app_with_formbricks": "to connect your app with Formbricks",
"to_connect_your_web_app_with_formbricks": "to connect your web app with Formbricks",
"to_connect_your_website_with_formbricks": "to connect your website with Formbricks",
"to_run_highly_targeted_surveys": "to run highly targeted surveys.",
"ttc_tooltip": "Average time to complete the survey.",
"unknown_question_type": "Unknown Question Type",
"unpublish_from_web": "Unpublish from web",
@@ -1812,7 +1817,6 @@
"view_site": "View site",
"waiting_for_response": "Waiting for a response \uD83E\uDDD8",
"web_app": "Web app",
"were_working_on_sdks_for_flutter_swift_and_kotlin": "We're working on SDKs for Flutter, Swift and Kotlin.",
"what_is_a_panel": "What is a panel?",
"what_is_a_panel_answer": "A panel is a group of participants selected based on characteristics such as age, profession, gender, etc.",
"what_is_prolific": "What is Prolific?",
@@ -1902,6 +1906,7 @@
"preview_survey_questions": "Preview survey questions.",
"question_preview": "Question Preview",
"response_already_received": "We already received a response for this email address.",
"response_submitted": "A response linked to this survey and contact already exists",
"survey_already_answered_heading": "The survey has already been answered.",
"survey_already_answered_subheading": "You can only use this link once.",
"survey_sent_to": "Survey sent to {email}",

View File

@@ -194,7 +194,6 @@
"full_name": "Nom complet",
"gathering_responses": "Collecte des réponses",
"general": "Général",
"get_started": "Commencer",
"go_back": "Retourner",
"go_to_dashboard": "Aller au tableau de bord",
"hidden": "Caché",
@@ -238,6 +237,7 @@
"maximum": "Max",
"member": "Membre",
"members": "Membres",
"membership_not_found": "Abonnement non trouvé",
"metadata": "Métadonnées",
"minimum": "Min",
"mobile_overlay_text": "Formbricks n'est pas disponible pour les appareils avec des résolutions plus petites.",
@@ -270,6 +270,7 @@
"only_owners_managers_and_manage_access_members_can_perform_this_action": "Seules les propriétaires, les gestionnaires et les membres ayant accès à la gestion peuvent effectuer cette action.",
"or": "ou",
"organization": "Organisation",
"organization_id": "ID de l'organisation",
"organization_not_found": "Organisation non trouvée",
"organization_teams_not_found": "Équipes d'organisation non trouvées",
"other": "Autre",
@@ -293,7 +294,6 @@
"privacy": "Politique de confidentialité",
"privacy_policy": "Politique de confidentialité",
"product_manager": "Chef de produit",
"product_not_found": "Produit non trouvé",
"profile": "Profil",
"project": "Projet",
"project_configuration": "Configuration du projet",
@@ -310,6 +310,7 @@
"remove": "Retirer",
"reorder_and_hide_columns": "Réorganiser et masquer des colonnes",
"report_survey": "Rapport d'enquête",
"request_trial_license": "Demander une licence d'essai",
"reset_to_default": "Réinitialiser par défaut",
"response": "Réponse",
"responses": "Réponses",
@@ -354,6 +355,7 @@
"summary": "Résumé",
"survey": "Enquête",
"survey_completed": "Enquête terminée.",
"survey_id": "ID de l'enquête",
"survey_languages": "Langues de l'enquête",
"survey_live": "Sondage en direct",
"survey_not_found": "Sondage non trouvé",
@@ -370,7 +372,7 @@
"team": "Équipe",
"team_access": "Accès Équipe",
"team_name": "Nom de l'équipe",
"teams": "Équipes",
"teams": "Contrôle d'accès",
"teams_not_found": "Équipes non trouvées",
"text": "Texte",
"time": "Temps",
@@ -773,20 +775,19 @@
"zapier_integration_description": "Intégrez Formbricks avec plus de 5000 applications via Zapier."
},
"project": {
"api-keys": {
"api_keys": {
"add_api_key": "Ajouter une clé API",
"add_env_api_key": "Ajouter la clé API {environmentType}",
"api_key": "Clé API",
"api_key_copied_to_clipboard": "Clé API copiée dans le presse-papiers",
"api_key_created": "Clé API créée",
"api_key_deleted": "Clé API supprimée",
"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.",
"dev_api_keys": "Clés de l'environnement de développement",
"dev_api_keys_description": "Ajoutez et supprimez des clés API pour votre environnement de développement.",
"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.",
"prod_api_keys": "Clés de l'environnement de production",
"prod_api_keys_description": "Ajoutez et supprimez des clés API pour votre environnement de production.",
"organization_access": "Accès à l'organisation",
"permissions": "Permissions",
"project_access": "Accès au projet",
"secret": "Secret",
"unable_to_delete_api_key": "Impossible de supprimer la clé API"
},
@@ -804,7 +805,6 @@
"formbricks_sdk_connected": "Le SDK Formbricks est connecté",
"formbricks_sdk_not_connected": "Le SDK Formbricks n'est pas encore connecté.",
"formbricks_sdk_not_connected_description": "Connectez votre site web ou votre application à Formbricks.",
"function": "fonction",
"have_a_problem": "Vous avez un problème ?",
"how_to_setup": "Comment configurer",
"how_to_setup_description": "Suivez ces étapes pour configurer le widget Formbricks dans votre application.",
@@ -824,11 +824,10 @@
"step_3": "Étape 3 : Mode débogage",
"switch_on_the_debug_mode_by_appending": "Activez le mode débogage en ajoutant",
"tag_of_your_app": "étiquette de votre application",
"to_the": "au",
"to_the_url_where_you_load_the": "vers l'URL où vous chargez le",
"want_to_learn_how_to_add_user_attributes": "Vous voulez apprendre à ajouter des attributs utilisateur, des événements personnalisés et plus encore ?",
"you_also_need_to_pass_a": "vous devez également passer un",
"you_are_done": "Vous avez terminé \uD83C\uDF89",
"you_can_set_the_user_id_with": "vous pouvez définir l'ID utilisateur avec",
"your_app_now_communicates_with_formbricks": "Votre application communique désormais avec Formbricks - envoyant des événements et chargeant des enquêtes automatiquement !"
},
"general": {
@@ -988,6 +987,12 @@
"with_the_formbricks_sdk": "avec le SDK Formbricks"
},
"settings": {
"api_keys": {
"add_api_key": "Ajouter une clé API",
"add_permission": "Ajouter une permission",
"api_keys_description": "Gérer les clés API pour accéder aux API de gestion de Formbricks",
"only_organization_owners_and_managers_can_manage_api_keys": "Seuls les propriétaires et les gestionnaires de l'organisation peuvent gérer les clés API"
},
"billing": {
"10000_monthly_responses": "10000 Réponses Mensuelles",
"1500_monthly_responses": "1500 Réponses Mensuelles",
@@ -1029,6 +1034,8 @@
"monthly": "Mensuel",
"monthly_identified_users": "Utilisateurs Identifiés Mensuels",
"multi_language_surveys": "Sondages multilingues",
"per_month": "par mois",
"per_year": "par an",
"plan_upgraded_successfully": "Plan mis à jour avec succès",
"premium_support_with_slas": "Soutien premium avec SLA",
"priority_support": "Soutien Prioritaire",
@@ -1039,7 +1046,7 @@
"startup": "Startup",
"startup_description": "Tout est gratuit avec des fonctionnalités supplémentaires.",
"switch_plan": "Changer de plan",
"switch_plan_confirmation_text": "Êtes-vous sûr de vouloir passer au plan {plan} ? Vous serez facturé {price} par mois.",
"switch_plan_confirmation_text": "Êtes-vous sûr de vouloir passer au plan {plan} ? Vous serez facturé {price} {period}.",
"team_access_roles": "Rôles d'accès d'équipe",
"technical_onboarding": "Intégration technique",
"unable_to_upgrade_plan": "Impossible de mettre à niveau le plan",
@@ -1133,7 +1140,9 @@
"resend_invitation_email": "Renvoyer l'e-mail d'invitation",
"share_invite_link": "Partager le lien d'invitation",
"share_this_link_to_let_your_organization_member_join_your_organization": "Partagez ce lien pour permettre à un membre de votre organisation de rejoindre votre organisation :",
"test_email_sent_successfully": "E-mail de test envoyé avec succès"
"test_email_sent_successfully": "E-mail de test envoyé avec succès",
"use_multi_language_surveys_with_a_higher_plan": "Utilisez des sondages multilingues avec un plan supérieur",
"use_multi_language_surveys_with_a_higher_plan_description": "Interrogez vos utilisateurs dans différentes langues."
},
"notifications": {
"auto_subscribe_to_new_surveys": "S'abonner automatiquement aux nouveaux sondages",
@@ -1177,7 +1186,7 @@
"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é.",
"security_description": "Gérez votre mot de passe et d'autres paramètres de sécurité comme l'authentification à deux facteurs (2FA).",
"two_factor_authentication": "Authentification à deux facteurs",
"two_factor_authentication_description": "Ajoutez une couche de sécurité supplémentaire à votre compte au cas où votre mot de passe serait volé.",
"two_factor_authentication_enabled_please_enter_the_six_digit_code_from_your_authenticator_app": "Authentification à deux facteurs activée. Veuillez entrer le code à six chiffres de votre application d'authentification.",
@@ -1748,9 +1757,6 @@
"how_to_create_a_panel_step_3_description": "Configurez des champs cachés dans votre enquête Formbricks pour suivre quel participant a fourni quelle réponse.",
"how_to_create_a_panel_step_4": "Étape 4 : Lancez votre étude",
"how_to_create_a_panel_step_4_description": "Une fois que tout est configuré, vous pouvez lancer votre étude. Dans quelques heures, vous recevrez les premières réponses.",
"how_to_embed_a_survey_on_your_react_native_app": "Comment intégrer un sondage dans votre application React Native",
"how_to_embed_a_survey_on_your_web_app": "Comment intégrer une enquête dans votre application web",
"identify_users_and_set_attributes": "identifier les utilisateurs et définir des attributs",
"impressions": "Impressions",
"impressions_tooltip": "Nombre de fois que l'enquête a été consultée.",
"includes_all": "Comprend tous",
@@ -1765,7 +1771,6 @@
"last_month": "Le mois dernier",
"last_quarter": "dernier trimestre",
"last_year": "l'année dernière",
"learn_how_to": "Apprenez à",
"link_to_public_results_copied": "Lien vers les résultats publics copié",
"make_sure_the_survey_type_is_set_to": "Assurez-vous que le type d'enquête est défini sur",
"mobile_app": "Application mobile",
@@ -1776,11 +1781,14 @@
"publish_to_web": "Publier sur le web",
"publish_to_web_warning": "Vous êtes sur le point de rendre ces résultats d'enquête publics.",
"publish_to_web_warning_description": "Les résultats de votre enquête seront publics. Toute personne en dehors de votre organisation pourra y accéder si elle a le lien.",
"quickstart_mobile_apps": "Démarrage rapide : Applications mobiles",
"quickstart_mobile_apps_description": "Pour commencer avec les enquêtes dans les applications mobiles, veuillez suivre le guide de démarrage rapide :",
"quickstart_web_apps": "Démarrage rapide : Applications web",
"quickstart_web_apps_description": "Veuillez suivre le guide de démarrage rapide pour commencer :",
"results_are_public": "Les résultats sont publics.",
"send_preview": "Envoyer un aperçu",
"send_to_panel": "Envoyer au panneau",
"setup_instructions": "Instructions d'installation",
"setup_instructions_for_react_native_apps": "Instructions d'installation pour les applications React Native",
"setup_integrations": "Configurer les intégrations",
"share_results": "Partager les résultats",
"share_the_link": "Partager le lien",
@@ -1799,10 +1807,7 @@
"this_quarter": "Ce trimestre",
"this_year": "Cette année",
"time_to_complete": "Temps à compléter",
"to_connect_your_app_with_formbricks": "pour connecter votre application à Formbricks",
"to_connect_your_web_app_with_formbricks": "pour connecter votre application web à Formbricks",
"to_connect_your_website_with_formbricks": "connecter votre site web à Formbricks",
"to_run_highly_targeted_surveys": "réaliser des enquêtes très ciblées.",
"ttc_tooltip": "Temps moyen pour compléter l'enquête.",
"unknown_question_type": "Type de question inconnu",
"unpublish_from_web": "Désactiver la publication sur le web",
@@ -1812,7 +1817,6 @@
"view_site": "Voir le site",
"waiting_for_response": "En attente d'une réponse \uD83E\uDDD8",
"web_app": "application web",
"were_working_on_sdks_for_flutter_swift_and_kotlin": "Nous travaillons sur des SDK pour Flutter, Swift et Kotlin.",
"what_is_a_panel": "Qu'est-ce qu'un panneau ?",
"what_is_a_panel_answer": "Un panel est un groupe de participants sélectionnés en fonction de caractéristiques telles que l'âge, la profession, le sexe, etc.",
"what_is_prolific": "Qu'est-ce que Prolific ?",
@@ -1902,6 +1906,7 @@
"preview_survey_questions": "Aperçu des questions de l'enquête.",
"question_preview": "Aperçu de la question",
"response_already_received": "Nous avons déjà reçu une réponse pour cette adresse e-mail.",
"response_submitted": "Une réponse liée à cette enquête et à ce contact existe déjà",
"survey_already_answered_heading": "L'enquête a déjà été répondue.",
"survey_already_answered_subheading": "Vous ne pouvez utiliser ce lien qu'une seule fois.",
"survey_sent_to": "Enquête envoyée à {email}",

View File

@@ -194,7 +194,6 @@
"full_name": "Nome completo",
"gathering_responses": "Recolhendo respostas",
"general": "geral",
"get_started": "Começar",
"go_back": "Voltar",
"go_to_dashboard": "Ir para o Painel",
"hidden": "Escondido",
@@ -238,6 +237,7 @@
"maximum": "Máximo",
"member": "Membros",
"members": "Membros",
"membership_not_found": "Assinatura não encontrada",
"metadata": "metadados",
"minimum": "Mínimo",
"mobile_overlay_text": "O Formbricks não está disponível para dispositivos com resoluções menores.",
@@ -270,6 +270,7 @@
"only_owners_managers_and_manage_access_members_can_perform_this_action": "Apenas proprietários, gerentes e membros com acesso de gerenciamento podem realizar essa ação.",
"or": "ou",
"organization": "organização",
"organization_id": "ID da Organização",
"organization_not_found": "Organização não encontrada",
"organization_teams_not_found": "Equipes da organização não encontradas",
"other": "outro",
@@ -293,7 +294,6 @@
"privacy": "Política de Privacidade",
"privacy_policy": "Política de Privacidade",
"product_manager": "Gerente de Produto",
"product_not_found": "Produto não encontrado",
"profile": "Perfil",
"project": "Projeto",
"project_configuration": "Configuração do Projeto",
@@ -310,6 +310,7 @@
"remove": "remover",
"reorder_and_hide_columns": "Reordenar e ocultar colunas",
"report_survey": "Relatório de Pesquisa",
"request_trial_license": "Pedir licença de teste",
"reset_to_default": "Restaurar para o padrão",
"response": "Resposta",
"responses": "Respostas",
@@ -354,6 +355,7 @@
"summary": "Resumo",
"survey": "Pesquisa",
"survey_completed": "Pesquisa concluída.",
"survey_id": "ID da Pesquisa",
"survey_languages": "Idiomas da Pesquisa",
"survey_live": "Pesquisa ao vivo",
"survey_not_found": "Pesquisa não encontrada",
@@ -370,7 +372,7 @@
"team": "Time",
"team_access": "Acesso da equipe",
"team_name": "Nome da equipe",
"teams": "Times",
"teams": "Controle de Acesso",
"teams_not_found": "Equipes não encontradas",
"text": "Texto",
"time": "tempo",
@@ -773,20 +775,19 @@
"zapier_integration_description": "Integrar o Formbricks com mais de 5000 apps via Zapier"
},
"project": {
"api-keys": {
"api_keys": {
"add_api_key": "Adicionar Chave API",
"add_env_api_key": "Adicionar chave de API {environmentType}",
"api_key": "Chave de API",
"api_key_copied_to_clipboard": "Chave da API copiada para a área de transferência",
"api_key_created": "Chave da API criada",
"api_key_deleted": "Chave da API deletada",
"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.",
"dev_api_keys": "Chaves do Ambiente de Desenvolvimento",
"dev_api_keys_description": "Adicionar e remover chaves de API para o seu ambiente de Desenvolvimento.",
"duplicate_access": "Acesso duplicado ao projeto não permitido",
"no_api_keys_yet": "Você ainda não tem nenhuma chave de API",
"prod_api_keys": "Chaves do Ambiente de Produção",
"prod_api_keys_description": "Adicionar e remover chaves de API para seu ambiente de Produção.",
"organization_access": "Acesso à Organização",
"permissions": "Permissões",
"project_access": "Acesso ao Projeto",
"secret": "Segredo",
"unable_to_delete_api_key": "Não foi possível deletar a Chave API"
},
@@ -804,7 +805,6 @@
"formbricks_sdk_connected": "O SDK do Formbricks está conectado",
"formbricks_sdk_not_connected": "O SDK do Formbricks ainda não está conectado.",
"formbricks_sdk_not_connected_description": "Conecte seu site ou app com o Formbricks",
"function": "função",
"have_a_problem": "Tá com problema?",
"how_to_setup": "Como configurar",
"how_to_setup_description": "Siga esses passos para configurar o widget do Formbricks no seu app.",
@@ -824,11 +824,10 @@
"step_3": "Passo 3: Modo de depuração",
"switch_on_the_debug_mode_by_appending": "Ative o modo de depuração adicionando",
"tag_of_your_app": "etiqueta do seu app",
"to_the": "pro",
"to_the_url_where_you_load_the": "para a URL onde você carrega o",
"want_to_learn_how_to_add_user_attributes": "Quer aprender como adicionar atributos de usuário, eventos personalizados e mais?",
"you_also_need_to_pass_a": "você também precisa passar um",
"you_are_done": "Você terminou \uD83C\uDF89",
"you_can_set_the_user_id_with": "você pode definir o id do usuário com",
"your_app_now_communicates_with_formbricks": "Seu app agora se comunica com o Formbricks - enviando eventos e carregando pesquisas automaticamente!"
},
"general": {
@@ -988,6 +987,12 @@
"with_the_formbricks_sdk": "com o SDK do Formbricks."
},
"settings": {
"api_keys": {
"add_api_key": "Adicionar chave de API",
"add_permission": "Adicionar permissão",
"api_keys_description": "Gerencie chaves de API para acessar as APIs de gerenciamento do Formbricks",
"only_organization_owners_and_managers_can_manage_api_keys": "Apenas proprietários e gerentes da organização podem gerenciar chaves de API"
},
"billing": {
"10000_monthly_responses": "10000 Respostas Mensais",
"1500_monthly_responses": "1500 Respostas Mensais",
@@ -1029,6 +1034,8 @@
"monthly": "mensal",
"monthly_identified_users": "Usuários Identificados Mensalmente",
"multi_language_surveys": "Pesquisas Multilíngues",
"per_month": "por mês",
"per_year": "por ano",
"plan_upgraded_successfully": "Plano atualizado com sucesso",
"premium_support_with_slas": "Suporte premium com SLAs",
"priority_support": "Suporte Prioritário",
@@ -1039,7 +1046,7 @@
"startup": "startup",
"startup_description": "Tudo no Grátis com recursos adicionais.",
"switch_plan": "Mudar Plano",
"switch_plan_confirmation_text": "Tem certeza de que deseja mudar para o plano {plan}? Você será cobrado {price} por mês.",
"switch_plan_confirmation_text": "Tem certeza de que deseja mudar para o plano {plan}? Você será cobrado {price} {period}.",
"team_access_roles": "Funções de Acesso da Equipe",
"technical_onboarding": "Integração Técnica",
"unable_to_upgrade_plan": "Não foi possível atualizar o plano",
@@ -1133,7 +1140,9 @@
"resend_invitation_email": "Reenviar E-mail de Convite",
"share_invite_link": "Compartilhar Link de Convite",
"share_this_link_to_let_your_organization_member_join_your_organization": "Compartilhe esse link para que o membro da sua organização possa entrar na sua organização:",
"test_email_sent_successfully": "E-mail de teste enviado com sucesso"
"test_email_sent_successfully": "E-mail de teste enviado com sucesso",
"use_multi_language_surveys_with_a_higher_plan": "Use pesquisas multilíngues com um plano superior",
"use_multi_language_surveys_with_a_higher_plan_description": "Pesquise seus usuários em diferentes idiomas."
},
"notifications": {
"auto_subscribe_to_new_surveys": "Inscrever-se automaticamente em novas pesquisas",
@@ -1177,7 +1186,7 @@
"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.",
"security_description": "Gerencie sua senha e outras configurações de segurança como a autenticação de dois fatores (2FA).",
"two_factor_authentication": "Autenticação de dois fatores",
"two_factor_authentication_description": "Adicione uma camada extra de segurança à sua conta caso sua senha seja roubada.",
"two_factor_authentication_enabled_please_enter_the_six_digit_code_from_your_authenticator_app": "Autenticação de dois fatores ativada. Por favor, insira o código de seis dígitos do seu app autenticador.",
@@ -1748,9 +1757,6 @@
"how_to_create_a_panel_step_3_description": "Configure campos ocultos na sua pesquisa do Formbricks para rastrear qual participante forneceu qual resposta.",
"how_to_create_a_panel_step_4": "Passo 4: Lançar seu estudo",
"how_to_create_a_panel_step_4_description": "Depois que tudo estiver configurado, você pode iniciar seu estudo. Em algumas horas, você vai receber as primeiras respostas.",
"how_to_embed_a_survey_on_your_react_native_app": "Como incorporar uma pesquisa no seu app React Native",
"how_to_embed_a_survey_on_your_web_app": "Como incorporar uma pesquisa no seu app web",
"identify_users_and_set_attributes": "identificar usuários e definir atributos",
"impressions": "Impressões",
"impressions_tooltip": "Número de vezes que a pesquisa foi visualizada.",
"includes_all": "Inclui tudo",
@@ -1765,7 +1771,6 @@
"last_month": "Último mês",
"last_quarter": "Último trimestre",
"last_year": "Último ano",
"learn_how_to": "Aprenda como",
"link_to_public_results_copied": "Link pros resultados públicos copiado",
"make_sure_the_survey_type_is_set_to": "Certifique-se de que o tipo de pesquisa esteja definido como",
"mobile_app": "app de celular",
@@ -1776,11 +1781,14 @@
"publish_to_web": "Publicar na web",
"publish_to_web_warning": "Você está prestes a divulgar esses resultados da pesquisa para o público.",
"publish_to_web_warning_description": "Os resultados da sua pesquisa serão públicos. Qualquer pessoa fora da sua organização pode acessá-los se tiver o link.",
"quickstart_mobile_apps": "Início rápido: Aplicativos móveis",
"quickstart_mobile_apps_description": "Para começar com pesquisas em aplicativos móveis, por favor, siga o guia de início rápido:",
"quickstart_web_apps": "Início rápido: Aplicativos web",
"quickstart_web_apps_description": "Por favor, siga o guia de início rápido para começar:",
"results_are_public": "Os resultados são públicos",
"send_preview": "Enviar prévia",
"send_to_panel": "Enviar para o painel",
"setup_instructions": "Instruções de configuração",
"setup_instructions_for_react_native_apps": "Instruções de configuração para apps React Native",
"setup_integrations": "Configurar integrações",
"share_results": "Compartilhar resultados",
"share_the_link": "Compartilha o link",
@@ -1799,10 +1807,7 @@
"this_quarter": "Este trimestre",
"this_year": "Este ano",
"time_to_complete": "Tempo para Concluir",
"to_connect_your_app_with_formbricks": "conectar seu app com o Formbricks",
"to_connect_your_web_app_with_formbricks": "conectar seu app web com o Formbricks",
"to_connect_your_website_with_formbricks": "conectar seu site com o Formbricks",
"to_run_highly_targeted_surveys": "fazer pesquisas altamente direcionadas.",
"ttc_tooltip": "Tempo médio para completar a pesquisa.",
"unknown_question_type": "Tipo de pergunta desconhecido",
"unpublish_from_web": "Despublicar da web",
@@ -1812,7 +1817,6 @@
"view_site": "Ver site",
"waiting_for_response": "Aguardando uma resposta \uD83E\uDDD8",
"web_app": "aplicativo web",
"were_working_on_sdks_for_flutter_swift_and_kotlin": "Estamos trabalhando em SDKs para Flutter, Swift e Kotlin.",
"what_is_a_panel": "O que é um painel?",
"what_is_a_panel_answer": "Um painel é um grupo de participantes selecionados com base em características como idade, profissão, gênero, etc.",
"what_is_prolific": "O que é Prolific?",
@@ -1902,6 +1906,7 @@
"preview_survey_questions": "Visualizar perguntas da pesquisa.",
"question_preview": "Prévia da Pergunta",
"response_already_received": "Já recebemos uma resposta para este endereço de email.",
"response_submitted": "Já existe uma resposta vinculada a esta pesquisa e contato",
"survey_already_answered_heading": "A pesquisa já foi respondida.",
"survey_already_answered_subheading": "Você só pode usar esse link uma vez.",
"survey_sent_to": "Pesquisa enviada para {email}",

View File

@@ -194,7 +194,6 @@
"full_name": "Nome completo",
"gathering_responses": "A recolher respostas",
"general": "Geral",
"get_started": "Começar",
"go_back": "Voltar",
"go_to_dashboard": "Ir para o Painel",
"hidden": "Oculto",
@@ -238,6 +237,7 @@
"maximum": "Máximo",
"member": "Membro",
"members": "Membros",
"membership_not_found": "Associação não encontrada",
"metadata": "Metadados",
"minimum": "Mínimo",
"mobile_overlay_text": "O Formbricks não está disponível para dispositivos com resoluções menores.",
@@ -270,6 +270,7 @@
"only_owners_managers_and_manage_access_members_can_perform_this_action": "Apenas proprietários e gestores podem realizar esta ação.",
"or": "ou",
"organization": "Organização",
"organization_id": "ID da Organização",
"organization_not_found": "Organização não encontrada",
"organization_teams_not_found": "Equipas da organização não encontradas",
"other": "Outro",
@@ -293,7 +294,6 @@
"privacy": "Política de Privacidade",
"privacy_policy": "Política de Privacidade",
"product_manager": "Gestor de Produto",
"product_not_found": "Produto não encontrado",
"profile": "Perfil",
"project": "Projeto",
"project_configuration": "Configuração do Projeto",
@@ -310,6 +310,7 @@
"remove": "Remover",
"reorder_and_hide_columns": "Reordenar e ocultar colunas",
"report_survey": "Relatório de Inquérito",
"request_trial_license": "Solicitar licença de teste",
"reset_to_default": "Repor para o padrão",
"response": "Resposta",
"responses": "Respostas",
@@ -354,6 +355,7 @@
"summary": "Resumo",
"survey": "Inquérito",
"survey_completed": "Inquérito concluído.",
"survey_id": "ID do Inquérito",
"survey_languages": "Idiomas da Pesquisa",
"survey_live": "Inquérito ao vivo",
"survey_not_found": "Inquérito não encontrado",
@@ -370,7 +372,7 @@
"team": "Equipa",
"team_access": "Acesso da Equipa",
"team_name": "Nome da equipa",
"teams": "Equipas",
"teams": "Controlo de Acesso",
"teams_not_found": "Equipas não encontradas",
"text": "Texto",
"time": "Tempo",
@@ -773,20 +775,19 @@
"zapier_integration_description": "Integre o Formbricks com mais de 5000 apps via Zapier"
},
"project": {
"api-keys": {
"api_keys": {
"add_api_key": "Adicionar Chave API",
"add_env_api_key": "Adicionar Chave API {environmentType}",
"api_key": "Chave API",
"api_key_copied_to_clipboard": "Chave API copiada para a área de transferência",
"api_key_created": "Chave API criada",
"api_key_deleted": "Chave API eliminada",
"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.",
"dev_api_keys": "Chaves de Ambiente de Desenvolvimento",
"dev_api_keys_description": "Adicionar e remover chaves de API para o seu ambiente de Desenvolvimento.",
"duplicate_access": "Acesso duplicado ao projeto não permitido",
"no_api_keys_yet": "Ainda não tem nenhuma chave API",
"prod_api_keys": "Chaves de Ambiente de Produção",
"prod_api_keys_description": "Adicionar e remover chaves de API para o seu ambiente de Produção.",
"organization_access": "Acesso à Organização",
"permissions": "Permissões",
"project_access": "Acesso ao Projeto",
"secret": "Segredo",
"unable_to_delete_api_key": "Não é possível eliminar a chave API"
},
@@ -804,7 +805,6 @@
"formbricks_sdk_connected": "O SDK do Formbricks está conectado",
"formbricks_sdk_not_connected": "O SDK do Formbricks ainda não está conectado",
"formbricks_sdk_not_connected_description": "Ligue o seu website ou aplicação ao Formbricks",
"function": "função",
"have_a_problem": "Tem um problema?",
"how_to_setup": "Como configurar",
"how_to_setup_description": "Siga estes passos para configurar o widget Formbricks na sua aplicação.",
@@ -824,11 +824,10 @@
"step_3": "Passo 3: Modo de depuração",
"switch_on_the_debug_mode_by_appending": "Ativar o modo de depuração adicionando",
"tag_of_your_app": "tag da sua aplicação",
"to_the": "para o",
"to_the_url_where_you_load_the": "para o URL onde carrega o",
"want_to_learn_how_to_add_user_attributes": "Quer aprender a adicionar atributos de utilizador, eventos personalizados e mais?",
"you_also_need_to_pass_a": "também precisa passar um",
"you_are_done": "Está concluído \uD83C\uDF89",
"you_can_set_the_user_id_with": "pode definir o ID do utilizador com",
"your_app_now_communicates_with_formbricks": "A sua aplicação agora comunica com o Formbricks - enviando eventos e carregando inquéritos automaticamente!"
},
"general": {
@@ -988,6 +987,12 @@
"with_the_formbricks_sdk": "com o SDK Formbricks"
},
"settings": {
"api_keys": {
"add_api_key": "Adicionar chave API",
"add_permission": "Adicionar permissão",
"api_keys_description": "Gerir chaves API para aceder às APIs de gestão do Formbricks",
"only_organization_owners_and_managers_can_manage_api_keys": "Apenas os proprietários e gestores da organização podem gerir chaves API"
},
"billing": {
"10000_monthly_responses": "10000 Respostas Mensais",
"1500_monthly_responses": "1500 Respostas Mensais",
@@ -1029,6 +1034,8 @@
"monthly": "Mensal",
"monthly_identified_users": "Utilizadores Identificados Mensalmente",
"multi_language_surveys": "Inquéritos Multilingues",
"per_month": "por mês",
"per_year": "por ano",
"plan_upgraded_successfully": "Plano atualizado com sucesso",
"premium_support_with_slas": "Suporte premium com SLAs",
"priority_support": "Suporte Prioritário",
@@ -1039,7 +1046,7 @@
"startup": "Inicialização",
"startup_description": "Tudo no plano Gratuito com funcionalidades adicionais.",
"switch_plan": "Mudar Plano",
"switch_plan_confirmation_text": "Tem a certeza de que deseja mudar para o plano {plan}? Ser-lhe-á cobrado {price} por mês.",
"switch_plan_confirmation_text": "Tem a certeza de que deseja mudar para o plano {plan}? Ser-lhe-á cobrado {price} {period}.",
"team_access_roles": "Funções de Acesso da Equipa",
"technical_onboarding": "Integração Técnica",
"unable_to_upgrade_plan": "Não é possível atualizar o plano",
@@ -1133,7 +1140,9 @@
"resend_invitation_email": "Reenviar Email de Convite",
"share_invite_link": "Partilhar Link de Convite",
"share_this_link_to_let_your_organization_member_join_your_organization": "Partilhe este link para permitir que o membro da sua organização se junte à sua organização:",
"test_email_sent_successfully": "Email de teste enviado com sucesso"
"test_email_sent_successfully": "Email de teste enviado com sucesso",
"use_multi_language_surveys_with_a_higher_plan": "Use inquéritos multilingues com um plano superior",
"use_multi_language_surveys_with_a_higher_plan_description": "Inquira os seus utilizadores em diferentes idiomas."
},
"notifications": {
"auto_subscribe_to_new_surveys": "Subscrever automaticamente a novos inquéritos",
@@ -1177,7 +1186,7 @@
"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.",
"security_description": "Gerir a sua palavra-passe e outras definições de segurança, como a autenticação de dois fatores (2FA).",
"two_factor_authentication": "Autenticação de dois fatores",
"two_factor_authentication_description": "Adicione uma camada extra de segurança à sua conta caso a sua palavra-passe seja roubada.",
"two_factor_authentication_enabled_please_enter_the_six_digit_code_from_your_authenticator_app": "Autenticação de dois fatores ativada. Introduza o código de seis dígitos da sua aplicação de autenticação.",
@@ -1748,9 +1757,6 @@
"how_to_create_a_panel_step_3_description": "Configure campos ocultos no seu inquérito Formbricks para rastrear qual participante forneceu qual resposta.",
"how_to_create_a_panel_step_4": "Passo 4: Lançar o seu estudo",
"how_to_create_a_panel_step_4_description": "Depois de tudo configurado, pode lançar o seu estudo. Dentro de algumas horas, receberá as primeiras respostas.",
"how_to_embed_a_survey_on_your_react_native_app": "Como incorporar um questionário na sua aplicação React Native",
"how_to_embed_a_survey_on_your_web_app": "Como incorporar um questionário na sua aplicação web",
"identify_users_and_set_attributes": "identificar utilizadores e definir atributos",
"impressions": "Impressões",
"impressions_tooltip": "Número de vezes que o inquérito foi visualizado.",
"includes_all": "Inclui tudo",
@@ -1765,7 +1771,6 @@
"last_month": "Último mês",
"last_quarter": "Último trimestre",
"last_year": "Ano passado",
"learn_how_to": "Saiba como",
"link_to_public_results_copied": "Link para resultados públicos copiado",
"make_sure_the_survey_type_is_set_to": "Certifique-se de que o tipo de inquérito está definido para",
"mobile_app": "Aplicação móvel",
@@ -1776,11 +1781,14 @@
"publish_to_web": "Publicar na web",
"publish_to_web_warning": "Está prestes a divulgar estes resultados do inquérito ao público.",
"publish_to_web_warning_description": "Os resultados do seu inquérito serão públicos. Qualquer pessoa fora da sua organização pode aceder a eles se tiver o link.",
"quickstart_mobile_apps": "Início rápido: Aplicações móveis",
"quickstart_mobile_apps_description": "Para começar com inquéritos em aplicações móveis, por favor, siga o guia de início rápido:",
"quickstart_web_apps": "Início rápido: Aplicações web",
"quickstart_web_apps_description": "Por favor, siga o guia de início rápido para começar:",
"results_are_public": "Os resultados são públicos",
"send_preview": "Enviar pré-visualização",
"send_to_panel": "Enviar para painel",
"setup_instructions": "Instruções de configuração",
"setup_instructions_for_react_native_apps": "Instruções de configuração para aplicações React Native",
"setup_integrations": "Configurar integrações",
"share_results": "Partilhar resultados",
"share_the_link": "Partilhar o link",
@@ -1799,10 +1807,7 @@
"this_quarter": "Este trimestre",
"this_year": "Este ano",
"time_to_complete": "Tempo para Concluir",
"to_connect_your_app_with_formbricks": "para ligar a sua aplicação ao Formbricks",
"to_connect_your_web_app_with_formbricks": "para ligar a sua aplicação web ao Formbricks",
"to_connect_your_website_with_formbricks": "para ligar o seu website ao Formbricks",
"to_run_highly_targeted_surveys": "para realizar inquéritos altamente direcionados.",
"ttc_tooltip": "Tempo médio para concluir o inquérito.",
"unknown_question_type": "Tipo de Pergunta Desconhecido",
"unpublish_from_web": "Despublicar da web",
@@ -1812,7 +1817,6 @@
"view_site": "Ver site",
"waiting_for_response": "A aguardar uma resposta \uD83E\uDDD8",
"web_app": "Aplicação web",
"were_working_on_sdks_for_flutter_swift_and_kotlin": "Estamos a trabalhar em SDKs para Flutter, Swift e Kotlin.",
"what_is_a_panel": "O que é um painel?",
"what_is_a_panel_answer": "Um painel é um grupo de participantes selecionados com base em características como idade, profissão, género, etc.",
"what_is_prolific": "O que é o Prolific?",
@@ -1902,6 +1906,7 @@
"preview_survey_questions": "Pré-visualizar perguntas do inquérito.",
"question_preview": "Pré-visualização da Pergunta",
"response_already_received": "Já recebemos uma resposta para este endereço de email.",
"response_submitted": "Já existe uma resposta associada a este inquérito e contacto",
"survey_already_answered_heading": "O inquérito já foi respondido.",
"survey_already_answered_subheading": "Só pode usar este link uma vez.",
"survey_sent_to": "Inquérito enviado para {email}",

View File

@@ -194,7 +194,6 @@
"full_name": "全名",
"gathering_responses": "收集回應中",
"general": "一般",
"get_started": "開始使用",
"go_back": "返回",
"go_to_dashboard": "前往儀表板",
"hidden": "隱藏",
@@ -238,6 +237,7 @@
"maximum": "最大值",
"member": "成員",
"members": "成員",
"membership_not_found": "找不到成員資格",
"metadata": "元數據",
"minimum": "最小值",
"mobile_overlay_text": "Formbricks 不適用於較小解析度的裝置。",
@@ -270,6 +270,7 @@
"only_owners_managers_and_manage_access_members_can_perform_this_action": "只有擁有者、管理員和管理存取權限的成員才能執行此操作。",
"or": "或",
"organization": "組織",
"organization_id": "組織 ID",
"organization_not_found": "找不到組織",
"organization_teams_not_found": "找不到組織團隊",
"other": "其他",
@@ -293,7 +294,6 @@
"privacy": "隱私權政策",
"privacy_policy": "隱私權政策",
"product_manager": "產品經理",
"product_not_found": "找不到產品",
"profile": "個人資料",
"project": "專案",
"project_configuration": "專案組態",
@@ -310,6 +310,7 @@
"remove": "移除",
"reorder_and_hide_columns": "重新排序和隱藏欄位",
"report_survey": "報告問卷",
"request_trial_license": "請求試用授權",
"reset_to_default": "重設為預設值",
"response": "回應",
"responses": "回應",
@@ -354,6 +355,7 @@
"summary": "摘要",
"survey": "問卷",
"survey_completed": "問卷已完成。",
"survey_id": "問卷 ID",
"survey_languages": "問卷語言",
"survey_live": "問卷已上線",
"survey_not_found": "找不到問卷",
@@ -370,7 +372,7 @@
"team": "團隊",
"team_access": "團隊存取權限",
"team_name": "團隊名稱",
"teams": "團隊",
"teams": "存取控制",
"teams_not_found": "找不到團隊",
"text": "文字",
"time": "時間",
@@ -773,20 +775,19 @@
"zapier_integration_description": "透過 Zapier 將 Formbricks 與 5000 多個應用程式整合"
},
"project": {
"api-keys": {
"api_keys": {
"add_api_key": "新增 API 金鑰",
"add_env_api_key": "新增 '{'environmentType'}' API 金鑰",
"api_key": "API 金鑰",
"api_key_copied_to_clipboard": "API 金鑰已複製到剪貼簿",
"api_key_created": "API 金鑰已建立",
"api_key_deleted": "API 金鑰已刪除",
"api_key_label": "API 金鑰標籤",
"api_key_security_warning": "為安全起見API 金鑰僅在建立後顯示一次。請立即將其複製到您的目的地。",
"dev_api_keys": "開發環境金鑰",
"dev_api_keys_description": "為您的開發環境新增和移除 API 金鑰。",
"duplicate_access": "不允許重複的 project 存取",
"no_api_keys_yet": "您還沒有任何 API 金鑰",
"prod_api_keys": "生產環境金鑰",
"prod_api_keys_description": "為您的生產環境新增和移除 API 金鑰。",
"organization_access": "組織 Access",
"permissions": "權限",
"project_access": "專案存取",
"secret": "密碼",
"unable_to_delete_api_key": "無法刪除 API 金鑰"
},
@@ -804,7 +805,6 @@
"formbricks_sdk_connected": "Formbricks SDK 已連線",
"formbricks_sdk_not_connected": "Formbricks SDK 尚未連線。",
"formbricks_sdk_not_connected_description": "將您的網站或應用程式與 Formbricks 連線",
"function": "函式",
"have_a_problem": "有問題嗎?",
"how_to_setup": "如何設定",
"how_to_setup_description": "請按照這些步驟在您的應用程式中設定 Formbricks 小工具。",
@@ -824,11 +824,10 @@
"step_3": "步驟 3偵錯模式",
"switch_on_the_debug_mode_by_appending": "藉由附加以下項目開啟偵錯模式",
"tag_of_your_app": "您應用程式的標籤",
"to_the": "到",
"to_the_url_where_you_load_the": "到您載入",
"want_to_learn_how_to_add_user_attributes": "想瞭解如何新增使用者屬性、自訂事件等嗎?",
"you_also_need_to_pass_a": "您還需要傳遞",
"you_are_done": "您已完成 \uD83C\uDF89",
"you_can_set_the_user_id_with": "您可以使用 user id 設定",
"your_app_now_communicates_with_formbricks": "您的應用程式現在可與 Formbricks 通訊 - 自動傳送事件和載入問卷!"
},
"general": {
@@ -988,6 +987,12 @@
"with_the_formbricks_sdk": "使用 Formbricks SDK"
},
"settings": {
"api_keys": {
"add_api_key": "新增 API 金鑰",
"add_permission": "新增權限",
"api_keys_description": "管理 API 金鑰以存取 Formbricks 管理 API",
"only_organization_owners_and_managers_can_manage_api_keys": "只有組織擁有者和管理員才能管理 API 金鑰"
},
"billing": {
"10000_monthly_responses": "10000 個每月回應",
"1500_monthly_responses": "1500 個每月回應",
@@ -1029,6 +1034,8 @@
"monthly": "每月",
"monthly_identified_users": "每月識別使用者",
"multi_language_surveys": "多語言問卷",
"per_month": "每月",
"per_year": "每年",
"plan_upgraded_successfully": "方案已成功升級",
"premium_support_with_slas": "具有 SLA 的頂級支援",
"priority_support": "優先支援",
@@ -1039,7 +1046,7 @@
"startup": "啟動版",
"startup_description": "免費方案中的所有功能以及其他功能。",
"switch_plan": "切換方案",
"switch_plan_confirmation_text": "您確定要切換至 '{'plan'}' 方案嗎?您將每月被收取 '{'price'}'。",
"switch_plan_confirmation_text": "您確定要切換到 {plan} 計劃嗎?您將被收取 {price} {period}。",
"team_access_roles": "團隊存取角色",
"technical_onboarding": "技術新手上路",
"unable_to_upgrade_plan": "無法升級方案",
@@ -1133,7 +1140,9 @@
"resend_invitation_email": "重新發送邀請電子郵件",
"share_invite_link": "分享邀請連結",
"share_this_link_to_let_your_organization_member_join_your_organization": "分享此連結以讓您的組織成員加入您的組織:",
"test_email_sent_successfully": "測試電子郵件已成功發送"
"test_email_sent_successfully": "測試電子郵件已成功發送",
"use_multi_language_surveys_with_a_higher_plan": "使用更高等級的方案使用多語言問卷",
"use_multi_language_surveys_with_a_higher_plan_description": "用不同語言調查您的用戶。"
},
"notifications": {
"auto_subscribe_to_new_surveys": "自動訂閱新問卷",
@@ -1177,7 +1186,7 @@
"remove_image": "移除圖片",
"save_the_following_backup_codes_in_a_safe_place": "將下列備份碼儲存在安全的地方。",
"scan_the_qr_code_below_with_your_authenticator_app": "使用您的驗證器應用程式掃描下方的 QR 碼。",
"security_description": "管理您的密碼和其他安全性設定。",
"security_description": "管理您的密碼和其他安全性設定,例如雙重驗證 (2FA)。",
"two_factor_authentication": "雙重驗證",
"two_factor_authentication_description": "在您的密碼被盜時,為您的帳戶新增額外的安全層。",
"two_factor_authentication_enabled_please_enter_the_six_digit_code_from_your_authenticator_app": "已啟用雙重驗證。請輸入您驗證器應用程式中的六位數程式碼。",
@@ -1748,9 +1757,6 @@
"how_to_create_a_panel_step_3_description": "在您的 Formbricks 問卷中設定隱藏欄位,以追蹤哪個參與者提供了哪個答案。",
"how_to_create_a_panel_step_4": "步驟 4啟動您的研究",
"how_to_create_a_panel_step_4_description": "設定完成後,您可以啟動您的研究。在幾個小時內,您就會收到第一個回應。",
"how_to_embed_a_survey_on_your_react_native_app": "如何在您的 React Native 應用程式中嵌入問卷",
"how_to_embed_a_survey_on_your_web_app": "如何在您的 Web 應用程式中嵌入問卷",
"identify_users_and_set_attributes": "識別使用者並設定屬性",
"impressions": "曝光數",
"impressions_tooltip": "問卷已檢視的次數。",
"includes_all": "包含全部",
@@ -1765,7 +1771,6 @@
"last_month": "上個月",
"last_quarter": "上一季",
"last_year": "去年",
"learn_how_to": "瞭解如何",
"link_to_public_results_copied": "已複製公開結果的連結",
"make_sure_the_survey_type_is_set_to": "請確保問卷類型設定為",
"mobile_app": "行動應用程式",
@@ -1776,11 +1781,14 @@
"publish_to_web": "發布至網站",
"publish_to_web_warning": "您即將將這些問卷結果發布到公共領域。",
"publish_to_web_warning_description": "您的問卷結果將會是公開的。任何組織外的人員都可以存取這些結果(如果他們有連結)。",
"quickstart_mobile_apps": "快速入門Mobile apps",
"quickstart_mobile_apps_description": "要開始使用行動應用程式中的調查,請按照 Quickstart 指南:",
"quickstart_web_apps": "快速入門Web apps",
"quickstart_web_apps_description": "請按照 Quickstart 指南開始:",
"results_are_public": "結果是公開的",
"send_preview": "發送預覽",
"send_to_panel": "發送到小組",
"setup_instructions": "設定說明",
"setup_instructions_for_react_native_apps": "React Native 應用程式的設定說明",
"setup_integrations": "設定整合",
"share_results": "分享結果",
"share_the_link": "分享連結",
@@ -1799,10 +1807,7 @@
"this_quarter": "本季",
"this_year": "今年",
"time_to_complete": "完成時間",
"to_connect_your_app_with_formbricks": "以將您的應用程式與 Formbricks 連線",
"to_connect_your_web_app_with_formbricks": "以將您的 Web 應用程式與 Formbricks 連線",
"to_connect_your_website_with_formbricks": "以將您的網站與 Formbricks 連線",
"to_run_highly_targeted_surveys": "以執行高度目標化的問卷。",
"ttc_tooltip": "完成問卷的平均時間。",
"unknown_question_type": "未知的問題類型",
"unpublish_from_web": "從網站取消發布",
@@ -1812,7 +1817,6 @@
"view_site": "檢視網站",
"waiting_for_response": "正在等待回應 \uD83E\uDDD8",
"web_app": "Web 應用程式",
"were_working_on_sdks_for_flutter_swift_and_kotlin": "我們正在開發適用於 Flutter、Swift 和 Kotlin 的 SDK。",
"what_is_a_panel": "什麼是小組?",
"what_is_a_panel_answer": "小組是一組根據年齡、職業、性別等特徵選取的參與者。",
"what_is_prolific": "什麼是 Prolific",
@@ -1902,6 +1906,7 @@
"preview_survey_questions": "預覽問卷問題。",
"question_preview": "問題預覽",
"response_already_received": "我們已收到此電子郵件地址的回應。",
"response_submitted": "與此問卷和聯絡人相關的回應已經存在",
"survey_already_answered_heading": "問卷已回答。",
"survey_already_answered_subheading": "您只能使用此連結一次。",
"survey_sent_to": "問卷已發送至 '{'email'}'",