mirror of
https://github.com/formbricks/formbricks.git
synced 2026-04-20 02:30:18 -05:00
chore: update the plain connection
This commit is contained in:
@@ -2,12 +2,13 @@
|
||||
|
||||
import { ENCRYPTION_KEY } from "@/lib/constants";
|
||||
import { symmetricEncrypt } from "@/lib/crypto";
|
||||
import { createOrUpdateIntegration } from "@/lib/integration/service";
|
||||
import { createOrUpdateIntegration, getIntegrationByType } from "@/lib/integration/service";
|
||||
import { authenticatedActionClient } from "@/lib/utils/action-client";
|
||||
import { checkAuthorizationUpdated } from "@/lib/utils/action-client/action-client-middleware";
|
||||
import { getOrganizationIdFromEnvironmentId, getProjectIdFromEnvironmentId } from "@/lib/utils/helper";
|
||||
import { z } from "zod";
|
||||
import { ZId } from "@formbricks/types/common";
|
||||
import type { TIntegrationPlainConfigData } from "@formbricks/types/integration/plain";
|
||||
|
||||
const ZConnectPlainIntegration = z.object({
|
||||
environmentId: ZId,
|
||||
@@ -40,11 +41,17 @@ export const connectPlainIntegrationAction = authenticatedActionClient
|
||||
|
||||
const encryptedAccessToken = symmetricEncrypt(key, ENCRYPTION_KEY!);
|
||||
|
||||
const existingIntegration = await getIntegrationByType(environmentId, "plain");
|
||||
const plainData: TIntegrationPlainConfigData[] =
|
||||
existingIntegration?.type === "plain"
|
||||
? (existingIntegration.config.data as TIntegrationPlainConfigData[])
|
||||
: [];
|
||||
|
||||
const integration = await createOrUpdateIntegration(environmentId, {
|
||||
type: "plain",
|
||||
config: {
|
||||
key: encryptedAccessToken,
|
||||
data: [],
|
||||
data: plainData,
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ export const AddKeyModal = ({
|
||||
<Input
|
||||
id="keyLabel"
|
||||
name="keyLabel"
|
||||
placeholder={t("environments.integrations.plain.api_key_label_placeholder")}
|
||||
placeholder="plainApiKey_123"
|
||||
value={keyLabel}
|
||||
onChange={(e) => setKeyLabel(e.target.value)}
|
||||
className="w-full"
|
||||
|
||||
@@ -14,6 +14,7 @@ import toast from "react-hot-toast";
|
||||
import { TEnvironment } from "@formbricks/types/environment";
|
||||
import { TIntegrationPlain, TIntegrationPlainConfigData } from "@formbricks/types/integration/plain";
|
||||
import { TUserLocale } from "@formbricks/types/user";
|
||||
import { AddKeyModal } from "./AddKeyModal";
|
||||
|
||||
interface ManageIntegrationProps {
|
||||
environment: TEnvironment;
|
||||
@@ -24,7 +25,6 @@ interface ManageIntegrationProps {
|
||||
React.SetStateAction<(TIntegrationPlainConfigData & { index: number }) | null>
|
||||
>;
|
||||
locale: TUserLocale;
|
||||
handlePlainAuthorization: () => void;
|
||||
}
|
||||
|
||||
export const ManageIntegration = ({
|
||||
@@ -34,10 +34,10 @@ export const ManageIntegration = ({
|
||||
setIsConnected,
|
||||
setSelectedIntegration,
|
||||
locale,
|
||||
handlePlainAuthorization,
|
||||
}: ManageIntegrationProps) => {
|
||||
const { t } = useTranslate();
|
||||
const [isDeleteIntegrationModalOpen, setIsDeleteIntegrationModalOpen] = useState(false);
|
||||
const [isKeyModalOpen, setIsKeyModalOpen] = useState(false);
|
||||
const [isDeleting, setisDeleting] = useState(false);
|
||||
|
||||
let integrationArray: TIntegrationPlainConfigData[] = [];
|
||||
@@ -79,7 +79,7 @@ export const ManageIntegration = ({
|
||||
<TooltipProvider>
|
||||
<Tooltip>
|
||||
<TooltipTrigger asChild>
|
||||
<Button variant="outline" onClick={handlePlainAuthorization}>
|
||||
<Button variant="outline" onClick={() => setIsKeyModalOpen(true)}>
|
||||
<RefreshCcwIcon className="mr-2 h-4 w-4" />
|
||||
{t("environments.integrations.plain.update_connection")}
|
||||
</Button>
|
||||
@@ -139,6 +139,8 @@ export const ManageIntegration = ({
|
||||
{t("environments.integrations.delete_integration")}
|
||||
</Button>
|
||||
|
||||
<AddKeyModal environmentId={environment.id} open={isKeyModalOpen} setOpen={setIsKeyModalOpen} />
|
||||
|
||||
<DeleteDialog
|
||||
open={isDeleteIntegrationModalOpen}
|
||||
setOpen={setIsDeleteIntegrationModalOpen}
|
||||
|
||||
@@ -60,7 +60,6 @@ export const PlainWrapper = ({
|
||||
setIsConnected={setIsConnected}
|
||||
setSelectedIntegration={setSelectedIntegration}
|
||||
locale={locale}
|
||||
handlePlainAuthorization={handlePlainAuthorization}
|
||||
/>
|
||||
</>
|
||||
) : (
|
||||
|
||||
@@ -15,12 +15,11 @@ export const writeData = async (
|
||||
integrationConfig: TIntegrationPlainConfigData
|
||||
): Promise<Result<void, Error>> => {
|
||||
try {
|
||||
// Decrypt the API key
|
||||
const decryptedToken = symmetricDecrypt(config.key, ENCRYPTION_KEY!);
|
||||
const client = new PlainClient({
|
||||
apiKey: decryptedToken,
|
||||
});
|
||||
|
||||
console.log("decryptedToken", decryptedToken);
|
||||
const titleId = integrationConfig.mapping.find((m) => m.plainField.id === "threadTitle")?.question.id;
|
||||
|
||||
const componentTextId = integrationConfig.mapping.find((m) => m.plainField.id === "componentText")
|
||||
|
||||
@@ -481,13 +481,6 @@
|
||||
"notification_insight_displays": "Displays",
|
||||
"notification_insight_responses": "Antworten",
|
||||
"notification_insight_surveys": "Umfragen",
|
||||
"onboarding_invite_email_button_label": "Tritt {inviterName}s Organisation bei",
|
||||
"onboarding_invite_email_connect_formbricks": "Verbinde Formbricks in nur wenigen Minuten über ein HTML-Snippet oder via NPM mit deiner App oder Website.",
|
||||
"onboarding_invite_email_create_account": "Erstelle ein Konto, um {inviterName}s Organisation beizutreten.",
|
||||
"onboarding_invite_email_done": "Erledigt ✅",
|
||||
"onboarding_invite_email_get_started_in_minutes": "Dauert nur wenige Minuten",
|
||||
"onboarding_invite_email_heading": "Hey ",
|
||||
"onboarding_invite_email_subject": "{inviterName} braucht Hilfe bei Formbricks. Kannst Du ihm helfen?",
|
||||
"password_changed_email_heading": "Passwort geändert",
|
||||
"password_changed_email_text": "Dein Passwort wurde erfolgreich geändert.",
|
||||
"password_reset_notify_email_subject": "Dein Formbricks-Passwort wurde geändert",
|
||||
@@ -719,6 +712,7 @@
|
||||
"configure_plain_integration": "Umfrage verknüpfen, um Plain-Threads zu erstellen",
|
||||
"connect": "Link-Umfrage",
|
||||
"connect_with_plain": "Mit Plain verbinden",
|
||||
"connection_success": "Einfach verbunden",
|
||||
"enter_label_id": "Geben Sie die Label-ID aus Plain ein",
|
||||
"link_new_database": "Neue Umfrage verknüpfen",
|
||||
"map_formbricks_fields_to_plain": "Formbricks-Antworten auf Plain-Felder abbilden",
|
||||
@@ -726,7 +720,8 @@
|
||||
"plain_integration": "Plain Integration",
|
||||
"plain_integration_description": "Threads auf Plain mit Formbricks-Antworten erstellen",
|
||||
"select_a_survey_question": "Wähle eine Umfragefrage aus",
|
||||
"update_connection": "Erneut mit Plain verbinden"
|
||||
"update_connection": "Erneut mit Plain verbinden",
|
||||
"update_connection_tooltip": "Plain-Verbindung aktualisieren"
|
||||
},
|
||||
"please_select_a_survey_error": "Bitte wähle eine Umfrage aus",
|
||||
"select_at_least_one_question_error": "Bitte wähle mindestens eine Frage aus",
|
||||
@@ -1742,7 +1737,6 @@
|
||||
"single_use_link_description": "Erlaube nur eine Antwort pro Umfragelink.",
|
||||
"single_use_links": "Einmalige Links",
|
||||
"source_tracking": "Quellenverfolgung",
|
||||
"title": "Teilen Sie Ihre Umfrage, um Antworten zu sammeln",
|
||||
"url_encryption_description": "Nur deaktivieren, wenn Sie eine benutzerdefinierte Einmal-ID setzen müssen.",
|
||||
"url_encryption_label": "Verschlüsselung der URL für einmalige Nutzung ID"
|
||||
},
|
||||
@@ -1754,8 +1748,7 @@
|
||||
"code_no_code_triggers": "Code- und No-Code-Auslöser",
|
||||
"description": "Formbricks Umfragen können als Pop-up eingebettet werden, basierend auf der Benutzerinteraktion.",
|
||||
"nav_title": "Dynamisch (Pop-up)",
|
||||
"recontact_options": "Optionen zur erneuten Kontaktaufnahme",
|
||||
"title": "Nutzer im Ablauf abfangen, um kontextualisiertes Feedback zu sammeln"
|
||||
"recontact_options": "Optionen zur erneuten Kontaktaufnahme"
|
||||
},
|
||||
"embed_on_website": {
|
||||
"description": "Formbricks-Umfragen können als statisches Element eingebettet werden.",
|
||||
@@ -1763,8 +1756,7 @@
|
||||
"embed_in_app": "In App einbetten",
|
||||
"embed_mode": "Einbettungsmodus",
|
||||
"embed_mode_description": "Bette deine Umfrage mit einem minimalistischen Design ein, ohne Karten und Hintergrund.",
|
||||
"nav_title": "Auf Website einbetten",
|
||||
"title": "Binden Sie die Umfrage auf Ihrer Webseite ein"
|
||||
"nav_title": "Auf Website einbetten"
|
||||
},
|
||||
"personal_links": {
|
||||
"create_and_manage_segments": "Erstellen und verwalten Sie Ihre Segmente unter Kontakte > Segmente",
|
||||
@@ -1778,7 +1770,6 @@
|
||||
"nav_title": "Persönliche Links",
|
||||
"no_segments_available": "Keine Segmente verfügbar",
|
||||
"select_segment": "Segment auswählen",
|
||||
"title": "Maximieren Sie Erkenntnisse mit persönlichen Umfragelinks",
|
||||
"upgrade_prompt_description": "Erstellen Sie persönliche Links für ein Segment und verknüpfen Sie Umfrageantworten mit jedem Kontakt.",
|
||||
"upgrade_prompt_title": "Verwende persönliche Links mit einem höheren Plan",
|
||||
"work_with_segments": "Persönliche Links funktionieren mit Segmenten."
|
||||
@@ -1796,13 +1787,11 @@
|
||||
"formbricks_email_survey_preview": "Formbricks E-Mail-Umfrage Vorschau",
|
||||
"nav_title": "E-Mail-Einbettung",
|
||||
"send_preview": "Vorschau senden",
|
||||
"send_preview_email": "Vorschau-E-Mail senden",
|
||||
"title": "Binden Sie Ihre Umfrage in eine E-Mail ein"
|
||||
"send_preview_email": "Vorschau-E-Mail senden"
|
||||
},
|
||||
"share_view_title": "Teilen über",
|
||||
"social_media": {
|
||||
"description": "Erhalte Rückmeldungen von deinen Kontakten auf verschiedenen sozialen Medien.",
|
||||
"share_your_survey_on_social_media": "Teilen Sie Ihre Umfrage in sozialen Medien",
|
||||
"source_tracking_enabled": "Quellenverfolgung aktiviert",
|
||||
"source_tracking_enabled_alert_description": "Wenn Sie aus diesem Dialogfenster teilen, wird das soziale Netzwerk an den Umfragelink angehängt, sodass Sie wissen, welche Antworten über welches Netzwerk eingegangen sind.",
|
||||
"title": "Soziale Medien"
|
||||
@@ -1846,7 +1835,6 @@
|
||||
"last_quarter": "Letztes Quartal",
|
||||
"last_year": "Letztes Jahr",
|
||||
"link_to_public_results_copied": "Link zu öffentlichen Ergebnissen kopiert",
|
||||
"make_survey_accessible_via_qr_code": "Machen Sie Ihre Umfrage über einen QR-Code zugänglich",
|
||||
"mobile_app": "Mobile App",
|
||||
"no_responses_found": "Keine Antworten gefunden",
|
||||
"only_completed": "Nur vollständige Antworten",
|
||||
@@ -1864,7 +1852,6 @@
|
||||
"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:",
|
||||
"responses_collected_via_qr_code_are_anonymous": "Antworten, die per QR-Code gesammelt werden, sind anonym.",
|
||||
"results_are_public": "Ergebnisse sind öffentlich",
|
||||
"selected_responses_csv": "Ausgewählte Antworten (CSV)",
|
||||
"selected_responses_excel": "Ausgewählte Antworten (Excel)",
|
||||
|
||||
@@ -481,13 +481,6 @@
|
||||
"notification_insight_displays": "Displays",
|
||||
"notification_insight_responses": "Responses",
|
||||
"notification_insight_surveys": "Surveys",
|
||||
"onboarding_invite_email_button_label": "Join {inviterName}'s organization",
|
||||
"onboarding_invite_email_connect_formbricks": "Connect Formbricks to your app or website via HTML Snippet or NPM in just a few minutes.",
|
||||
"onboarding_invite_email_create_account": "Create an account to join {inviterName}'s organization.",
|
||||
"onboarding_invite_email_done": "Done ✅",
|
||||
"onboarding_invite_email_get_started_in_minutes": "Get Started in Minutes",
|
||||
"onboarding_invite_email_heading": "Hey ",
|
||||
"onboarding_invite_email_subject": "{inviterName} needs a hand setting up Formbricks. Can you help out?",
|
||||
"password_changed_email_heading": "Password changed",
|
||||
"password_changed_email_text": "Your password has been changed successfully.",
|
||||
"password_reset_notify_email_subject": "Your Formbricks password has been changed",
|
||||
@@ -719,6 +712,7 @@
|
||||
"configure_plain_integration": "Link survey to create Plain threads",
|
||||
"connect": "Link survey",
|
||||
"connect_with_plain": "Connect with Plain",
|
||||
"connection_success": "Plain connected successfully",
|
||||
"enter_label_id": "Enter label ID from Plain",
|
||||
"link_new_database": "Link new survey",
|
||||
"map_formbricks_fields_to_plain": "Map Formbricks responses to Plain fields",
|
||||
@@ -726,7 +720,8 @@
|
||||
"plain_integration": "Plain Integration",
|
||||
"plain_integration_description": "Create threads on Plain using Formbricks responses",
|
||||
"select_a_survey_question": "Select a survey question",
|
||||
"update_connection": "Reconnect Plain"
|
||||
"update_connection": "Reconnect Plain",
|
||||
"update_connection_tooltip": "Update Plain connection"
|
||||
},
|
||||
"please_select_a_survey_error": "Please select a survey",
|
||||
"select_at_least_one_question_error": "Please select at least one question",
|
||||
@@ -1742,7 +1737,6 @@
|
||||
"single_use_link_description": "Allow only one response per survey link.",
|
||||
"single_use_links": "Single-use links",
|
||||
"source_tracking": "Source tracking",
|
||||
"title": "Share your survey to gather responses",
|
||||
"url_encryption_description": "Only disable if you need to set a custom single-use ID.",
|
||||
"url_encryption_label": "URL encryption of single-use ID"
|
||||
},
|
||||
@@ -1754,8 +1748,7 @@
|
||||
"code_no_code_triggers": "Code and no code triggers",
|
||||
"description": "Formbricks surveys can be embedded as a pop up, based on user interaction.",
|
||||
"nav_title": "Dynamic (Pop-up)",
|
||||
"recontact_options": "Recontact options",
|
||||
"title": "Intercept users in their flow to gather contextualized feedback"
|
||||
"recontact_options": "Recontact options"
|
||||
},
|
||||
"embed_on_website": {
|
||||
"description": "Formbricks surveys can be embedded as a static element.",
|
||||
@@ -1763,8 +1756,7 @@
|
||||
"embed_in_app": "Embed in app",
|
||||
"embed_mode": "Embed Mode",
|
||||
"embed_mode_description": "Embed your survey with a minimalist design, discarding padding and background.",
|
||||
"nav_title": "Website embed",
|
||||
"title": "Embed the survey in your webpage"
|
||||
"nav_title": "Website embed"
|
||||
},
|
||||
"personal_links": {
|
||||
"create_and_manage_segments": "Create and manage your Segments under Contacts > Segments",
|
||||
@@ -1778,7 +1770,6 @@
|
||||
"nav_title": "Personal links",
|
||||
"no_segments_available": "No segments available",
|
||||
"select_segment": "Select segment",
|
||||
"title": "Maximize insights with personal survey links",
|
||||
"upgrade_prompt_description": "Generate personal links for a segment and link survey responses to each contact.",
|
||||
"upgrade_prompt_title": "Use personal links with a higher plan",
|
||||
"work_with_segments": "Personal links work with segments."
|
||||
@@ -1796,13 +1787,11 @@
|
||||
"formbricks_email_survey_preview": "Formbricks Email Survey Preview",
|
||||
"nav_title": "Email embed",
|
||||
"send_preview": "Send preview",
|
||||
"send_preview_email": "Send preview email",
|
||||
"title": "Embed your survey in an email"
|
||||
"send_preview_email": "Send preview email"
|
||||
},
|
||||
"share_view_title": "Share via",
|
||||
"social_media": {
|
||||
"description": "Get responses from your contacts on various social media networks.",
|
||||
"share_your_survey_on_social_media": "Share your survey on social media",
|
||||
"source_tracking_enabled": "Source tracking enabled",
|
||||
"source_tracking_enabled_alert_description": "When sharing from this dialog, the social media network will be appended to the survey link so you know which responses came via each network.",
|
||||
"title": "Social media"
|
||||
@@ -1846,7 +1835,6 @@
|
||||
"last_quarter": "Last quarter",
|
||||
"last_year": "Last year",
|
||||
"link_to_public_results_copied": "Link to public results copied",
|
||||
"make_survey_accessible_via_qr_code": "Make your survey accessible via QR Code",
|
||||
"mobile_app": "Mobile app",
|
||||
"no_responses_found": "No responses found",
|
||||
"only_completed": "Only completed",
|
||||
@@ -1864,7 +1852,6 @@
|
||||
"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:",
|
||||
"responses_collected_via_qr_code_are_anonymous": "Responses collected via QR code are anonymous.",
|
||||
"results_are_public": "Results are public",
|
||||
"selected_responses_csv": "Selected responses (CSV)",
|
||||
"selected_responses_excel": "Selected responses (Excel)",
|
||||
|
||||
@@ -481,13 +481,6 @@
|
||||
"notification_insight_displays": "Affichages",
|
||||
"notification_insight_responses": "Réponses",
|
||||
"notification_insight_surveys": "Enquêtes",
|
||||
"onboarding_invite_email_button_label": "Rejoins l'organisation de {inviterName}",
|
||||
"onboarding_invite_email_connect_formbricks": "Connectez Formbricks à votre application ou site web via un extrait HTML ou NPM en quelques minutes seulement.",
|
||||
"onboarding_invite_email_create_account": "Créez un compte pour rejoindre l'organisation de {inviterName}.",
|
||||
"onboarding_invite_email_done": "Fait ✅",
|
||||
"onboarding_invite_email_get_started_in_minutes": "Commencez en quelques minutes",
|
||||
"onboarding_invite_email_heading": "Salut ",
|
||||
"onboarding_invite_email_subject": "{inviterName} a besoin d'aide pour configurer Formbricks. Peux-tu l'aider ?",
|
||||
"password_changed_email_heading": "Mot de passe changé",
|
||||
"password_changed_email_text": "Votre mot de passe a été changé avec succès.",
|
||||
"password_reset_notify_email_subject": "Ton mot de passe Formbricks a été changé",
|
||||
@@ -719,6 +712,7 @@
|
||||
"configure_plain_integration": "Lier l'enquête pour créer des fils Plain",
|
||||
"connect": "Lier enquête",
|
||||
"connect_with_plain": "Se connecter avec Plain",
|
||||
"connection_success": "Connexion simple réussie",
|
||||
"enter_label_id": "Saisissez l'ID de l'étiquette de Plain",
|
||||
"link_new_database": "Lier nouvelle enquête",
|
||||
"map_formbricks_fields_to_plain": "Mapper les réponses de Formbricks aux champs Plain",
|
||||
@@ -726,7 +720,8 @@
|
||||
"plain_integration": "Intégration Plain",
|
||||
"plain_integration_description": "Créer des fils sur Plain en utilisant les réponses de Formbricks",
|
||||
"select_a_survey_question": "Sélectionnez une question d'enquête",
|
||||
"update_connection": "Reconnecter Plain"
|
||||
"update_connection": "Reconnecter Plain",
|
||||
"update_connection_tooltip": "Mettre à jour la connexion Plain"
|
||||
},
|
||||
"please_select_a_survey_error": "Veuillez sélectionner une enquête.",
|
||||
"select_at_least_one_question_error": "Veuillez sélectionner au moins une question.",
|
||||
@@ -1742,7 +1737,6 @@
|
||||
"single_use_link_description": "Autoriser uniquement une réponse par lien d'enquête",
|
||||
"single_use_links": "Liens à usage unique",
|
||||
"source_tracking": "Suivi des sources",
|
||||
"title": "Partagez votre enquête pour recueillir des réponses",
|
||||
"url_encryption_description": "Désactiver seulement si vous devez définir un identifiant unique personnalisé",
|
||||
"url_encryption_label": "Cryptage de l'identifiant à usage unique dans l'URL"
|
||||
},
|
||||
@@ -1754,8 +1748,7 @@
|
||||
"code_no_code_triggers": "Déclencheurs avec et sans code",
|
||||
"description": "Les enquêtes Formbricks peuvent être intégrées sous forme de pop-up, en fonction de l'interaction de l'utilisateur.",
|
||||
"nav_title": "Dynamique (Pop-up)",
|
||||
"recontact_options": "Options de recontact",
|
||||
"title": "Interceptez les utilisateurs dans leur flux pour recueillir des retours contextualisés"
|
||||
"recontact_options": "Options de recontact"
|
||||
},
|
||||
"embed_on_website": {
|
||||
"description": "Les enquêtes Formbricks peuvent être intégrées comme élément statique.",
|
||||
@@ -1763,8 +1756,7 @@
|
||||
"embed_in_app": "Intégrer dans l'application",
|
||||
"embed_mode": "Mode d'intégration",
|
||||
"embed_mode_description": "Intégrez votre enquête avec un design minimaliste, en supprimant les marges et l'arrière-plan.",
|
||||
"nav_title": "Incorporer sur le site web",
|
||||
"title": "Intégrez le sondage sur votre page web"
|
||||
"nav_title": "Incorporer sur le site web"
|
||||
},
|
||||
"personal_links": {
|
||||
"create_and_manage_segments": "Créez et gérez vos Segments sous Contacts > Segments",
|
||||
@@ -1778,7 +1770,6 @@
|
||||
"nav_title": "Liens personnels",
|
||||
"no_segments_available": "Aucun segment disponible",
|
||||
"select_segment": "Sélectionner le segment",
|
||||
"title": "Maximisez les insights avec des liens d'enquête personnels",
|
||||
"upgrade_prompt_description": "Générez des liens personnels pour un segment et associez les réponses du sondage à chaque contact.",
|
||||
"upgrade_prompt_title": "Utilisez des liens personnels avec un plan supérieur",
|
||||
"work_with_segments": "Les liens personnels fonctionnent avec les segments."
|
||||
@@ -1796,13 +1787,11 @@
|
||||
"formbricks_email_survey_preview": "Aperçu de l'enquête par e-mail Formbricks",
|
||||
"nav_title": "Email intégré",
|
||||
"send_preview": "Envoyer un aperçu",
|
||||
"send_preview_email": "Envoyer un e-mail d'aperçu",
|
||||
"title": "Intégrez votre sondage dans un e-mail"
|
||||
"send_preview_email": "Envoyer un e-mail d'aperçu"
|
||||
},
|
||||
"share_view_title": "Partager par",
|
||||
"social_media": {
|
||||
"description": "Obtenez des réponses de vos contacts sur divers réseaux sociaux.",
|
||||
"share_your_survey_on_social_media": "Partagez votre sondage sur les réseaux sociaux",
|
||||
"source_tracking_enabled": "Suivi des sources activé",
|
||||
"source_tracking_enabled_alert_description": "En partageant depuis cette boîte de dialogue, le réseau social sera ajouté au lien du sondage afin que vous sachiez quelles réponses proviennent de chaque réseau.",
|
||||
"title": "Médias sociaux"
|
||||
@@ -1846,7 +1835,6 @@
|
||||
"last_quarter": "dernier trimestre",
|
||||
"last_year": "l'année dernière",
|
||||
"link_to_public_results_copied": "Lien vers les résultats publics copié",
|
||||
"make_survey_accessible_via_qr_code": "Rendez votre sondage accessible via QR Code",
|
||||
"mobile_app": "Application mobile",
|
||||
"no_responses_found": "Aucune réponse trouvée",
|
||||
"only_completed": "Uniquement terminé",
|
||||
@@ -1864,7 +1852,6 @@
|
||||
"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 :",
|
||||
"responses_collected_via_qr_code_are_anonymous": "Les réponses collectées via le code QR sont anonymes.",
|
||||
"results_are_public": "Les résultats sont publics.",
|
||||
"selected_responses_csv": "Réponses sélectionnées (CSV)",
|
||||
"selected_responses_excel": "Réponses sélectionnées (Excel)",
|
||||
|
||||
@@ -481,13 +481,6 @@
|
||||
"notification_insight_displays": "telas",
|
||||
"notification_insight_responses": "Respostas",
|
||||
"notification_insight_surveys": "pesquisas",
|
||||
"onboarding_invite_email_button_label": "Entre na organização de {inviterName}",
|
||||
"onboarding_invite_email_connect_formbricks": "Conecte o Formbricks ao seu app ou site via HTML Snippet ou NPM em apenas alguns minutos.",
|
||||
"onboarding_invite_email_create_account": "Crie uma conta para entrar na organização de {inviterName}.",
|
||||
"onboarding_invite_email_done": "Feito ✅",
|
||||
"onboarding_invite_email_get_started_in_minutes": "Comece em Minutos",
|
||||
"onboarding_invite_email_heading": "Oi ",
|
||||
"onboarding_invite_email_subject": "{inviterName} precisa de ajuda para configurar o Formbricks. Você pode ajudar?",
|
||||
"password_changed_email_heading": "Senha alterada",
|
||||
"password_changed_email_text": "Sua senha foi alterada com sucesso.",
|
||||
"password_reset_notify_email_subject": "Sua senha Formbricks foi alterada",
|
||||
@@ -719,6 +712,7 @@
|
||||
"configure_plain_integration": "Vincule a pesquisa para criar tópicos Plain",
|
||||
"connect": "Pesquisa de Link",
|
||||
"connect_with_plain": "Conectar com o Plain",
|
||||
"connection_success": "Conexão realizada com sucesso",
|
||||
"enter_label_id": "Insira o ID da etiqueta do Plain",
|
||||
"link_new_database": "Link de nova pesquisa",
|
||||
"map_formbricks_fields_to_plain": "Mapear respostas do Formbricks para campos Plain",
|
||||
@@ -726,7 +720,8 @@
|
||||
"plain_integration": "Integração com o Plain",
|
||||
"plain_integration_description": "Criar threads no Plain usando respostas do Formbricks",
|
||||
"select_a_survey_question": "Escolha uma pergunta da pesquisa",
|
||||
"update_connection": "Reconectar Plain"
|
||||
"update_connection": "Reconectar Plain",
|
||||
"update_connection_tooltip": "Atualizar conexão Plain"
|
||||
},
|
||||
"please_select_a_survey_error": "Por favor, escolha uma pesquisa",
|
||||
"select_at_least_one_question_error": "Por favor, selecione pelo menos uma pergunta",
|
||||
@@ -1742,7 +1737,6 @@
|
||||
"single_use_link_description": "Permitir apenas uma resposta por link da pesquisa.",
|
||||
"single_use_links": "Links de uso único",
|
||||
"source_tracking": "rastreamento de origem",
|
||||
"title": "Compartilhe sua pesquisa para coletar respostas",
|
||||
"url_encryption_description": "Desative apenas se precisar definir um ID de uso único personalizado",
|
||||
"url_encryption_label": "Criptografia de URL de ID de uso único"
|
||||
},
|
||||
@@ -1754,8 +1748,7 @@
|
||||
"code_no_code_triggers": "Gatilhos de código e sem código",
|
||||
"description": "\"As pesquisas do Formbricks podem ser integradas como um pop-up, baseado na interação do usuário.\"",
|
||||
"nav_title": "Dinâmico (Pop-up)",
|
||||
"recontact_options": "Opções de Recontato",
|
||||
"title": "Intercepte os usuários em seu fluxo para coletar feedback contextualizado"
|
||||
"recontact_options": "Opções de Recontato"
|
||||
},
|
||||
"embed_on_website": {
|
||||
"description": "Os formulários Formbricks podem ser incorporados como um elemento estático.",
|
||||
@@ -1763,8 +1756,7 @@
|
||||
"embed_in_app": "Integrar no app",
|
||||
"embed_mode": "Modo Embutido",
|
||||
"embed_mode_description": "Incorpore sua pesquisa com um design minimalista, sem preenchimento e fundo.",
|
||||
"nav_title": "Incorporar no site",
|
||||
"title": "Incorporar a pesquisa na sua página da web"
|
||||
"nav_title": "Incorporar no site"
|
||||
},
|
||||
"personal_links": {
|
||||
"create_and_manage_segments": "Crie e gerencie seus Segmentos em Contatos > Segmentos",
|
||||
@@ -1778,7 +1770,6 @@
|
||||
"nav_title": "Links pessoais",
|
||||
"no_segments_available": "Nenhum segmento disponível",
|
||||
"select_segment": "Selecionar segmento",
|
||||
"title": "Maximize insights com links de pesquisa personalizados",
|
||||
"upgrade_prompt_description": "Gerar links pessoais para um segmento e vincular respostas de pesquisa a cada contato.",
|
||||
"upgrade_prompt_title": "Use links pessoais com um plano superior",
|
||||
"work_with_segments": "Links pessoais funcionam com segmentos."
|
||||
@@ -1796,13 +1787,11 @@
|
||||
"formbricks_email_survey_preview": "Prévia da Pesquisa por E-mail do Formbricks",
|
||||
"nav_title": "Incorporação de Email",
|
||||
"send_preview": "Enviar prévia",
|
||||
"send_preview_email": "Enviar prévia de e-mail",
|
||||
"title": "Incorpore sua pesquisa em um e-mail"
|
||||
"send_preview_email": "Enviar prévia de e-mail"
|
||||
},
|
||||
"share_view_title": "Compartilhar via",
|
||||
"social_media": {
|
||||
"description": "Obtenha respostas de seus contatos em várias redes sociais.",
|
||||
"share_your_survey_on_social_media": "Compartilhe sua pesquisa nas redes sociais",
|
||||
"source_tracking_enabled": "rastreamento de origem ativado",
|
||||
"source_tracking_enabled_alert_description": "Ao compartilhar a partir deste diálogo, a rede social será adicionada ao link da pesquisa para que você saiba de qual rede vieram as respostas.",
|
||||
"title": "Mídia Social"
|
||||
@@ -1846,7 +1835,6 @@
|
||||
"last_quarter": "Último trimestre",
|
||||
"last_year": "Último ano",
|
||||
"link_to_public_results_copied": "Link pros resultados públicos copiado",
|
||||
"make_survey_accessible_via_qr_code": "Deixe sua pesquisa acessível via Código QR",
|
||||
"mobile_app": "app de celular",
|
||||
"no_responses_found": "Nenhuma resposta encontrada",
|
||||
"only_completed": "Somente concluído",
|
||||
@@ -1864,7 +1852,6 @@
|
||||
"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:",
|
||||
"responses_collected_via_qr_code_are_anonymous": "Respostas coletadas via código QR são anônimas.",
|
||||
"results_are_public": "Os resultados são públicos",
|
||||
"selected_responses_csv": "Respostas selecionadas (CSV)",
|
||||
"selected_responses_excel": "Respostas selecionadas (Excel)",
|
||||
|
||||
@@ -481,13 +481,6 @@
|
||||
"notification_insight_displays": "Ecrãs",
|
||||
"notification_insight_responses": "Respostas",
|
||||
"notification_insight_surveys": "Inquéritos",
|
||||
"onboarding_invite_email_button_label": "Junte-se à organização de {inviterName}",
|
||||
"onboarding_invite_email_connect_formbricks": "Conecte o Formbricks à sua aplicação ou website através de um Snippet HTML ou NPM em apenas alguns minutos.",
|
||||
"onboarding_invite_email_create_account": "Crie uma conta para se juntar à organização de {inviterName}.",
|
||||
"onboarding_invite_email_done": "Concluído ✅",
|
||||
"onboarding_invite_email_get_started_in_minutes": "Começar em Minutos",
|
||||
"onboarding_invite_email_heading": "Olá ",
|
||||
"onboarding_invite_email_subject": "{inviterName} precisa de ajuda para configurar o Formbricks. Podes ajudar?",
|
||||
"password_changed_email_heading": "Palavra-passe alterada",
|
||||
"password_changed_email_text": "A sua palavra-passe foi alterada com sucesso.",
|
||||
"password_reset_notify_email_subject": "A sua palavra-passe do Formbricks foi alterada",
|
||||
@@ -719,6 +712,7 @@
|
||||
"configure_plain_integration": "Associar inquérito para criar tópicos Plain",
|
||||
"connect": "Ligar inquérito",
|
||||
"connect_with_plain": "Ligar ao Plain",
|
||||
"connection_success": "Ligação simples realizada com sucesso",
|
||||
"enter_label_id": "Insira o ID do rótulo da Plain",
|
||||
"link_new_database": "Ligar novo inquérito",
|
||||
"map_formbricks_fields_to_plain": "Mapear respostas do Formbricks para campos Plain",
|
||||
@@ -726,7 +720,8 @@
|
||||
"plain_integration": "Integração com Plain",
|
||||
"plain_integration_description": "Criar tópicos no Plain usando respostas do Formbricks",
|
||||
"select_a_survey_question": "Selecione uma pergunta do inquérito",
|
||||
"update_connection": "Reconectar Plain"
|
||||
"update_connection": "Reconectar Plain",
|
||||
"update_connection_tooltip": "Atualizar a ligação Plain"
|
||||
},
|
||||
"please_select_a_survey_error": "Por favor, selecione um inquérito",
|
||||
"select_at_least_one_question_error": "Por favor, selecione pelo menos uma pergunta",
|
||||
@@ -1742,7 +1737,6 @@
|
||||
"single_use_link_description": "Permitir apenas uma resposta por link de inquérito.",
|
||||
"single_use_links": "Links de uso único",
|
||||
"source_tracking": "Rastreamento de origem",
|
||||
"title": "Partilhe o seu inquérito para recolher respostas",
|
||||
"url_encryption_description": "Desative apenas se precisar definir um ID de uso único personalizado.",
|
||||
"url_encryption_label": "Encriptação do URL de ID de uso único"
|
||||
},
|
||||
@@ -1754,8 +1748,7 @@
|
||||
"code_no_code_triggers": "Gatilhos com código e sem código",
|
||||
"description": "Os inquéritos Formbricks podem ser incorporados como uma janela pop-up, com base na interação do utilizador.",
|
||||
"nav_title": "Dinâmico (Pop-up)",
|
||||
"recontact_options": "Opções de Recontacto",
|
||||
"title": "Intercepte utilizadores no seu fluxo para recolher feedback contextualizado"
|
||||
"recontact_options": "Opções de Recontacto"
|
||||
},
|
||||
"embed_on_website": {
|
||||
"description": "Os inquéritos Formbricks podem ser incorporados como um elemento estático.",
|
||||
@@ -1763,8 +1756,7 @@
|
||||
"embed_in_app": "Incorporar na aplicação",
|
||||
"embed_mode": "Modo de Incorporação",
|
||||
"embed_mode_description": "Incorpore o seu inquérito com um design minimalista, descartando o preenchimento e o fundo.",
|
||||
"nav_title": "Incorporar no site",
|
||||
"title": "Incorporar o questionário na sua página web"
|
||||
"nav_title": "Incorporar no site"
|
||||
},
|
||||
"personal_links": {
|
||||
"create_and_manage_segments": "Crie e gere os seus Segmentos em Contactos > Segmentos",
|
||||
@@ -1778,7 +1770,6 @@
|
||||
"nav_title": "Links pessoais",
|
||||
"no_segments_available": "Sem segmentos disponíveis",
|
||||
"select_segment": "Selecionar segmento",
|
||||
"title": "Maximize os insights com links pessoais de inquérito",
|
||||
"upgrade_prompt_description": "Gerar links pessoais para um segmento e associar as respostas do inquérito a cada contacto.",
|
||||
"upgrade_prompt_title": "Utilize links pessoais com um plano superior",
|
||||
"work_with_segments": "Os links pessoais funcionam com segmentos."
|
||||
@@ -1796,13 +1787,11 @@
|
||||
"formbricks_email_survey_preview": "Pré-visualização da Pesquisa de E-mail do Formbricks",
|
||||
"nav_title": "Incorporação de Email",
|
||||
"send_preview": "Enviar pré-visualização",
|
||||
"send_preview_email": "Enviar pré-visualização de email",
|
||||
"title": "Incorporar o seu inquérito num email"
|
||||
"send_preview_email": "Enviar pré-visualização de email"
|
||||
},
|
||||
"share_view_title": "Partilhar via",
|
||||
"social_media": {
|
||||
"description": "Obtenha respostas dos seus contactos em várias redes sociais.",
|
||||
"share_your_survey_on_social_media": "Partilhe o seu inquérito nas redes sociais",
|
||||
"source_tracking_enabled": "Rastreamento de origem ativado",
|
||||
"source_tracking_enabled_alert_description": "Ao partilhar a partir deste diálogo, a rede social será anexada ao link do inquérito para que saiba de que rede vieram as respostas.",
|
||||
"title": "Redes Sociais"
|
||||
@@ -1846,7 +1835,6 @@
|
||||
"last_quarter": "Último trimestre",
|
||||
"last_year": "Ano passado",
|
||||
"link_to_public_results_copied": "Link para resultados públicos copiado",
|
||||
"make_survey_accessible_via_qr_code": "Torne o seu inquérito acessível através do Código QR",
|
||||
"mobile_app": "Aplicação móvel",
|
||||
"no_responses_found": "Nenhuma resposta encontrada",
|
||||
"only_completed": "Apenas concluído",
|
||||
@@ -1864,7 +1852,6 @@
|
||||
"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:",
|
||||
"responses_collected_via_qr_code_are_anonymous": "Respostas recolhidas através de código QR são anónimas.",
|
||||
"results_are_public": "Os resultados são públicos",
|
||||
"selected_responses_csv": "Respostas selecionadas (CSV)",
|
||||
"selected_responses_excel": "Respostas selecionadas (Excel)",
|
||||
|
||||
@@ -481,13 +481,6 @@
|
||||
"notification_insight_displays": "顯示次數",
|
||||
"notification_insight_responses": "回應數",
|
||||
"notification_insight_surveys": "問卷數",
|
||||
"onboarding_invite_email_button_label": "加入 {inviterName} 的組織",
|
||||
"onboarding_invite_email_connect_formbricks": "在幾分鐘內透過 HTML 片段或 NPM 將 Formbricks 連接到您的應用程式或網站。",
|
||||
"onboarding_invite_email_create_account": "建立帳戶以加入 '{'inviterName'}' 的組織。",
|
||||
"onboarding_invite_email_done": "完成 ✅",
|
||||
"onboarding_invite_email_get_started_in_minutes": "在幾分鐘內開始使用",
|
||||
"onboarding_invite_email_heading": "嗨 ",
|
||||
"onboarding_invite_email_subject": "{inviterName} 需要幫忙設置 Formbricks。你能幫忙嗎?",
|
||||
"password_changed_email_heading": "密碼已變更",
|
||||
"password_changed_email_text": "您的密碼已成功變更。",
|
||||
"password_reset_notify_email_subject": "您的 Formbricks 密碼已變更",
|
||||
@@ -719,6 +712,7 @@
|
||||
"configure_plain_integration": "連結 調查 來 建立 Plain 線程",
|
||||
"connect": "連結問卷",
|
||||
"connect_with_plain": "連線 Plain",
|
||||
"connection_success": "純連接成功",
|
||||
"enter_label_id": "輸入 Plain 的標籤 ID",
|
||||
"link_new_database": "連結新問卷",
|
||||
"map_formbricks_fields_to_plain": "將 Formbricks 回應 映射到 Plain 欄位",
|
||||
@@ -726,7 +720,8 @@
|
||||
"plain_integration": "Plain 整合",
|
||||
"plain_integration_description": "使用 Formbricks 回應在 Plain 上建立 threads",
|
||||
"select_a_survey_question": "選取問卷問題",
|
||||
"update_connection": "重新連線 Plain"
|
||||
"update_connection": "重新連線 Plain",
|
||||
"update_connection_tooltip": "更新 Plain 連接"
|
||||
},
|
||||
"please_select_a_survey_error": "請選取問卷",
|
||||
"select_at_least_one_question_error": "請選取至少一個問題",
|
||||
@@ -1742,7 +1737,6 @@
|
||||
"single_use_link_description": "只允許 1 個回應每個問卷連結。",
|
||||
"single_use_links": "單次使用連結",
|
||||
"source_tracking": "來源追蹤",
|
||||
"title": "分享 您 的 調查來 收集 回應",
|
||||
"url_encryption_description": "僅在需要設定自訂一次性 ID 時停用",
|
||||
"url_encryption_label": "單次使用 ID 的 URL 加密"
|
||||
},
|
||||
@@ -1754,8 +1748,7 @@
|
||||
"code_no_code_triggers": "程式碼 及 無程式碼 觸發器",
|
||||
"description": "Formbricks 調查 可以 嵌入 為 彈出 式 樣 式 , 根據 使用者 互動 。",
|
||||
"nav_title": "動態(彈窗)",
|
||||
"recontact_options": "重新聯絡選項",
|
||||
"title": "攔截使用者於其流程中以收集具上下文的意見反饋"
|
||||
"recontact_options": "重新聯絡選項"
|
||||
},
|
||||
"embed_on_website": {
|
||||
"description": "Formbricks 調查可以 作為 靜態 元素 嵌入。",
|
||||
@@ -1763,8 +1756,7 @@
|
||||
"embed_in_app": "嵌入應用程式",
|
||||
"embed_mode": "嵌入模式",
|
||||
"embed_mode_description": "以簡約設計嵌入您的問卷,捨棄邊距和背景。",
|
||||
"nav_title": "嵌入網站",
|
||||
"title": "嵌入 調查 在 您 的 網頁"
|
||||
"nav_title": "嵌入網站"
|
||||
},
|
||||
"personal_links": {
|
||||
"create_and_manage_segments": "在 聯絡人 > 分段 中建立和管理您的分段",
|
||||
@@ -1778,7 +1770,6 @@
|
||||
"nav_title": "個人 連結",
|
||||
"no_segments_available": "沒有可用的區段",
|
||||
"select_segment": "選擇 區隔",
|
||||
"title": "透過個人化調查連結最大化洞察",
|
||||
"upgrade_prompt_description": "為一個群組生成個人連結,並將調查回應連結到每個聯絡人。",
|
||||
"upgrade_prompt_title": "使用 個人 連結 與 更高 的 計劃",
|
||||
"work_with_segments": "個人 連結 可 與 分段 一起 使用"
|
||||
@@ -1796,13 +1787,11 @@
|
||||
"formbricks_email_survey_preview": "Formbricks 電子郵件問卷預覽",
|
||||
"nav_title": "電子郵件嵌入",
|
||||
"send_preview": "發送預覽",
|
||||
"send_preview_email": "發送預覽電子郵件",
|
||||
"title": "嵌入 你的 調查 在 電子郵件 中"
|
||||
"send_preview_email": "發送預覽電子郵件"
|
||||
},
|
||||
"share_view_title": "透過 分享",
|
||||
"social_media": {
|
||||
"description": "從 您 的 聯絡人 在 各 種 社交 媒體 網絡 上 獲得 回應。",
|
||||
"share_your_survey_on_social_media": "分享 您 的 問卷 在 社交媒體 上",
|
||||
"source_tracking_enabled": "來源追蹤已啟用",
|
||||
"source_tracking_enabled_alert_description": "從 此 對 話 框 共 享 時,社 交 媒 體 網 絡 會 被 附 加 到 調 查鏈 接 下,讓 您 知 道 各 網 絡 的 回 應 來 源。",
|
||||
"title": "社群媒體"
|
||||
@@ -1846,7 +1835,6 @@
|
||||
"last_quarter": "上一季",
|
||||
"last_year": "去年",
|
||||
"link_to_public_results_copied": "已複製公開結果的連結",
|
||||
"make_survey_accessible_via_qr_code": "透過 QR Code 使您的調查問卷可被存取",
|
||||
"mobile_app": "行動應用程式",
|
||||
"no_responses_found": "找不到回應",
|
||||
"only_completed": "僅已完成",
|
||||
@@ -1864,7 +1852,6 @@
|
||||
"quickstart_mobile_apps_description": "要開始使用行動應用程式中的調查,請按照 Quickstart 指南:",
|
||||
"quickstart_web_apps": "快速入門:Web apps",
|
||||
"quickstart_web_apps_description": "請按照 Quickstart 指南開始:",
|
||||
"responses_collected_via_qr_code_are_anonymous": "透過 QR code 收集的回應都是匿名的。",
|
||||
"results_are_public": "結果是公開的",
|
||||
"selected_responses_csv": "選擇的回應 (CSV)",
|
||||
"selected_responses_excel": "選擇的回應 (Excel)",
|
||||
|
||||
Reference in New Issue
Block a user