-- Copyright (c) 2026 Probo Inc . -- -- Permission is hereby granted, free of charge, to any person obtaining a copy -- of this software and associated documentation files (the "Software"), to deal -- in the Software without restriction, including without limitation the rights -- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -- copies of the Software, and to permit persons to whom the Software is -- furnished to do so, subject to the following conditions: -- -- The above copyright notice and this permission notice shall be included in -- all copies or substantial portions of the Software. -- -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -- SOFTWARE. -- Backfill default translations for the 9 new supported languages on all -- existing cookie banners. Rows that already exist (via a prior manual upsert) -- are skipped thanks to ON CONFLICT DO NOTHING. INSERT INTO cookie_banner_translations ( id, tenant_id, organization_id, cookie_banner_id, language, translations, created_at, updated_at ) SELECT generate_gid(decode_base64_unpadded(cb.tenant_id), 86), cb.tenant_id, cb.organization_id, cb.id, lang.language, lang.translations::jsonb, NOW(), NOW() FROM cookie_banners cb CROSS JOIN (VALUES ('id', '{ "banner_title": "Preferensi Cookie", "banner_description": "Kami menggunakan cookie untuk meningkatkan pengalaman Anda dan menganalisis lalu lintas situs. {{cookie_policy_link}}", "button_accept_all": "Terima semua", "button_reject_all": "Tolak semua", "button_customize": "Sesuaikan", "button_save": "Simpan preferensi", "panel_title": "Sesuaikan Preferensi", "panel_description": "Pilih kategori cookie yang ingin Anda izinkan. Cookie {{necessary_category}} selalu aktif karena diperlukan agar situs berfungsi.", "aria_close": "Tutup", "aria_show_details": "Tampilkan detail cookie", "aria_hide_details": "Sembunyikan detail cookie", "aria_cookie_settings": "Pengaturan cookie", "privacy_policy_link_text": "Kebijakan Privasi", "cookie_policy_link_text": "Kebijakan Cookie", "placeholder_text": "Konten ini memerlukan cookie {{category}}.", "placeholder_button": "Kelola preferensi cookie", "banner_title_opt_out": "Pemberitahuan Cookie", "banner_description_opt_out": "Kami menggunakan cookie dan teknologi serupa. Anda dapat menolak cookie yang tidak penting. {{cookie_policy_link}}", "button_acknowledge": "OK", "button_opt_out": "Jangan Jual atau Bagikan Informasi Pribadi Saya", "banner_title_notice": "Pemberitahuan Cookie", "banner_description_notice": "Situs ini menggunakan cookie untuk meningkatkan pengalaman Anda. {{cookie_policy_link}}", "button_dismiss": "Mengerti" }'), ('it', '{ "banner_title": "Preferenze Cookie", "banner_description": "Utilizziamo i cookie per migliorare la tua esperienza e analizzare il traffico del sito. {{cookie_policy_link}}", "button_accept_all": "Accetta tutto", "button_reject_all": "Rifiuta tutto", "button_customize": "Personalizza", "button_save": "Salva preferenze", "panel_title": "Personalizza le Preferenze", "panel_description": "Scegli quali categorie di cookie consentire. I cookie {{necessary_category}} sono sempre attivi poiché necessari per il funzionamento del sito.", "aria_close": "Chiudi", "aria_show_details": "Mostra dettagli cookie", "aria_hide_details": "Nascondi dettagli cookie", "aria_cookie_settings": "Impostazioni cookie", "privacy_policy_link_text": "Informativa sulla Privacy", "cookie_policy_link_text": "Informativa sui Cookie", "placeholder_text": "Questo contenuto richiede i cookie {{category}}.", "placeholder_button": "Gestisci le preferenze dei cookie", "banner_title_opt_out": "Avviso sui Cookie", "banner_description_opt_out": "Utilizziamo cookie e tecnologie simili. Puoi rinunciare ai cookie non essenziali. {{cookie_policy_link}}", "button_acknowledge": "OK", "button_opt_out": "Non vendere né condividere le mie informazioni personali", "banner_title_notice": "Avviso sui Cookie", "banner_description_notice": "Questo sito utilizza i cookie per migliorare la tua esperienza. {{cookie_policy_link}}", "button_dismiss": "Capito" }'), ('ja', '{ "banner_title": "クッキーの設定", "banner_description": "私たちはクッキーを使用してユーザー体験を向上させ、サイトのトラフィックを分析します。{{cookie_policy_link}}", "button_accept_all": "すべて承認", "button_reject_all": "すべて拒否", "button_customize": "カスタマイズ", "button_save": "設定を保存", "panel_title": "設定をカスタマイズ", "panel_description": "許可するクッキーのカテゴリを選択してください。{{necessary_category}}クッキーはサイトの動作に必要なため、常に有効です。", "aria_close": "閉じる", "aria_show_details": "クッキーの詳細を表示", "aria_hide_details": "クッキーの詳細を非表示", "aria_cookie_settings": "クッキーの設定", "privacy_policy_link_text": "プライバシーポリシー", "cookie_policy_link_text": "クッキーポリシー", "placeholder_text": "このコンテンツには{{category}}クッキーが必要です。", "placeholder_button": "クッキー設定を管理", "banner_title_opt_out": "クッキーに関するお知らせ", "banner_description_opt_out": "私たちはクッキーおよび類似技術を使用しています。不要なクッキーを拒否することができます。{{cookie_policy_link}}", "button_acknowledge": "OK", "button_opt_out": "個人情報の販売・共有を拒否する", "banner_title_notice": "クッキーに関するお知らせ", "banner_description_notice": "このサイトはユーザー体験を向上させるためにクッキーを使用しています。{{cookie_policy_link}}", "button_dismiss": "了解" }'), ('ko', '{ "banner_title": "쿠키 설정", "banner_description": "저희는 귀하의 경험을 개선하고 사이트 트래픽을 분석하기 위해 쿠키를 사용합니다. {{cookie_policy_link}}", "button_accept_all": "모두 수락", "button_reject_all": "모두 거부", "button_customize": "맞춤 설정", "button_save": "설정 저장", "panel_title": "설정 맞춤화", "panel_description": "허용할 쿠키 카테고리를 선택하세요. {{necessary_category}} 쿠키는 사이트 작동에 필요하므로 항상 활성화됩니다.", "aria_close": "닫기", "aria_show_details": "쿠키 세부 정보 표시", "aria_hide_details": "쿠키 세부 정보 숨기기", "aria_cookie_settings": "쿠키 설정", "privacy_policy_link_text": "개인정보 처리방침", "cookie_policy_link_text": "쿠키 정책", "placeholder_text": "이 콘텐츠에는 {{category}} 쿠키가 필요합니다.", "placeholder_button": "쿠키 설정 관리", "banner_title_opt_out": "쿠키 알림", "banner_description_opt_out": "저희는 쿠키 및 유사 기술을 사용합니다. 비필수 쿠키를 거부할 수 있습니다. {{cookie_policy_link}}", "button_acknowledge": "확인", "button_opt_out": "내 개인정보 판매 또는 공유 금지", "banner_title_notice": "쿠키 알림", "banner_description_notice": "이 사이트는 귀하의 경험을 향상시키기 위해 쿠키를 사용합니다. {{cookie_policy_link}}", "button_dismiss": "확인했습니다" }'), ('pl', '{ "banner_title": "Preferencje plików cookie", "banner_description": "Używamy plików cookie, aby poprawić Twoje doświadczenia i analizować ruch na stronie. {{cookie_policy_link}}", "button_accept_all": "Zaakceptuj wszystkie", "button_reject_all": "Odrzuć wszystkie", "button_customize": "Dostosuj", "button_save": "Zapisz preferencje", "panel_title": "Dostosuj preferencje", "panel_description": "Wybierz, które kategorie plików cookie chcesz zezwolić. Pliki cookie {{necessary_category}} są zawsze aktywne, ponieważ są niezbędne do działania strony.", "aria_close": "Zamknij", "aria_show_details": "Pokaż szczegóły plików cookie", "aria_hide_details": "Ukryj szczegóły plików cookie", "aria_cookie_settings": "Ustawienia plików cookie", "privacy_policy_link_text": "Polityka prywatności", "cookie_policy_link_text": "Polityka plików cookie", "placeholder_text": "Ta treść wymaga plików cookie {{category}}.", "placeholder_button": "Zarządzaj preferencjami plików cookie", "banner_title_opt_out": "Powiadomienie o plikach cookie", "banner_description_opt_out": "Używamy plików cookie i podobnych technologii. Możesz zrezygnować z nieistotnych plików cookie. {{cookie_policy_link}}", "button_acknowledge": "OK", "button_opt_out": "Nie sprzedawaj ani nie udostępniaj moich danych osobowych", "banner_title_notice": "Powiadomienie o plikach cookie", "banner_description_notice": "Ta strona używa plików cookie, aby poprawić Twoje doświadczenia. {{cookie_policy_link}}", "button_dismiss": "Rozumiem" }'), ('pt', '{ "banner_title": "Preferências de Cookies", "banner_description": "Utilizamos cookies para melhorar sua experiência e analisar o tráfego do site. {{cookie_policy_link}}", "button_accept_all": "Aceitar tudo", "button_reject_all": "Rejeitar tudo", "button_customize": "Personalizar", "button_save": "Salvar preferências", "panel_title": "Personalizar Preferências", "panel_description": "Escolha quais categorias de cookies permitir. Os cookies {{necessary_category}} estão sempre ativos, pois são necessários para o funcionamento do site.", "aria_close": "Fechar", "aria_show_details": "Mostrar detalhes dos cookies", "aria_hide_details": "Ocultar detalhes dos cookies", "aria_cookie_settings": "Configurações de cookies", "privacy_policy_link_text": "Política de Privacidade", "cookie_policy_link_text": "Política de Cookies", "placeholder_text": "Este conteúdo requer cookies de {{category}}.", "placeholder_button": "Gerenciar preferências de cookies", "banner_title_opt_out": "Aviso de Cookies", "banner_description_opt_out": "Utilizamos cookies e tecnologias similares. Você pode recusar cookies não essenciais. {{cookie_policy_link}}", "button_acknowledge": "OK", "button_opt_out": "Não vender nem compartilhar minhas informações pessoais", "banner_title_notice": "Aviso de Cookies", "banner_description_notice": "Este site usa cookies para melhorar sua experiência. {{cookie_policy_link}}", "button_dismiss": "Entendi" }'), ('tr', '{ "banner_title": "Çerez Tercihleri", "banner_description": "Deneyiminizi iyileştirmek ve site trafiğini analiz etmek için çerezler kullanıyoruz. {{cookie_policy_link}}", "button_accept_all": "Tümünü kabul et", "button_reject_all": "Tümünü reddet", "button_customize": "Özelleştir", "button_save": "Tercihleri kaydet", "panel_title": "Tercihleri Özelleştir", "panel_description": "Hangi çerez kategorilerine izin vermek istediğinizi seçin. {{necessary_category}} çerezleri, sitenin çalışması için gerekli olduğundan her zaman etkindir.", "aria_close": "Kapat", "aria_show_details": "Çerez ayrıntılarını göster", "aria_hide_details": "Çerez ayrıntılarını gizle", "aria_cookie_settings": "Çerez ayarları", "privacy_policy_link_text": "Gizlilik Politikası", "cookie_policy_link_text": "Çerez Politikası", "placeholder_text": "Bu içerik {{category}} çerezleri gerektirir.", "placeholder_button": "Çerez tercihlerini yönet", "banner_title_opt_out": "Çerez Bildirimi", "banner_description_opt_out": "Çerezler ve benzer teknolojiler kullanıyoruz. Zorunlu olmayan çerezleri reddedebilirsiniz. {{cookie_policy_link}}", "button_acknowledge": "Tamam", "button_opt_out": "Kişisel Bilgilerimi Satma veya Paylaşma", "banner_title_notice": "Çerez Bildirimi", "banner_description_notice": "Bu site deneyiminizi geliştirmek için çerezler kullanır. {{cookie_policy_link}}", "button_dismiss": "Anladım" }'), ('uk', '{ "banner_title": "Налаштування файлів cookie", "banner_description": "Ми використовуємо файли cookie для покращення вашого досвіду та аналізу трафіку сайту. {{cookie_policy_link}}", "button_accept_all": "Прийняти всі", "button_reject_all": "Відхилити всі", "button_customize": "Налаштувати", "button_save": "Зберегти налаштування", "panel_title": "Налаштувати параметри", "panel_description": "Виберіть, які категорії файлів cookie дозволити. Файли cookie {{necessary_category}} завжди активні, оскільки вони необхідні для роботи сайту.", "aria_close": "Закрити", "aria_show_details": "Показати деталі файлів cookie", "aria_hide_details": "Приховати деталі файлів cookie", "aria_cookie_settings": "Налаштування файлів cookie", "privacy_policy_link_text": "Політика конфіденційності", "cookie_policy_link_text": "Політика файлів cookie", "placeholder_text": "Цей контент потребує файлів cookie {{category}}.", "placeholder_button": "Керувати налаштуваннями файлів cookie", "banner_title_opt_out": "Повідомлення про файли cookie", "banner_description_opt_out": "Ми використовуємо файли cookie та подібні технології. Ви можете відмовитися від неістотних файлів cookie. {{cookie_policy_link}}", "button_acknowledge": "OK", "button_opt_out": "Не продавати та не ділитися моїми персональними даними", "banner_title_notice": "Повідомлення про файли cookie", "banner_description_notice": "Цей сайт використовує файли cookie для покращення вашого досвіду. {{cookie_policy_link}}", "button_dismiss": "Зрозуміло" }'), ('zh', '{ "banner_title": "Cookie 偏好设置", "banner_description": "我们使用 Cookie 来改善您的体验并分析网站流量。{{cookie_policy_link}}", "button_accept_all": "全部接受", "button_reject_all": "全部拒绝", "button_customize": "自定义", "button_save": "保存偏好设置", "panel_title": "自定义偏好设置", "panel_description": "选择要允许的 Cookie 类别。{{necessary_category}} Cookie 始终处于活动状态,因为它们是网站正常运行所必需的。", "aria_close": "关闭", "aria_show_details": "显示 Cookie 详情", "aria_hide_details": "隐藏 Cookie 详情", "aria_cookie_settings": "Cookie 设置", "privacy_policy_link_text": "隐私政策", "cookie_policy_link_text": "Cookie 政策", "placeholder_text": "此内容需要 {{category}} Cookie。", "placeholder_button": "管理 Cookie 偏好设置", "banner_title_opt_out": "Cookie 通知", "banner_description_opt_out": "我们使用 Cookie 和类似技术。您可以选择拒绝非必要 Cookie。{{cookie_policy_link}}", "button_acknowledge": "确定", "button_opt_out": "不要出售或共享我的个人信息", "banner_title_notice": "Cookie 通知", "banner_description_notice": "本网站使用 Cookie 来提升您的体验。{{cookie_policy_link}}", "button_dismiss": "知道了" }') ) AS lang(language, translations) ON CONFLICT (cookie_banner_id, language) DO NOTHING;