Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f5c2e08f03 | ||
|
|
42d4f44a70 | ||
|
|
1a5b07273d | ||
|
|
64d2ff3e98 | ||
|
|
85a0d4f9ec | ||
|
|
84c7b31dfb | ||
| 1499347b7b | |||
| 1d39bc03d8 | |||
|
|
8f45736b1b | ||
|
|
8385197f11 | ||
|
|
ca16e3ca39 | ||
|
|
c194661fa3 | ||
|
|
e539c60e9b | ||
|
|
bea25d8396 | ||
|
|
b4506a0a3e |
2
.github/workflows/php-lint.yml
vendored
2
.github/workflows/php-lint.yml
vendored
@@ -13,7 +13,7 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
php-version: ['8.2', '8.3', '8.4']
|
php-version: ['8.2', '8.3', '8.4']
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v5
|
||||||
|
|
||||||
- name: Setup PHP ${{ matrix.php-version }}
|
- name: Setup PHP ${{ matrix.php-version }}
|
||||||
uses: shivammathur/setup-php@v2
|
uses: shivammathur/setup-php@v2
|
||||||
|
|||||||
2
.github/workflows/phpcs.yml
vendored
2
.github/workflows/phpcs.yml
vendored
@@ -10,7 +10,7 @@ jobs:
|
|||||||
phpcs:
|
phpcs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v5
|
||||||
|
|
||||||
- name: Setup PHP
|
- name: Setup PHP
|
||||||
uses: shivammathur/setup-php@v2
|
uses: shivammathur/setup-php@v2
|
||||||
|
|||||||
@@ -86,3 +86,5 @@ CREATE TABLE IF NOT EXISTS `ident_switch`
|
|||||||
INDEX `IX_ident_switch_iid`(`iid`),
|
INDEX `IX_ident_switch_iid`(`iid`),
|
||||||
INDEX `IX_ident_switch_parent_id`(`parent_id`)
|
INDEX `IX_ident_switch_parent_id`(`parent_id`)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
INSERT INTO `system` (`name`, `value`) VALUES ('ident_switch-version', '2026021000');
|
||||||
|
|||||||
@@ -1,4 +1,13 @@
|
|||||||
CREATE TABLE ident_switch
|
-- Patched version of SQL/postgres.initial.sql for gecka/ident-switch.
|
||||||
|
-- Commit this into your Gitea fork at the same path, replacing the
|
||||||
|
-- upstream file. Only two changes from upstream:
|
||||||
|
-- 1. CREATE TABLE / CREATE INDEX -> IF NOT EXISTS
|
||||||
|
-- 2. INSERT INTO system -> upsert via ON CONFLICT
|
||||||
|
-- This makes the script safe to re-run against an already-migrated
|
||||||
|
-- database, which happens on every container restart unless
|
||||||
|
-- /var/www/html is persisted (composer re-installs "fresh" each time).
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS ident_switch
|
||||||
(
|
(
|
||||||
id
|
id
|
||||||
serial
|
serial
|
||||||
@@ -82,6 +91,9 @@ CREATE TABLE ident_switch
|
|||||||
UNIQUE (user_id, label)
|
UNIQUE (user_id, label)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX IX_ident_switch_user_id ON ident_switch(user_id);
|
CREATE INDEX IF NOT EXISTS IX_ident_switch_user_id ON ident_switch(user_id);
|
||||||
CREATE INDEX IX_ident_switch_iid ON ident_switch(iid);
|
CREATE INDEX IF NOT EXISTS IX_ident_switch_iid ON ident_switch(iid);
|
||||||
CREATE INDEX IX_ident_switch_parent_id ON ident_switch(parent_id);
|
CREATE INDEX IF NOT EXISTS IX_ident_switch_parent_id ON ident_switch(parent_id);
|
||||||
|
|
||||||
|
INSERT INTO system (name, value) VALUES ('ident_switch-version', '2026021000')
|
||||||
|
ON CONFLICT (name) DO UPDATE SET value = EXCLUDED.value;
|
||||||
@@ -84,3 +84,5 @@ CREATE TABLE ident_switch
|
|||||||
CREATE INDEX IX_ident_switch_user_id ON ident_switch(user_id);
|
CREATE INDEX IX_ident_switch_user_id ON ident_switch(user_id);
|
||||||
CREATE INDEX IX_ident_switch_iid ON ident_switch(iid);
|
CREATE INDEX IX_ident_switch_iid ON ident_switch(iid);
|
||||||
CREATE INDEX IX_ident_switch_parent_id ON ident_switch(parent_id);
|
CREATE INDEX IX_ident_switch_parent_id ON ident_switch(parent_id);
|
||||||
|
|
||||||
|
INSERT INTO system (name, value) VALUES ('ident_switch-version', '2026021000');
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "gecka/ident-switch",
|
"name": "senior/ident-switch",
|
||||||
"type": "roundcube-plugin",
|
"type": "roundcube-plugin",
|
||||||
"description": "This plugin allows users to switch between different accounts (including remote) in single Roundcube session.",
|
"description": "This plugin allows users to switch between different accounts (including remote) in single Roundcube session.",
|
||||||
"homepage": "https://github.com/Gecka-Apps/roundcube-ident_switch",
|
"homepage": "https://github.com/Gecka-Apps/roundcube-ident_switch",
|
||||||
|
|||||||
4
composer.lock
generated
4
composer.lock
generated
@@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "46b2d3558cb304fde0539d1b85971382",
|
"content-hash": "c1389b5e002c6014eeddc8105bf77db1",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "roundcube/plugin-installer",
|
"name": "roundcube/plugin-installer",
|
||||||
@@ -154,5 +154,5 @@
|
|||||||
"ext-ctype": "*"
|
"ext-ctype": "*"
|
||||||
},
|
},
|
||||||
"platform-dev": {},
|
"platform-dev": {},
|
||||||
"plugin-api-version": "2.6.0"
|
"plugin-api-version": "2.9.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,4 +98,4 @@ $config['ident_switch.preconfig_only'] = false;
|
|||||||
* Useful for troubleshooting SMTP/Sieve routing and alias resolution.
|
* Useful for troubleshooting SMTP/Sieve routing and alias resolution.
|
||||||
* Default: false.
|
* Default: false.
|
||||||
*/
|
*/
|
||||||
$config['ident_switch.debug'] = false;
|
$config['ident_switch.debug'] = true;
|
||||||
@@ -56,10 +56,13 @@ function plugin_switchIdent_init() {
|
|||||||
$("INPUT[name='_ident_switch.form.sieve.host']").attr('placeholder', initialImapHost);
|
$("INPUT[name='_ident_switch.form.sieve.host']").attr('placeholder', initialImapHost);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Re-apply preconfig from current email (handles form re-render after create abort
|
// Disable mode select until a valid email is entered
|
||||||
// where PHP record may lack email, so readonly was not set server-side)
|
var $modeSelect = $("SELECT[name='_ident_switch.form.common.mode']");
|
||||||
if (initialEmail && initialEmail.indexOf('@') > 0) {
|
if (initialEmail && initialEmail.indexOf('@') > 0) {
|
||||||
|
$modeSelect.prop('disabled', false);
|
||||||
plugin_switchIdent_onEmailChange(initialEmail);
|
plugin_switchIdent_onEmailChange(initialEmail);
|
||||||
|
} else {
|
||||||
|
$modeSelect.prop('disabled', true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -278,6 +281,9 @@ function plugin_switchIdent_onEmailChange(email) {
|
|||||||
var domain = email.substring(atPos + 1).toLowerCase();
|
var domain = email.substring(atPos + 1).toLowerCase();
|
||||||
if (!domain) return;
|
if (!domain) return;
|
||||||
|
|
||||||
|
// Enable mode select now that we have a valid email
|
||||||
|
$("SELECT[name='_ident_switch.form.common.mode']").prop('disabled', false);
|
||||||
|
|
||||||
// Update label and username placeholders to match current email
|
// Update label and username placeholders to match current email
|
||||||
$("INPUT[name='_ident_switch.form.common.label']").attr('placeholder', email);
|
$("INPUT[name='_ident_switch.form.common.label']").attr('placeholder', email);
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
* ident_switch - Account switcher UI and new mail notifications.
|
* ident_switch - Account switcher UI and new mail notifications.
|
||||||
*
|
*
|
||||||
* Places the hidden <select> from the footer into the appropriate
|
* Places the hidden <select> from the footer into the appropriate
|
||||||
* skin location (Larry, Classic, Elastic), shows it, and registers
|
* skin location (Larry, Classic, Elastic, Workbench), shows it, and registers
|
||||||
* notification listeners for background mail checking.
|
* notification listeners for background mail checking.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2016-2018 Boris Gulay
|
* Copyright (C) 2016-2018 Boris Gulay
|
||||||
@@ -22,7 +22,6 @@ $(function() {
|
|||||||
|
|
||||||
var $sw = $wrapper.find('#plugin-ident_switch-account');
|
var $sw = $wrapper.find('#plugin-ident_switch-account');
|
||||||
var placed = false;
|
var placed = false;
|
||||||
|
|
||||||
switch (rcmail.env.skin) {
|
switch (rcmail.env.skin) {
|
||||||
case 'larry':
|
case 'larry':
|
||||||
placed = plugin_switchIdent_addCbLarry($wrapper, $sw);
|
placed = plugin_switchIdent_addCbLarry($wrapper, $sw);
|
||||||
@@ -33,6 +32,9 @@ $(function() {
|
|||||||
case 'elastic':
|
case 'elastic':
|
||||||
placed = plugin_switchIdent_addCbElastic($wrapper, $sw);
|
placed = plugin_switchIdent_addCbElastic($wrapper, $sw);
|
||||||
break;
|
break;
|
||||||
|
case 'workbench':
|
||||||
|
placed = plugin_switchIdent_addCbElastic($wrapper, $sw);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!placed) {
|
if (!placed) {
|
||||||
@@ -57,7 +59,7 @@ $(function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Place switcher in Larry skin: replace username in top-right corner.
|
* Place switcher in Larry skin: replace username in top-right corner of #topline.
|
||||||
*/
|
*/
|
||||||
function plugin_switchIdent_addCbLarry($wrapper, $sw) {
|
function plugin_switchIdent_addCbLarry($wrapper, $sw) {
|
||||||
var $topRight = $('#topline .topright');
|
var $topRight = $('#topline .topright');
|
||||||
@@ -65,12 +67,6 @@ function plugin_switchIdent_addCbLarry($wrapper, $sw) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sw.css({
|
|
||||||
'font-weight': 'bold',
|
|
||||||
'max-width': '200px',
|
|
||||||
'text-overflow': 'ellipsis'
|
|
||||||
});
|
|
||||||
|
|
||||||
$topRight.find('.username').hide();
|
$topRight.find('.username').hide();
|
||||||
$topRight.prepend($wrapper);
|
$topRight.prepend($wrapper);
|
||||||
return true;
|
return true;
|
||||||
@@ -104,7 +100,6 @@ function plugin_switchIdent_addCbElastic($wrapper, $sw) {
|
|||||||
'font-weight': 'bold',
|
'font-weight': 'bold',
|
||||||
'color': 'inherit',
|
'color': 'inherit',
|
||||||
'box-shadow': 'none',
|
'box-shadow': 'none',
|
||||||
'max-width': '200px',
|
|
||||||
'text-overflow': 'ellipsis',
|
'text-overflow': 'ellipsis',
|
||||||
'padding': '0 1.2em 0 0.25em'
|
'padding': '0 1.2em 0 0.25em'
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -15,8 +15,12 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Account switcher <select>: hide native arrow, show SVG chevron */
|
/* Account switcher <select>: hide native arrow, show SVG chevron.
|
||||||
.ident-switch-wrapper select {
|
Scoped to Elastic (.header-title.username) and Larry (#topline .topright) where
|
||||||
|
the switcher replaces a styled header label; Classic uses Roundcube's native
|
||||||
|
select rendering instead (see #taskbar rule below). */
|
||||||
|
.header-title.username .ident-switch-wrapper select,
|
||||||
|
#topline .topright .ident-switch-wrapper select {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
-webkit-appearance: none;
|
-webkit-appearance: none;
|
||||||
-moz-appearance: none;
|
-moz-appearance: none;
|
||||||
@@ -27,6 +31,62 @@
|
|||||||
background-size: 10px 6px;
|
background-size: 10px 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Prevent flash of original username before JS prepends the switcher.
|
||||||
|
* The JS hides these elements at DOMReady, but the CSS rules below hide them
|
||||||
|
* earlier (during initial render) — only loaded when the switcher will actually
|
||||||
|
* be shown, so users without secondary accounts keep the default username display.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Elastic skin: switcher is prepended inside .header-title.username.
|
||||||
|
Hide the original username via visibility on the parent (affects the text
|
||||||
|
node), then re-show the wrapper. Unlike color/font-size, this preserves the
|
||||||
|
parent's flex/line-height context, keeping the wrapper vertically centered. */
|
||||||
|
.header-title.username {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
.header-title.username > *:not(.ident-switch-wrapper) {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.header-title.username > .ident-switch-wrapper {
|
||||||
|
visibility: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Larry skin: switcher is prepended next to .username inside #topline .topright */
|
||||||
|
#topline .topright > .username {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Larry skin: blend the <select> into the dark #topline header (Larry styles a
|
||||||
|
<span> here, not a <select>, so without these the native white control sticks
|
||||||
|
out on the dark background). */
|
||||||
|
#topline .topright .ident-switch-wrapper {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
#topline .topright .ident-switch-wrapper select {
|
||||||
|
background-color: transparent;
|
||||||
|
border: none;
|
||||||
|
box-shadow: none;
|
||||||
|
color: inherit;
|
||||||
|
font-weight: bold;
|
||||||
|
padding: 0 1.2em 0 0.25em;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Classic skin: switcher is prepended inside #taskbar (right-aligned, nowrap, 24px tall).
|
||||||
|
Drop width:100% so it sits inline before the menu links instead of pushing them
|
||||||
|
off-screen. The select keeps Roundcube's default native rendering. */
|
||||||
|
#taskbar > .ident-switch-wrapper {
|
||||||
|
width: auto;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
#taskbar > .ident-switch-wrapper select {
|
||||||
|
max-width: 180px;
|
||||||
|
position: relative;
|
||||||
|
top: -2px;
|
||||||
|
}
|
||||||
|
|
||||||
/* Unread badge */
|
/* Unread badge */
|
||||||
.ident-switch-badge {
|
.ident-switch-badge {
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
|
|||||||
@@ -158,10 +158,6 @@ class ident_switch extends rcube_plugin
|
|||||||
default => null,
|
default => null,
|
||||||
};
|
};
|
||||||
|
|
||||||
if ($rc->task === 'mail') {
|
|
||||||
$this->include_stylesheet('ident_switch.css');
|
|
||||||
}
|
|
||||||
|
|
||||||
return $args;
|
return $args;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -188,7 +184,9 @@ class ident_switch extends rcube_plugin
|
|||||||
$iid = intval($iid_s);
|
$iid = intval($iid_s);
|
||||||
}
|
}
|
||||||
|
|
||||||
$accNames = [$_SESSION['global_alias'] ?? $rc->user->data['username']];
|
$primaryIdentity = $rc->user->get_identity();
|
||||||
|
$primaryName = !empty($primaryIdentity['name']) ? $primaryIdentity['name'] : null;
|
||||||
|
$accNames = [$_SESSION['global_alias'] ?? $primaryName ?? $rc->user->data['username']];
|
||||||
$accValues = [-1];
|
$accValues = [-1];
|
||||||
$accSelected = -1;
|
$accSelected = -1;
|
||||||
$iidMap = [0 => -1]; // primary account: iid 0 → select value -1
|
$iidMap = [0 => -1]; // primary account: iid 0 → select value -1
|
||||||
@@ -216,6 +214,7 @@ class ident_switch extends rcube_plugin
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->include_stylesheet('ident_switch.css');
|
||||||
$this->include_script('ident_switch-switch.js');
|
$this->include_script('ident_switch-switch.js');
|
||||||
|
|
||||||
// Pass config to JS environment
|
// Pass config to JS environment
|
||||||
@@ -223,7 +222,7 @@ class ident_switch extends rcube_plugin
|
|||||||
|
|
||||||
$select = new html_select([
|
$select = new html_select([
|
||||||
'id' => 'plugin-ident_switch-account',
|
'id' => 'plugin-ident_switch-account',
|
||||||
'style' => 'display: none; padding: 0;',
|
'style' => 'display: none;',
|
||||||
'onchange' => 'plugin_switchIdent_switch(this.value);',
|
'onchange' => 'plugin_switchIdent_switch(this.value);',
|
||||||
]);
|
]);
|
||||||
$select->add($accNames, $accValues);
|
$select->add($accNames, $accValues);
|
||||||
|
|||||||
@@ -177,6 +177,9 @@ class IdentSwitchChecker
|
|||||||
$host = 'tls://' . $host;
|
$host = 'tls://' . $host;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$primaryIdentity = $rc->user->get_identity();
|
||||||
|
$primaryName = !empty($primaryIdentity['name']) ? $primaryIdentity['name'] : null;
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'iid' => 0,
|
'iid' => 0,
|
||||||
'imap_host' => $host,
|
'imap_host' => $host,
|
||||||
@@ -185,7 +188,7 @@ class IdentSwitchChecker
|
|||||||
'username' => $rc->user->data['username'],
|
'username' => $rc->user->data['username'],
|
||||||
'password' => $_SESSION['password' . $postfix],
|
'password' => $_SESSION['password' . $postfix],
|
||||||
'email' => $rc->user->data['username'],
|
'email' => $rc->user->data['username'],
|
||||||
'label' => $_SESSION['global_alias'] ?? $rc->user->data['username'],
|
'label' => $_SESSION['global_alias'] ?? $primaryName ?? $rc->user->data['username'],
|
||||||
'notify_basic' => null,
|
'notify_basic' => null,
|
||||||
'notify_sound' => null,
|
'notify_sound' => null,
|
||||||
'notify_desktop' => null,
|
'notify_desktop' => null,
|
||||||
|
|||||||
172
localization/sk_SK.inc
Normal file
172
localization/sk_SK.inc
Normal file
@@ -0,0 +1,172 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* Lokalizačný súbor pre plugin ident_switch
|
||||||
|
*/
|
||||||
|
$labels = array();
|
||||||
|
|
||||||
|
// Samostatný účet
|
||||||
|
$labels['form.caption'] = 'Samostatný účet';
|
||||||
|
$labels['form.description'] = 'Nakonfigurujte túto identitu ako samostatný účet s vlastnými pripojeniami na poštový server.';
|
||||||
|
$labels['form.preconfig_only_warning'] = 'Konfigurácia samostatného účtu nie je dostupná pre doménu %s.';
|
||||||
|
|
||||||
|
// Všeobecné
|
||||||
|
$labels['form.common.general'] = 'Všeobecné';
|
||||||
|
|
||||||
|
// Režim účtu
|
||||||
|
$labels['form.common.mode'] = 'Režim účtu';
|
||||||
|
$labels['form.common.mode.primary'] = 'Hlavný účet';
|
||||||
|
$labels['form.common.mode.separate'] = 'Samostatný účet';
|
||||||
|
$labels['form.common.mode.hint'] = 'Prepojte túto identitu s existujúcim účtom alebo ju nakonfigurujte ako samostatný účet s vlastným poštovým serverom.';
|
||||||
|
|
||||||
|
// Názov
|
||||||
|
$labels['form.common.label'] = 'Názov';
|
||||||
|
$labels['form.common.label.hint'] = 'Názov zobrazený v prepínači účtov. Ak je prázdne, použije sa e-mailová adresa.';
|
||||||
|
|
||||||
|
// Hodnota v poli 'Názov' je príliš dlhá (max. 32 znakov).
|
||||||
|
$labels['err.label.long'] = 'Hodnota v poli \'Názov\' je príliš dlhá (max. 32 znakov).';
|
||||||
|
|
||||||
|
|
||||||
|
// IMAP
|
||||||
|
$labels['form.imap.caption'] = 'IMAP';
|
||||||
|
|
||||||
|
// Server prichádzajúcej pošty
|
||||||
|
$labels['form.imap.host'] = 'Server prichádzajúcej pošty';
|
||||||
|
|
||||||
|
// Zabezpečenie
|
||||||
|
$labels['form.imap.security'] = 'Zabezpečenie';
|
||||||
|
|
||||||
|
// Port
|
||||||
|
$labels['form.imap.port'] = 'Port';
|
||||||
|
|
||||||
|
// Oddeľovač hierarchie priečinkov
|
||||||
|
$labels['form.imap.delimiter'] = 'Oddeľovač hierarchie priečinkov';
|
||||||
|
$labels['form.imap.delimiter.auto'] = 'Automaticky';
|
||||||
|
$labels['form.imap.delimiter.manual'] = 'Manuálne';
|
||||||
|
|
||||||
|
// Používateľské meno
|
||||||
|
$labels['form.imap.username'] = 'Používateľské meno';
|
||||||
|
|
||||||
|
// Heslo
|
||||||
|
$labels['form.imap.password'] = 'Heslo';
|
||||||
|
|
||||||
|
// Hodnota v poli 'Používateľské meno' je príliš dlhá (max. 64 znakov).
|
||||||
|
$labels['err.user.long'] = 'Hodnota v poli \'Používateľské meno\' je príliš dlhá (max. 64 znakov).';
|
||||||
|
|
||||||
|
|
||||||
|
// SMTP
|
||||||
|
$labels['form.smtp.caption'] = 'SMTP';
|
||||||
|
|
||||||
|
// Server odchádzajúcej pošty
|
||||||
|
$labels['form.smtp.host'] = 'Server odchádzajúcej pošty';
|
||||||
|
|
||||||
|
// Zabezpečenie
|
||||||
|
$labels['form.smtp.security'] = 'Zabezpečenie';
|
||||||
|
|
||||||
|
// Port
|
||||||
|
$labels['form.smtp.port'] = 'Port';
|
||||||
|
|
||||||
|
// Autorizácia
|
||||||
|
$labels['form.smtp.auth'] = 'Autorizácia';
|
||||||
|
|
||||||
|
// Ako IMAP
|
||||||
|
$labels['form.smtp.auth.imap'] = 'Ako IMAP';
|
||||||
|
|
||||||
|
// Žiadna
|
||||||
|
$labels['form.smtp.auth.none'] = 'Žiadna';
|
||||||
|
|
||||||
|
// Vlastná
|
||||||
|
$labels['form.smtp.auth.custom'] = 'Vlastná';
|
||||||
|
|
||||||
|
// Používateľské meno
|
||||||
|
$labels['form.smtp.username'] = 'Používateľské meno';
|
||||||
|
|
||||||
|
// Heslo
|
||||||
|
$labels['form.smtp.password'] = 'Heslo';
|
||||||
|
|
||||||
|
|
||||||
|
// Sieve
|
||||||
|
$labels['form.sieve.caption'] = 'Sieve';
|
||||||
|
|
||||||
|
// Názov hostiteľa servera
|
||||||
|
$labels['form.sieve.host'] = 'Názov hostiteľa servera';
|
||||||
|
|
||||||
|
// Zabezpečenie
|
||||||
|
$labels['form.sieve.security'] = 'Zabezpečenie';
|
||||||
|
|
||||||
|
// Port
|
||||||
|
$labels['form.sieve.port'] = 'Port';
|
||||||
|
|
||||||
|
// Autorizácia
|
||||||
|
$labels['form.sieve.auth'] = 'Autorizácia';
|
||||||
|
|
||||||
|
// Ako IMAP
|
||||||
|
$labels['form.sieve.auth.imap'] = 'Ako IMAP';
|
||||||
|
|
||||||
|
// Žiadna
|
||||||
|
$labels['form.sieve.auth.none'] = 'Žiadna';
|
||||||
|
|
||||||
|
// Vlastná
|
||||||
|
$labels['form.sieve.auth.custom'] = 'Vlastná';
|
||||||
|
|
||||||
|
// Používateľské meno
|
||||||
|
$labels['form.sieve.username'] = 'Používateľské meno';
|
||||||
|
|
||||||
|
// Heslo
|
||||||
|
$labels['form.sieve.password'] = 'Heslo';
|
||||||
|
|
||||||
|
|
||||||
|
// Upozornenia
|
||||||
|
$labels['form.notify.caption'] = 'Upozornenia';
|
||||||
|
|
||||||
|
// Kontrolovať novú poštu
|
||||||
|
$labels['form.notify.check'] = 'Kontrolovať novú poštu';
|
||||||
|
|
||||||
|
// Fokus / favicon
|
||||||
|
$labels['form.notify.basic'] = 'Fokus / favicon';
|
||||||
|
|
||||||
|
// Zvuk
|
||||||
|
$labels['form.notify.sound'] = 'Zvuk';
|
||||||
|
|
||||||
|
// Upozornenie na ploche
|
||||||
|
$labels['form.notify.desktop'] = 'Upozornenie na ploche';
|
||||||
|
|
||||||
|
|
||||||
|
// Použiť predvolené
|
||||||
|
$labels['form.notify.default'] = 'predvolené';
|
||||||
|
|
||||||
|
// Zapnuté
|
||||||
|
$labels['form.notify.on'] = 'Zapnuté';
|
||||||
|
|
||||||
|
// Vypnuté
|
||||||
|
$labels['form.notify.off'] = 'Vypnuté';
|
||||||
|
|
||||||
|
// Vyžaduje plugin newmail_notifier
|
||||||
|
$labels['form.notify.requires_newmail_notifier'] = 'Upozornenia vyžadujú plugin newmail_notifier. Prosím, povoľte ho alebo kontaktujte administrátora.';
|
||||||
|
|
||||||
|
|
||||||
|
// Možnosti zabezpečenia
|
||||||
|
$labels['form.security.none'] = 'Žiadne';
|
||||||
|
$labels['form.security.starttls'] = 'STARTTLS';
|
||||||
|
$labels['form.security.ssl'] = 'SSL/TLS';
|
||||||
|
$labels['form.security.none_warning'] = 'Nešifrované pripojenia nie sú bezpečné. Vaše prihlasovacie údaje a e-maily môžu byť zachytené. Vždy, keď je to možné, použite SSL/TLS alebo STARTTLS.';
|
||||||
|
|
||||||
|
|
||||||
|
// Chyby
|
||||||
|
|
||||||
|
// Hodnota v poli 'Názov hostiteľa servera' je príliš dlhá (max. 64 znakov).
|
||||||
|
$labels['err.host.long'] = 'Hodnota v poli \'Názov hostiteľa servera\' je príliš dlhá (max. 64 znakov).';
|
||||||
|
|
||||||
|
// Hodnota v poli 'Port' musí byť číslo.
|
||||||
|
$labels['err.port.num'] = 'Hodnota v poli \'Port\' musí byť číslo.';
|
||||||
|
|
||||||
|
// Hodnota v poli 'Port' musí byť medzi 1 a 65535.
|
||||||
|
$labels['err.port.range'] = 'Hodnota v poli \'Port\' musí byť medzi 1 a 65535.';
|
||||||
|
|
||||||
|
// Pripojenie IMAP zlyhalo.
|
||||||
|
$labels['err.imap.connect'] = 'Pripojenie IMAP zlyhalo. Skontrolujte adresu servera, port a prihlasovacie údaje.';
|
||||||
|
|
||||||
|
// Pripojenie SMTP zlyhalo.
|
||||||
|
$labels['err.smtp.connect'] = 'Pripojenie SMTP zlyhalo. Skontrolujte adresu servera, port a prihlasovacie údaje.';
|
||||||
|
|
||||||
|
// Pripojenie Sieve zlyhalo.
|
||||||
|
$labels['err.sieve.connect'] = 'Pripojenie Sieve zlyhalo. Skontrolujte adresu servera, port a prihlasovacie údaje.';
|
||||||
Reference in New Issue
Block a user