Merge branch 'fix-i18n'

This commit is contained in:
Kailash Nadh 2022-03-02 21:00:07 +05:30
commit 8d6e475479
21 changed files with 199 additions and 57 deletions

View file

@ -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();

View file

@ -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;

View file

@ -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.

View file

@ -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']);
});
},

View file

@ -98,7 +98,7 @@
header-class="cy-subscribers" width="10%">
<div class="fields stats">
<p v-for="(count, status) in props.row.subscriberStatuses" :key="status">
<label>{{ $t(`subscribers.status.${status}`) }}</label>
<label>{{ $tc(`subscribers.status.${status}`, count) }}</label>
<span :class="status">{{ $utils.formatNumber(count) }}</span>
</p>
</div>

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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ó",

View file

@ -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",

View file

@ -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 യുടെ അതിർത്തി",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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ı",

View file

@ -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",