Skip to main content

Languages and Internationalization

Configure biskoui to display consent banners in multiple languages with proper localization for global audiences.

Supported Languages​

biskoui supports over 20 languages with comprehensive translations for all banner text, service descriptions, and compliance messaging.

European Languages​

German (de) - Deutsch

  • Country Coverage: Germany, Austria, Switzerland, Luxembourg
  • Legal Context: GDPR, German BDSG, Swiss nFADP
  • Sample Text: "Wir verwenden Cookies und ähnliche Technologien"

French (fr) - Français

  • Country Coverage: France, Belgium, Switzerland, Canada
  • Legal Context: GDPR, French Data Protection Act
  • Sample Text: "Nous utilisons des cookies et des technologies similaires"

Italian (it) - Italiano

  • Country Coverage: Italy, Switzerland, San Marino
  • Legal Context: GDPR, Italian Privacy Code
  • Sample Text: "Utilizziamo cookie e tecnologie simili"

Spanish (es) - Español

  • Country Coverage: Spain, Latin America
  • Legal Context: GDPR, Spanish Data Protection Act
  • Sample Text: "Utilizamos cookies y tecnologías similares"

Dutch (nl) - Nederlands

  • Country Coverage: Netherlands, Belgium
  • Legal Context: GDPR, Dutch Implementation Act
  • Sample Text: "We gebruiken cookies en vergelijkbare technologieën"

Portuguese (pt) - Português

  • Country Coverage: Portugal, Brazil
  • Legal Context: GDPR, Brazilian LGPD
  • Sample Text: "Utilizamos cookies e tecnologias semelhantes"

Polish (pl) - Polski

  • Country Coverage: Poland
  • Legal Context: GDPR, Polish Personal Data Protection Act
  • Sample Text: "Używamy plików cookie i podobnych technologii"

Swedish (sv) - Svenska

  • Country Coverage: Sweden
  • Legal Context: GDPR, Swedish Data Protection Act
  • Sample Text: "Vi använder cookies och liknande tekniker"

Danish (da) - Dansk

  • Country Coverage: Denmark
  • Legal Context: GDPR, Danish Data Protection Act
  • Sample Text: "Vi bruger cookies og lignende teknologier"

Norwegian (no) - Norsk

  • Country Coverage: Norway
  • Legal Context: GDPR, Norwegian Personal Data Act
  • Sample Text: "Vi bruker informasjonskapsler og lignende teknologier"

Finnish (fi) - Suomi

  • Country Coverage: Finland
  • Legal Context: GDPR, Finnish Data Protection Act
  • Sample Text: "Käytämme evästeitä ja vastaavia teknologioita"

Czech (cs) - Čeština

  • Country Coverage: Czech Republic
  • Legal Context: GDPR, Czech Personal Data Protection Act
  • Sample Text: "Používáme soubory cookie a podobné technologie"

Global Languages​

English (en) - English

  • Country Coverage: US, UK, Canada, Australia, Global
  • Legal Context: GDPR, CCPA, PIPEDA, Australian Privacy Act
  • Sample Text: "We use cookies and similar technologies"

Simplified Chinese (zh-CN) - 简体中文

  • Country Coverage: China
  • Legal Context: Chinese Personal Information Protection Law
  • Sample Text: "我们使用 cookie 和类似技术"

Traditional Chinese (zh-TW) - 繁體中文

  • Country Coverage: Taiwan, Hong Kong
  • Legal Context: Taiwan Personal Data Protection Act
  • Sample Text: "我們使用 cookie 和類似技術"

Japanese (ja) - 日本語

  • Country Coverage: Japan
  • Legal Context: Japanese Personal Information Protection Act
  • Sample Text: "私たちはクッキーおよび類似の技術を使用しています"

Korean (ko) - 한국어

  • Country Coverage: South Korea
  • Legal Context: Korean Personal Information Protection Act
  • Sample Text: "우리는 쿠키 및 유사한 기술을 사용합니다"

Russian (ru) - Русский

  • Country Coverage: Russia, Eastern Europe
  • Legal Context: Russian Personal Data Law
  • Sample Text: "Мы используем файлы cookie и аналогичные технологии"

Arabic (ar) - العربية

  • Country Coverage: Middle East, North Africa
  • Legal Context: Various regional privacy laws
  • Sample Text: "نحن نستخدم ملفات تعريف الارتباط والتقنيات المماثلة"

