feat: Add Pro features discovery banner

Adds a dismissible banner in the topbar that informs users about
PLANKA Pro features.

- Dismissible per-user (stored in localStorage)
- Reappears after 30 days
- Rotates between main message and 3 feature highlights
- Links to planka.app/pro (with ref parameter for anonymous source attribution)
This commit is contained in:
Daniel Hiller
2026-04-18 13:21:43 +00:00
parent 4e23f3c8a9
commit cd9ba8ff4f
41 changed files with 450 additions and 10 deletions
+3 -1
View File
@@ -1,5 +1,5 @@
/*!
* Copyright (c) 2024 PLANKA Software GmbH
* Copyright (c) 2026 PLANKA Software GmbH
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
@@ -8,6 +8,7 @@ import { useSelector } from 'react-redux';
import selectors from '../../../selectors';
import Header from '../Header';
import PromoBanner from '../PromoBanner/PromoBanner';
import Favorites from '../Favorites';
import HomeActions from '../HomeActions';
import Project from '../../projects/Project';
@@ -22,6 +23,7 @@ const Fixed = React.memo(() => {
return (
<div className={styles.wrapper}>
<Header />
<PromoBanner />
<Favorites />
{projectId === undefined && <HomeActions />}
{projectId && <Project />}
@@ -0,0 +1,111 @@
/*!
* Copyright (c) 2026 PLANKA Software GmbH
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
import React, { useCallback, useEffect, useRef, useState } from 'react';
import { useSelector } from 'react-redux';
import { useTranslation } from 'react-i18next';
import selectors from '../../../selectors';
import styles from './PromoBanner.module.scss';
const PRO_URL = 'https://planka.app/pro?ref=app-banner';
const DISMISS_DURATION_MS = 30 * 24 * 60 * 60 * 1000;
const CYCLE_INTERVAL_MS = 8000;
const CSS_VAR = '--promo-banner-height';
const FEATURES = ['proFeatureCalendar', 'proFeatureRecurringCards', 'proFeatureGuestRoles'];
// Alternates: main, sub1, main, sub2, main, sub3
const TEXTS = [
'discoverPlankaPro',
FEATURES[0],
'discoverPlankaPro',
FEATURES[1],
'discoverPlankaPro',
FEATURES[2],
];
function getDismissKey(userId) {
return `planka_proBannerDismissed_${userId}`;
}
function isBannerDismissed(userId) {
const stored = localStorage.getItem(getDismissKey(userId));
if (!stored) return false;
return Date.now() - Date.parse(stored) < DISMISS_DURATION_MS;
}
const PromoBanner = React.memo(() => {
const userId = useSelector(selectors.selectCurrentUserId);
const [dismissed, setDismissed] = useState(() => isBannerDismissed(userId));
const [textIndex, setTextIndex] = useState(0);
const [visible, setVisible] = useState(true);
const wrapperRef = useRef(null);
const [t] = useTranslation();
useEffect(() => {
if (dismissed) {
document.documentElement.style.removeProperty(CSS_VAR);
return undefined;
}
const height = wrapperRef.current ? wrapperRef.current.offsetHeight : 0;
document.documentElement.style.setProperty(CSS_VAR, `${height}px`);
return () => document.documentElement.style.removeProperty(CSS_VAR);
}, [dismissed]);
useEffect(() => {
if (dismissed) return undefined;
const interval = setInterval(() => {
setVisible(false);
setTimeout(() => {
setTextIndex((i) => (i + 1) % TEXTS.length);
setVisible(true);
}, 400);
}, CYCLE_INTERVAL_MS);
return () => clearInterval(interval);
}, [dismissed]);
const handleDismiss = useCallback(
(e) => {
e.preventDefault();
localStorage.setItem(getDismissKey(userId), new Date().toISOString());
setDismissed(true);
},
[userId],
);
if (dismissed) return null;
return (
<div ref={wrapperRef} className={styles.wrapper}>
<a
href={PRO_URL}
target="_blank"
rel="noopener noreferrer"
className={`${styles.textLink} ${visible ? styles.textVisible : styles.textHidden}`}
>
{t(`common.${TEXTS[textIndex]}`)}
<span className={styles.externalIcon}></span>
</a>
<button
type="button"
title={t('common.dismissProBannerFor30Days')}
className={styles.closeButton}
onClick={handleDismiss}
>
×
</button>
</div>
);
});
export default PromoBanner;
@@ -0,0 +1,60 @@
/*!
* Copyright (c) 2026 PLANKA Software GmbH
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
:global(#app) {
.wrapper {
align-items: center;
background: rgba(0, 0, 0, 0.18);
display: flex;
gap: 8px;
justify-content: center;
padding: 5px 16px;
}
.textLink {
color: #fff;
cursor: pointer;
flex: 1 1 auto;
font-size: 13px;
text-align: center;
text-decoration: none;
&:hover {
color: #bdff22;
}
}
.externalIcon {
font-size: 11px;
margin-left: 4px;
opacity: 0.7;
vertical-align: super;
}
.textVisible {
opacity: 1;
transition: opacity 0.4s ease;
}
.textHidden {
opacity: 0;
transition: opacity 0.4s ease;
}
.closeButton {
background: transparent;
border: none;
color: rgba(255, 255, 255, 0.45);
cursor: pointer;
flex: 0 0 auto;
font-size: 18px;
line-height: 1;
padding: 0 2px;
}
.closeButton:hover {
color: rgba(255, 255, 255, 0.9);
}
}
@@ -1,5 +1,5 @@
/*!
* Copyright (c) 2024 PLANKA Software GmbH
* Copyright (c) 2026 PLANKA Software GmbH
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
@@ -37,15 +37,15 @@
.wrapper {
height: 100%;
margin-top: 116px;
margin-top: calc(116px + var(--promo-banner-height, 0px));
}
.wrapperBoard {
margin-top: 174px;
margin-top: calc(174px + var(--promo-banner-height, 0px));
}
.wrapperBoardWithFavorites {
margin-top: 264px;
margin-top: calc(264px + var(--promo-banner-height, 0px));
}
.wrapperFlex {
@@ -57,11 +57,11 @@
}
.wrapperProject {
margin-top: 98px;
margin-top: calc(98px + var(--promo-banner-height, 0px));
}
.wrapperProjectWithFavorites {
margin-top: 188px;
margin-top: calc(188px + var(--promo-banner-height, 0px));
}
.wrapperTransitioning {
@@ -73,6 +73,6 @@
}
.wrapperWithFavorites {
margin-top: 206px;
margin-top: calc(206px + var(--promo-banner-height, 0px));
}
}
@@ -1,5 +1,5 @@
/*!
* Copyright (c) 2024 PLANKA Software GmbH
* Copyright (c) 2026 PLANKA Software GmbH
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
@@ -104,6 +104,17 @@ const UserActionsStep = React.memo(({ onClose }) => {
context: 'title',
})}
</Menu.Item>
<Menu.Item
href="https://planka.app/pro?ref=app-menu"
target="_blank"
rel="noopener noreferrer"
className={styles.proMenuItem}
>
<Icon name="gem" className={styles.proMenuItemIcon} />
{withAdministration
? t('common.upgradeTeamToPro', { context: 'title' })
: t('common.discoverPlankaPro', { context: 'title' })}
</Menu.Item>
<hr className={styles.divider} />
<Menu.Item
{...logoutMenuItemProps} // eslint-disable-line react/jsx-props-no-spreading
@@ -1,5 +1,5 @@
/*!
* Copyright (c) 2024 PLANKA Software GmbH
* Copyright (c) 2026 PLANKA Software GmbH
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
@@ -25,4 +25,14 @@
float: left;
margin: 0 0.5em 0 0;
}
.proMenuItem {
margin: 0;
padding-left: 14px;
}
.proMenuItemIcon {
float: left;
margin: 0 0.5em 0 0;
}
}
+7
View File
@@ -138,6 +138,13 @@ export default {
customFieldGroups_title: 'مجموعات الحقول المخصصة',
customField_title: 'الحقل المخصص',
customFields_title: 'الحقول المخصصة',
discoverPlankaPro: '✨ المزيد من الميزات لألواحك: اكتشف PLANKA Pro',
discoverPlankaPro_title: 'اكتشف PLANKA Pro',
upgradeTeamToPro_title: 'ترقية الفريق إلى Pro',
proFeatureCalendar: '✨ عرض التقويم للوحاتك',
proFeatureRecurringCards: '✨ البطاقات المتكررة والأتمتة',
proFeatureGuestRoles: '✨ أدوار الضيف والتعاون الخارجي',
dismissProBannerFor30Days: 'إغلاق لمدة 30 يومًا',
customerPanel_title: 'لوحة العملاء',
dangerZone_title: 'منطقة الخطر',
date: 'تاريخ',
+7
View File
@@ -149,6 +149,13 @@ export default {
customFieldGroups_title: 'Групи персонализирани полета',
customField_title: 'Персонализирано поле',
customFields_title: 'Персонализирани полета',
discoverPlankaPro: '✨ Повече функции за вашите дъски: Открийте PLANKA Pro',
discoverPlankaPro_title: 'Открийте PLANKA Pro',
upgradeTeamToPro_title: 'Надградете екипа до Pro',
proFeatureCalendar: '✨ Изглед Календар за вашите дъски',
proFeatureRecurringCards: '✨ Повтарящи се карти и автоматизация',
proFeatureGuestRoles: '✨ Роли за гости и външно сътрудничество',
dismissProBannerFor30Days: 'Скрий за 30 дни',
customerPanel_title: 'Панел на клиента',
dangerZone_title: 'Опасна зона',
date: 'Дата',
+7
View File
@@ -148,6 +148,13 @@ export default {
customFieldGroups_title: 'Grups de camps personalitzats',
customField_title: 'Camp personalitzat',
customFields_title: 'Camps personalitzats',
discoverPlankaPro: '✨ Més funcions per als vostres taulers: Descobriu PLANKA Pro',
discoverPlankaPro_title: 'Descobriu PLANKA Pro',
upgradeTeamToPro_title: "Actualitzeu l'equip a Pro",
proFeatureCalendar: '✨ Vista de calendari per als vostres taulers',
proFeatureRecurringCards: '✨ Targetes recurrents i automatització',
proFeatureGuestRoles: '✨ Rols de convidat i col·laboració externa',
dismissProBannerFor30Days: 'Tanca durant 30 dies',
customerPanel_title: 'Panell del client',
dangerZone_title: 'Zona de perill',
date: 'Data',
+7
View File
@@ -140,6 +140,13 @@ export default {
customFieldGroups_title: 'Skupina vlastních polí',
customField_title: 'Vlastní pole',
customFields_title: 'Vlastní pole',
discoverPlankaPro: '✨ Více funkcí pro vaše tabule: Objevte PLANKA Pro',
discoverPlankaPro_title: 'Objevte PLANKA Pro',
upgradeTeamToPro_title: 'Upgradovat tým na Pro',
proFeatureCalendar: '✨ Zobrazení kalendáře pro vaše tabule',
proFeatureRecurringCards: '✨ Opakující se karty a automatizace',
proFeatureGuestRoles: '✨ Role hosta a externí spolupráce',
dismissProBannerFor30Days: 'Zavřít na 30 dní',
customerPanel_title: 'Panel zákazníka',
dangerZone_title: 'Nebezpečná zóna',
date: 'Datum',
+7
View File
@@ -144,6 +144,13 @@ export default {
customFieldGroups_title: 'Brugerdefinerede feltgrupper',
customField_title: 'Brugerdefineret felt',
customFields_title: 'Brugerdefinerede felter',
discoverPlankaPro: '✨ Flere funktioner til dine boards: Opdag PLANKA Pro',
discoverPlankaPro_title: 'Opdag PLANKA Pro',
upgradeTeamToPro_title: 'Opgrader team til Pro',
proFeatureCalendar: '✨ Kalendervisning til dine boards',
proFeatureRecurringCards: '✨ Tilbagevendende kort og automatisering',
proFeatureGuestRoles: '✨ Gæsteroller og eksternt samarbejde',
dismissProBannerFor30Days: 'Luk i 30 dage',
customerPanel_title: 'Kundepanel',
dangerZone_title: 'Farezone',
date: 'Dato',
+7
View File
@@ -161,6 +161,13 @@ export default {
customFields_title: 'Feldgruppen',
customerPanel_title: 'Kundenpanel',
dangerZone_title: 'Gefahrenbereich',
discoverPlankaPro: '✨ Mehr Features für eure Boards: PLANKA Pro entdecken',
discoverPlankaPro_title: 'PLANKA Pro entdecken',
dismissProBannerFor30Days: 'Für 30 Tage schließen',
upgradeTeamToPro_title: 'Team auf Pro upgraden',
proFeatureCalendar: '✨ Kalenderansicht für eure Boards',
proFeatureRecurringCards: '✨ Wiederkehrende Karten',
proFeatureGuestRoles: '✨ Gastrollen & externe Zusammenarbeit',
date: 'Datum',
deactivateUser_title: 'Benutzer deaktivieren',
defaultCardType_title: 'Standard-Kartentyp',
+8
View File
@@ -157,6 +157,14 @@ export default {
customFieldGroups_title: 'Ομάδες προσαρμοσμένων πεδίων',
customField_title: 'Προσαρμοσμένο πεδίο',
customFields_title: 'Προσαρμοσμένα πεδία',
discoverPlankaPro:
'✨ Περισσότερες λειτουργίες για τους πίνακές σας: Ανακαλύψτε το PLANKA Pro',
discoverPlankaPro_title: 'Ανακαλύψτε το PLANKA Pro',
upgradeTeamToPro_title: 'Αναβαθμίστε την ομάδα σε Pro',
proFeatureCalendar: '✨ Προβολή ημερολογίου για τους πίνακές σας',
proFeatureRecurringCards: '✨ Επαναλαμβανόμενες κάρτες και αυτοματισμός',
proFeatureGuestRoles: '✨ Ρόλοι επισκεπτών και εξωτερική συνεργασία',
dismissProBannerFor30Days: 'Κλείσιμο για 30 ημέρες',
customerPanel_title: 'Πίνακας πελάτη',
dangerZone_title: 'Επικίνδυνη ζώνη',
date: 'Ημερομηνία',
+7
View File
@@ -143,6 +143,13 @@ export default {
customFieldGroups_title: 'Custom Field Groups',
customField_title: 'Custom Field',
customFields_title: 'Custom Fields',
discoverPlankaPro: '✨ More features for your boards: Discover PLANKA Pro',
discoverPlankaPro_title: 'Discover PLANKA Pro',
upgradeTeamToPro_title: 'Upgrade Team to Pro',
proFeatureCalendar: '✨ Calendar View for your boards',
proFeatureRecurringCards: '✨ Recurring Cards & Automation',
proFeatureGuestRoles: '✨ Guest Roles & External Collaboration',
dismissProBannerFor30Days: 'Dismiss for 30 days',
customerPanel_title: 'Customer Panel',
dangerZone_title: 'Danger Zone',
date: 'Date',
+7
View File
@@ -140,6 +140,13 @@ export default {
customFields_title: 'Custom Fields',
customerPanel_title: 'Customer Panel',
dangerZone_title: 'Danger Zone',
discoverPlankaPro: '✨ More features for your boards: Discover PLANKA Pro',
discoverPlankaPro_title: 'Discover PLANKA Pro',
dismissProBannerFor30Days: 'Dismiss for 30 days',
upgradeTeamToPro_title: 'Upgrade Team to Pro',
proFeatureCalendar: '✨ Calendar View for your boards',
proFeatureRecurringCards: '✨ Recurring Cards',
proFeatureGuestRoles: '✨ Guest Roles & External Collaboration',
date: 'Date',
deactivateUser_title: 'Deactivate User',
defaultCardType_title: 'Default Card Type',
+7
View File
@@ -149,6 +149,13 @@ export default {
customFieldGroups_title: 'Grupos de campos personalizados',
customField_title: 'Campo personalizado',
customFields_title: 'Campos personalizados',
discoverPlankaPro: '✨ Más funciones para tus tableros: Descubre PLANKA Pro',
discoverPlankaPro_title: 'Descubre PLANKA Pro',
upgradeTeamToPro_title: 'Actualizar equipo a Pro',
proFeatureCalendar: '✨ Vista de calendario para tus tableros',
proFeatureRecurringCards: '✨ Tarjetas recurrentes y automatización',
proFeatureGuestRoles: '✨ Roles de invitado y colaboración externa',
dismissProBannerFor30Days: 'Cerrar durante 30 días',
customerPanel_title: 'Panel del cliente',
dangerZone_title: 'Zona de peligro',
date: 'Fecha',
+7
View File
@@ -144,6 +144,13 @@ export default {
customFieldGroups_title: 'Kohandatud väljade grupid',
customField_title: 'Kohandatud väli',
customFields_title: 'Kohandatud väljad',
discoverPlankaPro: '✨ Rohkem funktsioone oma tahvlite jaoks: Avasta PLANKA Pro',
discoverPlankaPro_title: 'Avasta PLANKA Pro',
upgradeTeamToPro_title: 'Uuenda meeskond Pro-ks',
proFeatureCalendar: '✨ Kalendervaade oma tahvlite jaoks',
proFeatureRecurringCards: '✨ Korduvad kaardid ja automatiseerimine',
proFeatureGuestRoles: '✨ Külalisrollid ja väline koostöö',
dismissProBannerFor30Days: 'Sulge 30 päevaks',
customerPanel_title: 'Kliendi paneel',
dangerZone_title: 'Ohtliku ala',
date: 'Kuupäev',
+7
View File
@@ -147,6 +147,13 @@ export default {
customFieldGroups_title: 'گروه‌های فیلد سفارشی',
customField_title: 'فیلد سفارشی',
customFields_title: 'فیلدهای سفارشی',
discoverPlankaPro: '✨ ویژگی‌های بیشتر برای تابلوهای شما: PLANKA Pro را کشف کنید',
discoverPlankaPro_title: 'PLANKA Pro را کشف کنید',
upgradeTeamToPro_title: 'ارتقای تیم به Pro',
proFeatureCalendar: '✨ نمای تقویم برای تابلوهای شما',
proFeatureRecurringCards: '✨ کارت‌های تکرارشونده و خودکارسازی',
proFeatureGuestRoles: '✨ نقش‌های مهمان و همکاری خارجی',
dismissProBannerFor30Days: 'بستن برای ۳۰ روز',
customerPanel_title: 'پنل مشتری',
dangerZone_title: 'منطقه خطر',
date: 'تاریخ',
+7
View File
@@ -140,6 +140,13 @@ export default {
customFieldGroups_title: 'Mukautettujen kenttien ryhmät',
customField_title: 'Mukautettu kenttä',
customFields_title: 'Mukautetut kentät',
discoverPlankaPro: '✨ Lisää ominaisuuksia tauluillesi: Tutustu PLANKA Pro:hon',
discoverPlankaPro_title: 'Tutustu PLANKA Pro:hon',
upgradeTeamToPro_title: 'Päivitä tiimi Pro-versioon',
proFeatureCalendar: '✨ Kalenterinäkymä tauluillesi',
proFeatureRecurringCards: '✨ Toistuvat kortit ja automaatio',
proFeatureGuestRoles: '✨ Vierasroolit ja ulkoinen yhteistyö',
dismissProBannerFor30Days: 'Sulje 30 päiväksi',
customerPanel_title: 'Asiakaspaneeli',
dangerZone_title: 'Vaaravyöhyke',
date: 'Päivämäärä',
+7
View File
@@ -148,6 +148,13 @@ export default {
customFieldGroups_title: 'Groupes de champs personnalisés',
customField_title: 'Champ personnalisé',
customFields_title: 'Champs personnalisés',
discoverPlankaPro: '✨ Plus de fonctionnalités pour vos tableaux : Découvrez PLANKA Pro',
discoverPlankaPro_title: 'Découvrez PLANKA Pro',
upgradeTeamToPro_title: "Passer l'équipe à Pro",
proFeatureCalendar: '✨ Vue calendrier pour vos tableaux',
proFeatureRecurringCards: '✨ Cartes récurrentes et automatisation',
proFeatureGuestRoles: '✨ Rôles invités et collaboration externe',
dismissProBannerFor30Days: 'Fermer pendant 30 jours',
customerPanel_title: 'Panneau client',
dangerZone_title: 'Zone dangereuse',
date: 'Date',
+7
View File
@@ -138,6 +138,13 @@ export default {
customFieldGroups_title: 'Egyedi mezőcsoportok',
customField_title: 'Egyedi mező',
customFields_title: 'Egyedi mezők',
discoverPlankaPro: '✨ Több funkció a tábláidhoz: Fedezd fel a PLANKA Pro-t',
discoverPlankaPro_title: 'Fedezd fel a PLANKA Pro-t',
upgradeTeamToPro_title: 'Csapat frissítése Pro-ra',
proFeatureCalendar: '✨ Naptár nézet a tábláidhoz',
proFeatureRecurringCards: '✨ Ismétlődő kártyák és automatizálás',
proFeatureGuestRoles: '✨ Vendég szerepkörök és külső együttműködés',
dismissProBannerFor30Days: 'Bezárás 30 napra',
customerPanel_title: 'Ügyfélpanel',
dangerZone_title: 'Veszélyzóna',
date: 'Dátum',
+7
View File
@@ -145,6 +145,13 @@ export default {
customFieldGroups_title: 'Grup bidang kustom',
customField_title: 'Bidang kustom',
customFields_title: 'Bidang kustom',
discoverPlankaPro: '✨ Lebih banyak fitur untuk papan Anda: Temukan PLANKA Pro',
discoverPlankaPro_title: 'Temukan PLANKA Pro',
upgradeTeamToPro_title: 'Tingkatkan tim ke Pro',
proFeatureCalendar: '✨ Tampilan Kalender untuk papan Anda',
proFeatureRecurringCards: '✨ Kartu Berulang & Otomatisasi',
proFeatureGuestRoles: '✨ Peran Tamu & Kolaborasi Eksternal',
dismissProBannerFor30Days: 'Tutup selama 30 hari',
customerPanel_title: 'Panel pelanggan',
dangerZone_title: 'Zona berbahaya',
date: 'Tanggal',
+7
View File
@@ -145,6 +145,13 @@ export default {
customFieldGroups_title: 'Campi personalizzati',
customField_title: 'Campo personalizzato',
customFields_title: 'Campi personalizzati',
discoverPlankaPro: '✨ Più funzionalità per le tue bacheche: Scopri PLANKA Pro',
discoverPlankaPro_title: 'Scopri PLANKA Pro',
upgradeTeamToPro_title: 'Aggiorna il team a Pro',
proFeatureCalendar: '✨ Vista calendario per le tue bacheche',
proFeatureRecurringCards: '✨ Schede ricorrenti e automazione',
proFeatureGuestRoles: '✨ Ruoli ospite e collaborazione esterna',
dismissProBannerFor30Days: 'Chiudi per 30 giorni',
customerPanel_title: 'Pannello cliente',
dangerZone_title: 'Zona pericolosa',
date: 'Data',
+7
View File
@@ -141,6 +141,13 @@ export default {
customFieldGroups_title: 'カスタムフィールドグループ',
customField_title: 'カスタムフィールド',
customFields_title: 'カスタムフィールド',
discoverPlankaPro: '✨ ボードのさらなる機能: PLANKA Proを発見',
discoverPlankaPro_title: 'PLANKA Proを発見',
upgradeTeamToPro_title: 'チームをProにアップグレード',
proFeatureCalendar: '✨ ボード用カレンダービュー',
proFeatureRecurringCards: '✨ 繰り返しカードと自動化',
proFeatureGuestRoles: '✨ ゲストロールと外部コラボレーション',
dismissProBannerFor30Days: '30日間閉じる',
customerPanel_title: '顧客パネル',
dangerZone_title: '危険ゾーン',
date: '日付',
+7
View File
@@ -136,6 +136,13 @@ export default {
customFieldGroups_title: '사용자 정의 필드 그룹들',
customField_title: '사용자 정의 필드',
customFields_title: '사용자 정의 필드들',
discoverPlankaPro: '✨ 보드를 위한 더 많은 기능: PLANKA Pro 알아보기',
discoverPlankaPro_title: 'PLANKA Pro 알아보기',
upgradeTeamToPro_title: '팀을 Pro로 업그레이드',
proFeatureCalendar: '✨ 보드용 캘린더 뷰',
proFeatureRecurringCards: '✨ 반복 카드 및 자동화',
proFeatureGuestRoles: '✨ 게스트 역할 및 외부 협업',
dismissProBannerFor30Days: '30일 동안 닫기',
customerPanel_title: '고객 패널',
dangerZone_title: '위험 구역',
date: '날짜',
+7
View File
@@ -144,6 +144,13 @@ export default {
customFieldGroups_title: 'Aangepaste veldgroepen',
customField_title: 'Aangepast veld',
customFields_title: 'Aangepaste velden',
discoverPlankaPro: '✨ Meer functies voor uw borden: Ontdek PLANKA Pro',
discoverPlankaPro_title: 'Ontdek PLANKA Pro',
upgradeTeamToPro_title: 'Team upgraden naar Pro',
proFeatureCalendar: '✨ Kalenderweergave voor uw borden',
proFeatureRecurringCards: '✨ Terugkerende kaarten en automatisering',
proFeatureGuestRoles: '✨ Gastrol en externe samenwerking',
dismissProBannerFor30Days: 'Sluiten voor 30 dagen',
customerPanel_title: 'Klantenpaneel',
dangerZone_title: 'Gevaarlijke zone',
date: 'Datum',
+7
View File
@@ -143,6 +143,13 @@ export default {
customFieldGroups_title: 'Grupy pól własnych',
customField_title: 'Własne pole',
customFields_title: 'Własne pola',
discoverPlankaPro: '✨ Więcej funkcji dla Twoich tablic: Odkryj PLANKA Pro',
discoverPlankaPro_title: 'Odkryj PLANKA Pro',
upgradeTeamToPro_title: 'Uaktualnij zespół do Pro',
proFeatureCalendar: '✨ Widok kalendarza dla Twoich tablic',
proFeatureRecurringCards: '✨ Powtarzające się karty i automatyzacja',
proFeatureGuestRoles: '✨ Role gościa i zewnętrzna współpraca',
dismissProBannerFor30Days: 'Zamknij na 30 dni',
customerPanel_title: 'Panel klienta',
dangerZone_title: 'Strefa niebezpieczeństwa',
date: 'Data',
+7
View File
@@ -146,6 +146,13 @@ export default {
customFieldGroups_title: 'Grupos de campo personalizado',
customField_title: 'Campo personalizado',
customFields_title: 'Campos personalizados',
discoverPlankaPro: '✨ Mais recursos para seus quadros: Descubra o PLANKA Pro',
discoverPlankaPro_title: 'Descubra o PLANKA Pro',
upgradeTeamToPro_title: 'Atualizar equipe para Pro',
proFeatureCalendar: '✨ Visualização de calendário para seus quadros',
proFeatureRecurringCards: '✨ Cartões recorrentes e automação',
proFeatureGuestRoles: '✨ Funções de convidado e colaboração externa',
dismissProBannerFor30Days: 'Fechar por 30 dias',
customerPanel_title: 'Painel do cliente',
dangerZone_title: 'Zona de perigo',
date: 'Data',
+7
View File
@@ -148,6 +148,13 @@ export default {
customFieldGroups_title: 'Grupos de campos personalizados',
customField_title: 'Campo personalizado',
customFields_title: 'Campos personalizados',
discoverPlankaPro: '✨ Mais funcionalidades para os seus quadros: Descubra o PLANKA Pro',
discoverPlankaPro_title: 'Descubra o PLANKA Pro',
upgradeTeamToPro_title: 'Atualizar equipa para Pro',
proFeatureCalendar: '✨ Vista de calendário para os seus quadros',
proFeatureRecurringCards: '✨ Cartões recorrentes e automatização',
proFeatureGuestRoles: '✨ Funções de convidado e colaboração externa',
dismissProBannerFor30Days: 'Fechar durante 30 dias',
customerPanel_title: 'Painel do cliente',
dangerZone_title: 'Zona perigosa',
date: 'Data',
+7
View File
@@ -142,6 +142,13 @@ export default {
customFieldGroups_title: 'Grupuri de câmpuri personalizate',
customField_title: 'Câmp personalizat',
customFields_title: 'Câmpuri personalizate',
discoverPlankaPro: '✨ Mai multe funcții pentru panourile tale: Descoperă PLANKA Pro',
discoverPlankaPro_title: 'Descoperă PLANKA Pro',
upgradeTeamToPro_title: 'Actualizează echipa la Pro',
proFeatureCalendar: '✨ Vizualizare calendar pentru panourile tale',
proFeatureRecurringCards: '✨ Carduri recurente și automatizare',
proFeatureGuestRoles: '✨ Roluri invitat și colaborare externă',
dismissProBannerFor30Days: 'Închide pentru 30 de zile',
customerPanel_title: 'Panoul clientului',
dangerZone_title: 'Zona periculoasă',
date: 'Data',
+7
View File
@@ -145,6 +145,13 @@ export default {
customFieldGroups_title: 'Группы настраиваемых полей',
customField_title: 'Настраиваемое поле',
customFields_title: 'Настраиваемые поля',
discoverPlankaPro: '✨ Больше возможностей для ваших досок: Откройте PLANKA Pro',
discoverPlankaPro_title: 'Откройте PLANKA Pro',
upgradeTeamToPro_title: 'Улучшить команду до Pro',
proFeatureCalendar: '✨ Вид календаря для ваших досок',
proFeatureRecurringCards: '✨ Повторяющиеся карточки и автоматизация',
proFeatureGuestRoles: '✨ Роли гостей и внешнее сотрудничество',
dismissProBannerFor30Days: 'Закрыть на 30 дней',
customerPanel_title: 'Панель клиента',
dangerZone_title: 'Опасная зона',
date: 'Дата',
+7
View File
@@ -139,6 +139,13 @@ export default {
customFieldGroups_title: 'Skupiny vlastných polí',
customField_title: 'Vlastné pole',
customFields_title: 'Vlastné polia',
discoverPlankaPro: '✨ Viac funkcií pre vaše tabule: Objavte PLANKA Pro',
discoverPlankaPro_title: 'Objavte PLANKA Pro',
upgradeTeamToPro_title: 'Inovovať tím na Pro',
proFeatureCalendar: '✨ Zobrazenie kalendára pre vaše tabule',
proFeatureRecurringCards: '✨ Opakujúce sa karty a automatizácia',
proFeatureGuestRoles: '✨ Roly hosťa a externá spolupráca',
dismissProBannerFor30Days: 'Zavrieť na 30 dní',
customerPanel_title: 'Panel zákazníka',
dangerZone_title: 'Nebezpečná zóna',
date: 'Dátum',
+7
View File
@@ -142,6 +142,13 @@ export default {
customFieldGroups_title: 'Групе прилагођених поља',
customField_title: 'Прилагођено поље',
customFields_title: 'Прилагођена поља',
discoverPlankaPro: '✨ Више функција за ваше табле: Откријте PLANKA Pro',
discoverPlankaPro_title: 'Откријте PLANKA Pro',
upgradeTeamToPro_title: 'Надоградите тим на Pro',
proFeatureCalendar: '✨ Приказ календара за ваше табле',
proFeatureRecurringCards: '✨ Понављајуће картице и аутоматизација',
proFeatureGuestRoles: '✨ Гостујуће улоге и спољна сарадња',
dismissProBannerFor30Days: 'Затвори на 30 дана',
customerPanel_title: 'Панел купца',
dangerZone_title: 'Опасна зона',
date: 'Датум',
+7
View File
@@ -143,6 +143,13 @@ export default {
customFieldGroups_title: 'Grupe prilagođenih polja',
customField_title: 'Prilagođeno polje',
customFields_title: 'Prilagođena polja',
discoverPlankaPro: '✨ Više funkcija za vaše table: Otkrijte PLANKA Pro',
discoverPlankaPro_title: 'Otkrijte PLANKA Pro',
upgradeTeamToPro_title: 'Nadogradite tim na Pro',
proFeatureCalendar: '✨ Prikaz kalendara za vaše table',
proFeatureRecurringCards: '✨ Ponavljajuće kartice i automatizacija',
proFeatureGuestRoles: '✨ Gostujuće uloge i spoljna saradnja',
dismissProBannerFor30Days: 'Zatvori na 30 dana',
customerPanel_title: 'Panel kupca',
dangerZone_title: 'Opasna zona',
date: 'Datum',
+7
View File
@@ -149,6 +149,13 @@ export default {
customFieldGroups_title: 'Anpassade fältgrupper',
customField_title: 'Anpassat fält',
customFields_title: 'Anpassade fält',
discoverPlankaPro: '✨ Fler funktioner för dina bräden: Upptäck PLANKA Pro',
discoverPlankaPro_title: 'Upptäck PLANKA Pro',
upgradeTeamToPro_title: 'Uppgradera teamet till Pro',
proFeatureCalendar: '✨ Kalendervy för dina bräden',
proFeatureRecurringCards: '✨ Återkommande kort och automatisering',
proFeatureGuestRoles: '✨ Gästroller och externt samarbete',
dismissProBannerFor30Days: 'Stäng i 30 dagar',
customerPanel_title: 'Kundpanel',
dangerZone_title: 'Farozon',
date: 'Datum',
+7
View File
@@ -146,6 +146,13 @@ export default {
customFieldGroups_title: 'özel alan grupları',
customField_title: 'Özel alan',
customFields_title: 'Özel alanlar',
discoverPlankaPro: "✨ Panolarınız için daha fazla özellik: PLANKA Pro'yu keşfedin",
discoverPlankaPro_title: "PLANKA Pro'yu keşfedin",
upgradeTeamToPro_title: "Ekibi Pro'ya yükseltin",
proFeatureCalendar: '✨ Panolarınız için takvim görünümü',
proFeatureRecurringCards: '✨ Yinelenen kartlar ve otomasyon',
proFeatureGuestRoles: '✨ Misafir rolleri ve harici iş birliği',
dismissProBannerFor30Days: '30 gün için kapat',
customerPanel_title: 'Müşteri paneli',
dangerZone_title: 'Tehlikeli bölge',
date: 'tarih',
+7
View File
@@ -144,6 +144,13 @@ export default {
customFieldGroups_title: 'Користувацькі групи полів',
customField_title: 'Користувацьке поле',
customFields_title: 'Користувацькі поля',
discoverPlankaPro: '✨ Більше можливостей для ваших дощок: Відкрийте PLANKA Pro',
discoverPlankaPro_title: 'Відкрийте PLANKA Pro',
upgradeTeamToPro_title: 'Оновити команду до Pro',
proFeatureCalendar: '✨ Вигляд календаря для ваших дощок',
proFeatureRecurringCards: '✨ Повторювані картки та автоматизація',
proFeatureGuestRoles: '✨ Ролі гостей та зовнішня співпраця',
dismissProBannerFor30Days: 'Закрити на 30 днів',
customerPanel_title: 'Панель клієнта',
dangerZone_title: 'Небезпечна зона',
date: 'Дата',
+7
View File
@@ -140,6 +140,13 @@ export default {
customFieldGroups_title: 'Maxsus maydon guruhlari',
customField_title: 'Maxsus maydon',
customFields_title: 'Maxsus maydonlar',
discoverPlankaPro: "✨ Doskalaringiz uchun ko'proq imkoniyatlar: PLANKA Pro ni kashf eting",
discoverPlankaPro_title: 'PLANKA Pro ni kashf eting',
upgradeTeamToPro_title: 'Jamoani Pro ga yangilash',
proFeatureCalendar: "✨ Doskalaringiz uchun kalendar ko'rinishi",
proFeatureRecurringCards: '✨ Takrorlanuvchi kartalar va avtomatlashtirish',
proFeatureGuestRoles: '✨ Mehmon rollari va tashqi hamkorlik',
dismissProBannerFor30Days: '30 kunga yopish',
customerPanel_title: 'Mijoz paneli',
dangerZone_title: 'Xavfli hudud',
date: 'Sana',
+7
View File
@@ -145,6 +145,13 @@ export default {
customFieldGroups_title: 'Các nhóm trường tùy chỉnh',
customField_title: 'Trường tùy chỉnh',
customFields_title: 'Các trường tùy chỉnh',
discoverPlankaPro: '✨ Nhiều tính năng hơn cho bảng của bạn: Khám phá PLANKA Pro',
discoverPlankaPro_title: 'Khám phá PLANKA Pro',
upgradeTeamToPro_title: 'Nâng cấp nhóm lên Pro',
proFeatureCalendar: '✨ Chế độ xem lịch cho bảng của bạn',
proFeatureRecurringCards: '✨ Thẻ định kỳ và tự động hóa',
proFeatureGuestRoles: '✨ Vai trò khách và cộng tác bên ngoài',
dismissProBannerFor30Days: 'Đóng trong 30 ngày',
customerPanel_title: 'Bảng điều khiển khách hàng',
dangerZone_title: 'Khu vực nguy hiểm',
date: 'Ngày',
+7
View File
@@ -125,6 +125,13 @@ export default {
customFieldGroups_title: '自定义字段组',
customField_title: '自定义字段',
customFields_title: '自定义字段',
discoverPlankaPro: '✨ 为您的看板提供更多功能:探索 PLANKA Pro',
discoverPlankaPro_title: '探索 PLANKA Pro',
upgradeTeamToPro_title: '将团队升级到 Pro',
proFeatureCalendar: '✨ 看板的日历视图',
proFeatureRecurringCards: '✨ 重复卡片与自动化',
proFeatureGuestRoles: '✨ 访客角色与外部协作',
dismissProBannerFor30Days: '关闭 30 天',
customerPanel_title: '客户面板',
dangerZone_title: '危险区域',
date: '日期',
+7
View File
@@ -125,6 +125,13 @@ export default {
customFieldGroups_title: '自定義欄位群組',
customField_title: '自定義欄位',
customFields_title: '自定義欄位',
discoverPlankaPro: '✨ 為您的看板提供更多功能:探索 PLANKA Pro',
discoverPlankaPro_title: '探索 PLANKA Pro',
upgradeTeamToPro_title: '將團隊升級至 Pro',
proFeatureCalendar: '✨ 看板的日曆檢視',
proFeatureRecurringCards: '✨ 重複卡片與自動化',
proFeatureGuestRoles: '✨ 訪客角色與外部協作',
dismissProBannerFor30Days: '關閉 30 天',
customerPanel_title: '客戶面板',
dangerZone_title: '危險區域',
date: '日期',