Leitfäden

Senden Sie Unterzeichner zu einem lokalisierten Signing-Erlebnis mit einem URL-Parameter

„Dunkle Grafik, die eine lokalisierte mehrsprachige Signiererfahrung auf einem professionellen digitalen Dokument zeigt."

Wenn Sie Verträge an Unterzeichner in mehreren Ländern senden, ist dies der schnellste Weg zu einer lokalisierten Benutzererfahrung für jeden von ihnen. Hängen Sie einfach ?lang=fr an den Link eines französischen Unterzeichners an, ?lang=de an den Link eines deutschen Unterzeichners, und Firma.dev kümmert sich um den Rest. Jeder Bildschirm, den sie sehen, von Anweisungen und Schaltflächen bis hin zum rechtlichen Text, wird ab der ersten Seite in dieser Sprache geladen. Kein Konto auf ihrer Seite erforderlich, keine Einstellungen auf Ihrer Seite zu konfigurieren.

Wie der ?lang=-Parameter funktioniert

Der Parameter ?lang= kann an jeden Unterzeichnungslink von Firma.dev angehängt werden. Er zwingt das gesamte Unterzeichnungserlebnis in die angegebene Sprache und setzt sowohl die automatische Browser-Erkennung als auch alle Standardeinstellungen auf Arbeitsbereichsebene außer Kraft. Der Unterzeichner muss nichts tun, er folgt einfach dem Link und die Benutzeroberfläche ist bereits in der richtigen Sprache.

Die sieben unterstützten Sprachcodes sind:

Code

Sprache

de

Englisch

es

Spanisch

fr

Französisch

de

Deutsch

it

Italienisch

pt

Portugiesisch

el

Griechisch

Eine Standard-Unterzeichnungs-URL sieht wie folgt aus:

https://app.firma.dev/signing/{signing_request_user_id}
https://app.firma.dev/signing/{signing_request_user_id}
https://app.firma.dev/signing/{signing_request_user_id}

Mit einer Sprachüberschreibung:

https://app.firma.dev/signing/{signing_request_user_id}?lang=fr
https://app.firma.dev/signing/{signing_request_user_id}?lang=fr
https://app.firma.dev/signing/{signing_request_user_id}?lang=fr

Das ist die gesamte Änderung. Keine zusätzlichen API-Aufrufe, keine Vorlagenänderungen, keine Konfiguration pro Unterzeichner.

Eine Unterzeichnungsanfrage, mehrere lokalisierte Links

Das praktische Muster für mehrteilige oder internationale Dokumente: Erstellen Sie eine einzelne Unterzeichnungsanfrage, bei der die automatischen E-Mails von Firma.dev deaktiviert sind, rufen Sie die Unterzeichnungs-URLs für jeden Empfänger ab und hängen Sie dann für jeden den entsprechenden Parameter ?lang= an, bevor Sie sie über Ihr eigenes System senden.

Der folgende Code stammt aus dem White-Labeling-Leitfaden, wobei ?lang= gemäß dem Lokalisierungsleitfaden angehängt wurde:

// Create signing request with emails disabled
const response = await fetch(
  'https://api.firma.dev/functions/v1/signing-request-api/signing-requests',
  {
    method: 'POST',
    headers: {
      'Authorization': API_KEY,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      workspace_id: workspaceId,
      template_id: templateId,
      settings: {
        send_signing_email: false,
        send_finish_email: false
      },
      recipients: [
        { first_name: 'Jane', last_name: 'Smith', email: 'jane@example.com', designation: 'Signer', order: 1 }
      ]
    })
  }
)
const signingRequest = await response.json()

// Get signing URLs for each recipient
const usersResponse = await fetch(
  `https://api.firma.dev/functions/v1/signing-request-api/signing-requests/${signingRequest.id}/users`,
  {
    headers: { 'Authorization': API_KEY }
  }
)
const { results: users } = await usersResponse.json()

// Send emails through your own system with ?lang= appended
for (const user of users) {
  const signingUrl = `https://app.firma.dev/signing/${user.id}?lang=fr`
  await yourEmailService.send({
    to: user.email,
    subject: 'Please sign your document',
    body: `Click here to sign: ${signingUrl}`
  })
}
// Create signing request with emails disabled
const response = await fetch(
  'https://api.firma.dev/functions/v1/signing-request-api/signing-requests',
  {
    method: 'POST',
    headers: {
      'Authorization': API_KEY,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      workspace_id: workspaceId,
      template_id: templateId,
      settings: {
        send_signing_email: false,
        send_finish_email: false
      },
      recipients: [
        { first_name: 'Jane', last_name: 'Smith', email: 'jane@example.com', designation: 'Signer', order: 1 }
      ]
    })
  }
)
const signingRequest = await response.json()

// Get signing URLs for each recipient
const usersResponse = await fetch(
  `https://api.firma.dev/functions/v1/signing-request-api/signing-requests/${signingRequest.id}/users`,
  {
    headers: { 'Authorization': API_KEY }
  }
)
const { results: users } = await usersResponse.json()

// Send emails through your own system with ?lang= appended
for (const user of users) {
  const signingUrl = `https://app.firma.dev/signing/${user.id}?lang=fr`
  await yourEmailService.send({
    to: user.email,
    subject: 'Please sign your document',
    body: `Click here to sign: ${signingUrl}`
  })
}
// Create signing request with emails disabled
const response = await fetch(
  'https://api.firma.dev/functions/v1/signing-request-api/signing-requests',
  {
    method: 'POST',
    headers: {
      'Authorization': API_KEY,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      workspace_id: workspaceId,
      template_id: templateId,
      settings: {
        send_signing_email: false,
        send_finish_email: false
      },
      recipients: [
        { first_name: 'Jane', last_name: 'Smith', email: 'jane@example.com', designation: 'Signer', order: 1 }
      ]
    })
  }
)
const signingRequest = await response.json()