Hindi (hi) - हिन्दी

  • Country Coverage: India
  • Legal Context: Indian Personal Data Protection Act
  • Sample Text: "हम कुकीज़ और समान तकनीकों का उपयोग करते हैं"

Turkish (tr) - Türkçe

  • Country Coverage: Turkey
  • Legal Context: Turkish Personal Data Protection Law
  • Sample Text: "Çerez ve benzer teknolojiler kullanıyoruz"

Language Configuration​

Automatic Language Detection​

biskoui can automatically detect user language preferences through multiple methods:

Browser Language Detection​

// Automatic detection based on browser settings
{
"language_detection": {
"method": "browser_preference",
"fallback": "en",
"priority": [
"navigator.language",
"navigator.languages[0]",
"navigator.userLanguage"
]
}
}

Geographic Location Detection​

// Detection based on IP geolocation
{
"language_detection": {
"method": "geolocation",
"fallback": "en",
"mappings": {
"DE": "de",
"FR": "fr",
"IT": "it",
"ES": "es",
"CH": "de", // Switzerland defaults to German
"US": "en",
"GB": "en"
}
}
}

URL-Based Detection​

// Detection based on URL structure
{
"language_detection": {
"method": "url_path",
"fallback": "en",
"patterns": {
"/de/": "de",
"/fr/": "fr",
"/en/": "en",
"/es/": "es"
}
}
}

Combined Detection Strategy​

// Multi-method detection with priority
{
"language_detection": {
"methods": [
{
"type": "url_path",
"priority": 1
},
{
"type": "cookie",
"cookie_name": "site_language",
"priority": 2
},
{
"type": "browser_preference",
"priority": 3
},
{
"type": "geolocation",
"priority": 4
}
],
"fallback": "en"
}
}

Manual Language Configuration​

Set specific languages for your website in the dashboard:

Single Language Setup​

  1. Go to Banner → Languages
  2. Select your primary language
  3. Customize text translations if needed
  4. Save configuration

Multi-Language Setup​

  1. Go to Banner → Languages
  2. Enable Multi-language support
  3. Select all languages you want to support
  4. Configure detection method
  5. Set fallback language
  6. Customize translations for each language

Translation Customization​

Default Text Elements​

biskoui provides comprehensive default translations for all text elements:

{
"en": "We value your privacy",
"de": "Wir respektieren Ihre Privatsphäre",
"fr": "Nous respectons votre vie privée",
"es": "Respetamos tu privacidad",
"it": "Rispettiamo la tua privacy",
"nl": "We respecteren uw privacy"
}
{
"en": "We use cookies and similar technologies to improve your browsing experience, personalize content, and analyze our traffic.",
"de": "Wir verwenden Cookies und ähnliche Technologien, um Ihr Browsing-Erlebnis zu verbessern, Inhalte zu personalisieren und unseren Traffic zu analysieren.",
"fr": "Nous utilisons des cookies et des technologies similaires pour améliorer votre expérience de navigation, personnaliser le contenu et analyser notre trafic.",
"es": "Utilizamos cookies y tecnologías similares para mejorar su experiencia de navegación, personalizar contenido y analizar nuestro tráfico.",
"it": "Utilizziamo cookie e tecnologie simili per migliorare la tua esperienza di navigazione, personalizzare i contenuti e analizzare il nostro traffico.",
"nl": "We gebruiken cookies en vergelijkbare technologieën om uw browse-ervaring te verbeteren, inhoud te personaliseren en ons verkeer te analyseren."
}

Button Labels​

{
"accept_all": {
"en": "Accept All",
"de": "Alle akzeptieren",
"fr": "Tout accepter",
"es": "Aceptar todo",
"it": "Accetta tutto",
"nl": "Alles accepteren"
},
"reject_all": {
"en": "Reject All",
"de": "Alle ablehnen",
"fr": "Tout rejeter",
"es": "Rechazar todo",
"it": "Rifiuta tutto",
"nl": "Alles afwijzen"
},
"customize": {
"en": "Customize Settings",
"de": "Einstellungen anpassen",
"fr": "Personnaliser les paramètres",
"es": "Personalizar configuración",
"it": "Personalizza impostazioni",
"nl": "Instellingen aanpassen"
}
}

Service Category Names​

