The source headers, LICENSE files, and license metadata had drifted apart. Align the entire project to MIT: - Convert every source-file header to the MIT text across all comment styles (Go, TS, TSX, JS, MJS, SQL, CSS, GraphQL, shell), including SPDX-License-Identifier tags - Set the root and cookie-banner LICENSE files to the MIT text with a "MIT License" title line - Switch the package.json license fields, Docker image label, and cookie-banner README to MIT - Update docs and the genmodels header generator accordingly - Normalize copyright lines to a single format (Copyright (c) <year(s)> Probo Inc <hello@probo.com>.): unify the hello@getprobo.com and hello@probo.inc emails to hello@probo.com and the comma-separated years to a hyphenated range Genuine third-party references are intentionally left untouched: the Lucide icon attributions (Lucide is ISC) and the trivy dependency license allowlist. Signed-off-by: Sacha Al Himdani <sacha@probo.com>
274 lines
17 KiB
SQL
274 lines
17 KiB
SQL
-- Copyright (c) 2026 Probo Inc <hello@probo.com>.
|
||
--
|
||
-- 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;
|