UNPKG

@tengerly/cookie-consent

Version:

A lightweight, customizable cookie consent solution for Next.js and modern web frameworks with comprehensive multi-language support

161 lines (147 loc) 6.6 kB
/** * Cookie Consent Translations * Comprehensive multi-language support for @tengerly/cookie-consent * * @version 1.0.0 * @author Tengerly */ export const translations = { // English en: { title: 'Cookie Settings', message: 'This website uses cookies to provide you with the best possible experience. We respect your privacy and give you full control over your data.', acceptAll: 'Accept All', acceptSome: 'Customize', reject: 'Essential Only', continue: 'Continue without consent', save: 'Save Settings', close: 'Close', functionalTitle: 'Functional Cookies', functionalDesc: 'Necessary for the proper functioning of the site (language, theme). Always enabled.', analyticsTitle: 'Analytics Cookies', analyticsDesc: 'Help us understand how visitors interact with our website.' }, // French fr: { title: 'Paramètres des cookies', message: 'Ce site utilise des cookies pour vous offrir la meilleure expérience possible. Nous respectons votre vie privée et vous donnons le contrôle total sur vos données.', acceptAll: 'Tout accepter', acceptSome: 'Personnaliser', reject: 'Essentiels uniquement', continue: 'Continuer sans consentement', save: 'Sauvegarder', close: 'Fermer', functionalTitle: 'Cookies Fonctionnels', functionalDesc: 'Nécessaires pour le bon fonctionnement du site (langue, thème). Toujours activés.', analyticsTitle: 'Cookies Analytiques', analyticsDesc: 'Nous aident à comprendre comment les visiteurs interagissent avec notre site web.' }, // German de: { title: 'Cookie-Einstellungen', message: 'Diese Website verwendet Cookies, um Ihnen die bestmögliche Erfahrung zu bieten. Wir respektieren Ihre Privatsphäre und geben Ihnen die volle Kontrolle über Ihre Daten.', acceptAll: 'Alle akzeptieren', acceptSome: 'Anpassen', reject: 'Nur notwendige', continue: 'Ohne Zustimmung fortfahren', save: 'Speichern', close: 'Schließen', functionalTitle: 'Funktionale Cookies', functionalDesc: 'Notwendig für das ordnungsgemäße Funktionieren der Website (Sprache, Theme). Immer aktiviert.', analyticsTitle: 'Analytische Cookies', analyticsDesc: 'Helfen uns zu verstehen, wie Besucher mit unserer Website interagieren.' }, // Spanish es: { title: 'Configuración de Cookies', message: 'Este sitio web utiliza cookies para brindarle la mejor experiencia posible. Respetamos su privacidad y le damos control total sobre sus datos.', acceptAll: 'Aceptar todo', acceptSome: 'Personalizar', reject: 'Solo esenciales', continue: 'Continuar sin consentimiento', save: 'Guardar configuración', close: 'Cerrar', functionalTitle: 'Cookies Funcionales', functionalDesc: 'Necesarias para el funcionamiento adecuado del sitio (idioma, tema). Siempre habilitadas.', analyticsTitle: 'Cookies Analíticas', analyticsDesc: 'Nos ayudan a entender cómo los visitantes interactúan con nuestro sitio web.' }, // Italian it: { title: 'Impostazioni Cookie', message: 'Questo sito web utilizza i cookie per fornirvi la migliore esperienza possibile. Rispettiamo la vostra privacy e vi diamo il pieno controllo sui vostri dati.', acceptAll: 'Accetta tutto', acceptSome: 'Personalizza', reject: 'Solo essenziali', continue: 'Continua senza consenso', save: 'Salva impostazioni', close: 'Chiudi', functionalTitle: 'Cookie Funzionali', functionalDesc: 'Necessari per il corretto funzionamento del sito (lingua, tema). Sempre abilitati.', analyticsTitle: 'Cookie Analitici', analyticsDesc: 'Ci aiutano a capire come i visitatori interagiscono con il nostro sito web.' }, // Dutch nl: { title: 'Cookie-instellingen', message: 'Deze website gebruikt cookies om u de best mogelijke ervaring te bieden. We respecteren uw privacy en geven u volledige controle over uw gegevens.', acceptAll: 'Alles accepteren', acceptSome: 'Aanpassen', reject: 'Alleen essentieel', continue: 'Doorgaan zonder toestemming', save: 'Instellingen opslaan', close: 'Sluiten', functionalTitle: 'Functionele Cookies', functionalDesc: 'Noodzakelijk voor de goede werking van de site (taal, thema). Altijd ingeschakeld.', analyticsTitle: 'Analytische Cookies', analyticsDesc: 'Helpen ons begrijpen hoe bezoekers omgaan met onze website.' }, // Portuguese pt: { title: 'Configurações de Cookies', message: 'Este site utiliza cookies para lhe proporcionar a melhor experiência possível. Respeitamos a sua privacidade e damos-lhe controlo total sobre os seus dados.', acceptAll: 'Aceitar tudo', acceptSome: 'Personalizar', reject: 'Apenas essenciais', continue: 'Continuar sem consentimento', save: 'Guardar configurações', close: 'Fechar', functionalTitle: 'Cookies Funcionais', functionalDesc: 'Necessários para o funcionamento adequado do site (idioma, tema). Sempre ativados.', analyticsTitle: 'Cookies Analíticos', analyticsDesc: 'Ajudam-nos a perceber como os visitantes interagem com o nosso site.' } }; /** * Detects the user's preferred language from browser settings * @returns {string} Language code (e.g., 'en', 'fr', 'de') */ export function detectLanguage() { // Get browser language const browserLang = navigator.language || navigator.languages?.[0] || 'en'; // Extract language code (e.g., 'en-US' -> 'en') const langCode = browserLang.split('-')[0].toLowerCase(); // Check if we have translations for this language if (translations[langCode]) { return langCode; } // Fallback to English return 'en'; } /** * Gets translations for a specific language * @param {string} language - Language code * @returns {object} Translation object */ export function getTranslations(language = 'en') { return translations[language] || translations['en']; } /** * Gets available language codes * @returns {string[]} Array of available language codes */ export function getAvailableLanguages() { return Object.keys(translations); } // Default export export default translations;