{
"essential": {
"en": "Essential",
"de": "Erforderlich",
"fr": "Essentiel",
"es": "Esencial",
"it": "Essenziale",
"nl": "Essentieel"
},
"analytics": {
"en": "Analytics",
"de": "Analytik",
"fr": "Analytique",
"es": "Analítica",
"it": "Analitica",
"nl": "Analytics"
},
"marketing": {
"en": "Marketing",
"de": "Marketing",
"fr": "Marketing",
"es": "Marketing",
"it": "Marketing",
"nl": "Marketing"
}
}

Custom Translation Override​

Dashboard Translation Editor​

  1. Go to Banner → Languages → Custom Translations
  2. Select language to customize
  3. Edit specific text elements
  4. Preview changes in real-time
  5. Save custom translations

Translation File Format​

{
"language": "de",
"translations": {
"banner": {
"headline": "Ihre Privatsphäre ist uns wichtig",
"description": "Wir nutzen Cookies, um Ihnen die bestmögliche Erfahrung auf unserer Website zu bieten.",
"privacy_policy_text": "Weitere Informationen finden Sie in unserer",
"privacy_policy_link": "Datenschutzerklärung"
},
"buttons": {
"accept_all": "Alle Cookies akzeptieren",
"reject_all": "Nur erforderliche Cookies",
"customize": "Einstellungen verwalten",
"save_preferences": "Einstellungen speichern"
},
"categories": {
"essential": {
"name": "Technisch erforderlich",
"description": "Diese Cookies sind für das Funktionieren der Website unbedingt erforderlich."
},
"analytics": {
"name": "Statistik & Analyse",
"description": "Diese Cookies helfen uns zu verstehen, wie Besucher mit der Website interagieren."
},
"marketing": {
"name": "Marketing & Werbung",
"description": "Diese Cookies werden verwendet, um Ihnen relevante Werbung zu zeigen."
}
}
}
}

GDPR-Compliant Text (EU Languages)​

{
"legal_basis": {
"en": "We process your personal data on the basis of your consent (Art. 6(1)(a) GDPR).",
"de": "Wir verarbeiten Ihre personenbezogenen Daten auf Grundlage Ihrer Einwilligung (Art. 6 Abs. 1 lit. a DSGVO).",
"fr": "Nous traitons vos données personnelles sur la base de votre consentement (Art. 6(1)(a) RGPD)."
},
"withdrawal_notice": {
"en": "You can withdraw your consent at any time with effect for the future.",
"de": "Sie können Ihre Einwilligung jederzeit mit Wirkung für die Zukunft widerrufen.",
"fr": "Vous pouvez retirer votre consentement à tout moment avec effet pour l'avenir."
}
}

Swiss nFADP-Compliant Text​

{
"swiss_legal": {
"de": "Gemäß dem neuen Schweizer Datenschutzgesetz (nDSG) verarbeiten wir Ihre Personendaten transparent und sicher.",
"fr": "Conformément à la nouvelle loi suisse sur la protection des données (nLPD), nous traitons vos données personnelles de manière transparente et sécurisée.",
"it": "In conformità con la nuova legge svizzera sulla protezione dei dati (nLPD), trattiamo i vostri dati personali in modo trasparente e sicuro.",
"en": "In accordance with the new Swiss Data Protection Act (nFADP), we process your personal data transparently and securely."
}
}

Regional Compliance Integration​

GDPR Requirements (EU/EEA)​

For websites serving EU users, ensure translations include all GDPR-required elements:

{
"gdpr_compliance": {
"consent_purpose": {
"en": "We need your consent to process personal data for the following purposes:",
"de": "Wir benötigen Ihre Einwilligung zur Verarbeitung personenbezogener Daten für folgende Zwecke:"
},
"legal_basis_notice": {
"en": "Legal basis: Consent (Art. 6(1)(a) GDPR)",
"de": "Rechtsgrundlage: Einwilligung (Art. 6 Abs. 1 lit. a DSGVO)"
},
"data_controller": {
"en": "Data controller: [Your Company Name]",
"de": "Verantwortlicher: [Ihr Firmenname]"
},
"rights_notice": {
"en": "You have the right to access, rectify, erase, restrict processing, and data portability.",
"de": "Sie haben das Recht auf Auskunft, Berichtigung, Löschung, Einschränkung der Verarbeitung und Datenübertragbarkeit."
}
}
}

Swiss nFADP Requirements​

For Swiss websites, include nFADP-specific language:

{
"nfadp_compliance": {
"data_processing_notice": {
"de": "Informationen zur Datenbearbeitung nach Art. 19 nDSG",
"fr": "Informations sur le traitement des données selon l'art. 19 nLPD",
"en": "Information on data processing according to Art. 19 nFADP"
},
"purpose_limitation": {
"de": "Ihre Daten werden nur für den angegebenen Zweck verwendet.",
"fr": "Vos données ne seront utilisées que dans le but indiqué.",
"en": "Your data will only be used for the stated purpose."
}
}
}

Implementation Examples​

Dynamic Language Switching​

<!-- Language selector in banner -->
<div class="biskoui-language-selector">
<select onchange="biskoui.setLanguage(this.value)">
<option value="en">English</option>
<option value="de">Deutsch</option>
<option value="fr">Français</option>
<option value="es">Español</option>
</select>
</div>
// Language switching API
window.biskoui.setLanguage("de"); // Switch to German
window.biskoui.getLanguage(); // Get current language

// Listen for language changes
document.addEventListener("biskoui:language:changed", function (event) {
console.log("Language changed to:", event.detail.language);
// Update other page elements if needed
});

Programmatic Translation​

// Access current translations
const translations = window.biskoui.getTranslations();
console.log(translations.buttons.accept_all); // "Accept All" or translated text

// Override specific translations
window.biskoui.setTranslations({
banner: {
headline: "Custom headline text",
description: "Custom description text",
},
});

// Add custom translation keys
window.biskoui.addTranslations({
custom: {
privacy_center: {
en: "Privacy Center",
de: "Datenschutz-Center",
fr: "Centre de confidentialité",
},
},
});

Multi-Site Language Management​

// Configuration for multi-language, multi-site setup
const sites = {
"example.com": {
default_language: "en",
supported_languages: ["en", "es"],
detection_method: "browser_preference",
},
"example.de": {
default_language: "de",
supported_languages: ["de", "en"],
detection_method: "geolocation",
},
"example.fr": {
default_language: "fr",
supported_languages: ["fr", "en"],
detection_method: "url_path",
},
};

Testing Internationalization​

Language Testing Checklist​

Translation Quality:

  • All text elements translated accurately
  • Cultural appropriateness verified
  • Legal terminology correct for jurisdiction
  • No truncated text due to length differences
  • Consistent terminology across all elements

Technical Testing:

  • Language detection works correctly
  • Fallback language displays when needed
  • Text direction (LTR/RTL) handled properly
  • Font rendering supports all characters
  • Text fits properly in all layouts

User Experience Testing:

  • Banner remains visually appealing in all languages
  • Button sizes accommodate longer text
  • Mobile layout works with extended translations
  • Language switching (if enabled) functions properly

Automated Testing​

// Test language switching functionality
describe("Language Internationalization", () => {
test("should switch language correctly", async () => {
await biskoui.setLanguage("de");
const currentLang = biskoui.getLanguage();
expect(currentLang).toBe("de");

const translations = biskoui.getTranslations();
expect(translations.buttons.accept_all).toBe("Alle akzeptieren");
});

test("should fallback to default language", async () => {
await biskoui.setLanguage("invalid-lang");
const currentLang = biskoui.getLanguage();
expect(currentLang).toBe("en"); // fallback
});
});

Professional Translation Services​

  1. Extract Source Text: Export all text elements from biskoui dashboard
  2. Professional Translation: Use certified translators familiar with privacy law
  3. Legal Review: Have local privacy lawyers review legal terminology
  4. Technical Implementation: Upload translations and test thoroughly
  5. User Testing: Test with native speakers in target markets
  6. Ongoing Maintenance: Update translations when laws or text change

Translation Quality Guidelines​

Legal Accuracy:

  • Use certified translators with legal expertise
  • Verify compliance terminology for each jurisdiction
  • Review with local privacy law experts
  • Test with actual users in target markets

Cultural Sensitivity:

  • Adapt messaging for local cultural context
  • Consider regional privacy concerns and expectations
  • Use appropriate formality levels (formal vs informal)
  • Respect local conventions for data privacy communication

Next Steps​

After configuring languages and internationalization:

  1. Set up cross-subdomain consent
  2. Configure consent registry and logging
  3. Review compliance requirements
  4. Test banner in all target languages