diff --git a/frontend/src/main.js b/frontend/src/main.js
index f85676a1..21ce88fa 100644
--- a/frontend/src/main.js
+++ b/frontend/src/main.js
@@ -15,11 +15,25 @@ const i18n = new VueI18n();
Vue.use(Buefy, {});
Vue.config.productionTip = false;
-// Globals.
-Vue.prototype.$utils = new Utils(i18n);
-Vue.prototype.$api = api;
-new Vue({
+// Setup the router.
+router.beforeEach((to, from, next) => {
+ if (to.matched.length === 0) {
+ next('/404');
+ } else {
+ next();
+ }
+});
+
+router.afterEach((to) => {
+ Vue.nextTick(() => {
+ const t = to.meta.title && i18n.te(to.meta.title) ? `${i18n.tc(to.meta.title, 0)} /` : '';
+ document.title = `${t} listmonk`;
+ });
+});
+
+
+const v = new Vue({
router,
store,
i18n,
@@ -29,20 +43,28 @@ new Vue({
isLoaded: false,
},
- methods: {
- loadConfig() {
- api.getServerConfig().then((data) => {
- api.getLang(data.lang).then((lang) => {
- i18n.locale = data.lang;
- i18n.setLocaleMessage(i18n.locale, lang);
- this.isLoaded = true;
- });
- });
- },
+ mounted() {
+ v.isLoaded = true;
},
+});
- created() {
- this.loadConfig();
- api.getSettings();
- },
-}).$mount('#app');
+
+// Load server side config and language before mounting the app.
+api.getServerConfig().then((data) => {
+ api.getLang(data.lang).then((lang) => {
+ i18n.locale = data.lang;
+ i18n.setLocaleMessage(i18n.locale, lang);
+
+ Vue.prototype.$utils = new Utils(i18n);
+ Vue.prototype.$api = api;
+
+ // Set the page title after i18n has loaded.
+ const to = router.history.current;
+ const t = to.meta.title ? `${i18n.tc(to.meta.title, 0)} /` : '';
+ document.title = `${t} listmonk`;
+
+ v.$mount('#app');
+ });
+});
+
+api.getSettings();
diff --git a/frontend/src/router/index.js b/frontend/src/router/index.js
index 5fa106fb..1659879d 100644
--- a/frontend/src/router/index.js
+++ b/frontend/src/router/index.js
@@ -14,97 +14,97 @@ const routes = [
{
path: '/',
name: 'dashboard',
- meta: { title: 'Dashboard' },
+ meta: { title: '' },
component: () => import(/* webpackChunkName: "main" */ '../views/Dashboard.vue'),
},
{
path: '/lists',
name: 'lists',
- meta: { title: 'Lists', group: 'lists' },
+ meta: { title: 'globals.terms.lists', group: 'lists' },
component: () => import(/* webpackChunkName: "main" */ '../views/Lists.vue'),
},
{
path: '/lists/forms',
name: 'forms',
- meta: { title: 'Forms', group: 'lists' },
+ meta: { title: 'forms.title', group: 'lists' },
component: () => import(/* webpackChunkName: "main" */ '../views/Forms.vue'),
},
{
path: '/lists/:id',
name: 'lists',
- meta: { title: 'Lists', group: 'lists' },
+ meta: { title: 'globals.terms.lists', group: 'lists' },
component: () => import(/* webpackChunkName: "main" */ '../views/Lists.vue'),
},
{
path: '/subscribers',
name: 'subscribers',
- meta: { title: 'Subscribers', group: 'subscribers' },
+ meta: { title: 'globals.terms.subscribers', group: 'subscribers' },
component: () => import(/* webpackChunkName: "main" */ '../views/Subscribers.vue'),
},
{
path: '/subscribers/import',
name: 'import',
- meta: { title: 'Import subscribers', group: 'subscribers' },
+ meta: { title: 'import.title', group: 'subscribers' },
component: () => import(/* webpackChunkName: "main" */ '../views/Import.vue'),
},
{
path: '/subscribers/bounces',
name: 'bounces',
- meta: { title: 'Bounces', group: 'subscribers' },
+ meta: { title: 'globals.terms.bounces', group: 'subscribers' },
component: () => import(/* webpackChunkName: "main" */ '../views/Bounces.vue'),
},
{
path: '/subscribers/lists/:listID',
name: 'subscribers_list',
- meta: { title: 'Subscribers', group: 'subscribers' },
+ meta: { title: 'globals.terms.subscribers', group: 'subscribers' },
component: () => import(/* webpackChunkName: "main" */ '../views/Subscribers.vue'),
},
{
path: '/subscribers/:id',
name: 'subscriber',
- meta: { title: 'Subscribers', group: 'subscribers' },
+ meta: { title: 'globals.terms.subscribers', group: 'subscribers' },
component: () => import(/* webpackChunkName: "main" */ '../views/Subscribers.vue'),
},
{
path: '/campaigns',
name: 'campaigns',
- meta: { title: 'Campaigns', group: 'campaigns' },
+ meta: { title: 'globals.terms.campaigns', group: 'campaigns' },
component: () => import(/* webpackChunkName: "main" */ '../views/Campaigns.vue'),
},
{
path: '/campaigns/media',
name: 'media',
- meta: { title: 'Media', group: 'campaigns' },
+ meta: { title: 'globals.terms.media', group: 'campaigns' },
component: () => import(/* webpackChunkName: "main" */ '../views/Media.vue'),
},
{
path: '/campaigns/templates',
name: 'templates',
- meta: { title: 'Templates', group: 'campaigns' },
+ meta: { title: 'globals.terms.templates', group: 'campaigns' },
component: () => import(/* webpackChunkName: "main" */ '../views/Templates.vue'),
},
{
path: '/campaigns/analytics',
name: 'campaignAnalytics',
- meta: { title: 'Campaign analytics', group: 'campaigns' },
+ meta: { title: 'analytics.title', group: 'campaigns' },
component: () => import(/* webpackChunkName: "main" */ '../views/CampaignAnalytics.vue'),
},
{
path: '/campaigns/:id',
name: 'campaign',
- meta: { title: 'Campaign', group: 'campaigns' },
+ meta: { title: 'globals.terms.campaign', group: 'campaigns' },
component: () => import(/* webpackChunkName: "main" */ '../views/Campaign.vue'),
},
{
path: '/settings',
name: 'settings',
- meta: { title: 'Settings', group: 'settings' },
+ meta: { title: 'globals.terms.settings', group: 'settings' },
component: () => import(/* webpackChunkName: "main" */ '../views/Settings.vue'),
},
{
path: '/settings/logs',
name: 'logs',
- meta: { title: 'Logs', group: 'settings' },
+ meta: { title: 'logs.title', group: 'settings' },
component: () => import(/* webpackChunkName: "main" */ '../views/Logs.vue'),
},
];
@@ -122,18 +122,4 @@ const router = new VueRouter({
},
});
-router.beforeEach((to, from, next) => {
- if (to.matched.length === 0) {
- next('/404');
- } else {
- next();
- }
-});
-
-router.afterEach((to) => {
- Vue.nextTick(() => {
- document.title = `${to.meta.title} / listmonk`;
- });
-});
-
export default router;
diff --git a/frontend/src/utils.js b/frontend/src/utils.js
index e5276d9d..697c36f3 100644
--- a/frontend/src/utils.js
+++ b/frontend/src/utils.js
@@ -4,7 +4,9 @@ import {
} from 'buefy';
import dayjs from 'dayjs';
import relativeTime from 'dayjs/plugin/relativeTime';
+import updateLocale from 'dayjs/plugin/updateLocale';
+dayjs.extend(updateLocale);
dayjs.extend(relativeTime);
const reEmail = /(.+?)@(.+?)/ig;
@@ -25,6 +27,26 @@ export default class Utils {
constructor(i18n) {
this.i18n = i18n;
this.intlNumFormat = new Intl.NumberFormat();
+
+ if (i18n) {
+ dayjs.updateLocale('en', {
+ relativeTime: {
+ future: '%s',
+ past: '%s',
+ s: `${i18n.tc('globals.terms.second', 2)}`,
+ m: `1 ${i18n.tc('globals.terms.minute', 1)}`,
+ mm: `%d ${i18n.tc('globals.terms.minute', 2)}`,
+ h: `1 ${i18n.tc('globals.terms.hour', 1)}`,
+ hh: `%d ${i18n.tc('globals.terms.hour', 2)}`,
+ d: `1 ${i18n.tc('globals.terms.day', 1)}`,
+ dd: `%d ${i18n.tc('globals.terms.day', 2)}`,
+ M: `1 ${i18n.tc('globals.terms.month', 1)}`,
+ MM: `%d ${i18n.tc('globals.terms.month', 2)}`,
+ y: `${i18n.tc('globals.terms.year', 1)}`,
+ yy: `%d ${i18n.tc('globals.terms.year', 2)}`,
+ },
+ });
+ }
}
// Parses an ISO timestamp to a simpler form.
diff --git a/frontend/src/views/Dashboard.vue b/frontend/src/views/Dashboard.vue
index d84068ad..4397ee56 100644
--- a/frontend/src/views/Dashboard.vue
+++ b/frontend/src/views/Dashboard.vue
@@ -218,7 +218,7 @@ export default Vue.extend({
// Pull the charts.
this.$api.getDashboardCharts().then((data) => {
this.isChartsLoading = false;
- this.renderChart(this.$t('dashboard.linkClicks'), data.campaignViews, this.$refs['chart-views']);
+ this.renderChart(this.$t('dashboard.campaignViews'), data.campaignViews, this.$refs['chart-views']);
this.renderChart(this.$t('dashboard.linkClicks'), data.linkClicks, this.$refs['chart-clicks']);
});
},
diff --git a/frontend/src/views/Lists.vue b/frontend/src/views/Lists.vue
index df5661cc..71c2ab4f 100644
--- a/frontend/src/views/Lists.vue
+++ b/frontend/src/views/Lists.vue
@@ -98,7 +98,7 @@
header-class="cy-subscribers" width="10%">
-
+
{{ $utils.formatNumber(count) }}
diff --git a/i18n/cs-cz.json b/i18n/cs-cz.json
index 945d6d7e..14352e3b 100644
--- a/i18n/cs-cz.json
+++ b/i18n/cs-cz.json
@@ -140,6 +140,7 @@
"globals.days.4": "Čt",
"globals.days.5": "Pá",
"globals.days.6": "So",
+ "globals.days.7": "Sat",
"globals.fields.createdAt": "Vytvořeno",
"globals.fields.id": "ID",
"globals.fields.name": "Jméno",
@@ -186,11 +187,16 @@
"globals.terms.campaign": "Kampaň | Kampaně",
"globals.terms.campaigns": "Kampaně",
"globals.terms.dashboard": "Řídicí panel",
+ "globals.terms.day": "Day | Days",
+ "globals.terms.hour": "Hour | Hours",
"globals.terms.list": "Seznam | Seznamy",
"globals.terms.lists": "Seznamy",
"globals.terms.media": "Médium | Média",
"globals.terms.messenger": "Kurýr | Kurýři",
"globals.terms.messengers": "Kurýři",
+ "globals.terms.minute": "Minute | Minutes",
+ "globals.terms.month": "Month | Months",
+ "globals.terms.second": "Second | Seconds",
"globals.terms.settings": "Nastavení",
"globals.terms.subscriber": "Odběratel | Odběratelé",
"globals.terms.subscribers": "Odběratelé",
@@ -198,6 +204,7 @@
"globals.terms.tags": "Značky",
"globals.terms.template": "Šablona | Šablony",
"globals.terms.templates": "Šablony",
+ "globals.terms.year": "Year | Years",
"import.alreadyRunning": "Import již běží. Počkejte na jeho dokončení nebo jej zastavte před dalším pokusem.",
"import.blocklist": "Seznam blokovaných",
"import.csvDelim": "Oddělovač CSV",
diff --git a/i18n/de.json b/i18n/de.json
index 2e4f9c65..e3976af3 100644
--- a/i18n/de.json
+++ b/i18n/de.json
@@ -140,6 +140,7 @@
"globals.days.4": "Do",
"globals.days.5": "Fr",
"globals.days.6": "Sa",
+ "globals.days.7": "Sat",
"globals.fields.createdAt": "Erstellt",
"globals.fields.id": "ID",
"globals.fields.name": "Name",
@@ -186,11 +187,16 @@
"globals.terms.campaign": "Kampagne | Kampagnen",
"globals.terms.campaigns": "Kampagnen",
"globals.terms.dashboard": "Überblick",
+ "globals.terms.day": "Day | Days",
+ "globals.terms.hour": "Hour | Hours",
"globals.terms.list": "Liste | Listen",
"globals.terms.lists": "Listen",
"globals.terms.media": "Medien | Medien",
"globals.terms.messenger": "Messenger | Messenger",
"globals.terms.messengers": "Messenger",
+ "globals.terms.minute": "Minute | Minutes",
+ "globals.terms.month": "Month | Months",
+ "globals.terms.second": "Second | Seconds",
"globals.terms.settings": "Einstellungen",
"globals.terms.subscriber": "Abonnent | Abonnenten",
"globals.terms.subscribers": "Abonnenten",
@@ -198,6 +204,7 @@
"globals.terms.tags": "Tags",
"globals.terms.template": "Vorlage | Vorlagen",
"globals.terms.templates": "Vorlagen",
+ "globals.terms.year": "Year | Years",
"import.alreadyRunning": "Bitte warte bis der aktuelle Importvorgang beendet wurde.",
"import.blocklist": "Sperrliste",
"import.csvDelim": "CSV-Trennzeichen",
diff --git a/i18n/en.json b/i18n/en.json
index 419a8c69..72b73233 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -134,12 +134,13 @@
"globals.buttons.save": "Save",
"globals.buttons.saveChanges": "Save changes",
"globals.days.0": "Sun",
- "globals.days.1": "Mon",
- "globals.days.2": "Tue",
- "globals.days.3": "Wed",
- "globals.days.4": "Thu",
- "globals.days.5": "Fri",
- "globals.days.6": "Sat",
+ "globals.days.1": "Sun",
+ "globals.days.2": "Mon",
+ "globals.days.3": "Tue",
+ "globals.days.4": "Wed",
+ "globals.days.5": "Thu",
+ "globals.days.6": "Fri",
+ "globals.days.7": "Sat",
"globals.fields.createdAt": "Created",
"globals.fields.id": "ID",
"globals.fields.name": "Name",
@@ -186,11 +187,16 @@
"globals.terms.campaign": "Campaign | Campaigns",
"globals.terms.campaigns": "Campaigns",
"globals.terms.dashboard": "Dashboard",
+ "globals.terms.day": "Day | Days",
+ "globals.terms.hour": "Hour | Hours",
"globals.terms.list": "List | Lists",
"globals.terms.lists": "Lists",
"globals.terms.media": "Media | Media",
"globals.terms.messenger": "Messenger | Messengers",
"globals.terms.messengers": "Messengers",
+ "globals.terms.minute": "Minute | Minutes",
+ "globals.terms.month": "Month | Months",
+ "globals.terms.second": "Second | Seconds",
"globals.terms.settings": "Settings",
"globals.terms.subscriber": "Subscriber | Subscribers",
"globals.terms.subscribers": "Subscribers",
@@ -198,6 +204,7 @@
"globals.terms.tags": "Tags",
"globals.terms.template": "Template | Templates",
"globals.terms.templates": "Templates",
+ "globals.terms.year": "Year | Years",
"import.alreadyRunning": "An import is already running. Wait for it to finish or stop it before trying again.",
"import.blocklist": "Blocklist",
"import.csvDelim": "CSV delimiter",
diff --git a/i18n/es.json b/i18n/es.json
index 69329bd7..0a7dbc18 100644
--- a/i18n/es.json
+++ b/i18n/es.json
@@ -140,6 +140,7 @@
"globals.days.4": "Jueves",
"globals.days.5": "Viernes",
"globals.days.6": "Sábado",
+ "globals.days.7": "Sat",
"globals.fields.createdAt": "Creado",
"globals.fields.id": "ID",
"globals.fields.name": "Nombre",
@@ -186,11 +187,16 @@
"globals.terms.campaign": "Campaña | Campañas",
"globals.terms.campaigns": "Campañas",
"globals.terms.dashboard": "Panel",
+ "globals.terms.day": "Day | Days",
+ "globals.terms.hour": "Hour | Hours",
"globals.terms.list": "Lista | Listas",
"globals.terms.lists": "Listas",
"globals.terms.media": "Media | Media",
"globals.terms.messenger": "Mensajero | Mensajeros",
"globals.terms.messengers": "Mensajeros",
+ "globals.terms.minute": "Minute | Minutes",
+ "globals.terms.month": "Month | Months",
+ "globals.terms.second": "Second | Seconds",
"globals.terms.settings": "Configuraciones",
"globals.terms.subscriber": "Subscriptor | Subscriptores",
"globals.terms.subscribers": "Subscriptores",
@@ -198,6 +204,7 @@
"globals.terms.tags": "Etiqueta",
"globals.terms.template": "Plantilla | Plantillas",
"globals.terms.templates": "Plantillas",
+ "globals.terms.year": "Year | Years",
"import.alreadyRunning": "Se está ejecutándo una importación. Espere a que termine o deténgala antes de intentar otra vez.",
"import.blocklist": "Lista de bloqueados",
"import.csvDelim": "Delimitador CSV",
diff --git a/i18n/fr.json b/i18n/fr.json
index 82223fa7..e1b7b209 100644
--- a/i18n/fr.json
+++ b/i18n/fr.json
@@ -140,6 +140,7 @@
"globals.days.4": "jeu.",
"globals.days.5": "ven.",
"globals.days.6": "sam.",
+ "globals.days.7": "Sat",
"globals.fields.createdAt": "Créé·e le",
"globals.fields.id": "ID",
"globals.fields.name": "Nom",
@@ -186,11 +187,16 @@
"globals.terms.campaign": "Campagne | Campagnes",
"globals.terms.campaigns": "Campagnes",
"globals.terms.dashboard": "Tableau de bord",
+ "globals.terms.day": "Day | Days",
+ "globals.terms.hour": "Hour | Hours",
"globals.terms.list": "Liste | Listes",
"globals.terms.lists": "Listes",
"globals.terms.media": "Médias | Médias",
"globals.terms.messenger": "Service de messagerie | Services de messagerie",
"globals.terms.messengers": "Services de messagerie",
+ "globals.terms.minute": "Minute | Minutes",
+ "globals.terms.month": "Month | Months",
+ "globals.terms.second": "Second | Seconds",
"globals.terms.settings": "Paramètres",
"globals.terms.subscriber": "Abonné·e | Abonné·es",
"globals.terms.subscribers": "Abonné·es",
@@ -198,6 +204,7 @@
"globals.terms.tags": "Étiquettes",
"globals.terms.template": "Modèle | Modèles",
"globals.terms.templates": "Modèles",
+ "globals.terms.year": "Year | Years",
"import.alreadyRunning": "Une importation est déjà en cours. Attendez qu'elle se termine ou arrêtez-la avant de réessayer.",
"import.blocklist": "Bloquer les adresses importées",
"import.csvDelim": "Délimiteur CSV",
diff --git a/i18n/hu.json b/i18n/hu.json
index 6a1be2b5..cc4fe4ca 100644
--- a/i18n/hu.json
+++ b/i18n/hu.json
@@ -140,6 +140,7 @@
"globals.days.4": "Csütörtök",
"globals.days.5": "Péntek",
"globals.days.6": "Szombat",
+ "globals.days.7": "Sat",
"globals.fields.createdAt": "Létrehozva",
"globals.fields.id": "ID",
"globals.fields.name": "Név",
@@ -186,11 +187,16 @@
"globals.terms.campaign": "Kampány | Kampányok",
"globals.terms.campaigns": "Kampányok",
"globals.terms.dashboard": "Irányítópult",
+ "globals.terms.day": "Day | Days",
+ "globals.terms.hour": "Hour | Hours",
"globals.terms.list": "Lista | Listák",
"globals.terms.lists": "Listák",
"globals.terms.media": "Media | Media",
"globals.terms.messenger": "Messenger | Messengers",
"globals.terms.messengers": "Messengers",
+ "globals.terms.minute": "Minute | Minutes",
+ "globals.terms.month": "Month | Months",
+ "globals.terms.second": "Second | Seconds",
"globals.terms.settings": "Beállítások",
"globals.terms.subscriber": "Feliratkozó | Feliratkozók",
"globals.terms.subscribers": "Feliratkozók",
@@ -198,6 +204,7 @@
"globals.terms.tags": "Címkék",
"globals.terms.template": "Sablon | Sablonok",
"globals.terms.templates": "Sablonok",
+ "globals.terms.year": "Year | Years",
"import.alreadyRunning": "Már fut az importálás. Várja meg, amíg befejeződik, vagy állítsa le, mielőtt újra próbálkozna.",
"import.blocklist": "Tiltólista",
"import.csvDelim": "CSV határoló",
diff --git a/i18n/it.json b/i18n/it.json
index 16f01341..1309a6c1 100644
--- a/i18n/it.json
+++ b/i18n/it.json
@@ -140,6 +140,7 @@
"globals.days.4": "gio",
"globals.days.5": "ven",
"globals.days.6": "sab",
+ "globals.days.7": "Sat",
"globals.fields.createdAt": "Creato il ",
"globals.fields.id": "ID",
"globals.fields.name": "Nome",
@@ -186,11 +187,16 @@
"globals.terms.campaign": "Campagna | Campagne",
"globals.terms.campaigns": "Campagne",
"globals.terms.dashboard": "Dashboard",
+ "globals.terms.day": "Day | Days",
+ "globals.terms.hour": "Hour | Hours",
"globals.terms.list": "Lista | Liste",
"globals.terms.lists": "Liste",
"globals.terms.media": "Media | Media",
"globals.terms.messenger": "Strumento di messaggeria | Strumenti di messaggeria",
"globals.terms.messengers": "Strumento di messaggeria",
+ "globals.terms.minute": "Minute | Minutes",
+ "globals.terms.month": "Month | Months",
+ "globals.terms.second": "Second | Seconds",
"globals.terms.settings": "Impostazioni",
"globals.terms.subscriber": "Iscritto | Iscritti",
"globals.terms.subscribers": "Iscritti",
@@ -198,6 +204,7 @@
"globals.terms.tags": "Etichette",
"globals.terms.template": "Modello | Modelli",
"globals.terms.templates": "Modelli",
+ "globals.terms.year": "Year | Years",
"import.alreadyRunning": "Un'importazione è già in corso. Aspetta che finisca o interrompila prima di riprovare.",
"import.blocklist": "Lista degli indirizzi bloccati",
"import.csvDelim": "Delimitatore CSV",
diff --git a/i18n/ml.json b/i18n/ml.json
index 5fd349f1..f669c383 100644
--- a/i18n/ml.json
+++ b/i18n/ml.json
@@ -140,6 +140,7 @@
"globals.days.4": "വ്യാഴം",
"globals.days.5": "വെള്ളി",
"globals.days.6": "ശനി",
+ "globals.days.7": "Sat",
"globals.fields.createdAt": "നിർമ്മിച്ചത്",
"globals.fields.id": "ഐഡി",
"globals.fields.name": "പേര്",
@@ -186,11 +187,16 @@
"globals.terms.campaign": "ക്യാമ്പേയ്ൻ | ക്യാമ്പേയ്നുകൾ",
"globals.terms.campaigns": "ക്യാമ്പേയ്നുകൾ",
"globals.terms.dashboard": "ഡാഷ്ബോഡ്",
+ "globals.terms.day": "Day | Days",
+ "globals.terms.hour": "Hour | Hours",
"globals.terms.list": "ലിസ്റ്റ് | ലിസ്റ്റുകൾ",
"globals.terms.lists": "ലിസ്റ്റുകൾ",
"globals.terms.media": "മീഡിയ | മീഡിയ",
"globals.terms.messenger": "സന്ദേശ വാഹകൻ | സന്ദേശ വാഹകർ",
"globals.terms.messengers": "സന്ദേശ വാഹകർ",
+ "globals.terms.minute": "Minute | Minutes",
+ "globals.terms.month": "Month | Months",
+ "globals.terms.second": "Second | Seconds",
"globals.terms.settings": "ക്രമീകരണങ്ങൾ",
"globals.terms.subscriber": "വരിക്കാരൻ | വരിക്കാർ",
"globals.terms.subscribers": "വരിക്കാർ",
@@ -198,6 +204,7 @@
"globals.terms.tags": "ടാഗുകൾ",
"globals.terms.template": "ടെംപ്ലേറ്റ് | ടെംപ്ലേറ്റുകൾ",
"globals.terms.templates": "ടെംപ്ലേറ്റുകൾ",
+ "globals.terms.year": "Year | Years",
"import.alreadyRunning": "ഒരു ഇമ്പോർട്ട് ഇപ്പോൾ നടന്നുകൊണ്ടിരിക്കുന്നു. വീണ്ടും ശ്രമിക്കുന്നതിന് മുമ്പ് കാത്തിരിക്കുകയോ നടന്നുകൊണ്ടിരിക്കുന്ന ഇമ്പോർട്ട് നിർത്തുകയോ ചെയ്യുക.",
"import.blocklist": "തടയുന്ന പട്ടിക",
"import.csvDelim": "CSV യുടെ അതിർത്തി",
diff --git a/i18n/nl.json b/i18n/nl.json
index 3611cc19..abd80cad 100644
--- a/i18n/nl.json
+++ b/i18n/nl.json
@@ -140,6 +140,7 @@
"globals.days.4": "Do",
"globals.days.5": "Vr",
"globals.days.6": "Za",
+ "globals.days.7": "Sat",
"globals.fields.createdAt": "Aangemaakt",
"globals.fields.id": "ID",
"globals.fields.name": "Naam",
@@ -186,11 +187,16 @@
"globals.terms.campaign": "Campagne | Campagnes",
"globals.terms.campaigns": "Campagnes",
"globals.terms.dashboard": "Dashboard",
+ "globals.terms.day": "Day | Days",
+ "globals.terms.hour": "Hour | Hours",
"globals.terms.list": "Lijst | Lijsten",
"globals.terms.lists": "Lijsten",
"globals.terms.media": "Media | Media",
"globals.terms.messenger": "Messenger | Messengers",
"globals.terms.messengers": "Messengers",
+ "globals.terms.minute": "Minute | Minutes",
+ "globals.terms.month": "Month | Months",
+ "globals.terms.second": "Second | Seconds",
"globals.terms.settings": "Instellingen",
"globals.terms.subscriber": "Subscriber | Subscribers",
"globals.terms.subscribers": "Subscribers",
@@ -198,6 +204,7 @@
"globals.terms.tags": "Tags",
"globals.terms.template": "Template | Templates",
"globals.terms.templates": "Templates",
+ "globals.terms.year": "Year | Years",
"import.alreadyRunning": "Er is al een importeeractie bezig. Wacht tot deze gedaan is of annuleer voor het opnieuw te proberen.",
"import.blocklist": "Geblokkeerd",
"import.csvDelim": "CSV scheidingsteken",
diff --git a/i18n/pl.json b/i18n/pl.json
index bd1cdfe2..1d3c834f 100644
--- a/i18n/pl.json
+++ b/i18n/pl.json
@@ -140,6 +140,7 @@
"globals.days.4": "Czw",
"globals.days.5": "Pt",
"globals.days.6": "Sob",
+ "globals.days.7": "Sat",
"globals.fields.createdAt": "Utworzone",
"globals.fields.id": "ID",
"globals.fields.name": "Nazwa",
@@ -186,11 +187,16 @@
"globals.terms.campaign": "Kampania | Kampanie",
"globals.terms.campaigns": "Kampanie",
"globals.terms.dashboard": "Przegląd",
+ "globals.terms.day": "Day | Days",
+ "globals.terms.hour": "Hour | Hours",
"globals.terms.list": "Lista | Listy",
"globals.terms.lists": "Listy",
"globals.terms.media": "Media | Media",
"globals.terms.messenger": "Komunikator | Komunikatory",
"globals.terms.messengers": "Komunikatory",
+ "globals.terms.minute": "Minute | Minutes",
+ "globals.terms.month": "Month | Months",
+ "globals.terms.second": "Second | Seconds",
"globals.terms.settings": "Ustawienia",
"globals.terms.subscriber": "Subskrypcja | Subskrypcje",
"globals.terms.subscribers": "Subskrypcje",
@@ -198,6 +204,7 @@
"globals.terms.tags": "Tagi",
"globals.terms.template": "Szablon | Szablony",
"globals.terms.templates": "Szablony",
+ "globals.terms.year": "Year | Years",
"import.alreadyRunning": "Importowanie jest już uruchomione. Poczekaj, aż się zakończy, albo zatrzymaj je przed ponowną próbą.",
"import.blocklist": "Lista zablokowanych",
"import.csvDelim": "Separator CSV",
diff --git a/i18n/pt-BR.json b/i18n/pt-BR.json
index 8ac7be03..4bcbead8 100644
--- a/i18n/pt-BR.json
+++ b/i18n/pt-BR.json
@@ -140,6 +140,7 @@
"globals.days.4": "Qui",
"globals.days.5": "Sex",
"globals.days.6": "Sáb",
+ "globals.days.7": "Sat",
"globals.fields.createdAt": "Criado",
"globals.fields.id": "ID",
"globals.fields.name": "Nome",
@@ -186,11 +187,16 @@
"globals.terms.campaign": "Campanha | Campanhas",
"globals.terms.campaigns": "Campanhas",
"globals.terms.dashboard": "Painel",
+ "globals.terms.day": "Day | Days",
+ "globals.terms.hour": "Hour | Hours",
"globals.terms.list": "Lista | Listas",
"globals.terms.lists": "Listas",
"globals.terms.media": "Mídia | Mídias",
"globals.terms.messenger": "Mensageiro | Mensageiros",
"globals.terms.messengers": "Mensageiros",
+ "globals.terms.minute": "Minute | Minutes",
+ "globals.terms.month": "Month | Months",
+ "globals.terms.second": "Second | Seconds",
"globals.terms.settings": "Configurações",
"globals.terms.subscriber": "Assinante | Assinantes",
"globals.terms.subscribers": "Assinantes",
@@ -198,6 +204,7 @@
"globals.terms.tags": "Tags",
"globals.terms.template": "Modelo | Modelos",
"globals.terms.templates": "Modelos",
+ "globals.terms.year": "Year | Years",
"import.alreadyRunning": "Uma importação já está em execução. Aguarde até que termine ou pare-a antes de tentar novamente.",
"import.blocklist": "Lista de bloqueio",
"import.csvDelim": "Delimitador CSV",
diff --git a/i18n/pt.json b/i18n/pt.json
index 55f56fd6..ea7dd527 100644
--- a/i18n/pt.json
+++ b/i18n/pt.json
@@ -140,6 +140,7 @@
"globals.days.4": "Qui",
"globals.days.5": "Sex",
"globals.days.6": "Sáb",
+ "globals.days.7": "Sat",
"globals.fields.createdAt": "Criado a",
"globals.fields.id": "ID",
"globals.fields.name": "Nome",
@@ -186,11 +187,16 @@
"globals.terms.campaign": "Campanha | Campanhas",
"globals.terms.campaigns": "Campanha",
"globals.terms.dashboard": "Dashboard",
+ "globals.terms.day": "Day | Days",
+ "globals.terms.hour": "Hour | Hours",
"globals.terms.list": "Lista | Listas",
"globals.terms.lists": "Listas",
"globals.terms.media": "Mídia | Mídia",
"globals.terms.messenger": "Mensageiro | Mensageiros",
"globals.terms.messengers": "Mensageiros",
+ "globals.terms.minute": "Minute | Minutes",
+ "globals.terms.month": "Month | Months",
+ "globals.terms.second": "Second | Seconds",
"globals.terms.settings": "Definições",
"globals.terms.subscriber": "Subscritor | Subcritores",
"globals.terms.subscribers": "Subscritores",
@@ -198,6 +204,7 @@
"globals.terms.tags": "Etiquetas",
"globals.terms.template": "Modelo | Modelos",
"globals.terms.templates": "Modelo",
+ "globals.terms.year": "Year | Years",
"import.alreadyRunning": "Uma importação já está em curso. Aguarda que termine ou cancela-a antes de tentares novamente.",
"import.blocklist": "Lista de bloqueio",
"import.csvDelim": "Delimitador CSV",
diff --git a/i18n/ro.json b/i18n/ro.json
index ad4d77c0..41d371c7 100644
--- a/i18n/ro.json
+++ b/i18n/ro.json
@@ -140,6 +140,7 @@
"globals.days.4": "Jo",
"globals.days.5": "Vi",
"globals.days.6": "Sa",
+ "globals.days.7": "Sat",
"globals.fields.createdAt": "Creat",
"globals.fields.id": "ID",
"globals.fields.name": "Nume",
@@ -186,11 +187,16 @@
"globals.terms.campaign": "Campanie | Campanii",
"globals.terms.campaigns": "Campanii",
"globals.terms.dashboard": "Dashboard",
+ "globals.terms.day": "Day | Days",
+ "globals.terms.hour": "Hour | Hours",
"globals.terms.list": "Listă | Liste",
"globals.terms.lists": "Liste",
"globals.terms.media": "Media | Media",
"globals.terms.messenger": "Messenger | Messengers",
"globals.terms.messengers": "Messengers",
+ "globals.terms.minute": "Minute | Minutes",
+ "globals.terms.month": "Month | Months",
+ "globals.terms.second": "Second | Seconds",
"globals.terms.settings": "Setări",
"globals.terms.subscriber": "Abonat | Abonați",
"globals.terms.subscribers": "Abonați",
@@ -198,6 +204,7 @@
"globals.terms.tags": "Etichete",
"globals.terms.template": "Șablon | Șabloane",
"globals.terms.templates": "Șabloane",
+ "globals.terms.year": "Year | Years",
"import.alreadyRunning": "Un import rulează deja. Așteptă să se termine sau oprește-l înainte de a încerca din nou.",
"import.blocklist": "Lista de blocați",
"import.csvDelim": "Delimitator CSV",
diff --git a/i18n/ru.json b/i18n/ru.json
index 2fb613b0..3616f093 100644
--- a/i18n/ru.json
+++ b/i18n/ru.json
@@ -140,6 +140,7 @@
"globals.days.4": "Чт",
"globals.days.5": "Пт",
"globals.days.6": "Сб",
+ "globals.days.7": "Sat",
"globals.fields.createdAt": "Создано",
"globals.fields.id": "ID",
"globals.fields.name": "Имя",
@@ -186,11 +187,16 @@
"globals.terms.campaign": "Компания | Компании",
"globals.terms.campaigns": "Компании",
"globals.terms.dashboard": "Панель",
+ "globals.terms.day": "Day | Days",
+ "globals.terms.hour": "Hour | Hours",
"globals.terms.list": "Список | Списки",
"globals.terms.lists": "Списки",
"globals.terms.media": "Медиа | Медиа",
"globals.terms.messenger": "Мессенджер | Мессенджеры",
"globals.terms.messengers": "Мессенджеры",
+ "globals.terms.minute": "Minute | Minutes",
+ "globals.terms.month": "Month | Months",
+ "globals.terms.second": "Second | Seconds",
"globals.terms.settings": "Параметры",
"globals.terms.subscriber": "Подписчик | Подписчики",
"globals.terms.subscribers": "Подписчики",
@@ -198,6 +204,7 @@
"globals.terms.tags": "Теги",
"globals.terms.template": "Шаблон | Шаблоны",
"globals.terms.templates": "Шаблоны",
+ "globals.terms.year": "Year | Years",
"import.alreadyRunning": "Импорт уже выполняется. Подождите, пока он закончит, или остановите его, прежде чем пытаться снова. ",
"import.blocklist": "Список блокировки",
"import.csvDelim": "Разделитель CSV",
diff --git a/i18n/tr.json b/i18n/tr.json
index e8e0cff8..aa671015 100644
--- a/i18n/tr.json
+++ b/i18n/tr.json
@@ -140,6 +140,7 @@
"globals.days.4": "Per",
"globals.days.5": "Cum",
"globals.days.6": "Cts",
+ "globals.days.7": "Sat",
"globals.fields.createdAt": "Yaratılma",
"globals.fields.id": "ID",
"globals.fields.name": "İsim",
@@ -186,11 +187,16 @@
"globals.terms.campaign": "Kampanya | Kampanyalar",
"globals.terms.campaigns": "Kampanyalar",
"globals.terms.dashboard": "Yönetim Paneli",
+ "globals.terms.day": "Day | Days",
+ "globals.terms.hour": "Hour | Hours",
"globals.terms.list": "Liste | Listeler",
"globals.terms.lists": "Listeler",
"globals.terms.media": "Medya | Medya",
"globals.terms.messenger": "Messengelar | Messengerlar",
"globals.terms.messengers": "Messengerlar",
+ "globals.terms.minute": "Minute | Minutes",
+ "globals.terms.month": "Month | Months",
+ "globals.terms.second": "Second | Seconds",
"globals.terms.settings": "Ayarlar",
"globals.terms.subscriber": "Üye | Üyeler",
"globals.terms.subscribers": "Üyeler",
@@ -198,6 +204,7 @@
"globals.terms.tags": "Tag(lar)",
"globals.terms.template": "Taslak | Taslaklar",
"globals.terms.templates": "Taslaklar",
+ "globals.terms.year": "Year | Years",
"import.alreadyRunning": "Bir içe aktarım halen sürüyor. Yeniden denemek için durdurun veya yeniden denemek için bekleyin.",
"import.blocklist": "Engelli listesi",
"import.csvDelim": "CSV ayıracı",
diff --git a/i18n/vi.json b/i18n/vi.json
index 2250d1c9..fc20d740 100644
--- a/i18n/vi.json
+++ b/i18n/vi.json
@@ -140,6 +140,7 @@
"globals.days.4": "Thứ 5",
"globals.days.5": "Thứ 6",
"globals.days.6": "Thứ 7",
+ "globals.days.7": "Sat",
"globals.fields.createdAt": "Đã tạo",
"globals.fields.id": "ID",
"globals.fields.name": "Tên",
@@ -186,11 +187,16 @@
"globals.terms.campaign": "Campaign | Campaigns",
"globals.terms.campaigns": "Chiến dịch",
"globals.terms.dashboard": "Bảng điều khiển",
+ "globals.terms.day": "Day | Days",
+ "globals.terms.hour": "Hour | Hours",
"globals.terms.list": "List | Lists",
"globals.terms.lists": "Danh sách",
"globals.terms.media": "Media | Media",
"globals.terms.messenger": "Messenger | Messengers",
"globals.terms.messengers": "Tin nhắn",
+ "globals.terms.minute": "Minute | Minutes",
+ "globals.terms.month": "Month | Months",
+ "globals.terms.second": "Second | Seconds",
"globals.terms.settings": "Cài đặt",
"globals.terms.subscriber": "Subscriber | Subscribers",
"globals.terms.subscribers": "Người đăng ký",
@@ -198,6 +204,7 @@
"globals.terms.tags": "Thẻ",
"globals.terms.template": "Template | Templates",
"globals.terms.templates": "Mẫu",
+ "globals.terms.year": "Year | Years",
"import.alreadyRunning": "Quá trình nhập đang chạy. Chờ quá trình hoàn tất hoặc dừng trước khi thử lại.",
"import.blocklist": "Danh sách chặn",
"import.csvDelim": "CSV dấu phân cách",