// Get signing URLs for each recipient
const usersResponse = await fetch(
  `https://api.firma.dev/functions/v1/signing-request-api/signing-requests/${signingRequest.id}/users`,
  {
    headers: { 'Authorization': API_KEY }
  }
)
const { results: users } = await usersResponse.json()

// Send emails through your own system with ?lang= appended
for (const user of users) {
  const signingUrl = `https://app.firma.dev/signing/${user.id}?lang=fr`
  await yourEmailService.send({
    to: user.email,
    subject: 'Please sign your document',
    body: `Click here to sign: ${signingUrl}`
  })
}

Das Dokument ist für alle gleich. Das Unterzeichnungserlebnis, das jede Person sieht, wird in ihrer Sprache dargestellt. Sie übernehmen den Linkaufbau, Firma.dev übernimmt das Rendern. Ersetzen Sie ?lang=fr durch den Sprachcode, der dem jeweiligen Empfänger entspricht.

Dieses Muster ist besonders nützlich, wenn die automatischen E-Mails von Firma.dev deaktiviert sind und Sie Unterzeichnungslinks über Ihr eigenes Benachrichtigungssystem verteilen. Sie steuern die Zustellung bereits, sodass das Hinzufügen des Parameters ?lang= eine triviale Ergänzung ist.

Automatischer Fallback ohne den Parameter

Wenn kein Parameter ?lang= vorhanden ist, liest Firma.dev die Browsersprachkonfiguration des Unterzeichners aus und gleicht sie mit der am nächsten liegenden unterstützten Sprache ab. Wenn ihr Browser auf Französisch eingestellt ist, sehen sie eine französische Benutzeroberfläche. Wenn ihre Sprache nicht unterstützt wird, wird standardmäßig Englisch verwendet.

Dieses Fallback funktioniert gut für direkte Links, bei denen Sie den Zustellungskontext nicht steuern. Aber für eingebettete Unterzeichnungen in Iframes oder jedes Szenario, in dem Sie URLs serverseitig erstellen, ist die explizite Übergabe von ?lang= der zuverlässigere Ansatz. Die Browserspracherkennung innerhalb eines Iframes kann unbeständig sein, je nachdem, wie die übergeordnete Anwendung konfiguriert ist.

Die Empfehlung in den Dokumenten ist unkompliziert: Verwenden Sie ?lang= in eingebetteten Kontexten und wenn Sie das Gebietsschema des Unterzeichners kennen, und überlassen Sie die Browser-Erkennung bei direkten Links, bei denen Sie dies nicht tun.

Das vollständige Bild der Lokalisierung

Der Parameter ?lang= ist ein Teil des Lokalisierungs-Stacks von Firma.dev. Für einen vollständig lokalisierten Unterzeichnungs-Workflow greifen die Teile wie folgt ineinander:

Die Sprache des Unterzeichnungserlebnisses wird über ?lang= im Link oder standardmäßig durch die Browser-Erkennung gesteuert. Dies deckt alles ab, was der Unterzeichner während des Unterzeichnungsvorgangs sieht.

Benachrichtigungs-E-Mails werden durch das Feld language in den Arbeitsbereichseinstellungen gesteuert. Stellen Sie den Arbeitsbereich auf Französisch ein, und alle automatisierten Unterzeichnungs-E-Mails werden auf Französisch versendet, ohne dass eine benutzerdefinierte Vorlage erforderlich ist.

Unterschriftsstile werden automatisch basierend auf dem Namen jedes Unterzeichners verarbeitet. Griechische, kyrillische, japanische und koreanische Namen erhalten Unterschriftsschriftarten, die für ihr Schriftsystem entwickelt wurden, ohne dass eine Konfiguration erforderlich ist.

Zusammen decken diese drei Ebenen das gesamte Erlebnis ab: die eingehenden E-Mails, den Unterzeichnungsvorgang selbst und das Aussehen der Unterschrift auf dem Dokument. Der Lokalisierungsleitfaden von Firma.dev deckt alle drei im Detail ab.

Holen Sie sich Ihren API-Schlüssel und beginnen Sie kostenlos mit der Entwicklung, keine Kreditkarte erforderlich.

  1. Überschrift

Hintergrundbild

Bereit, elektronischen Unterschriften zu Ihrer Anwendung hinzuzufügen?

Kostenlos starten. Keine Kreditkarte erforderlich. Zahlen Sie nur 0,029 € pro Umschlag, wenn Sie bereit sind, live zu gehen.

Hintergrundbild

Bereit, elektronischen Unterschriften zu Ihrer Anwendung hinzuzufügen?

Kostenlos starten. Keine Kreditkarte erforderlich. Zahlen Sie nur 0,029 € pro Umschlag, wenn Sie bereit sind, live zu gehen.

Hintergrundbild

Bereit, elektronischen Unterschriften zu Ihrer Anwendung hinzuzufügen?

Kostenlos starten. Keine Kreditkarte erforderlich. Zahlen Sie nur 0,029 € pro Umschlag, wenn Sie bereit sind, live zu gehen.