Overview
The SeggWat feedback widget supports multiple languages to provide a localized experience for your users. Language detection happens automatically based on the user's browser settings, or you can specify a language explicitly.
Supported Languages
🇬🇧 English
Code: en (default)
🇩🇪 German
Code: de
🇸🇪 Swedish
Code: sv
🇫🇷 French
Code: fr
🇩🇰 Danish
Code: da
Usage
Automatic Detection
By default, the widget automatically detects the user's browser language:
<script src="https://seggwat.com/static/widgets/v1/seggwat-feedback.js"
data-project-key="your-project-key"></script>If the user's browser is set to German (de-DE), the widget will display in German. If the browser language is not supported, English is used as a fallback.
Manual Language Selection
Explicitly set the language using the data-language attribute:
<!-- German -->
<script src="https://seggwat.com/static/widgets/v1/seggwat-feedback.js"
data-project-key="your-project-key"
data-language="de"></script><!-- Swedish -->
<script src="https://seggwat.com/static/widgets/v1/seggwat-feedback.js"
data-project-key="your-project-key"
data-language="sv"></script><!-- French -->
<script src="https://seggwat.com/static/widgets/v1/seggwat-feedback.js"
data-project-key="your-project-key"
data-language="fr"></script><!-- Danish -->
<script src="https://seggwat.com/static/widgets/v1/seggwat-feedback.js"
data-project-key="your-project-key"
data-language="da"></script><!-- English (explicit) -->
<script src="https://seggwat.com/static/widgets/v1/seggwat-feedback.js"
data-project-key="your-project-key"
data-language="en"></script>Translated Strings
All UI elements are translated, including:
| Element | English | German | Swedish | French | Danish |
|---|---|---|---|---|---|
| Button | Feedback | Feedback | Feedback | Avis | Feedback |
| Modal Title | Send Feedback | Feedback senden | Skicka feedback | Envoyer un avis | Send feedback |
| Modal Subtitle | We'd love to hear your thoughts! | Wir freuen uns auf Ihr Feedback! | Vi skulle gärna höra dina tankar! | Nous serions ravis de connaître votre avis ! | Vi vil meget gerne høre dine tanker! |
| Label | Your Feedback | Ihr Feedback | Din feedback | Votre avis | Din feedback |
| Placeholder | Tell us what you think... | Sagen Sie uns, was Sie denken... | Berätta vad du tycker... | Dites-nous ce que vous en pensez... | Fortæl os, hvad du synes... |
| Cancel Button | Cancel | Abbrechen | Avbryt | Annuler | Annuller |
| Submit Button | Send Feedback | Feedback senden | Skicka feedback | Envoyer l'avis | Send feedback |
| Sending... | Sending... | Wird gesendet... | Skickar... | Envoi en cours... | Sender... |
| Success | Thank you for your feedback! | Vielen Dank für Ihr Feedback! | Tack för din feedback! | Merci pour votre avis ! | Tak for din feedback! |
| Error | Sorry, there was an error... | Entschuldigung, beim Senden... | Tyvärr uppstod ett fel... | Désolé, une erreur s'est produite... | Beklager, der opstod en fejl... |
How It Works
Language Detection Flow
graph TD
A[Widget Loads] --> B{data-language set?}
B -->|Yes| C[Use specified language]
B -->|No| D[Detect browser language]
D --> E{Language supported?}
E -->|Yes| F[Use detected language]
E -->|No| G[Fallback to English]
C --> H{Language file exists?}
H -->|Yes| I[Load translations]
H -->|No| G
F --> I
G --> I
I --> J[Render widget]Translation Loading
- Detection: The widget determines the language from
data-languageornavigator.language - Validation: Checks if the language is in the supported list (
en,de,sv,fr,da) - Fetching: Loads the translation file from
/static/i18n/{lang}.json - Fallback: If loading fails, uses hardcoded English translations
- Rendering: Displays the widget with translated text
Dynamic Language Updates
The language is loaded once, when the widget initializes. updateAppearance() does not change it. To switch language at runtime, call destroy() and inject the script again with a new data-language:
function setFeedbackLanguage(lang) {
window.SeggwatFeedback?.destroy();
const s = document.createElement('script');
s.src = 'https://seggwat.com/static/widgets/v1/seggwat-feedback.js';
s.dataset.projectKey = 'your-project-key';
s.dataset.language = lang;
document.body.appendChild(s);
}Example: Language Switcher Integration
<select id="language-picker" onchange="onLanguageChange(this.value)">
<option value="en">English</option>
<option value="de">Deutsch</option>
<option value="sv">Svenska</option>
<option value="fr">Français</option>
<option value="da">Dansk</option>
</select>
<script>
function onLanguageChange(lang) {
// Update your site's language
changeWebsiteLanguage(lang);
// Re-create the feedback widget in the new language
setFeedbackLanguage(lang);
}
</script>Examples
Multi-language Website
Serve different languages based on your site's current locale:
<!-- German page -->
<html lang="de">
<head>
<script src="https://seggwat.com/static/widgets/v1/seggwat-feedback.js"
data-project-key="your-project-key"
data-language="de"></script>
</head>
</html><!-- Swedish page -->
<html lang="sv">
<head>
<script src="https://seggwat.com/static/widgets/v1/seggwat-feedback.js"
data-project-key="your-project-key"
data-language="sv"></script>
</head>
</html>