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
- Go to Banner → Languages
- Select your primary language
- Customize text translations if needed
- Save configuration
Multi-Language Setup
- Go to Banner → Languages
- Enable Multi-language support
- Select all languages you want to support
- Configure detection method
- Set fallback language
- Customize translations for each language
Translation Customization
Default Text Elements
biskoui provides comprehensive default translations for all text elements:
Banner Headlines
{
"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"
}
Banner Descriptions
{
"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
- Go to Banner → Languages → Custom Translations
- Select language to customize
- Edit specific text elements
- Preview changes in real-time
- 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."
}
}
}
}
Legal Text Localization
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
Recommended Translation Workflow
- Extract Source Text: Export all text elements from biskoui dashboard
- Professional Translation: Use certified translators familiar with privacy law
- Legal Review: Have local privacy lawyers review legal terminology
- Technical Implementation: Upload translations and test thoroughly
- User Testing: Test with native speakers in target markets
- 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: