diff --git a/lib/client/kolab_client_task_ou.php b/lib/client/kolab_client_task_ou.php index 2a99f92..11cf7cc 100644 --- a/lib/client/kolab_client_task_ou.php +++ b/lib/client/kolab_client_task_ou.php @@ -1,300 +1,300 @@ | +--------------------------------------------------------------------------+ | Author: Aleksander Machniak | +--------------------------------------------------------------------------+ */ class kolab_client_task_ou extends kolab_client_task { protected $ajax_only = true; protected $menu = array( 'add' => 'ou.add', ); protected $list_attribs = array('ou'); protected $search_attribs = array('name' => array('ou')); /** * Default action. */ public function action_default() { $this->output->set_object('content', 'ou', true); $this->output->set_object('task_navigation', $this->menu()); $this->action_list(); // display form to add OU if logged-in user has right to do so $caps = $this->get_capability('actions'); if (!empty($caps['ou.add'])) { $this->action_add(); } else { $this->output->command('set_watermark', 'taskcontent'); } } /** * Organizational unit adding (form) action. */ public function action_add() { $data = $this->get_input('data', 'POST'); $output = $this->ou_form(null, $data, true); $this->output->set_object('taskcontent', $output); } /** * Organizational unit information (form) action. */ public function action_info() { $id = $this->get_input('id', 'POST'); $result = $this->api_get('ou.info', array('id' => $id)); $unit = $result->get(); $output = $this->ou_form(null, $unit); $this->output->set_object('taskcontent', $output); } /** * OU list result handler, tree list builder */ protected function list_result_handler($result, $head, $foot, $table_class) { $result = $this->ou_list_sort($result); $result = $this->ou_list_build_tree($result, $max_tree_level); foreach ($result as $idx => $item) { $class = array('selectable'); $tree = ''; $style = ''; if ($item['level']) { $tree .= ''; $style = 'display:none'; } if ($item['has_children']) { - $tree .= ''; + $tree .= ''; } else if ($max_tree_level) { $tree .= ''; } $i++; $cells = array(); $cells[] = array( 'class' => 'name', 'body' => $tree . kolab_html::escape($item['name']), 'onclick' => "kadm.command('ou.info', '" . kolab_utils::js_escape($idx) . "')", ); $rows[] = array( 'id' => $i, 'class' => implode(' ', $class), 'cells' => $cells, 'style' => $style, 'data-level' => !empty($item['level']) ? $item['level'] : '', ); } if ($max_tree_level) { $this->output->command('tree_list_init'); } return array($rows, $head, '', $table_class . ' tree'); } private function ou_form($attribs, $data = array()) { if (empty($attribs['id'])) { $attribs['id'] = 'ou-form'; } // Form sections $sections = array( 'system' => 'ou.system', 'aci' => 'ou.aci', 'other' => 'ou.other', ); // field-to-section map and fields order $fields_map = array( 'type_id' => 'system', 'type_id_name' => 'system', 'ou' => 'system', 'base_dn' => 'system', 'description' => 'system', 'aci' => 'aci', ); // Prepare fields $form = $this->form_prepare('ou', $data, array(), null, $fields_map['type_id']); list($fields, $types, $type, $add_mode) = $form; // Add OU root selector $fields['base_dn'] = array( 'section' => $fields_map['base_dn'], 'type' => kolab_form::INPUT_SELECT, 'options' => array_merge(array(''), $this->ou_list()), 'escaped' => true, 'default' => $data['base_dn'], ); // Create mode if ($add_mode) { // Page title $title = $this->translate('ou.add'); } // Edit mode else { $title = $data['ou']; } // Create form object and populate with fields $form = $this->form_create('ou', $attribs, $sections, $fields, $fields_map, $data, $add_mode); $form->set_title(kolab_html::escape($title)); return $form->output(); } private function ou_list() { $result = $this->api_get('ous.list', null, array('page_size' => 999)); $list = (array) $result->get('list'); $sorted = $this->ou_list_sort($list); return $this->ou_list_build($sorted); } private function ou_list_sort($list) { // build the list for sorting foreach (array_keys($list) as $dn) { $names = $this->explode_dn($dn); $sort_name = $names['root'] . ':' . implode(',', array_reverse($names['path'])); $list[$dn] = mb_strtolower($sort_name); } // sort asort($list, SORT_LOCALE_STRING); return $list; } private function ou_list_build($list) { // @TODO: this code assumes parent always exist foreach (array_keys($list) as $dn) { $item = $this->parse_dn($dn); $list[$dn] = str_repeat('   ', $item['level']) . kolab_html::escape($item['name']); } return $list; } /** * Builds a tree from OUs list */ private function ou_list_build_tree($list, &$max_level) { $last = ''; $result = array(); foreach (array_keys($list) as $dn) { $item = $this->parse_dn($dn); if ($item['level']) { // create a parent unit entry if it does not exist (search result) $parent = $item['root']; foreach ($item['path'] as $sub) { // convert special characters back into entities (#3744) $sub = str_replace(',', "\\2C", $sub); $parent = "ou=$sub,$parent"; if (!isset($result[$parent])) { $result[$parent] = $this->parse_dn($parent); $last = $parent; } $result[$parent]['has_children'] = true; } } $result[$dn] = $item; $last = $dn; $max_level = max($max_level, $item['level']); } return $result; } /** * Parse OU DN string into an array */ private function parse_dn($dn) { $items = $this->explode_dn($dn); return array( 'name' => array_shift($items['path']), 'path' => array_reverse($items['path']), 'level' => count($items['path']), 'root' => $items['root'], ); } /** * Tokenizes OU's DN string */ private function explode_dn($dn) { $path = kolab_utils::explode_dn($dn); $root = array(); foreach ($path as $idx => $item) { $pos = strpos($item, '='); $key = substr($item, 0, $pos); if ($key != 'ou') { unset($path[$idx]); // convert special characters back into entities (#3744) $root[] = str_replace(',', "\\2C", $item); } else { $path[$idx] = substr($item, $pos + 1); } } return array( 'root' => implode(',', $root), 'path' => $path, ); } } diff --git a/lib/client/kolab_client_task_settings.php b/lib/client/kolab_client_task_settings.php index d811f1e..961b457 100644 --- a/lib/client/kolab_client_task_settings.php +++ b/lib/client/kolab_client_task_settings.php @@ -1,995 +1,978 @@ | +--------------------------------------------------------------------------+ | Author: Aleksander Machniak | +--------------------------------------------------------------------------+ */ class kolab_client_task_settings extends kolab_client_task { protected $ajax_only = true; protected $menu = array( 'type_list' => 'type.list', 'type.add' => 'type.add', ); protected $form_element_types = array( 'text', 'text-separated', 'text-quota', 'text-autocomplete', 'select', 'multiselect', 'list', 'list-autocomplete', 'checkbox', 'password', 'ldap_url', 'aci', 'imap_acl', ); protected $special_attributes = array('ou'); /** * Default action. */ public function action_default() { $caps_actions = $this->get_capability('actions'); // Display user info by default if (self::can_edit_self($caps_actions)) { $this->action_info(); } // otherwise display object types list else if (self::can_edit_types($caps_actions)) { $this->action_type_list(); unset($this->menu['type_list']); // ... and type add form if (!empty($caps_actions['type.add'])) { $this->action_type_add(); } else { $this->output->command('set_watermark', 'taskcontent'); } } // fallback else { $this->output->command('set_watermark', 'content'); } $this->output->set_object('task_navigation', $this->menu()); } /** * Checks if it's possible to edit data of current user */ private static function can_edit_self($caps_actions) { // Disable user form for directory manager (see #1025) if (preg_match('/^cn=([a-z ]+)/i', $_SESSION['user']['id'])) { return false; } if (empty($caps_actions['user.info'])) { return false; } // If we can do user.info, we can at least display // the form, effective rights will be checked later // there's a very small chance that user cannot view his data return true; } /** * Checks if it's possible to edit object types */ private static function can_edit_types($caps_actions) { // I think type management interface shouldn't be displayed at all // if user has no write rights to 'type' service if (!empty($caps_actions['type.edit']) || !empty($caps_actions['type.add']) || !empty($caps_actions['type.delete'])) { return true; } return false; } /** * Check if any of task actions is accessible for current user * * @return bool */ public static function is_enabled($caps_actions) { // User form if (self::can_edit_self($caps_actions)) { return true; } if (self::can_edit_types($caps_actions)) { return true; } return false; } /** * Returns task menu output (overrides parent's menu method). * * @return string HTML output */ protected function menu() { $caps = $this->capabilities(); $menu = array(); foreach ($this->menu as $idx => $label) { if (strpos($idx, '.') && !array_key_exists($idx, (array)$caps['actions'])) { continue; } $idx = str_replace('.', '_', $idx); $action = 'settings.' . $idx; $class = $idx; $menu[$idx] = sprintf('
  • ' .'%s
  • ', $class, $idx, $action, $this->translate($label)); } return ''; } /** * User info action. */ public function action_info() { $_POST['id'] = $_SESSION['user']['id']; $user_task = new kolab_client_task_user($this->output); $user_task->action_info(); $this->output->set_object('content', $this->output->get_object('taskcontent')); } /** * Object types list action. */ public function action_type_list() { $page_size = 20; $page = (int) self::get_input('page', 'POST'); if (!$page || $page < 1) { $page = 1; } // request parameters $post = array( 'attributes' => array('name', 'key'), // 'sort_order' => 'ASC', 'sort_by' => array('name', 'key'), 'page_size' => $page_size, 'page' => $page, ); // search parameters if (!empty($_POST['search'])) { $search = self::get_input('search', 'POST', true); $field = self::get_input('field', 'POST'); $method = self::get_input('method', 'POST'); $search_request = array( $field => array( 'value' => $search, 'type' => $method, ), ); } else if (!empty($_POST['search_request'])) { $search_request = self::get_input('search_request', 'POST'); $search_request = @unserialize(base64_decode($search_request)); } if (!empty($search_request)) { $post['search'] = $search_request; $post['search_operator'] = 'OR'; } else { $this->output->set_object('content', 'type', true); } // object type $type = self::get_input('type', 'POST'); if (empty($type) || !in_array($type, $this->object_types)) { $type = 'user'; } // get object types list $result = $this->object_types($type); // Implement searching here, not in the API, we don't expect too many records if (!empty($search_request)) { foreach ($result as $idx => $record) { $found = false; foreach ($search_request as $key => $value) { if (!empty($record[$key])) { $s = mb_strtoupper($value['value']); $v = mb_strtoupper($record[$key]); switch ($value['type']) { case 'both': $res = $v === $s || strpos($v, $s) !== false; break; case 'exact': $res = $v === $s; break; case 'prefix': $res = strpos($v, $s) === 0; break; } if ($res) { $found = true; break; } } } if (!$found) { unset($result[$idx]); } } } // assign ID foreach (array_keys($result) as $idx) { $result[$idx]['id'] = $idx; } $result = array_values($result); $count = count($result); // calculate records if ($count) { $start = 1 + max(0, $page - 1) * $page_size; $end = min($start + $page_size - 1, $count); // sort and slice the result array if ($count > $page_size) { $result = array_slice($result, $start - 1, $page_size); } } $rows = $head = $foot = array(); $cols = array('name'); $i = 0; // table header $head[0]['cells'][] = array('class' => 'name', 'body' => $this->translate('type.list')); // table footer (navigation) if ($count) { $pages = ceil($count / $page_size); $prev = max(0, $page - 1); $next = $page < $pages ? $page + 1 : 0; $count_str = kolab_html::span(array( 'content' => $this->translate('list.records', $start, $end, $count)), true); $prev = kolab_html::a(array( - 'class' => 'prev' . ($prev ? '' : ' disabled'), + 'class' => 'prev font-icon' . ($prev ? '' : ' disabled'), 'href' => '#', 'onclick' => $prev ? "kadm.command('settings.type_list', {page: $prev})" : "return false", )); $next = kolab_html::a(array( - 'class' => 'next' . ($next ? '' : ' disabled'), + 'class' => 'next font-icon' . ($next ? '' : ' disabled'), 'href' => '#', 'onclick' => $next ? "kadm.command('settings.type_list', {page: $next})" : "return false", )); $foot_body = kolab_html::span(array('content' => $prev . $count_str . $next)); } $foot[0]['cells'][] = array('class' => 'listnav', 'body' => $foot_body); // table body if (!empty($result)) { foreach ($result as $idx => $item) { if (!is_array($item) || empty($item['name'])) { continue; } $i++; $cells = array(); $cells[] = array('class' => 'name', 'body' => kolab_html::escape($item['name']), 'onclick' => "kadm.command('settings.type_info', '$type:" . $item['id'] . "')"); $rows[] = array('id' => $i, 'class' => 'selectable', 'cells' => $cells); } } else { $rows[] = array('cells' => array( 0 => array('class' => 'empty-body', 'body' => $this->translate('type.norecords') ))); } $table = kolab_html::table(array( 'id' => 'settingstypelist', - 'class' => 'list', + 'class' => 'list table table-sm', 'head' => $head, 'body' => $rows, 'foot' => $foot, )); if ($this->action == 'type_list') { $this->output->command('set_watermark', 'taskcontent'); } $this->output->set_env('search_request', $search_request ? base64_encode(serialize($search_request)) : null); $this->output->set_env('list_page', $page); $this->output->set_env('list_count', $count); $this->output->set_env('list_size', count($result)); $this->output->set_object('typelist', $table); } /** * Object type information (form) action. */ public function action_type_info() { $id = $this->get_input('id', 'POST'); $result = $this->read_type_data($id); $output = $this->type_form($result['attribs'], $result['data']); $this->output->set_object('taskcontent', $output); } /** * Object type adding (form) action. */ public function action_type_add() { if ($clone_id = $this->get_input('clone_id', 'POST')) { $result = $this->read_type_data($clone_id); $data = $result['data']; unset($data['id'], $data['is_default'], $data['key'], $data['name']); } if (empty($data)) { $data = $this->get_input('data', 'POST'); if (empty($data['type'])) { $data['type'] = self::get_input('type', 'POST'); if (empty($data['type']) || !in_array($data['type'], $this->object_types)) { $data['type'] = 'user'; } } } $output = $this->type_form(null, $data, true); $this->output->set_object('taskcontent', $output); } private function read_type_data($id, $clone = false) { $data = array(); $attribs = array(); list($type, $idx) = explode(':', $id); if ($idx && $type && ($result = $this->object_types($type))) { if (!empty($result[$idx])) { $data = $result[$idx]; } } // prepare data for form if (!empty($data)) { $data['id'] = $idx; $data['type'] = $type; $data['objectclass'] = $data['attributes']['fields']['objectclass']; unset($data['attributes']['fields']['objectclass']); // enable Clone button if (!$clone) { $caps_actions = $this->get_capability('actions'); if (!empty($caps_actions['type.add'])) { $attribs = array('clone-button' => 'settings.type_clone'); } } } return array( 'data' => $data, 'attribs' => $attribs, ); } /** * Group edit/add form. */ private function type_form($attribs, $data = array()) { if (!is_array($attribs)) { $attribs = array(); } if (empty($attribs['id'])) { $attribs['id'] = 'type-form'; } // Form sections $sections = array( 'props' => 'type.properties', 'attribs' => 'type.attributes', ); // field-to-section map and fields order $fields_map = array( 'id' => 'props', 'type' => 'props', 'key' => 'props', 'name' => 'props', 'description' => 'props', 'objectclass' => 'props', 'used_for' => 'props', 'is_default' => 'props', 'attributes' => 'attribs', ); // Prepare fields $fields = $this->type_form_prepare($data); $add_mode = empty($data['id']); $title = $add_mode ? $this->translate('type.add') : $data['name']; $data['id'] = $data['id'] ? $data['type'].':'.$data['id'] : null; // Create form object and populate with fields $form = $this->form_create('type', $attribs, $sections, $fields, $fields_map, $data, $add_mode); $form->set_title(kolab_html::escape($title)); return $form->output(); } /** * HTML Form elements preparation. * * @param array $data Object data * * @return array Fields list */ protected function type_form_prepare(&$data) { // select top class by default for new type if (empty($data['objectclass'])) { $data['objectclass'] = array('top'); } // Get the rights on the entry and attribute level $data['effective_rights'] = $this->effective_rights('type', $data['id']); $attribute_rights = (array) $data['effective_rights']['attribute']; $entry_rights = (array) $data['effective_rights']['entry']; $add_mode = empty($data['id']); $fields = array( 'key' => array( 'type' => kolab_form::INPUT_TEXT, 'required' => true, 'value' => $data['key'], ), 'name' => array( 'type' => kolab_form::INPUT_TEXT, 'required' => true, 'value' => $data['name'], ), 'description' => array( 'type' => kolab_form::INPUT_TEXTAREA, 'value' => $data['description'], ), 'objectclass' => array( 'type' => kolab_form::INPUT_SELECT, 'name' => 'objectclass', // needed for form_element_select_data() below 'multiple' => true, 'required' => true, 'value' => $data['objectclass'], 'onchange' => "kadm.type_attr_class_change(this)", ), 'used_for' => array( 'value' => 'hosted', 'type' => kolab_form::INPUT_CHECKBOX, 'checked' => !empty($data['used_for']) && $data['used_for'] == 'hosted', ), 'is_default' => array( 'value' => '1', 'type' => kolab_form::INPUT_CHECKBOX, 'checked' => !empty($data['is_default']), ), 'attributes' => array( 'type' => kolab_form::INPUT_CONTENT, 'content' => $this->type_form_attributes($data), ), ); if ($data['type'] != 'user') { unset($form_fields['used_for']); } // See if "administrators" (those who can delete and add back on the entry // level) may override the automatically generated contents of auto_form_fields. //$admin_auto_fields_rw = $this->config_get('admin_auto_fields_rw', false, Conf::BOOL); foreach ($fields as $idx => $field) { if (!array_key_exists($idx, $attribute_rights)) { // If the entry level rights contain 'add' and 'delete', well, you're an admin if (in_array('add', $entry_rights) && in_array('delete', $entry_rights)) { if ($admin_auto_fields_rw) { $fields[$idx]['readonly'] = false; } } else { $fields[$idx]['readonly'] = true; } } else { if (in_array('add', $entry_rights) && in_array('delete', $entry_rights)) { if ($admin_auto_fields_rw) { $fields[$idx]['readonly'] = false; } } // Explicit attribute level rights, check for 'write' elseif (!in_array('write', $attribute_rights[$idx])) { $fields[$idx]['readonly'] = true; } } } // (Re-|Pre-)populate auto_form_fields if (!$add_mode) { // Add debug information if ($this->devel_mode) { ksort($data); $debug = kolab_html::escape(print_r($data, true)); $debug = preg_replace('/(^Array\n\(|\n*\)$|\t)/', '', $debug); $debug = str_replace("\n ", "\n", $debug); - $debug = '
    ' . $debug . '
    '; + $debug = '
    ' . $debug . '
    '; $fields['debug'] = array( 'label' => 'debug', 'section' => 'props', 'value' => $debug, ); } } // Get object classes $sd = $this->form_element_select_data($fields['objectclass'], null, true); $fields['objectclass'] = array_merge($fields['objectclass'], $sd); // Add entry identifier if (!$add_mode) { $fields['id'] = array( 'section' => 'props', 'type' => kolab_form::INPUT_HIDDEN, 'value' => $data['id'], ); } $fields['type'] = array( 'section' => 'props', 'type' => kolab_form::INPUT_HIDDEN, 'value' => $data['type'] ?: 'user', ); return $fields; } /** * Type attributes table */ private function type_form_attributes($data) { $attributes = array(); $rows = array(); $attr_table = array(); $table = array( 'id' => 'type_attr_table', - 'class' => 'list', + 'class' => 'list table table-sm', ); $cells = array( 'name' => array( 'body' => $this->translate('attribute.name'), ), 'type' => array( 'body' => $this->translate('attribute.type'), ), 'readonly' => array( 'body' => $this->translate('attribute.readonly'), ), 'optional' => array( 'body' => $this->translate('attribute.optional'), ), 'validate' => array( 'body' => $this->translate('attribute.validate'), ), ); if (!empty($data['effective_rights']['entry'])) { $cells['actions'] = array(); } foreach ($cells as $idx => $cell) { $cells[$idx]['class'] = $idx; } // get attributes list from $data if (!empty($data) && count($data) > 1) { $attributes = array_merge( array_keys((array) $data['attributes']['auto_form_fields']), array_keys((array) $data['attributes']['form_fields']), array_keys((array) $data['attributes']['fields']) ); $attributes = array_filter($attributes); $attributes = array_unique($attributes); } // get all available attributes $available = $this->type_attributes($data['objectclass']); // table header $table['head'] = array(array('cells' => $cells)); $rights = (array)$data['effective_rights']['attribute']['attributes']; $yes = $this->translate('yes'); $no = ''; // defined attributes foreach ($attributes as $attr) { $row = $cells; $type = $data['attributes']['form_fields'][$attr]['type'] ?: 'text'; $optional = $data['attributes']['form_fields'][$attr]['optional']; $autocomplete = $data['attributes']['form_fields'][$attr]['autocomplete']; $validate = $data['attributes']['form_fields'][$attr]['validate']; $valtype = 'normal'; $value = ''; if ($type == 'list' && $autocomplete) { $type = 'list-autocomplete'; } else if ($type == 'text' && $autocomplete) { $type = 'text-autocomplete'; } if ($data['attributes']['fields'][$attr]) { $valtype = 'static'; $_data = $data['attributes']['fields'][$attr]; $_data = is_array($_data) ? implode(',', $_data) : $_data; $value = $this->translate('attribute.value.static') . ': ' . kolab_html::escape($_data); } else if (isset($data['attributes']['auto_form_fields'][$attr])) { $valtype = 'auto'; if (is_array($data['attributes']['auto_form_fields'][$attr]['data'])) { $_data = implode(',', $data['attributes']['auto_form_fields'][$attr]['data']); } else { $_data = ''; } $value = $this->translate('attribute.value.auto'); if (!empty($_data)) { $value . ': ' . kolab_html::escape($_data); } if (!array_key_exists($attr, (array) $data['attributes']['form_fields'])) { $valtype = 'auto-readonly'; } if (empty($type) && !empty($data['attributes']['auto_form_fields'][$attr]['type'])) { $type = $data['attributes']['auto_form_fields'][$attr]['type']; } } $n_validate = $validate === false ? 'none' : $validate ? $validate : 'default'; // set cell content $row['name']['body'] = !empty($available[$attr]) ? $available[$attr] : $attr; $row['type']['body'] = $type; $row['readonly']['body'] = $valtype == 'auto-readonly' ? $yes : $no; $row['optional']['body'] = $optional ? $yes : $no; $row['validate']['body'] = $this->translate('attribute.validate.' . $n_validate); if (!empty($row['actions'])) { $row['actions']['body'] = ''; if (in_array('delete', $rights)) { $row['actions']['body'] .= kolab_html::a(array( 'href' => '#delete', 'onclick' => "kadm.type_attr_delete('$attr')", - 'class' => 'button delete', 'title' => $this->translate('delete'))); + 'class' => 'button font-icon delete', 'title' => $this->translate('delete'))); } if (in_array('write', $rights)) { $row['actions']['body'] .= kolab_html::a(array( 'href' => '#edit', 'onclick' => "kadm.type_attr_edit('$attr')", - 'class' => 'button edit', 'title' => $this->translate('edit'))); + 'class' => 'button font-icon edit', 'title' => $this->translate('edit'))); } } $rows[] = array( 'id' => 'attr_table_row_' . $attr, 'title' => $value, 'cells' => $row, ); // data array for the UI $attr_table[$attr] = array( 'type' => !empty($type) ? $type : 'text', 'valtype' => $valtype, 'optional' => $optional, 'validate' => $n_validate, 'maxcount' => $data['attributes']['form_fields'][$attr]['maxcount'], 'data' => $_data, 'values' => $data['attributes']['form_fields'][$attr]['values'], 'default' => $data['attributes']['form_fields'][$attr]['default'], ); } // edit form $rows[] = array( 'cells' => array( array( 'body' => $this->type_form_attributes_form($available), 'colspan' => count($cells), ), ), 'id' => 'type_attr_form', ); $table['body'] = $rows; // sort attr_table by attribute name ksort($attr_table); // set environment variables $this->output->set_env('attr_table', $attr_table); $this->output->set_env('yes_label', $yes); $this->output->set_env('no_label', $no); $this->output->add_translation('attribute.value.auto', 'attribute.value.static', 'attribute.key.invalid', 'attribute.required.error', 'attribute.validate.default', 'attribute.validate.basic', 'attribute.validate.none', 'attribute.validate.extended' ); // Add attribute link if (in_array('write', $rights)) { $link = kolab_html::a(array( 'href' => '#add_attr', 'class' => 'add_attr', 'onclick' => "kadm.type_attr_add()", 'content' => $this->translate('attribute.add')), true); } return kolab_html::table($table) . $link; } /** * Attributes edit form */ private function type_form_attributes_form($attributes) { // build form - $rows = array(); $form = array( 'name' => array( 'type' => kolab_form::INPUT_SELECT, 'options' => $attributes, 'onchange' => 'kadm.type_attr_name_change(this)', ), 'type' => array( 'type' => kolab_form::INPUT_SELECT, 'options' => array_combine($this->form_element_types, $this->form_element_types), 'onchange' => 'kadm.type_attr_type_change(this)', ), 'options' => array( 'type' => kolab_form::INPUT_TEXTAREA, 'data-type' => 'list', ), 'maxcount' => array( 'type' => kolab_form::INPUT_TEXT, 'size' => 5, ), 'value' => array( 'type' => kolab_form::INPUT_SELECT, 'options' => array( 'normal' => $this->translate('attribute.value.normal'), 'auto' => $this->translate('attribute.value.auto'), 'auto-readonly' => $this->translate('attribute.value.auto-readonly'), 'static' => $this->translate('attribute.value.static'), ), 'onchange' => 'kadm.type_attr_value_change(this)', ), 'default' => array( 'type' => kolab_form::INPUT_TEXT, ), 'validate' => array( 'type' => kolab_form::INPUT_SELECT, 'options' => array( 'default' => $this->translate('attribute.validate.default'), 'extended' => $this->translate('attribute.validate.extended'), 'basic' => $this->translate('attribute.validate.basic'), 'none' => $this->translate('attribute.validate.none'), ), ), 'optional' => array( 'type' => kolab_form::INPUT_CHECKBOX, 'value' => 1, ), ); + $result = new kolab_form(); + foreach ($form as $idx => $element) { - $element['name'] = 'attr_' . $idx; - $body = kolab_form::get_element($element); + $element['name'] = 'attr_' . $idx; + + if ($idx === 'value') { + $add = array( + 'name' => 'attr_data', + 'type' => kolab_form::INPUT_TEXT, + ); - if ($idx == 'value') { - $body .= kolab_form::get_element(array( - 'name' => 'attr_data', - 'type' => kolab_form::INPUT_TEXT, + $element = kolab_html::div(array( + 'class' => 'input-group', + 'content' => kolab_form::get_element($element) . kolab_form::get_element($add) )); + + $element = array('value' => $element); } - $rows[] = array( - 'id' => 'attr_form_row_' . $idx, - 'cells' => array( - array( - 'class' => 'label', - 'body' => $this->translate('attribute.' . $idx), - ), - array( - 'class' => 'value', - 'body' => $body, - ), - ), - ); + $element['label'] = $this->translate('attribute.' . $idx); + + $result->add_element($element); } - $rows[] = array( - 'cells' => array( - array( - 'colspan' => 2, - 'class' => 'formbuttons', - 'body' => kolab_html::input(array( - 'type' => 'button', - 'value' => $this->translate('button.save'), - 'onclick' => "kadm.type_attr_save()", - )) - . kolab_html::input(array( - 'type' => 'button', - 'value' => $this->translate('button.cancel'), - 'onclick' => "kadm.type_attr_cancel()", - )), - ), - ), - ); + $result->add_button(array( + 'value' => $this->translate('button.save'), + 'onclick' => "kadm.type_attr_save()", + )); - $table = array( - 'class' => 'form', - 'body' => $rows, - ); + $result->add_button(array( + 'value' => $this->translate('button.cancel'), + 'onclick' => "kadm.type_attr_cancel()", + )); - return kolab_html::table($table); + return $result->output(); } /** * Returns list of LDAP attributes for specified opject classes. */ public function type_attributes($object_class = null) { $post_data = array( 'attributes' => array('attribute'), 'classes' => $object_class, ); // get all available attributes $response = $this->api_post('form_value.select_options', null, $post_data); $response = $response->get('attribute'); $attributes = array(); $required = array(); // convert to hash array if (!empty($response['list'])) { // remove objectClass $attributes = array_diff($response['list'], array('objectClass')); // add special attributes - always supported $attributes = array_unique(array_merge($attributes, $this->special_attributes)); sort($attributes); if (count($attributes)) { $attributes = array_combine(array_map('strtolower', $attributes), $attributes); } } if (!empty($response['required'])) { // remove objectClass $required = array_diff($response['required'], array('objectClass')); } $this->output->set_env('attributes', $attributes); $this->output->set_env('attributes_required', $required); $this->output->set_env('special_attributes', $this->special_attributes); return $attributes; } /** * Users search form. * * @return string HTML output of the form */ public function type_search_form() { $form = new kolab_form(array('id' => 'search-form')); $form->add_section('criteria', kolab_html::escape($this->translate('search.criteria'))); $form->add_element(array( 'section' => 'criteria', 'label' => $this->translate('search.field'), 'name' => 'field', 'type' => kolab_form::INPUT_SELECT, 'options' => array( 'name' => kolab_html::escape($this->translate('search.name')), 'key' => kolab_html::escape($this->translate('search.key')), 'description' => kolab_html::escape($this->translate('search.description')), ), )); $form->add_element(array( 'section' => 'criteria', 'label' => $this->translate('search.method'), 'name' => 'method', 'type' => kolab_form::INPUT_SELECT, 'options' => array( 'both' => kolab_html::escape($this->translate('search.contains')), 'exact' => kolab_html::escape($this->translate('search.is')), 'prefix' => kolab_html::escape($this->translate('search.prefix')), ), )); return $form->output(); } /** * Users search form. * * @return string HTML output of the form */ public function type_filter() { $options = array(); foreach ($this->object_types as $type) { $options[$type] = $this->translate('type.' . $type); } $filter = array( 'type' => kolab_form::INPUT_SELECT, 'name' => 'type', 'id' => 'type_list_filter', 'options' => $options, 'value' => !empty($_POST['type']) ? $_POST['type'] : 'user', 'onchange' => "kadm.command('settings.type_list')", ); return kolab_form::get_element($filter); } } diff --git a/lib/client/kolab_client_task_user.php b/lib/client/kolab_client_task_user.php index 357d7c6..9171c7f 100644 --- a/lib/client/kolab_client_task_user.php +++ b/lib/client/kolab_client_task_user.php @@ -1,235 +1,236 @@ | +--------------------------------------------------------------------------+ | Author: Aleksander Machniak | +--------------------------------------------------------------------------+ */ class kolab_client_task_user extends kolab_client_task { protected $ajax_only = true; protected $menu = array( 'add' => 'user.add', ); protected $list_attribs = array('displayname', 'cn'); /** * Default action. */ public function action_default() { $this->output->set_object('content', 'user', true); $this->output->set_object('task_navigation', $this->menu()); $this->action_list(); // display form to add user if logged-in user has right to do so $caps = $this->get_capability('actions'); if (!empty($caps['user.add'])) { $this->action_add(); } else { $this->output->command('set_watermark', 'taskcontent'); } } /** * User information (form) action. */ public function action_info() { $id = $this->get_input('id', 'POST'); $result = $this->api_get('user.info', array('id' => $id)); $user = $result->get(); $output = $this->user_form(null, $user); $this->output->set_object('taskcontent', $output); } /** * Users adding (form) action. */ public function action_add() { $data = $this->get_input('data', 'POST'); $output = $this->user_form(null, $data, true); $this->output->set_object('taskcontent', $output); } private function user_form($attribs, $data = array()) { if (empty($attribs['id'])) { $attribs['id'] = 'user-form'; } // Form sections $sections = array( 'personal' => 'user.personal', 'contact_info' => 'user.contact_info', 'system' => 'user.system', 'config' => 'user.config', 'asterisk' => 'user.asterisk', 'other' => 'user.other', ); // field-to-section map and fields order $fields_map = array( 'type_id' => 'personal', 'type_id_name' => 'personal', /* Probably input */ 'givenname' => 'personal', 'sn' => 'personal', /* Possibly input */ 'initials' => 'personal', 'o' => 'personal', 'title' => 'personal', /* Probably generated */ 'cn' => 'personal', 'displayname' => 'personal', 'ou' => 'personal', 'preferredlanguage' => 'personal', /* Address lines together */ 'street' => 'contact_info', 'postofficebox' => 'contact_info', 'roomnumber' => 'contact_info', 'postalcode' => 'contact_info', 'l' => 'contact_info', 'c' => 'contact_info', /* Probably input */ 'mobile' => 'contact_info', 'facsimiletelephonenumber' => 'contact_info', 'telephonenumber' => 'contact_info', 'homephone' => 'contact_info', 'pager' => 'contact_info', 'mail' => 'contact_info', 'alias' => 'contact_info', 'mailalternateaddress' => 'contact_info', /* POSIX Attributes first */ 'uid' => 'system', 'userpassword' => 'system', 'userpassword2' => 'system', 'uidnumber' => 'system', 'gidnumber' => 'system', 'homedirectory' => 'system', 'loginshell' => 'system', 'nsrole' => 'system', 'nsroledn' => 'system', /* Kolab Settings */ 'kolabhomeserver' => 'config', 'mailhost' => 'config', 'mailquota' => 'config', 'cyrususerquota' => 'config', 'kolabfreebusyfuture' => 'config', 'kolabinvitationpolicy' => 'config', 'kolabdelegate' => 'config', 'kolaballowsmtprecipient' => 'config', 'kolaballowsmtpsender' => 'config', 'mailforwardingaddress' => 'config', /* Asterisk Settings */ 'astaccountallowedcodec' => 'asterisk', 'astaccountcallerid' => 'asterisk', 'astaccountcontext' => 'asterisk', 'astaccountdefaultuser' => 'asterisk', 'astaccountdeny' => 'asterisk', 'astaccounthost' => 'asterisk', 'astaccountmailbox' => 'asterisk', 'astaccountnat' => 'asterisk', 'astaccountname' => 'asterisk', 'astaccountqualify' => 'asterisk', 'astaccountrealmedpassword' => 'asterisk', 'astaccountregistrationexten' => 'asterisk', 'astaccountregistrationcontext' => 'asterisk', 'astaccountsecret' => 'asterisk', 'astaccounttype' => 'asterisk', 'astcontext' => 'asterisk', 'astextension' => 'asterisk', 'astvoicemailpassword' => 'asterisk', ); // Prepare fields $form = $this->form_prepare('user', $data, array('userpassword2'), null, $fields_map['type_id']); list($fields, $types, $type, $add_mode) = $form; // Add password confirmation if (isset($fields['userpassword'])) { $fields['userpassword2'] = $fields['userpassword']; // Add 'Generate password' link if (empty($fields['userpassword']['readonly'])) { + $fields['userpassword']['input-group'] = true; $fields['userpassword']['suffix'] = kolab_html::a(array( 'content' => $this->translate('password.generate'), 'href' => '#', 'onclick' => "kadm.generate_password('userpassword')", - 'class' => 'nowrap', + 'class' => 'nowrap btn btn-secondary input-group-append', )); } } // Create mode if ($add_mode) { // copy password to password confirm field $data['userpassword2'] = $data['userpassword']; // Page title $title = $this->translate('user.add'); } // Edit mode else { $title = $data['displayname']; if (empty($title)) { $title = $data['cn']; } // remove password $data['userpassword'] = ''; } // Create form object and populate with fields $form = $this->form_create('user', $attribs, $sections, $fields, $fields_map, $data, $add_mode, $title); $this->output->add_translation('user.password.mismatch'); return $form->output(); } /** * List item handler */ protected function list_item_handler($item) { return empty($item['displayname']) ? $item['cn'] : $item['displayname']; } /** * Returns true when current object matches logged user */ protected function is_deletable($data) { return parent::is_deletable($data) && $data['id'] != $_SESSION['user']['id']; } } diff --git a/lib/kolab_client_task.php b/lib/kolab_client_task.php index 3c6402f..46eecaf 100644 --- a/lib/kolab_client_task.php +++ b/lib/kolab_client_task.php @@ -1,1791 +1,1808 @@ | +--------------------------------------------------------------------------+ | Author: Aleksander Machniak | | Author: Jeroen van Meeuwen | +--------------------------------------------------------------------------+ */ class kolab_client_task { /** * @var kolab_client_output */ protected $output; /** * @var kolab_client_api */ protected $api; /** * @var Conf */ protected $config; protected $ajax_only = false; protected $page_title = 'Kolab Web Admin Panel'; protected $menu = array(); protected $cache = array(); protected $devel_mode = false; protected $object_types = array('user', 'group', 'role', 'resource', 'sharedfolder', 'ou', 'domain'); protected $page_size = 20; protected $list_attribs = array(); protected $list_module; protected $search_attribs = array( 'name' => array('cn', 'displayname'), 'email' => array('mail', 'alias', 'mailalternateaddress'), 'uid' => array('uid'), ); protected static $translation = array(); /** * Class constructor. * * @param kolab_client_output $output Optional output object */ public function __construct($output = null) { $this->config_init(); $this->devel_mode = $this->config_get('devel_mode', false, Conf::BOOL); $this->output_init($output); $this->api_init(); ini_set('session.use_cookies', 'On'); session_start(); $this->auth(); } /** * Localization initialization. */ protected function locale_init() { if (!empty(self::$translation)) { return; } $language = $this->get_language(); $LANG = array(); if (!$language) { $language = 'en_US'; } @include INSTALL_PATH . '/locale/en_US.php'; if ($language != 'en_US') { @include INSTALL_PATH . "/locale/$language.php"; } setlocale(LC_ALL, $language . '.utf8', $language . 'UTF-8', 'en_US.utf8', 'en_US.UTF-8'); // workaround for http://bugs.php.net/bug.php?id=18556 if (PHP_VERSION_ID < 50500 && in_array($language, array('tr_TR', 'ku', 'az_AZ'))) { setlocale(LC_CTYPE, 'en_US.utf8', 'en_US.UTF-8'); } self::$translation = $LANG; } /** * Configuration initialization. */ private function config_init() { $this->config = Conf::get_instance(); } /** * Output initialization. */ private function output_init($output = null) { if ($output) { $this->output = $output; return; } $skin = $this->config_get('skin', 'default'); $this->output = new kolab_client_output($skin); // Assign self to template variable $this->output->assign('engine', $this); } /** * API initialization */ private function api_init() { $url = $this->config_get('api_url', ''); if (!$url) { $port = $_SERVER['SERVER_PORT']; $url = kolab_utils::https_check() ? 'https://' : 'http://'; $url .= $_SERVER['SERVER_NAME'] . ($port ? ":$port" : ''); $url .= preg_replace('/\/?\?.*$/', '', $_SERVER['REQUEST_URI']); $url .= '/api'; } // TODO: Debug logging //console($url); $this->api = new kolab_client_api($url); } /** * Returns system language (locale) setting. * * @return string Language code */ private function get_language() { $aliases = array( 'de' => 'de_DE', 'en' => 'en_US', 'pl' => 'pl_PL', ); // UI language $langs = !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : ''; $langs = explode(',', $langs); if (!empty($_SESSION['user']) && !empty($_SESSION['user']['language'])) { array_unshift($langs, $_SESSION['user']['language']); } while ($lang = array_shift($langs)) { $lang = explode(';', $lang); $lang = $lang[0]; $lang = str_replace('-', '_', $lang); if (file_exists(INSTALL_PATH . "/locale/$lang.php")) { return $lang; } if (isset($aliases[$lang]) && ($alias = $aliases[$lang]) && file_exists(INSTALL_PATH . "/locale/$alias.php") ) { return $alias; } } return null; } /** * User authentication (and authorization). */ private function auth() { if (isset($_POST['login'])) { $login = $this->get_input('login', 'POST', true); if ($login['username']) { $login['username'] = trim($login['username']); $login['domain'] = trim($login['domain']); $result = $this->api->login($login['username'], $login['password'], $login['domain'], true); if ($token = $result->get('session_token')) { $user = array( 'token' => $token, 'id' => $result->get('userid'), 'domain' => $result->get('domain') ); $this->api->set_session_token($user['token']); // Find user settings // Don't call API user.info for non-existing users (#1025) if (preg_match('/^cn=([a-z ]+)/i', $login['username'], $m)) { $user['fullname'] = ucwords($m[1]); } else { $res = $result->get('info'); if (empty($res)) { $res = $this->api->get('user.info', array('id' => $user['id'])); $res = $res->get(); } if (is_array($res) && !empty($res)) { $user['language'] = $res['preferredlanguage']; $user['fullname'] = $res['cn']; // overwrite user id set in login request, which might be user base DN, // with unique attribute, which suits better to our needs $user['id'] = $res['id']; } } // Save user data $_SESSION['user'] = $user; if (($language = $this->get_language()) && $language != 'en_US') { $_SESSION['user']['language'] = $language; $session_config['language'] = $language; } // Configure API session if (!empty($session_config)) { $this->api->post('system.configure', null, $session_config); } header('Location: ?'); die; } else { $code = $result->get_error_code(); $str = $result->get_error_str(); $label = 'loginerror'; if ($code == kolab_client_api::ERROR_INTERNAL || $code == kolab_client_api::ERROR_CONNECTION ) { $label = 'internalerror'; $this->raise_error(500, 'Login failed. ' . $str); } $this->output->command('display_message', $label, 'error'); } } } else if (!empty($_SESSION['user']) && !empty($_SESSION['user']['token'])) { // Validate session $timeout = $this->config_get('session_timeout', 3600); if ($timeout && $_SESSION['time'] && $_SESSION['time'] < time() - $timeout) { $this->action_logout(true); } // update session time $_SESSION['time'] = time(); // Set API session key $this->api->set_session_token($_SESSION['user']['token']); } } /** * Main execution. */ public function run() { // Initialize locales $this->locale_init(); // Session check if (empty($_SESSION['user']) || empty($_SESSION['user']['token'])) { $this->action_logout(); } // Run security checks $this->input_checks(); $this->action = $this->get_input('action', 'GET'); if ($this->action) { $method = 'action_' . $this->action; if (method_exists($this, $method)) { $this->$method(); } } else if (method_exists($this, 'action_default')) { $this->action_default(); } } /** * Security checks and input validation. */ public function input_checks() { $ajax = $this->output->is_ajax(); // Check AJAX-only tasks if ($this->ajax_only && !$ajax) { $this->raise_error(500, 'Invalid request type!', null, true); } // CSRF prevention $token = $ajax ? kolab_utils::get_request_header('X-Session-Token') : $this->get_input('token'); $task = $this->get_task(); if ($task != 'main' && $token != $_SESSION['user']['token']) { $this->raise_error(403, 'Invalid request data!', null, true); } } /** * Logout action. */ private function action_logout($sess_expired = false, $stop_sess = true) { // Initialize locales $this->locale_init(); if (!empty($_SESSION['user']) && !empty($_SESSION['user']['token']) && $stop_sess) { $this->api->logout(); } $_SESSION = array(); if ($this->output->is_ajax()) { if ($sess_expired) { $args = array('error' => 'session.expired'); } $this->output->command('main_logout', $args); if ($sess_expired) { $this->output->send(); exit; } } else { $this->output->add_translation('loginerror', 'internalerror', 'session.expired'); } if ($sess_expired) { $error = 'session.expired'; } else { $error = $this->get_input('error', 'GET'); } if ($error) { $this->output->command('display_message', $error, 'error', 60000); } $this->send('login'); exit; } /** * Error action (with error logging). * * @param int $code Error code * @param string $msg Error message * @param array $args Optional arguments (type, file, line) * @param bool $output Enable to send output and finish */ public function raise_error($code, $msg, $args = array(), $output = false) { $log_line = sprintf("%s Error: %s (%s)", isset($args['type']) ? $args['type'] : 'PHP', $msg . (isset($args['file']) ? sprintf(' in %s on line %d', $args['file'], $args['line']) : ''), $_SERVER['REQUEST_METHOD']); write_log('errors', $log_line); if (!$output) { return; } if ($this->output->is_ajax()) { header("HTTP/1.0 $code $msg"); die; } $this->output->assign('error_code', $code); $this->output->assign('error_message', $msg); $this->send('error'); exit; } /** * Output sending. */ public function send($template = null) { if (!$template) { $template = $this->get_task(); } if ($this->page_title) { $this->output->assign('pagetitle', $this->page_title); } $this->output->send($template); exit; } /** * Returns name of the current task. * * @return string Task name */ public function get_task() { $class_name = get_class($this); if (preg_match('/^kolab_client_task_([a-z]+)$/', $class_name, $m)) { return $m[1]; } } /** * Returns output environment variable value * * @param string $name Variable name * * @return mixed Variable value */ public function get_env($name) { return $this->output->get_env($name); } /** * Returns configuration option value. * * @param string $name Option name * @param mixed $fallback Default value * @param int $type Value type (one of Conf class constants) * * @return mixed Option value */ public function config_get($name, $fallback = null, $type = null) { $value = $this->config->get('kolab_wap', $name, $type); return $value !== null ? $value : $fallback; } /** * Returns translation of defined label/message. * * @return string Translated string. */ public static function translate() { $args = func_get_args(); if (is_array($args[0])) { $args = $args[0]; } $label = $args[0]; if (isset(self::$translation[$label])) { $content = trim(self::$translation[$label]); } else { $content = $label; } for ($i = 1, $len = count($args); $i < $len; $i++) { $content = str_replace('$'.$i, $args[$i], $content); } return $content; } /** * Returns input parameter value. * * @param string $name Parameter name * @param string $type Parameter type (GET|POST|NULL) * @param bool $allow_html Disables stripping of insecure content (HTML tags) * * @see kolab_utils::get_input * @return mixed Input value. */ public static function get_input($name, $type = null, $allow_html = false) { if ($type == 'GET') { $type = kolab_utils::REQUEST_GET; } else if ($type == 'POST') { $type = kolab_utils::REQUEST_POST; } else { $type = kolab_utils::REQUEST_ANY; } return kolab_utils::get_input($name, $type, $allow_html); } /** * Returns task menu output. * * @return string HTML output */ protected function menu() { if (empty($this->menu)) { return ''; } $menu = array(); $task = $this->get_task(); $caps = (array) $this->get_capability('actions'); foreach ($this->menu as $idx => $label) { if (in_array($task, $this->object_types)) { if (!array_key_exists($task . "." . $idx, $caps)) { continue; } } if (strpos($idx, '.')) { $action = $idx; $class = preg_replace('/\.[a-z_-]+$/', '', $idx); } else { $action = $task . '.' . $idx; $class = $idx; } $menu[$idx] = sprintf('
  • ' .'%s
  • ', $class, $idx, $action, $this->translate($label)); } return '
      ' . implode("\n", $menu) . '
    '; } /** * Adds watermark page definition into main page. */ protected function watermark($name) { $this->output->command('set_watermark', $name); } /** * API GET request wrapper */ protected function api_get($action, $get = array()) { return $this->api_call('get', $action, $get); } /** * API POST request wrapper */ protected function api_post($action, $get = array(), $post = array()) { return $this->api_call('post', $action, $get, $post); } /** * API request wrapper with error handling */ protected function api_call($type, $action, $get = array(), $post = array()) { if ($type == 'post') { $result = $this->api->post($action, $get, $post); } else { $result = $this->api->get($action, $get); } // error handling if ($code = $result->get_error_code()) { // Invalid session, do logout if ($code == 403) { $this->action_logout(true, false); } // Log communication errors, other should be logged on API side if ($code < 400) { $this->raise_error($code, 'API Error: ' . $result->get_error_str()); } } return $result; } /** * Returns list of object types. * * @para string $type Object type name * @param string $used_for Used_for attribute of object type * * @return array List of user types */ protected function object_types($type, $used_for = null) { if (empty($type) || !in_array($type, $this->object_types)) { return array(); } $cache_idx = $type . '_types' . ($used_for ? ":$used_for" : ''); if (!array_key_exists($cache_idx, $this->cache)) { $result = $this->api_post($type . '_types.list'); $list = $result->get('list'); if (!empty($used_for) && is_array($list)) { foreach ($list as $type_id => $type_attrs) { if ($type_attrs['used_for'] != $used_for) { unset($list[$type_id]); } } } $this->cache[$cache_idx] = !empty($list) ? $list : array(); Log::trace("kolab_client_task::${type}_types() returns: " . var_export($list, true)); } return $this->cache[$cache_idx]; } /** * Returns user name. * * @param string $dn User DN attribute value * * @return string User name (displayname) */ protected function user_name($dn) { if (!$this->devel_mode) { if (!empty($this->cache['user_names']) && isset($this->cache['user_names'][$dn])) { return $this->cache['user_names'][$dn]; } } $result = $this->api_get('user.info', array('id' => $dn)); $username = $result->get('displayname'); if (empty($username)) { $username = $result->get('cn'); } if (empty($username)) { if (preg_match('/^cn=([a-zA=Z ]+)/', $dn, $m)) { $username = ucwords($m[1]); } } if (!$this->devel_mode) { $this->cache['user_names'][$dn] = $username; } return $username; } /** * Returns list of system capabilities. * * @param bool $all If enabled capabilities for all domains will be returned * @param bool $refresh Disable session cache * * @return array List of system capabilities */ protected function capabilities($all = false, $refresh = false) { if (!$refresh && isset($_SESSION['capabilities']) && !$this->devel_mode) { $list = $_SESSION['capabilities']; } else { $result = $this->api_post('system.capabilities'); $list = $result->get('list'); if (is_array($list) && !$this->devel_mode) { $_SESSION['capabilities'] = $list; } } $domain = $this->domain ? $this->domain : $_SESSION['user']['domain']; return !$all ? $list[$domain] : $list; } /** * Returns system capability * * @param string $name Capability (key) name * * @return array Capability value if supported, NULL otherwise */ protected function get_capability($name) { $caps = $this->capabilities(); return $caps[$name]; } /** * Returns domains list (based on capabilities response) * * @param bool $refresh Refresh session cache * * @return array List of domains */ protected function get_domains($refresh = false) { $caps = $this->capabilities(true, $refresh); return is_array($caps) ? array_keys($caps) : array(); } /** * Returns effective rights for the specified object * * @param string $type Object type * @param string $id Object identifier * * @return array Two element array with 'attribute' and 'entry' elements */ protected function effective_rights($type, $id = null) { $caps = $this->get_capability('actions'); if (empty($caps[$type . '.effective_rights'])) { return array( 'attribute' => array(), 'entry' => array(), ); } // Get the rights on the entry and attribute level $result = $this->api_get($type . '.effective_rights', array('id' => $id)); $result = array( 'attribute' => $result->get('attributeLevelRights'), 'entry' => $result->get('entryLevelRights'), ); return $result; } /** * Returns execution time in seconds * * @param string Execution time */ public function gentime() { return sprintf('%.4f', microtime(true) - KADM_START); } /** * Returns HTML output of login form * * @param string HTML output */ public function login_form() { $post = $this->get_input('login', 'POST', true); - $username = kolab_html::label(array( - 'for' => 'login_name', - 'content' => $this->translate('login.username')), true) - . kolab_html::input(array( - 'type' => 'text', - 'id' => 'login_name', - 'name' => 'login[username]', - 'value' => $post['username'], - 'autofocus' => true)); - - $password = kolab_html::label(array( - 'for' => 'login_pass', - 'content' => $this->translate('login.password')), true) - . kolab_html::input(array( - 'type' => 'password', - 'id' => 'login_pass', - 'name' => 'login[password]', - 'value' => '')); + $username = kolab_html::div(array( + 'class' => 'form-group input-group input-group-lg', + 'content' => kolab_html::label(array( + 'for' => 'login_name', + 'class' => 'font-icon login input-group-prepend input-group-text', + 'content' => kolab_html::span(array( + 'class' => 'sr-only', + 'content' => $this->translate('login.username'), true)))) + . kolab_html::input(array( + 'type' => 'text', + 'id' => 'login_name', + 'name' => 'login[username]', + 'value' => $post['username'], + 'placeholder' => $this->translate('login.username'), + 'autofocus' => true)) + )); + + $password = kolab_html::div(array( + 'class' => 'form-group input-group input-group-lg', + 'content' => kolab_html::label(array( + 'for' => 'login_pass', + 'class' => 'font-icon password input-group-prepend input-group-text', + 'content' => kolab_html::span(array( + 'class' => 'sr-only', + 'content' => $this->translate('login.password'), true)))) + . kolab_html::input(array( + 'type' => 'password', + 'id' => 'login_pass', + 'name' => 'login[password]', + 'placeholder' => $this->translate('login.password'), + 'value' => '')) + )); $button = kolab_html::input(array( 'type' => 'submit', 'id' => 'login_submit', + 'class' => 'btn btn-primary btn-lg text-uppercase w-100', 'value' => $this->translate('login.login'))); $form = kolab_html::form(array( 'id' => 'login_form', 'name' => 'login', 'method' => 'post', 'action' => '?'), - kolab_html::span(array('content' => $username)) - . kolab_html::span(array('content' => $password)) - . $button); + kolab_html::div(array('content' => $username)) + . kolab_html::div(array('content' => $password)) + . $button + ); return $form; } /** * Returns form element definition based on field attributes * * @param array $field Field attributes * @param array $data Attribute values * * @return array Field definition */ protected function form_element_type($field, $data = array()) { $result = array(); switch ($field['type']) { case 'select': case 'multiselect': $opts = $this->form_element_select_data($field, $data); $result['type'] = kolab_form::INPUT_SELECT; $result['options'] = $opts['options']; $result['value'] = $opts['default']; $result['default'] = $field['default']; if ($field['type'] == 'multiselect') { $result['multiple'] = true; } break; case 'list': $result['type'] = kolab_form::INPUT_TEXTAREA; $result['data-type'] = 'list'; if (!empty($field['maxlength'])) { $result['data-maxlength'] = $field['maxlength']; } if (!empty($field['maxcount'])) { $result['data-maxcount'] = $field['maxcount']; } if (!empty($field['autocomplete'])) { $result['data-autocomplete'] = true; } break; case 'checkbox': $result['type'] = kolab_form::INPUT_CHECKBOX; break; case 'password': $result['type'] = kolab_form::INPUT_PASSWORD; if (isset($field['maxlength'])) { $result['maxlength'] = $field['maxlength']; } break; case 'text-quota': $result['type'] = kolab_form::INPUT_TEXTQUOTA; $result['default'] = $field['default']; break; case 'aci': $result['type'] = kolab_form::INPUT_TEXTAREA; $result['data-type'] = 'aci'; $this->output->add_translation('aci.new', 'aci.edit', 'aci.remove', 'aci.users', 'aci.rights', 'aci.targets', 'aci.aciname', 'aci.read', 'aci.compare', 'aci.search', 'aci.write', 'aci.selfwrite', 'aci.delete', 'aci.add', 'aci.proxy', 'aci.all', 'aci.allow', 'aci.deny', 'aci.typeusers', 'aci.typegroups', 'aci.typeroles', 'aci.typeadmins', 'aci.typespecials', 'aci.ldap-all', 'aci.ldap-anyone', 'aci.ldap-self', 'aci.ldap-parent', 'aci.usersearch', 'aci.usersearchresult', 'aci.selected', 'aci.other', 'aci.userselected', 'aci.useradd', 'aci.userremove', 'aci.thisentry', 'aci.rights.target', 'aci.rights.filter', 'aci.rights.attrs', 'aci.checkall', 'aci.checknone', 'aci.error.noname', 'aci.error.exists', 'aci.error.nousers', 'button.cancel', 'button.ok' ); break; case 'imap_acl': $result['type'] = kolab_form::INPUT_TEXTAREA; $result['data-type'] = 'acl'; $result['default'] = $field['default']; $this->output->add_translation('aci.new', 'aci.edit', 'aci.remove', 'button.ok', 'button.cancel', 'acl.all', 'acl.custom', 'acl.read-only', 'acl.read-write', 'acl.full', 'acl.semi-full', 'acl.l', 'acl.r', 'acl.s', 'acl.w', 'acl.i', 'acl.p', 'acl.k', 'acl.a', 'acl.x', 'acl.t', 'acl.n', 'acl.e', 'acl.d', 'acl.anyone', 'acl.anonymous', 'acl.identifier', 'acl.rights', 'acl.expire', 'acl.user', 'acl.error.invaliddate', 'acl.error.nouser', 'acl.error.subjectexists', 'acl.error.norights' ); break; case 'text-separated': $result['type'] = kolab_form::INPUT_TEXTAREA; $result['data-type'] = 'separated'; break; default: if (!empty($field['autocomplete'])) { $result['type'] = kolab_form::INPUT_TEXTAREA; $result['data-type'] = 'list'; $result['data-maxcount'] = 1; $result['data-autocomplete'] = true; } else { $result['type'] = kolab_form::INPUT_TEXT; } if ($field['type'] && $field['type'] != 'text') { $result['data-type'] = $field['type']; if ($field['type'] == 'ldap_url') { $this->output->add_translation('ldap.one', 'ldap.sub', 'ldap.base', 'ldap.host', 'ldap.basedn','ldap.scope', 'ldap.conditions', 'ldap.filter_any', 'ldap.filter_both', 'ldap.filter_prefix', 'ldap.filter_suffix', - 'ldap.filter_exact', 'ldap.filter_notexact' + 'ldap.filter_exact' ); } } else { $result['default'] = $field['default']; } if (isset($field['maxlength'])) { $result['maxlength'] = $field['maxlength']; } } $result['required'] = empty($field['optional']); return $result; } /** * Prepares options/value of select element * * @param array $field Field attributes * @param array $data Attribute values * @param bool $lc Convert option values to lower-case * * @return array Options/Default definition */ protected function form_element_select_data($field, $data = array(), $lc = false) { $options = array(); $default = null; if (!isset($field['values'])) { $data['attributes'] = array($field['name']); $resp = $this->api_post('form_value.select_options', null, $data); $resp = $resp->get($field['name']); unset($data['attributes']); $default = empty($data[$field['name']]) ? $resp['default'] : $data[$field['name']]; $field['values'] = $resp['list']; } if (!empty($field['values'])) { if ($lc) { $options = array_combine(array_map('strtolower', $field['values']), $field['values']); } else { $options = array_combine($field['values'], $field['values']); } // Exceptions if ($field['name'] == 'ou') { foreach ($options as $idx => $dn) { $options[$idx] = kolab_utils::dn2ufn($dn); } } } if (!empty($default)) { foreach ($options as $key => $value) { if (strtolower($default) == $key) { $default = strtolower($default); } } } return array( 'options' => $options, 'default' => $default, ); } /** * HTML Form elements preparation. * * @param string $name Object name (user, group, etc.) * @param array $data Object data * @param array $extra_fields Extra field names * @param string $used_for Object types filter * @param string $id_section Name of section for type_id field * * @return array Fields list, Object types list, Current type ID */ protected function form_prepare($name, &$data, $extra_fields = array(), $used_for = null, $id_section = null) { $types = (array) $this->object_types($name, $used_for); $add_mode = empty($data['id']); $event_fields = array(); $auto_fields = array(); $form_fields = array(); $fields = array(); $auto_attribs = array(); $extra_fields = array_flip($extra_fields); // Object type $data['object_type'] = $name; // Selected account type if (!empty($data['type_id'])) { $type = $data['type_id']; } else { // find default object type foreach ($types as $type_id => $type) { if ($type['is_default']) { $default = $type_id; break; } } reset($types); $data['type_id'] = $type = ($default !== null ? $default : key($types)); } if ($type) { $auto_fields = (array) $types[$type]['attributes']['auto_form_fields']; $form_fields = (array) $types[$type]['attributes']['form_fields']; } // Mark automatically generated fields as read-only, etc. foreach ($auto_fields as $idx => $field) { if (!is_array($field)) { unset($auto_fields[$idx]); continue; } // merge with field definition from if (isset($form_fields[$idx])) { $field = array_merge($field, $form_fields[$idx]); } // remove auto-generated value on type change, it will be re-generated else if ($add_mode) { unset($data[$idx]); } $field['name'] = $idx; $fields[$idx] = $this->form_element_type($field, $data); $fields[$idx]['readonly'] = true; $extra_fields[$idx] = true; // build event_fields list if (!empty($field['data'])) { foreach ($field['data'] as $fd) { $event_fields[$fd][] = $idx; } } } // Other fields foreach ($form_fields as $idx => $field) { if (!isset($fields[$idx])) { $field['name'] = $idx; $fields[$idx] = $this->form_element_type($field, $data); } else { unset($extra_fields[$idx]); } $fields[$idx]['readonly'] = false; // Attach on-change events to some fields, to update // auto-generated field values if (!empty($event_fields[$idx])) { $event = json_encode(array_unique($event_fields[$idx])); $fields[$idx]['onchange'] = "kadm.form_value_change($event)"; } } // Re-parse auto_fields again, to get attributes for auto-generation // Need to do this after form_fields have been initialized (#2980) foreach ($auto_fields as $idx => $field) { // build auto_attribs and event_fields lists if (!empty($field['data'])) { $is_data = 0; foreach ($field['data'] as $fd) { if (!isset($data[$fd]) && isset($fields[$fd]['value'])) { $data[$fd] = $fields[$fd]['value']; } if (isset($data[$fd])) { $is_data++; } } if (count($field['data']) == $is_data) { $auto_attribs[] = $idx; } } else { $auto_attribs[] = $idx; // Unset the $auto_fields array key to prevent the form field from // becoming disabled/readonly unset($auto_fields[$idx]); } } // Get the rights on the entry and attribute level $data['effective_rights'] = $this->effective_rights($name, $data['id']); $attribute_rights = (array) $data['effective_rights']['attribute']; $entry_rights = (array) $data['effective_rights']['entry']; // See if "administrators" (those who can delete and add back on the entry // level) may override the automatically generated contents of auto_form_fields. $admin_auto_fields_rw = $this->config_get('admin_auto_fields_rw', false, Conf::BOOL); foreach ($fields as $idx => $field) { $readonly = null; if (!array_key_exists($idx, $attribute_rights)) { // If the entry level rights contain 'add' and 'delete', well, you're an admin if (in_array('add', $entry_rights) && in_array('delete', $entry_rights)) { if ($admin_auto_fields_rw) { $fields[$idx]['readonly'] = false; } } else { $fields[$idx]['readonly'] = $readonly = true; } } else { if (in_array('add', $entry_rights) && in_array('delete', $entry_rights)) { if ($admin_auto_fields_rw) { $fields[$idx]['readonly'] = false; } } // Explicit attribute level rights, check for 'write' else if (!in_array('write', $attribute_rights[$idx])) { $fields[$idx]['readonly'] = $readonly = true; } } // disable auto-fields updates, user has no rights to modify them anyway if (is_bool($readonly) && $readonly) { if (($s_idx = array_search($idx, $auto_attribs)) !== false) { unset($auto_attribs[$s_idx]); } unset($auto_fields[$idx]); } } // Register list of auto-generated fields $this->output->set_env('auto_fields', $auto_fields); // Register list of disabled fields $this->output->set_env('extra_fields', array_keys($extra_fields)); // (Re-|Pre-)populate auto_form_fields if ($add_mode) { if (!empty($auto_attribs)) { $data['attributes'] = $auto_attribs; $resp = $this->api_post('form_value.generate', null, $data); $data = array_merge((array)$data, (array)$resp->get()); unset($data['attributes']); } } else { // Add common information fields $add_fields = array( 'creatorsname' => 'createtimestamp', 'modifiersname' => 'modifytimestamp', ); foreach ($add_fields as $idx => $val) { if (!empty($data[$idx])) { if ($value = $this->user_name($data[$idx])) { if ($data[$val]) { $value .= ' (' . strftime('%x %X', strtotime($data[$val])) . ')'; } $fields[$idx] = array( 'label' => $idx, 'section' => 'system', 'value' => $value, ); } } } // Add debug information if ($this->devel_mode) { ksort($data); $debug = kolab_html::escape(print_r($data, true)); $debug = preg_replace('/(^Array\n\(|\n*\)$|\t)/', '', $debug); $debug = str_replace("\n ", "\n", $debug); - $debug = '
    ' . $debug . '
    '; + $debug = '
    ' . $debug . '
    '; $fields['debug'] = array( 'label' => 'debug', 'section' => 'system', 'value' => $debug, ); } } // Add object type hidden field $fields['object_type'] = array( 'section' => 'system', 'type' => kolab_form::INPUT_HIDDEN, 'value' => $name, ); // Get user-friendly names for lists foreach ($fields as $fname => $field) { if (!empty($field['data-autocomplete']) && !empty($data[$fname])) { if (!is_array($data[$fname])) { $data[$fname] = (array) $data[$fname]; } // request parameters $post = array( 'list' => $data[$fname], 'attribute' => $fname, 'object_type' => $name, 'type_id' => $data['type_id'], ); // get options list $result = $this->api_post('form_value.list_options', null, $post); $result = $result->get('list'); $data[$fname] = $result; } } // Add entry identifier if (!$add_mode) { $fields['id'] = array( 'section' => 'system', 'type' => kolab_form::INPUT_HIDDEN, 'value' => $data['id'] ); } // Add object type id selector if ($id_section) { $object_types = array(); foreach ($types as $idx => $elem) { $object_types[$idx] = array('value' => $idx, 'content' => $elem['name']); } // Add object type id selector $fields['type_id'] = array( 'section' => $id_section, 'type' => kolab_form::INPUT_SELECT, 'options' => $object_types, 'onchange' => "kadm.{$name}_save(true, '$id_section')", ); // Hide account type selector if there's only one type if (count($object_types) < 2 || !$add_mode) { $fields['type_id']['type'] = kolab_form::INPUT_HIDDEN; } // Add object type name if (!$add_mode && count($object_types) > 1) { $fields['type_id_name'] = array( 'label' => "$name.type_id", 'section' => $id_section, 'value' => $object_types[$type]['content'], ); } } $result = array($fields, $types, $type, $add_mode); return $result; } /** * HTML Form creation. * * @param string $name Object name (user, group, etc.) * @param array $attribs HTML attributes of the form * @param array $sections List of form sections * @param array $fields Fields list (from self::form_prepare()) * @param array $fields_map Fields map (used for sorting and sections assignment) * @param array $data Object data (with effective rights, see form_prepare()) * @param bool $add_mode Add mode enabled * @param string $title Page title * * @return kolab_form HTML Form object */ protected function form_create($name, $attribs, $sections, $fields, $fields_map, $data, $add_mode, $title = null) { // Assign sections to fields foreach ($fields as $idx => $field) { if (!$field['section']) { $fields[$idx]['section'] = isset($fields_map[$idx]) ? $fields_map[$idx] : 'other'; } } // Sort foreach ($fields_map as $idx => $val) { if (array_key_exists($idx, $fields)) { $fields_map[$idx] = $fields[$idx]; unset($fields[$idx]); } else { unset($fields_map[$idx]); } } if (!empty($fields)) { $fields_map = array_merge($fields_map, $fields); } $form = new kolab_form($attribs); $default_values = array(); $assoc_fields = array(); $req_fields = array(); $writeable = 0; $auto_fields = $this->output->get_env('auto_fields'); $conf_aliases = array('mailquota' => 'quota'); $domain = $this->domain ?: $_SESSION['user']['domain']; // Parse elements and add them to the form object foreach ($sections as $section_idx => $section) { $form->add_section($section_idx, kolab_html::escape($this->translate($section))); foreach ($fields_map as $idx => $field) { if ($field['section'] != $section_idx) { continue; } if (empty($field['label'])) { $field['label'] = "$name.$idx"; } $field['label'] = kolab_html::escape($this->translate($field['label'])); $field['description'] = "$name.$idx.desc"; $field['section'] = $section_idx; if (empty($field['value']) && $data[$idx] !== null && $data[$idx] !== '') { $value = $data[$idx]; // Convert data for the list field with autocompletion if ($field['data-type'] == 'list') { if (!is_array($value)) { if (!empty($field['data-autocomplete'])) { $value = array($value => $value); } else { $value = (array) $value; } } $value = !empty($field['data-autocomplete']) ? array_keys($value) : array_values($value); } if (is_array($value)) { $value = implode("\n", $value); } $field['value'] = $value; } else if ($add_mode && !isset($field['value'])) { // read default from config, e.g. default_quota if (!isset($field['default'])) { $conf_name = 'default_' . ($conf_aliases[$idx] ?: $idx); $field['default'] = $this->config->get($domain, $conf_name); } if (isset($field['default'])) { $field['value'] = $field['default']; $default_values[$idx] = $field['default']; unset($field['default']); } } // @TODO: We assume here that all autocompletion lists are associative // It's likely that we'll need autocompletion on ordinary lists if (!empty($field['data-autocomplete'])) { $assoc_fields[$idx] = !empty($data[$idx]) ? $data[$idx] : array(); } if ($field['type'] == kolab_form::INPUT_CHECKBOX && !isset($field['checked'])) { $field['checked'] = $field['value'] == 'TRUE'; $field['value'] = 'TRUE'; } /* if (!empty($field['suffix'])) { $field['suffix'] = kolab_html::escape($this->translate($field['suffix'])); } */ if (!empty($field['options']) && empty($field['escaped'])) { foreach ($field['options'] as $opt_idx => $option) { if (is_array($option)) { $field['options'][$opt_idx]['content'] = kolab_html::escape($this->translate($option['content'])); } else { $field['options'][$opt_idx] = kolab_html::escape($this->translate($option)); } } $field['escaped'] = true; } if (!empty($field['description'])) { $description = $this->translate($field['description']); if ($description != $field['description']) { $field['title'] = $description; } unset($field['description']); } if (empty($field['name'])) { $field['name'] = $idx; } if (empty($field['readonly']) && empty($field['disabled'])) { // count writeable fields if ($field['type'] && $field['type'] != kolab_form::INPUT_HIDDEN) { $writeable++; } if ($idx != "userpassword2") { if (!empty($field['required'])) { $req_fields[] = $idx; } } } $form->add_element($field); } } if (!empty($data['section'])) { $form->activate_section($data['section']); } if ($writeable) { $form->add_button(array( 'value' => kolab_html::escape($this->translate('button.submit')), 'onclick' => "kadm.command('{$name}.save')", 'class' => 'submit', )); } // add Delete button if ($this->is_deletable($data)) { $id = $data['id']; $form->add_button(array( 'value' => kolab_html::escape($this->translate('button.delete')), + 'class' => 'btn btn-danger', 'onclick' => "kadm.command('{$name}.delete', '{$id}')", )); } // add Clone button if (!empty($attribs['clone-button'])) { $id = $data['id']; $form->add_button(array( 'value' => kolab_html::escape($this->translate('button.clone')), 'onclick' => "kadm.command('{$attribs['clone-button']}', '{$id}')", )); } $ac_min_len = $this->config_get('autocomplete_min_length', 1, Conf::INT); $this->output->set_env('form_id', $attribs['id']); $this->output->set_env('default_values', $default_values); $this->output->set_env('assoc_fields', $assoc_fields); $this->output->set_env('required_fields', $req_fields); $this->output->set_env('autocomplete_min_length', $ac_min_len); $this->output->set_env('entrydn', $data['entrydn']); $this->output->add_translation('form.required.empty', 'form.maxcount.exceeded', $name . '.add.success', $name . '.edit.success', $name . '.delete.success', $name . '.delete.confirm', $name . '.delete.force', 'add', 'edit', 'delete'); if (empty($title)) { $title = $add_mode ? $this->translate("$name.add") : $data['cn']; } $form->set_title(kolab_html::escape($title)); return $form; } /** * Check wether specified object can be deleted */ protected function is_deletable($data) { return !empty($data['id']) && in_array('delete', (array) $data['effective_rights']['entry']); } /** * Search form. * * @return string HTML output of the form */ public function search_form() { $attribs = $this->get_search_attribs(); if (empty($attribs)) { return ''; } $options = array(); foreach (array_keys($attribs) as $key) { $options[$key] = kolab_html::escape($this->translate('search.' . $key)); } $form = new kolab_form(array('id' => 'search-form')); $form->add_section('criteria', kolab_html::escape($this->translate('search.criteria'))); $form->add_element(array( 'section' => 'criteria', 'label' => $this->translate('search.field'), 'name' => 'field', 'type' => kolab_form::INPUT_SELECT, 'options' => $options, )); $form->add_element(array( 'section' => 'criteria', 'label' => $this->translate('search.method'), 'name' => 'method', 'type' => kolab_form::INPUT_SELECT, 'options' => array( 'both' => kolab_html::escape($this->translate('search.contains')), 'exact' => kolab_html::escape($this->translate('search.is')), 'prefix' => kolab_html::escape($this->translate('search.prefix')), ), )); return $form->output(); } /** * Returns list of attributes assigned to search field(s) * * @param string $name Optional search field name * * @return array List of attributes */ protected function get_search_attribs($name = null) { $task = $this->get_task(); $types = $this->object_types($task); $attribs = array(); foreach ($this->search_attribs as $key => $value) { foreach ((array)$value as $idx => $attr) { $found = false; foreach ($types as $type) { if (array_key_exists($attr, (array)$type['attributes']['auto_form_fields']) || array_key_exists($attr, (array)$type['attributes']['form_fields']) || array_key_exists($attr, (array)$type['attributes']['fields']) ) { $found = true; break; } } if (!$found) { unset($value[$idx]); } } if (!empty($value)) { $attribs[$key] = $value; } } return $name ? $attribs[$name] : $attribs; } /** * Object list (and search handler) */ public function action_list() { if (empty($this->list_attribs)) { return; } $task = $this->get_task(); $page = (int) self::get_input('page', 'POST'); if (!$page || $page < 1) { $page = 1; } // request parameters $post = array( 'attributes' => $this->list_attribs, 'sort_by' => $this->list_attribs, // 'sort_order' => 'ASC', 'page_size' => $this->page_size, 'page' => $page, ); // search parameters if (!empty($_POST['search'])) { $search = self::get_input('search', 'POST', true); $field = self::get_input('field', 'POST'); $method = self::get_input('method', 'POST'); $attrs = $this->get_search_attribs($field); $search_request = array(); // Support attribute=value searches if ($task != 'settings' && preg_match('/^([a-z0-9]+)([~<>]*=)(.+)$/i', $search, $m)) { $search_attr = $m[1]; $search_type = $m[2]; $search_value = $m[3]; if ($search_value === '*') { $search_type = 'exists'; $search_value = ''; } else if ($search_value[0] === '*' && $search_value[strlen($search_value)-1] === '*') { $search_type = 'both'; $search_value = substr($search_value, 1, -1); } else if ($search_value[0] === '*') { $search_type = 'suffix'; $search_value = substr($search_value, 1); } else if ($search_value[strlen($search_value)-1] === '*') { $search_type = 'prefix'; $search_value = substr($search_value, 0, -1); } $search_request[$search_attr] = array( 'value' => $search_value, 'type' => $search_type, ); } else { foreach ($attrs as $attr) { $search_request[$attr] = array( 'value' => $search, 'type' => $method, ); } } } else if (!empty($_POST['search_request'])) { $search_request = self::get_input('search_request', 'POST'); $search_request = @unserialize(base64_decode($search_request)); } if (!empty($search_request)) { $post['search'] = $search_request; $post['search_operator'] = 'OR'; } // get users list $module = $this->list_module ? $this->list_module : $task . 's'; $result = $this->api_post($module . '.list', null, $post); $count = $result->get('count'); $result = (array) $result->get('list'); // calculate records if ($count) { $start = 1 + max(0, $page - 1) * $this->page_size; $end = min($start + $this->page_size - 1, $count); } $rows = $head = $foot = array(); $cols = array('name'); $i = 0; $table_class = 'list'; // table header $head[0]['cells'][] = array('class' => 'name', 'body' => $this->translate($task . '.list')); // table footer (navigation) if ($count) { $pages = ceil($count / $this->page_size); $prev = max(0, $page - 1); $next = $page < $pages ? $page + 1 : 0; $count_str = kolab_html::span(array( 'content' => $this->translate('list.records', $start, $end, $count)), true); $prev = kolab_html::a(array( - 'class' => 'prev' . ($prev ? '' : ' disabled'), + 'class' => 'prev font-icon' . ($prev ? '' : ' disabled'), 'href' => '#', 'onclick' => $prev ? "kadm.command('$task.list', {page: $prev})" : "return false", )); $next = kolab_html::a(array( - 'class' => 'next' . ($next ? '' : ' disabled'), + 'class' => 'next font-icon' . ($next ? '' : ' disabled'), 'href' => '#', 'onclick' => $next ? "kadm.command('$task.list', {page: $next})" : "return false", )); $foot_body = kolab_html::span(array('content' => $prev . $count_str . $next)); } $foot[0]['cells'][] = array('class' => 'listnav', 'body' => $foot_body); // table body if (!empty($result)) { if (method_exists($this, 'list_result_handler')) { list($rows, $head, $foot, $table_class) = $this->list_result_handler($result, $head, $foot, $table_class); } else { foreach ($result as $idx => $item) { if (!is_array($item)) { continue; } $class = array('selectable'); if (method_exists($this, 'list_item_handler')) { $item = $this->list_item_handler($item, $class); } else { $item = array_shift($item); } if (empty($item)) { continue; } $i++; $cells = array(); $cells[] = array('class' => 'name', 'body' => kolab_html::escape($item), 'onclick' => "kadm.command('$task.info', '" . kolab_utils::js_escape($idx) . "')"); $rows[] = array('id' => $i, 'class' => implode(' ', $class), 'cells' => $cells); } } } else { $rows[] = array('cells' => array( 0 => array('class' => 'empty-body', 'body' => $this->translate($task . '.norecords') ))); } $table = kolab_html::table(array( 'id' => $task . 'list', - 'class' => $table_class, + 'class' => $table_class . ' table table-sm', 'head' => $head, 'body' => $rows, 'foot' => $foot, )); if ($this->action == 'list') { $this->output->command('set_watermark', 'taskcontent'); } $this->output->set_env('search_request', $search_request ? base64_encode(serialize($search_request)) : null); $this->output->set_env('list_page', $page); $this->output->set_env('list_count', $count); $this->output->set_env('list_size', count($result)); $this->output->set_object($task . 'list', $table); } } diff --git a/lib/kolab_form.php b/lib/kolab_form.php index 9ebf900..ec0afde 100644 --- a/lib/kolab_form.php +++ b/lib/kolab_form.php @@ -1,330 +1,331 @@ | +--------------------------------------------------------------------------+ | Author: Aleksander Machniak | +--------------------------------------------------------------------------+ */ /** * HTML Form generator */ class kolab_form { const INPUT_TEXT = 1; const INPUT_PASSWORD = 2; const INPUT_TEXTAREA = 3; const INPUT_CHECKBOX = 4; const INPUT_RADIO = 5; const INPUT_BUTTON = 6; const INPUT_SUBMIT = 7; const INPUT_SELECT = 8; const INPUT_HIDDEN = 9; const INPUT_CUSTOM = 10; const INPUT_CONTENT = 20; const INPUT_TEXTQUOTA = 30; private $attribs = array(); private $elements = array(); private $sections = array(); private $buttons = array(); private $title; private $active_section; /** * Class constructor. * * @param array $attribs Form attributes */ public function __construct($attribs = array()) { $this->attribs = $attribs; } /** * Adds form section definition. * * @param string $index Section internal index * @param string $legend Section label (fieldset's legend) */ public function add_section($index, $legend) { $this->sections[$index] = $legend; } /** * Activate form section. * * @param string $index Section internal index */ public function activate_section($index) { $this->active_section = $index; } /** * Adds form element definition. * * @param array $attribs Element attributes * @param string $section Section index */ public function add_element($attribs, $section = null) { if (!empty($section)) { $attribs['section'] = $section; } $this->elements[] = $attribs; } /** * Adds form button definition. * * @param array $attribs Button attributes */ public function add_button($attribs) { $this->buttons[] = $attribs; } /** * Sets form title (header). * * @param string $content Form header content */ public function set_title($content) { $this->title = $content; } /** * Returns HTML output of the form. * * @return string HTML output */ public function output() { $content = ''; $hidden = array(); if (!empty($this->sections)) { foreach ($this->sections as $set_idx => $set) { $rows = array(); foreach ($this->elements as $element) { if (empty($element['section']) || $element['section'] != $set_idx) { continue; } if ($element['type'] == self::INPUT_HIDDEN) { $hidden[] = self::get_element($element); continue; } $rows[] = $this->form_row($element); } if (!empty($rows)) { $content .= "\n" . kolab_html::fieldset(array( 'legend' => $set, - 'content' => kolab_html::table(array('body' => $rows, 'class' => 'form')), + 'content' => implode("\n", $rows), 'class' => $this->active_section == $set_idx ? 'active' : '', )); } } } $rows = array(); foreach ($this->elements as $element) { if (!empty($element['section'])) { continue; } if ($element['type'] == self::INPUT_HIDDEN) { $hidden[] = self::get_element($element); continue; } $rows[] = $this->form_row($element); } if (!empty($rows)) { - $content = kolab_html::table(array('body' => $rows, 'class' => 'form')); + $content = implode("\n", $rows); } if (!empty($hidden)) { $content .= implode("\n", $hidden); } // Add form buttons if (!empty($this->buttons)) { $buttons = ''; foreach ($this->buttons as $button) { $button['type'] = 'button'; if (empty($button['value'])) { $button['value'] = $button['label']; } $buttons .= kolab_html::input($button); } $content .= "\n" . kolab_html::div(array( 'class' => 'formbuttons', 'content' => $buttons )); } // Build form $content = kolab_html::form($this->attribs, $content); // Add title element if ($this->title) { $content = kolab_html::span(array( 'content' => $this->title, 'class' => 'formtitle', )) . "\n" . $content; } // Add event trigger, so UI can rebuild the form e.g. adding tabs $content .= kolab_html::script('kadm.form_init(\'' . $this->attribs['id'] . '\')'); return $content; } /** * Builds a row of the form table. */ private function form_row($element) { - $attrib = array(); + $attrib['class'] = 'form-group'; if (!empty($element['required']) && empty($element['readonly']) && empty($element['disabled'])) { - $attrib['class'] = 'required'; + $attrib['class'] .= ' required'; } if ($element['type'] == self::INPUT_CONTENT) { - $attrib['cells'] = array( - 0 => array( - 'class' => $element['class'], - 'colspan' => 2, - 'body' => $element['content'], - ), - ); + $attrib['content'] = kolab_html::div(array( + 'class' => $element['class'], + 'content' => $element['content'], + )); } else { - $attrib['cells'] = array( - 0 => array( - 'class' => 'label', - 'body' => $element['label'], - ), - 1 => array( - 'class' => 'value', - 'body' => self::get_element($element), - ), - ); + $attrib['class'] .= ' row'; + $content = self::get_element($element); + $class = 'col-sm-9' . ($content[0] != '<' ? ' form-control-plaintext' : ''); + + if (is_array($element) && $element['input-group']) { + $class .= ' input-group'; + } + + $attrib['content'] = kolab_html::label(array( + 'class' => 'col-form-label col-sm-3', + 'content' => $element['label'], + ), true) + . kolab_html::div(array( + 'class' => $class, + 'content' => $content, + )); } + return kolab_html::div($attrib); + return $attrib; } /** * Builds an element of the form. */ public static function get_element($attribs) { $type = isset($attribs['type']) ? $attribs['type'] : 0; if (!empty($attribs['readonly']) || !empty($attribs['disabled'])) { $attribs['class'] = (!empty($attribs['class']) ? $attribs['class'] . ' ' : '') . 'readonly'; } switch ($type) { case self::INPUT_TEXT: case self::INPUT_PASSWORD: // INPUT type $attribs['type'] = $type == self::INPUT_PASSWORD ? 'password' : 'text'; // INPUT size if (empty($attribs['size'])) { $attribs['size'] = 40; if (!empty($attribs['maxlength'])) { $attribs['size'] = $attribs['maxlength'] > 10 ? 40 : 10; } } - if ($attribs['size'] >= 40) { - $attribs['class'] = (!empty($attribs['class']) ? $attribs['class'] . ' ' : '') . 'maxsize'; - } - $content = kolab_html::input($attribs); break; case self::INPUT_TEXTQUOTA: $attribs['type'] = 'text'; $content = kolab_html::inputquota($attribs); break; case self::INPUT_CHECKBOX: $attribs['type'] = 'checkbox'; $content = kolab_html::input($attribs); break; case self::INPUT_HIDDEN: $attribs['type'] = 'hidden'; $content = kolab_html::input($attribs); break; case self::INPUT_TEXTAREA: if (empty($attribs['rows'])) { $attribs['rows'] = 5; } if (empty($attribs['cols'])) { $attribs['cols'] = 50; } $content = kolab_html::textarea($attribs, true); break; case self::INPUT_SELECT: if (!empty($attribs['multiple']) && empty($attribs['size'])) { $attribs['size'] = 5; } $content = kolab_html::select($attribs, empty($attribs['escaped'])); break; case self::INPUT_CUSTOM: default: if (is_array($attribs)) { $content = isset($attribs['value']) ? $attribs['value'] : ''; } else { $content = $attribs; } } if (!empty($attribs['suffix'])) { $content .= ' ' . $attribs['suffix']; } return $content; } } diff --git a/lib/kolab_html.php b/lib/kolab_html.php index 895647e..a2088a1 100644 --- a/lib/kolab_html.php +++ b/lib/kolab_html.php @@ -1,515 +1,537 @@ | +--------------------------------------------------------------------------+ | Author: Aleksander Machniak | +--------------------------------------------------------------------------+ */ /** * HTML output generation */ class kolab_html { public static $common_attribs = array('id', 'class', 'style', 'title', 'align', 'dir'); public static $event_attribs = array('onclick', 'ondblclick', 'onmousedown', 'onmouseup', 'onmouseover', 'onmousemove', 'onmouseout'); public static $input_event_attribs = array('onfocus', 'onblur', 'onkeypress', 'onkeydown', 'onkeyup', 'onsubmit', 'onreset', 'onselect', 'onchange'); public static $table_attribs = array('summary'); public static $tr_attribs = array(); public static $td_attribs = array('colspan', 'rowspan'); public static $textarea_attribs = array('cols', 'rows', 'disabled', 'name', 'readonly', 'tabindex'); public static $input_attribs = array('checked', 'disabled', 'name', 'readonly', 'tabindex', - 'type', 'size', 'maxlength', 'value', 'autofocus'); + 'type', 'size', 'maxlength', 'value', 'autofocus', 'placeholder'); public static $select_attribs = array('multiple', 'name', 'size', 'disabled', 'readonly', 'autofocus'); public static $option_attribs = array('selected', 'value', 'disabled', 'readonly'); public static $a_attribs = array('href', 'name', 'rel', 'tabindex', 'target'); public static $form_attribs = array('action', 'enctype', 'method', 'name', 'target'); public static $label_attribs = array('for'); /** * Table element (TABLE). * * @param array $attribs Table attributes * @param string $content Optional table content. If empty * head, body, foot attributes will be used. * * @return string HTML output of the table */ public static function table($attribs = array(), $content = null) { $table_attribs = array_merge(self::$table_attribs, self::$common_attribs, self::$event_attribs); $table = ''; if ($content) { $table .= $content; } else { if (!empty($attribs['head']) && is_array($attribs['head'])) { $table .= ''; foreach ($attribs['head'] as $row) { - $table .= "\n" . self::tr($row, null, true); + $table .= "\n" . self::tr($row, true); } $table .= ''; } if (!empty($attribs['body']) && is_array($attribs['body'])) { $table .= ''; foreach ($attribs['body'] as $row) { $table .= "\n" . self::tr($row); } $table .= ''; } if (!empty($attribs['foot']) && is_array($attribs['foot'])) { $table .= ''; foreach ($attribs['foot'] as $row) { $table .= "\n" . self::tr($row); } $table .= ''; } } $table .= "\n"; return $table; } /** * Table row (TR). * * @param array $attribs Row attributes * @param string $is_head Set to true if it is a part of table head. * * @return string HTML output of the row */ public static function tr($attribs = array(), $is_head = false) { $row_attribs = array_merge(self::$tr_attribs, self::$common_attribs, self::$event_attribs); $row = ''; if (!empty($attribs['cells']) && is_array($attribs['cells'])) { foreach ($attribs['cells'] as $cell) { $row .= "\n" . self::td($cell, $is_head); } } $row .= "\n"; return $row; } /** * Table cell (TD or TH). * * @param array $attribs Cell attributes * @param string $is_head Set to true if it is a part of table head. * * @return string HTML output of the cell */ public static function td($attribs = array(), $is_head = false) { $cell_attribs = array_merge(self::$td_attribs, self::$common_attribs, self::$event_attribs); $tag = $is_head ? 'th' : 'td'; $cell .= '<' . $tag . self::attrib_string($attribs, $cell_attribs) . '>'; if (isset($attribs['body'])) { $cell .= $attribs['body']; } $cell .= ""; return $cell; } /** * Input element. * * @param array $attribs Element attributes * * @return string HTML output of the input */ public static function input($attribs = array()) { $elem_attribs = array_merge(self::$input_attribs, self::$input_event_attribs, self::$common_attribs, self::$event_attribs); if ($attribs['type'] == 'checkbox' && $attribs['readonly']) { // readonly checkbox should be disabled, otherwise the user could still check or uncheck the box $attribs['disabled'] = 'disabled'; } + if ($attribs['type'] == 'button' || $attribs['type'] == 'submit') { + $attribs['class'] = trim($attribs['class'] . ' btn'); + + if (!preg_match('/btn-/', $attribs['class'])) { + $attribs['class'] .= ' btn-' . (strpos($attribs['class'], 'submit') !== false ? 'primary' : 'secondary'); + } + } + else if ($attribs['type'] == 'checkbox') { + // TODO: Bootstrap style + } + else { + $attribs['class'] = trim($attribs['class'] . ' form-control'); + } + return sprintf('', self::attrib_string($attribs, $elem_attribs)); } /** * Input element for mail quota. user can select the unit (GB, MB, KB) * * @param array $attribs Element attributes * * @return string HTML output of the input */ public static function inputquota($attribs = array()) { if ($attribs['value'] % 1024 == 0) { if ($attribs['value'] >= 1024) { $attribs['value'] /= 1024; $unit = 'mb'; } if ($attribs['value'] % 1024 == 0 && $attribs['value'] >= 1024) { $attribs['value'] /= 1024; $unit = 'gb'; } } if (empty($attribs['size'])) { $attribs['size'] = 10; } // show no select dropdown box if value is readonly if (!empty($attribs['readonly'])) { if ($unit) { $attribs['value'] .= ' ' . strtoupper($unit); } return self::input($attribs); } $select = array( 'name' => $attribs['name'] . '-unit', 'options' => array(), ); foreach (array('kb', 'mb', 'gb') as $u) { $select['options'][] = array( 'value' => $u, 'content' => strtoupper($u), 'selected' => $unit == $u, ); } $attribs['data-type'] = 'quota'; + $select['class'] = 'input-group-append'; - return self::input($attribs) . self::select($select); + return self::div(array( + 'class' => 'input-group', + 'content' => self::input($attribs) . self::select($select) + )); } /** * Textarea element. * * @param array $attribs Element attributes * @param bool $escape Enables escaping of the content * * @return string HTML output of the textarea */ public static function textarea($attribs = array(), $escape = false) { $elem_attribs = array_merge(self::$textarea_attribs, self::$input_event_attribs, self::$common_attribs, self::$event_attribs); $content = isset($attribs['value']) ? $attribs['value'] : ''; if ($escape) { $content = self::escape($content); } + $attribs['class'] = trim($attribs['class'] . ' form-control'); + return sprintf('%s', self::attrib_string($attribs, $elem_attribs), $content); } /** * Select element. * * @param array $attribs Element attributes * @param bool $escape Enables escaping of the content * * @return string HTML output of the select tag */ public static function select($attribs = array(), $escape = false) { $elem_attribs = array_merge(self::$select_attribs, self::$input_event_attribs, self::$common_attribs, self::$event_attribs); $content = array(); if (!empty($attribs['options']) && is_array($attribs['options'])) { foreach ($attribs['options'] as $idx => $option) { if (!is_array($option)) { $option = array('content' => $option); } if (empty($option['value'])) { $option['value'] = $idx; } if (!empty($attribs['value'])) { if (is_array($attribs['value'])) { $option['selected'] = in_array($option['value'], $attribs['value']); } else if ($attribs['value'] == $option['value']) { $option['selected'] = true; } } // make a select really readonly by disabling options else if (!empty($attribs['disabled']) || !empty($attribs['readonly'])) { $option['disabled'] = true; } $content[] = self::option($option, $escape); } } + $attribs['class'] = trim($attribs['class'] . ' custom-select'); + return sprintf('%s', self::attrib_string($attribs, $elem_attribs), implode("\n", $content)); } /** * Option element. * * @param array $attribs Element attributes * @param bool $escape Enables escaping of the content * * @return string HTML output of the option tag */ public static function option($attribs = array(), $escape = false) { $elem_attribs = array_merge(self::$option_attribs, self::$common_attribs); $content = isset($attribs['content']) ? $attribs['content'] : ''; if ($escape) { $content = self::escape($content); } return sprintf('%s', self::attrib_string($attribs, $elem_attribs), $content); } /** * Fieldset element. * * @param array $attribs Element attributes * @param bool $escape Enables escaping of the content * * @return string HTML output of the fieldset tag */ public static function fieldset($attribs = array(), $escape = false) { $elem_attribs = array_merge(self::$common_attribs); $legend = isset($attribs['legend']) ? $attribs['legend'] : $attribs['label']; $content = isset($attribs['content']) ? $attribs['content'] : ''; if ($escape) { $legend = self::escape($legend); } return sprintf('%s%s', self::attrib_string($attribs, $elem_attribs), $legend, $content); } /** * Link element (A). * * @param array $attribs Element attributes * @param bool $escape Enables escaping of the content * * @return string HTML output of the link */ public static function a($attribs = array(), $escape = false) { $elem_attribs = array_merge(self::$a_attribs, self::$common_attribs, self::$event_attribs); $content = isset($attribs['content']) ? $attribs['content'] : ''; if ($escape) { $content = self::escape($content); } return sprintf('%s', self::attrib_string($attribs, $elem_attribs), $content); } /** * Label element. * * @param array $attribs Element attributes * @param bool $escape Enables escaping of the content * * @return string HTML output of the label tag */ public static function label($attribs = array(), $escape = false) { $elem_attribs = array_merge(self::$label_attribs, self::$common_attribs); $content = isset($attribs['content']) ? $attribs['content'] : ''; if ($escape) { $content = self::escape($content); } return sprintf('%s', self::attrib_string($attribs, $elem_attribs), $content); } /** * Division element. * * @param array $attribs Element attributes * @param bool $escape Enables escaping of the content * * @return string HTML output of the div tag */ public static function div($attribs = array(), $escape = false) { $elem_attribs = array_merge(self::$common_attribs, self::$event_attribs); $content = isset($attribs['content']) ? $attribs['content'] : ''; if ($escape) { $content = self::escape($content); } return sprintf('%s', self::attrib_string($attribs, $elem_attribs), $content); } /** * Span element. * * @param array $attribs Element attributes * @param bool $escape Enables escaping of the content * * @return string HTML output of the span tag */ public static function span($attribs = array(), $escape = false) { $elem_attribs = array_merge(self::$common_attribs, self::$event_attribs); $content = isset($attribs['content']) ? $attribs['content'] : ''; if ($escape) { $content = self::escape($content); } return sprintf('%s', self::attrib_string($attribs, $elem_attribs), $content); } /** * Form element. * * @param array $attribs Element attributes * @param string $escape Content of the form * * @return string HTML output of the form tag */ public static function form($attribs = array(), $content = null) { $elem_attribs = array_merge(self::$form_attribs, self::$common_attribs, self::$event_attribs); return sprintf('%s', self::attrib_string($attribs, $elem_attribs), $content); } /** * Script element. * * @param array $attribs Element attributes * @param bool $escape Enables escaping of the content * * @return string HTML output of the script tag */ public static function script($content = null, $escape = false) { if ($escape) { $content = self::escape($content); } return sprintf('', $content); } /** * Create string with attributes * * @param array $attrib Associative array with tag attributes * @param array $allowed List of allowed attributes * * @return string Valid attribute string */ public static function attrib_string($attrib = array(), $allowed = array()) { if (empty($attrib)) { return ''; } $allowed = array_flip((array)$allowed); $attrib_arr = array(); foreach ($attrib as $key => $value) { // skip size if not numeric if (($key == 'size' && !is_numeric($value))) { continue; } // ignore empty values if ($value === null || $value === '') { continue; } // ignore unpermitted attributes, allow "data-" if (!empty($allowed) && strpos($key, 'data-') !== 0 && !isset($allowed[$key])) { continue; } // skip empty eventhandlers if (preg_match('/^on[a-z]+/', $key) && !$value) { continue; } // boolean attributes if (preg_match('/^(checked|multiple|disabled|selected|readonly|autofocus)$/', $key)) { if ($value) { $attrib_arr[] = sprintf('%s="%s"', $key, $key); } } // the rest else { $attrib_arr[] = sprintf('%s="%s"', $key, self::escape($value)); } } return count($attrib_arr) ? ' '.implode(' ', $attrib_arr) : ''; } /** * Escape special characters into HTML entities. * * @param string|array $value Value to escape * * @return string|array Escaped value */ public static function escape($value) { if (is_array($value)) { foreach ($value as $idx => $val) { $value[$idx] = self::escape($val); } return $value; } return htmlspecialchars($value, ENT_COMPAT, KADM_CHARSET); } } diff --git a/lib/locale/bg_BG.php b/lib/locale/bg_BG.php index 21d2094..4c92021 100644 --- a/lib/locale/bg_BG.php +++ b/lib/locale/bg_BG.php @@ -1,444 +1,443 @@ Kolab Server.'; $LANG['about.kolab'] = 'Kolab'; $LANG['about.kolabsys'] = 'Kolab Systems'; $LANG['about.support'] = 'Professional support is available from Kolab Systems.'; $LANG['about.technology'] = 'Technology'; $LANG['about.warranty'] = 'It comes with absolutely no warranties and is typically run entirely self supported. You can find help & information on the community web site & wiki.'; $LANG['aci.new'] = 'New...'; $LANG['aci.edit'] = 'Edit...'; $LANG['aci.remove'] = 'Изтриване'; $LANG['aci.users'] = 'Users'; $LANG['aci.rights'] = 'Rights'; $LANG['aci.targets'] = 'Targets'; $LANG['aci.aciname'] = 'ACI name:'; $LANG['aci.hosts'] = 'Hosts'; $LANG['aci.times'] = 'Times'; $LANG['aci.name'] = 'Име'; $LANG['aci.userid'] = 'User ID'; $LANG['aci.email'] = 'E-mail'; $LANG['aci.read'] = 'Read'; $LANG['aci.compare'] = 'Compare'; $LANG['aci.search'] = 'Search'; $LANG['aci.write'] = 'Write'; $LANG['aci.selfwrite'] = 'Self-write'; $LANG['aci.delete'] = 'Delete'; $LANG['aci.add'] = 'Add'; $LANG['aci.proxy'] = 'Proxy'; $LANG['aci.all'] = 'All rights'; $LANG['aci.allow'] = 'Allow'; $LANG['aci.deny'] = 'Deny'; $LANG['aci.typeusers'] = 'Users'; $LANG['aci.typegroups'] = 'Groups'; $LANG['aci.typeroles'] = 'Roles'; $LANG['aci.typeadmins'] = 'Administrators'; $LANG['aci.typespecials'] = 'Special Rights'; $LANG['aci.ldap-self'] = 'Self'; $LANG['aci.ldap-anyone'] = 'All users'; $LANG['aci.ldap-all'] = 'All authenticated users'; $LANG['aci.ldap-parent'] = 'Parent'; $LANG['aci.usersearch'] = 'Search for:'; $LANG['aci.usersearchresult'] = 'Search results:'; $LANG['aci.userselected'] = 'Selected users/groups/roles:'; $LANG['aci.useradd'] = 'Add'; $LANG['aci.userremove'] = 'Изтриване'; $LANG['aci.error.noname'] = 'ACI rule name is required!'; $LANG['aci.error.exists'] = 'ACI rule with specified name already exists!'; $LANG['aci.error.nousers'] = 'At least one user entry is required!'; $LANG['aci.rights.target'] = 'Target entry:'; $LANG['aci.rights.filter'] = 'Filter:'; $LANG['aci.rights.attrs'] = 'Attributes:'; $LANG['aci.checkall'] = 'Check all'; $LANG['aci.checknone'] = 'Check none'; $LANG['aci.thisentry'] = 'This entry'; $LANG['aci.selected'] = 'all selected'; $LANG['aci.other'] = 'all except selected'; $LANG['acl.all'] = 'all'; $LANG['acl.append'] = 'append'; $LANG['acl.custom'] = 'custom...'; $LANG['acl.full'] = 'Full (without access control)'; $LANG['acl.post'] = 'post'; $LANG['acl.read'] = 'read'; $LANG['acl.read-only'] = 'Read-Only'; $LANG['acl.read-write'] = 'Read/Write'; $LANG['acl.semi-full'] = 'Write new items'; $LANG['acl.write'] = 'write'; $LANG['acl.l'] = 'Lookup'; $LANG['acl.r'] = 'Read messages'; $LANG['acl.s'] = 'Keep Seen state'; $LANG['acl.w'] = 'Write flags'; $LANG['acl.i'] = 'Insert (Copy into)'; $LANG['acl.p'] = 'Post'; $LANG['acl.c'] = 'Create subfolders'; $LANG['acl.k'] = 'Create subfolders'; $LANG['acl.d'] = 'Delete messages'; $LANG['acl.t'] = 'Delete messages'; $LANG['acl.e'] = 'Expunge'; $LANG['acl.x'] = 'Delete folder'; $LANG['acl.a'] = 'Administer'; $LANG['acl.n'] = 'Annotate messages'; $LANG['acl.identifier'] = 'Identifier'; $LANG['acl.rights'] = 'Access Rights'; $LANG['acl.expire'] = 'Expires On'; $LANG['acl.user'] = 'User...'; $LANG['acl.anyone'] = 'All users (anyone)'; $LANG['acl.anonymous'] = 'Guests (anonymous)'; $LANG['acl.error.invaliddate'] = 'Invalid date format!'; $LANG['acl.error.norights'] = 'No access rights specified!'; $LANG['acl.error.subjectexists'] = 'Access rights for specified identifier already exist!'; $LANG['acl.error.nouser'] = 'User identifier not specified!'; $LANG['add'] = 'Add'; $LANG['api.notypeid'] = 'No object type ID specified!'; $LANG['api.invalidtypeid'] = 'Invalid object type ID!'; $LANG['attribute.add'] = 'Add attribute'; $LANG['attribute.default'] = 'Default value'; $LANG['attribute.static'] = 'Static value'; $LANG['attribute.name'] = 'Attribute'; $LANG['attribute.optional'] = 'По избор'; $LANG['attribute.maxcount'] = 'Max. count'; $LANG['attribute.readonly'] = 'Read-only'; $LANG['attribute.type'] = 'Field type'; $LANG['attribute.value'] = 'Value'; $LANG['attribute.value.auto'] = 'Generated'; $LANG['attribute.value.auto-readonly'] = 'Generated (read-only)'; $LANG['attribute.value.normal'] = 'Normal'; $LANG['attribute.value.static'] = 'Static'; $LANG['attribute.options'] = 'Options'; $LANG['attribute.key.invalid'] = 'Type key contains forbidden characters!'; $LANG['attribute.required.error'] = 'Required attributes missing in attributes list ($1)!'; $LANG['attribute.validate'] = ' Validation'; $LANG['attribute.validate.default'] = 'default'; $LANG['attribute.validate.none'] = 'none'; $LANG['attribute.validate.basic'] = 'basic'; $LANG['attribute.validate.extended'] = 'extended'; $LANG['button.cancel'] = 'Отказ'; $LANG['button.delete'] = 'Delete'; $LANG['button.ok'] = 'OK'; $LANG['button.save'] = 'Запис'; $LANG['button.submit'] = 'Submit'; $LANG['creatorsname'] = 'Created by'; $LANG['days'] = 'days'; $LANG['debug'] = 'Debug info'; $LANG['delete'] = 'Delete'; $LANG['deleting'] = 'Deleting data...'; $LANG['domain.add'] = 'Add Domain'; $LANG['domain.add.success'] = 'Domain created successfully.'; $LANG['domain.associateddomain'] = 'Domain name(s)'; $LANG['domain.delete.confirm'] = 'Are you sure, you want to delete this domain?'; $LANG['domain.delete.force'] = "There are users assigned to this domain.\nAre you sure, you want to delete this domain and all assigned objects?"; $LANG['domain.delete.success'] = 'Domain deleted successfully.'; $LANG['domain.edit'] = 'Edit domain'; $LANG['domain.edit.success'] = 'Domain updated successfully.'; $LANG['domain.inetdomainbasedn'] = 'Custom Root DN'; $LANG['domain.inetdomainstatus'] = 'Статус'; $LANG['domain.list'] = 'Domains List'; $LANG['domain.norecords'] = 'No domain records found!'; $LANG['domain.o'] = 'Organization'; $LANG['domain.other'] = 'Other'; $LANG['domain.system'] = 'System'; $LANG['domain.type_id'] = 'Standard Domain'; $LANG['edit'] = 'Промяна'; $LANG['error'] = 'Error'; $LANG['error.401'] = 'Unauthorized.'; $LANG['error.403'] = 'Access forbidden.'; $LANG['error.404'] = 'Object not found.'; $LANG['error.408'] = 'Request timeout.'; $LANG['error.450'] = 'Domain is not empty.'; $LANG['error.500'] = 'Internal server error.'; $LANG['error.503'] = 'Service unavailable. Try again later.'; $LANG['form.required.empty'] = 'Some of the required fields are empty!'; $LANG['form.maxcount.exceeded'] = 'Maximum count of items exceeded!'; $LANG['group.add'] = 'Add Group'; $LANG['group.add.success'] = 'Group created successfully.'; $LANG['group.cn'] = 'Common name'; $LANG['group.delete.confirm'] = 'Are you sure, you want to delete this group?'; $LANG['group.delete.success'] = 'Group deleted successfully.'; $LANG['group.edit.success'] = 'Group updated successfully.'; $LANG['group.gidnumber'] = 'Primary group number'; $LANG['group.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['group.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['group.list'] = 'Groups List'; $LANG['group.mail'] = 'Primary Email Address'; $LANG['group.member'] = 'Member(s)'; $LANG['group.memberurl'] = 'Members URL'; $LANG['group.norecords'] = 'No group records found!'; $LANG['group.other'] = 'Other'; $LANG['group.ou'] = 'Organizational Unit'; $LANG['group.system'] = 'System'; $LANG['group.type_id'] = 'Group type'; $LANG['group.uniquemember'] = 'Members'; $LANG['info'] = 'Information'; $LANG['internalerror'] = 'Internal system error!'; $LANG['ldap.one'] = 'one: all entries one level under the base DN'; $LANG['ldap.sub'] = 'sub: whole subtree starting with the base DN'; $LANG['ldap.base'] = 'base: base DN only'; $LANG['ldap.basedn'] = 'Base DN'; $LANG['ldap.host'] = 'LDAP Server'; $LANG['ldap.conditions'] = 'Conditions'; $LANG['ldap.scope'] = 'Scope'; $LANG['ldap.filter_any'] = 'is non-empty'; $LANG['ldap.filter_both'] = 'contains'; $LANG['ldap.filter_prefix'] = 'starts with'; $LANG['ldap.filter_suffix'] = 'ends with'; $LANG['ldap.filter_exact'] = 'is equal to'; $LANG['list.records'] = '$1 to $2 of $3'; $LANG['loading'] = 'Loading...'; $LANG['logout'] = 'Logout'; -$LANG['login.username'] = 'Username:'; -$LANG['login.password'] = 'Password:'; -$LANG['login.domain'] = 'Domain:'; +$LANG['login.username'] = 'Username'; +$LANG['login.password'] = 'Password'; $LANG['login.login'] = 'Login'; $LANG['loginerror'] = 'Incorrect username or password!'; $LANG['MB'] = 'MB'; $LANG['menu.about'] = 'About'; $LANG['menu.domains'] = 'Domains'; $LANG['menu.groups'] = 'Groups'; $LANG['menu.ous'] = 'Units'; $LANG['menu.resources'] = 'Resources'; $LANG['menu.roles'] = 'Roles'; $LANG['menu.settings'] = 'Settings'; $LANG['menu.sharedfolders'] = 'Shared Folders'; $LANG['menu.users'] = 'Users'; $LANG['modifiersname'] = 'Modified by'; $LANG['password.generate'] = 'Generate password'; $LANG['reqtime'] = 'Request time: $1 sec.'; $LANG['ou.aci'] = 'Access Rights'; $LANG['ou.add'] = 'Add Unit'; $LANG['ou.add.success'] = 'Unit created successfully.'; $LANG['ou.ou'] = 'Unit Name'; $LANG['ou.delete.confirm'] = 'Are you sure, you want to delete this organizational unit?'; $LANG['ou.delete.success'] = 'Unit deleted successfully.'; $LANG['ou.description'] = 'Unit Description'; $LANG['ou.edit.success'] = 'Unit updated successfully.'; $LANG['ou.list'] = 'Organizational Unit List'; $LANG['ou.norecords'] = 'No organizational unit records found!'; $LANG['ou.system'] = 'Details'; $LANG['ou.type_id'] = 'Unit Type'; $LANG['ou.base_dn'] = 'Parent Unit'; $LANG['resource.acl'] = 'Access Rights'; $LANG['resource.add'] = 'Add Resource'; $LANG['resource.add.success'] = 'Resource created successfully.'; $LANG['resource.cn'] = 'Име'; $LANG['resource.delete'] = 'Delete Resource'; $LANG['resource.delete.confirm'] = 'Are you sure, you want to delete this resource?'; $LANG['resource.delete.success'] = 'Resource deleted successfully.'; $LANG['resource.edit'] = 'Edit Resource'; $LANG['resource.edit.success'] = 'Resource updated successfully.'; $LANG['resource.kolabtargetfolder'] = 'Target Folder'; $LANG['resource.kolabinvitationpolicy'] = 'Invitation Policy'; $LANG['resource.list'] = 'Resource (Collection) List'; $LANG['resource.mail'] = 'Mail Address'; $LANG['resource.member'] = 'Collection Members'; $LANG['resource.norecords'] = 'No resource records found!'; $LANG['resource.other'] = 'Other'; $LANG['resource.ou'] = 'Organizational Unit'; $LANG['resource.system'] = 'System'; $LANG['resource.type_id'] = 'Resource Type'; $LANG['resource.uniquemember'] = 'Collection Members'; $LANG['resource.description'] = 'Описание'; $LANG['resource.owner'] = 'Owner'; $LANG['role.add'] = 'Add Role'; $LANG['role.add.success'] = 'Role created successfully.'; $LANG['role.cn'] = 'Role Name'; $LANG['role.delete.confirm'] = 'Are you sure, you want to delete this role?'; $LANG['role.delete.success'] = 'Role deleted successfully.'; $LANG['role.description'] = 'Role Description'; $LANG['role.edit.success'] = 'Role updated successfully.'; $LANG['role.list'] = 'Role List'; $LANG['role.norecords'] = 'No role records found!'; $LANG['role.system'] = 'Details'; $LANG['role.type_id'] = 'Role Type'; $LANG['saving'] = 'Запазване на данни...'; -$LANG['search'] = 'Search'; +$LANG['search'] = 'Search...'; $LANG['search.reset'] = 'Reset'; $LANG['search.criteria'] = 'Search criteria'; $LANG['search.field'] = 'Field:'; $LANG['search.method'] = 'Method:'; $LANG['search.contains'] = 'contains'; $LANG['search.is'] = 'is'; $LANG['search.key'] = 'key'; $LANG['search.prefix'] = 'begins with'; $LANG['search.name'] = 'Име'; $LANG['search.email'] = 'email'; $LANG['search.description'] = 'description'; $LANG['search.uid'] = 'UID'; $LANG['search.loading'] = 'Searching...'; $LANG['search.acchars'] = 'At least $min characters required for autocompletion'; $LANG['servererror'] = 'Server Error!'; $LANG['session.expired'] = 'Session has expired. Login again, please'; $LANG['sharedfolder.acl'] = 'IMAP Access Rights'; $LANG['sharedfolder.add'] = 'Add Shared Folder'; $LANG['sharedfolder.add.success'] = 'Shared folder created successfully.'; $LANG['sharedfolder.alias'] = 'Secondary Email Address(es)'; $LANG['sharedfolder.cn'] = 'Folder Name'; $LANG['sharedfolder.delete.confirm'] = 'Are you sure, you want to delete this shared folder?'; $LANG['sharedfolder.delete.success'] = 'Shared folder deleted successfully.'; $LANG['sharedfolder.edit'] = 'Edit Shared Folder'; $LANG['sharedfolder.edit.success'] = 'Shared folder updated successfully.'; $LANG['sharedfolder.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['sharedfolder.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['sharedfolder.kolabdelegate'] = 'Delegate(s)'; $LANG['sharedfolder.kolabtargetfolder'] = 'Target IMAP Folder'; $LANG['sharedfolder.list'] = 'Shared Folders List'; $LANG['sharedfolder.norecords'] = 'No shared folder records found!'; $LANG['sharedfolder.mail'] = 'Email Address'; $LANG['sharedfolder.other'] = 'Other'; $LANG['sharedfolder.system'] = 'System'; $LANG['sharedfolder.type_id'] = 'Shared Folder Type'; $LANG['signup.headline'] = 'Sign Up for Hosted Kolab'; $LANG['signup.intro1'] = 'Having an account on a Kolab server is way better than just simple Email. It also provides you with full groupware functionality including synchronization for shared addressbooks, calendars, tasks, journal and more.'; $LANG['signup.intro2'] = 'You can sign up here now for an account.'; $LANG['signup.formtitle'] = 'Sign Up'; $LANG['signup.username'] = 'Username'; $LANG['signup.domain'] = 'Domain'; $LANG['signup.mailalternateaddress'] = 'Current Email Address'; $LANG['signup.futuremail'] = 'Future Email Address'; $LANG['signup.company'] = 'Компания'; $LANG['signup.captcha'] = 'CAPTCHA'; $LANG['signup.userexists'] = 'User already exists!'; $LANG['signup.usercreated'] = '

    Your account has been successfully added!

    Congratulations, you now have your own Kolab account.'; $LANG['signup.wronguid'] = 'Invalid Username!'; $LANG['signup.wrongmailalternateaddress'] = 'Please provide a valid Email Address!'; $LANG['signup.footer'] = 'This is a service offered by Kolab Systems.'; $LANG['type.add'] = 'Add Object Type'; $LANG['type.add.success'] = 'Object type created successfully.'; $LANG['type.attributes'] = 'Attributes'; $LANG['type.description'] = 'Описание'; $LANG['type.delete.confirm'] = 'Are you sure, you want to delete this object type?'; $LANG['type.delete.success'] = 'Object type deleted successfully.'; $LANG['type.domain'] = 'Domain'; $LANG['type.edit.success'] = 'Object type updated successfully.'; $LANG['type.group'] = 'Group'; $LANG['type.list'] = 'Object Types List'; $LANG['type.key'] = 'Key'; $LANG['type.name'] = 'Име'; $LANG['type.norecords'] = 'No object type records found!'; $LANG['type.objectclass'] = 'Object class'; $LANG['type.object_type'] = 'Object type'; $LANG['type.ou'] = 'Organizational Unit'; $LANG['type.properties'] = 'Properties'; $LANG['type.resource'] = 'Resource'; $LANG['type.role'] = 'Роля'; $LANG['type.sharedfolder'] = 'Shared Folder'; $LANG['type.used_for'] = 'Hosted'; $LANG['type.user'] = 'User'; $LANG['user.add'] = 'Add User'; $LANG['user.add.success'] = 'User created successfully.'; $LANG['user.alias'] = 'Secondary Email Address(es)'; $LANG['user.astaccountallowedcodec'] = 'Allowed codec(s)'; $LANG['user.astaccountcallerid'] = 'Caller ID'; $LANG['user.astaccountcontext'] = 'Account Context'; $LANG['user.astaccountdefaultuser'] = 'Asterisk Account Default User'; $LANG['user.astaccountdeny'] = 'Account deny'; $LANG['user.astaccounthost'] = 'Asterisk Host'; $LANG['user.astaccountmailbox'] = 'Mailbox'; $LANG['user.astaccountnat'] = 'Account uses NAT'; $LANG['user.astaccountname'] = 'Asterisk Account Name'; $LANG['user.astaccountqualify'] = 'Account Qualify'; $LANG['user.astaccountrealmedpassword'] = 'Realmed Account Password'; $LANG['user.astaccountregistrationexten'] = 'Extension'; $LANG['user.astaccountregistrationcontext'] = 'Registration Context'; $LANG['user.astaccountsecret'] = 'Plaintext Password'; $LANG['user.astaccounttype'] = 'Account Type'; $LANG['user.astcontext'] = 'Asterisk Context'; $LANG['user.asterisk'] = 'Asterisk SIP'; $LANG['user.astextension'] = 'Asterisk Extension'; $LANG['user.astvoicemailpassword'] = 'Voicemail PIN Code'; $LANG['user.c'] = 'Country'; $LANG['user.city'] = 'City'; $LANG['user.cn'] = 'Common name'; $LANG['user.config'] = 'Конфигурация'; $LANG['user.contact'] = 'Contact'; $LANG['user.contact_info'] = 'Contact Information'; $LANG['user.country'] = 'Country'; $LANG['user.country.desc'] = '2 letter code from ISO 3166-1'; $LANG['user.delete.confirm'] = 'Are you sure, you want to delete this user?'; $LANG['user.delete.success'] = 'User deleted successfully.'; $LANG['user.displayname'] = 'Display name'; $LANG['user.edit.success'] = 'User updated successfully.'; $LANG['user.fax'] = 'Fax number'; $LANG['user.fbinterval'] = 'Free-Busy interval'; $LANG['user.fbinterval.desc'] = 'Leave blank for default (60 days)'; $LANG['user.gidnumber'] = 'Primary group number'; $LANG['user.givenname'] = 'Given name'; $LANG['user.homedirectory'] = 'Home directory'; $LANG['user.homephone'] = 'Home Phone Number'; $LANG['user.initials'] = 'Инциали'; $LANG['user.invitation-policy'] = 'Invitation policy'; $LANG['user.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['user.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['user.kolabdelegate'] = 'Delegates'; $LANG['user.kolabhomeserver'] = 'Email Server'; $LANG['user.kolabinvitationpolicy'] = 'Invitation Handling Policy'; $LANG['user.l'] = 'City, Region'; $LANG['user.list'] = 'Users List'; $LANG['user.loginshell'] = 'Shell'; $LANG['user.mail'] = 'Primary Email Address'; $LANG['user.mailalternateaddress'] = 'External Email Address(es)'; $LANG['user.mailforwardingaddress'] = 'Forward Mail To'; $LANG['user.mailhost'] = 'Email Server'; $LANG['user.mailquota'] = 'Quota'; $LANG['user.mailquota.desc'] = 'Leave blank for unlimited'; $LANG['user.mobile'] = 'Mobile Phone Number'; $LANG['user.name'] = 'Име'; $LANG['user.norecords'] = 'No user records found!'; $LANG['user.nsrole'] = 'Role(s)'; $LANG['user.nsroledn'] = 'Role(s)'; $LANG['user.other'] = 'Other'; $LANG['user.o'] = 'Organization'; $LANG['user.org'] = 'Organization'; $LANG['user.orgunit'] = 'Organizational Unit'; $LANG['user.ou'] = 'Organizational Unit'; $LANG['user.pager'] = 'Pager Number'; $LANG['user.password.mismatch'] = 'Passwords do not match!'; $LANG['user.personal'] = 'Personal'; $LANG['user.phone'] = 'Phone number'; $LANG['user.postalcode'] = 'Postal Code'; $LANG['user.postbox'] = 'Postal box'; $LANG['user.postcode'] = 'Postal code'; $LANG['user.preferredlanguage'] = 'Native tongue'; $LANG['user.room'] = 'Room number'; $LANG['user.sn'] = 'Surname'; $LANG['user.street'] = 'Street'; $LANG['user.system'] = 'System'; $LANG['user.telephonenumber'] = 'Phone Number'; $LANG['user.title'] = 'Job Title'; $LANG['user.type_id'] = 'Account type'; $LANG['user.uid'] = 'Unique identity (UID)'; $LANG['user.userpassword'] = 'Password'; $LANG['user.userpassword2'] = 'Confirm password'; $LANG['user.uidnumber'] = 'User ID number'; $LANG['welcome'] = 'Welcome to the Kolab Groupware Server Maintenance'; $LANG['yes'] = 'yes'; diff --git a/lib/locale/cs_CZ.php b/lib/locale/cs_CZ.php index dfb80b1..26206c7 100644 --- a/lib/locale/cs_CZ.php +++ b/lib/locale/cs_CZ.php @@ -1,444 +1,444 @@ Kolab Server.'; $LANG['about.kolab'] = 'Kolab'; $LANG['about.kolabsys'] = 'Kolab Systems'; $LANG['about.support'] = 'Professional support is available from Kolab Systems.'; $LANG['about.technology'] = 'Technology'; $LANG['about.warranty'] = 'It comes with absolutely no warranties and is typically run entirely self supported. You can find help & information on the community web site & wiki.'; $LANG['aci.new'] = 'New...'; $LANG['aci.edit'] = 'Edit...'; $LANG['aci.remove'] = 'Odstranit'; $LANG['aci.users'] = 'Users'; $LANG['aci.rights'] = 'Rights'; $LANG['aci.targets'] = 'Targets'; $LANG['aci.aciname'] = 'ACI name:'; $LANG['aci.hosts'] = 'Hosts'; $LANG['aci.times'] = 'Times'; $LANG['aci.name'] = 'Název'; $LANG['aci.userid'] = 'User ID'; $LANG['aci.email'] = 'E-mail'; $LANG['aci.read'] = 'Read'; $LANG['aci.compare'] = 'Compare'; $LANG['aci.search'] = 'Search'; $LANG['aci.write'] = 'Write'; $LANG['aci.selfwrite'] = 'Self-write'; $LANG['aci.delete'] = 'Delete'; $LANG['aci.add'] = 'Add'; $LANG['aci.proxy'] = 'Proxy'; $LANG['aci.all'] = 'All rights'; $LANG['aci.allow'] = 'Allow'; $LANG['aci.deny'] = 'Deny'; $LANG['aci.typeusers'] = 'Users'; $LANG['aci.typegroups'] = 'Groups'; $LANG['aci.typeroles'] = 'Roles'; $LANG['aci.typeadmins'] = 'Administrators'; $LANG['aci.typespecials'] = 'Special Rights'; $LANG['aci.ldap-self'] = 'Self'; $LANG['aci.ldap-anyone'] = 'All users'; $LANG['aci.ldap-all'] = 'All authenticated users'; $LANG['aci.ldap-parent'] = 'Parent'; $LANG['aci.usersearch'] = 'Search for:'; $LANG['aci.usersearchresult'] = 'Search results:'; $LANG['aci.userselected'] = 'Selected users/groups/roles:'; $LANG['aci.useradd'] = 'Add'; $LANG['aci.userremove'] = 'Odstranit'; $LANG['aci.error.noname'] = 'ACI rule name is required!'; $LANG['aci.error.exists'] = 'ACI rule with specified name already exists!'; $LANG['aci.error.nousers'] = 'At least one user entry is required!'; $LANG['aci.rights.target'] = 'Target entry:'; $LANG['aci.rights.filter'] = 'Filter:'; $LANG['aci.rights.attrs'] = 'Attributes:'; $LANG['aci.checkall'] = 'Check all'; $LANG['aci.checknone'] = 'Check none'; $LANG['aci.thisentry'] = 'This entry'; $LANG['aci.selected'] = 'all selected'; $LANG['aci.other'] = 'all except selected'; $LANG['acl.all'] = 'all'; $LANG['acl.append'] = 'append'; $LANG['acl.custom'] = 'custom...'; $LANG['acl.full'] = 'Full (without access control)'; $LANG['acl.post'] = 'post'; $LANG['acl.read'] = 'read'; $LANG['acl.read-only'] = 'Read-Only'; $LANG['acl.read-write'] = 'Read/Write'; $LANG['acl.semi-full'] = 'Write new items'; $LANG['acl.write'] = 'write'; $LANG['acl.l'] = 'Lookup'; $LANG['acl.r'] = 'Read messages'; $LANG['acl.s'] = 'Keep Seen state'; $LANG['acl.w'] = 'Write flags'; $LANG['acl.i'] = 'Insert (Copy into)'; $LANG['acl.p'] = 'Post'; $LANG['acl.c'] = 'Create subfolders'; $LANG['acl.k'] = 'Create subfolders'; $LANG['acl.d'] = 'Delete messages'; $LANG['acl.t'] = 'Delete messages'; $LANG['acl.e'] = 'Expunge'; $LANG['acl.x'] = 'Delete folder'; $LANG['acl.a'] = 'Administer'; $LANG['acl.n'] = 'Annotate messages'; $LANG['acl.identifier'] = 'Identifier'; $LANG['acl.rights'] = 'Access Rights'; $LANG['acl.expire'] = 'Expires On'; $LANG['acl.user'] = 'User...'; $LANG['acl.anyone'] = 'All users (anyone)'; $LANG['acl.anonymous'] = 'Guests (anonymous)'; $LANG['acl.error.invaliddate'] = 'Invalid date format!'; $LANG['acl.error.norights'] = 'No access rights specified!'; $LANG['acl.error.subjectexists'] = 'Access rights for specified identifier already exist!'; $LANG['acl.error.nouser'] = 'User identifier not specified!'; $LANG['add'] = 'Add'; $LANG['api.notypeid'] = 'No object type ID specified!'; $LANG['api.invalidtypeid'] = 'Invalid object type ID!'; $LANG['attribute.add'] = 'Add attribute'; $LANG['attribute.default'] = 'Default value'; $LANG['attribute.static'] = 'Static value'; $LANG['attribute.name'] = 'Attribute'; $LANG['attribute.optional'] = 'Nepovinný'; $LANG['attribute.maxcount'] = 'Max. count'; $LANG['attribute.readonly'] = 'Read-only'; $LANG['attribute.type'] = 'Field type'; $LANG['attribute.value'] = 'Value'; $LANG['attribute.value.auto'] = 'Generated'; $LANG['attribute.value.auto-readonly'] = 'Generated (read-only)'; $LANG['attribute.value.normal'] = 'Normal'; $LANG['attribute.value.static'] = 'Static'; $LANG['attribute.options'] = 'Options'; $LANG['attribute.key.invalid'] = 'Type key contains forbidden characters!'; $LANG['attribute.required.error'] = 'Required attributes missing in attributes list ($1)!'; $LANG['attribute.validate'] = ' Validation'; $LANG['attribute.validate.default'] = 'default'; $LANG['attribute.validate.none'] = 'none'; $LANG['attribute.validate.basic'] = 'basic'; $LANG['attribute.validate.extended'] = 'extended'; $LANG['button.cancel'] = 'Storno'; $LANG['button.delete'] = 'Delete'; $LANG['button.ok'] = 'OK'; $LANG['button.save'] = 'Uložit'; $LANG['button.submit'] = 'Submit'; $LANG['creatorsname'] = 'Created by'; $LANG['days'] = 'days'; $LANG['debug'] = 'Debug info'; $LANG['delete'] = 'Delete'; $LANG['deleting'] = 'Deleting data...'; $LANG['domain.add'] = 'Add Domain'; $LANG['domain.add.success'] = 'Domain created successfully.'; $LANG['domain.associateddomain'] = 'Domain name(s)'; $LANG['domain.delete.confirm'] = 'Are you sure, you want to delete this domain?'; $LANG['domain.delete.force'] = "There are users assigned to this domain.\nAre you sure, you want to delete this domain and all assigned objects?"; $LANG['domain.delete.success'] = 'Domain deleted successfully.'; $LANG['domain.edit'] = 'Edit domain'; $LANG['domain.edit.success'] = 'Domain updated successfully.'; $LANG['domain.inetdomainbasedn'] = 'Custom Root DN'; $LANG['domain.inetdomainstatus'] = 'Stav'; $LANG['domain.list'] = 'Domains List'; $LANG['domain.norecords'] = 'No domain records found!'; $LANG['domain.o'] = 'Organization'; $LANG['domain.other'] = 'Other'; $LANG['domain.system'] = 'System'; $LANG['domain.type_id'] = 'Standard Domain'; $LANG['edit'] = 'Upravit'; $LANG['error'] = 'Error'; $LANG['error.401'] = 'Unauthorized.'; $LANG['error.403'] = 'Access forbidden.'; $LANG['error.404'] = 'Object not found.'; $LANG['error.408'] = 'Request timeout.'; $LANG['error.450'] = 'Domain is not empty.'; $LANG['error.500'] = 'Internal server error.'; $LANG['error.503'] = 'Service unavailable. Try again later.'; $LANG['form.required.empty'] = 'Some of the required fields are empty!'; $LANG['form.maxcount.exceeded'] = 'Maximum count of items exceeded!'; $LANG['group.add'] = 'Add Group'; $LANG['group.add.success'] = 'Group created successfully.'; $LANG['group.cn'] = 'Common name'; $LANG['group.delete.confirm'] = 'Are you sure, you want to delete this group?'; $LANG['group.delete.success'] = 'Group deleted successfully.'; $LANG['group.edit.success'] = 'Group updated successfully.'; $LANG['group.gidnumber'] = 'Primary group number'; $LANG['group.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['group.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['group.list'] = 'Groups List'; $LANG['group.mail'] = 'Primary Email Address'; $LANG['group.member'] = 'Member(s)'; $LANG['group.memberurl'] = 'Members URL'; $LANG['group.norecords'] = 'No group records found!'; $LANG['group.other'] = 'Other'; $LANG['group.ou'] = 'Organizational Unit'; $LANG['group.system'] = 'System'; $LANG['group.type_id'] = 'Group type'; $LANG['group.uniquemember'] = 'Members'; $LANG['info'] = 'Information'; $LANG['internalerror'] = 'Internal system error!'; $LANG['ldap.one'] = 'one: all entries one level under the base DN'; $LANG['ldap.sub'] = 'sub: whole subtree starting with the base DN'; $LANG['ldap.base'] = 'base: base DN only'; $LANG['ldap.basedn'] = 'Base DN'; $LANG['ldap.host'] = 'LDAP Server'; $LANG['ldap.conditions'] = 'Conditions'; $LANG['ldap.scope'] = 'Scope'; $LANG['ldap.filter_any'] = 'is non-empty'; $LANG['ldap.filter_both'] = 'contains'; $LANG['ldap.filter_prefix'] = 'starts with'; $LANG['ldap.filter_suffix'] = 'ends with'; $LANG['ldap.filter_exact'] = 'is equal to'; $LANG['list.records'] = '$1 to $2 of $3'; $LANG['loading'] = 'Loading...'; $LANG['logout'] = 'Logout'; -$LANG['login.username'] = 'Username:'; -$LANG['login.password'] = 'Password:'; -$LANG['login.domain'] = 'Domain:'; +$LANG['login.username'] = 'Username'; +$LANG['login.password'] = 'Password'; +$LANG['login.domain'] = 'Domain'; $LANG['login.login'] = 'Login'; $LANG['loginerror'] = 'Incorrect username or password!'; $LANG['MB'] = 'MB'; $LANG['menu.about'] = 'About'; $LANG['menu.domains'] = 'Domains'; $LANG['menu.groups'] = 'Groups'; $LANG['menu.ous'] = 'Units'; $LANG['menu.resources'] = 'Resources'; $LANG['menu.roles'] = 'Roles'; $LANG['menu.settings'] = 'Settings'; $LANG['menu.sharedfolders'] = 'Shared Folders'; $LANG['menu.users'] = 'Users'; $LANG['modifiersname'] = 'Modified by'; $LANG['password.generate'] = 'Generate password'; $LANG['reqtime'] = 'Request time: $1 sec.'; $LANG['ou.aci'] = 'Access Rights'; $LANG['ou.add'] = 'Add Unit'; $LANG['ou.add.success'] = 'Unit created successfully.'; $LANG['ou.ou'] = 'Unit Name'; $LANG['ou.delete.confirm'] = 'Are you sure, you want to delete this organizational unit?'; $LANG['ou.delete.success'] = 'Unit deleted successfully.'; $LANG['ou.description'] = 'Unit Description'; $LANG['ou.edit.success'] = 'Unit updated successfully.'; $LANG['ou.list'] = 'Organizational Unit List'; $LANG['ou.norecords'] = 'No organizational unit records found!'; $LANG['ou.system'] = 'Details'; $LANG['ou.type_id'] = 'Unit Type'; $LANG['ou.base_dn'] = 'Parent Unit'; $LANG['resource.acl'] = 'Access Rights'; $LANG['resource.add'] = 'Add Resource'; $LANG['resource.add.success'] = 'Resource created successfully.'; $LANG['resource.cn'] = 'Název'; $LANG['resource.delete'] = 'Delete Resource'; $LANG['resource.delete.confirm'] = 'Are you sure, you want to delete this resource?'; $LANG['resource.delete.success'] = 'Resource deleted successfully.'; $LANG['resource.edit'] = 'Edit Resource'; $LANG['resource.edit.success'] = 'Resource updated successfully.'; $LANG['resource.kolabtargetfolder'] = 'Target Folder'; $LANG['resource.kolabinvitationpolicy'] = 'Invitation Policy'; $LANG['resource.list'] = 'Resource (Collection) List'; $LANG['resource.mail'] = 'Mail Address'; $LANG['resource.member'] = 'Collection Members'; $LANG['resource.norecords'] = 'No resource records found!'; $LANG['resource.other'] = 'Other'; $LANG['resource.ou'] = 'Organizational Unit'; $LANG['resource.system'] = 'System'; $LANG['resource.type_id'] = 'Resource Type'; $LANG['resource.uniquemember'] = 'Collection Members'; $LANG['resource.description'] = 'Popis'; $LANG['resource.owner'] = 'Owner'; $LANG['role.add'] = 'Add Role'; $LANG['role.add.success'] = 'Role created successfully.'; $LANG['role.cn'] = 'Role Name'; $LANG['role.delete.confirm'] = 'Are you sure, you want to delete this role?'; $LANG['role.delete.success'] = 'Role deleted successfully.'; $LANG['role.description'] = 'Role Description'; $LANG['role.edit.success'] = 'Role updated successfully.'; $LANG['role.list'] = 'Role List'; $LANG['role.norecords'] = 'No role records found!'; $LANG['role.system'] = 'Details'; $LANG['role.type_id'] = 'Role Type'; $LANG['saving'] = 'Ukládám data...'; -$LANG['search'] = 'Search'; +$LANG['search'] = 'Search...'; $LANG['search.reset'] = 'Reset'; $LANG['search.criteria'] = 'Search criteria'; $LANG['search.field'] = 'Field:'; $LANG['search.method'] = 'Method:'; $LANG['search.contains'] = 'contains'; $LANG['search.is'] = 'is'; $LANG['search.key'] = 'key'; $LANG['search.prefix'] = 'begins with'; $LANG['search.name'] = 'Název'; $LANG['search.email'] = 'email'; $LANG['search.description'] = 'description'; $LANG['search.uid'] = 'UID'; $LANG['search.loading'] = 'Searching...'; $LANG['search.acchars'] = 'At least $min characters required for autocompletion'; $LANG['servererror'] = 'Server Error!'; $LANG['session.expired'] = 'Session has expired. Login again, please'; $LANG['sharedfolder.acl'] = 'IMAP Access Rights'; $LANG['sharedfolder.add'] = 'Add Shared Folder'; $LANG['sharedfolder.add.success'] = 'Shared folder created successfully.'; $LANG['sharedfolder.alias'] = 'Secondary Email Address(es)'; $LANG['sharedfolder.cn'] = 'Folder Name'; $LANG['sharedfolder.delete.confirm'] = 'Are you sure, you want to delete this shared folder?'; $LANG['sharedfolder.delete.success'] = 'Shared folder deleted successfully.'; $LANG['sharedfolder.edit'] = 'Edit Shared Folder'; $LANG['sharedfolder.edit.success'] = 'Shared folder updated successfully.'; $LANG['sharedfolder.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['sharedfolder.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['sharedfolder.kolabdelegate'] = 'Delegate(s)'; $LANG['sharedfolder.kolabtargetfolder'] = 'Target IMAP Folder'; $LANG['sharedfolder.list'] = 'Shared Folders List'; $LANG['sharedfolder.norecords'] = 'No shared folder records found!'; $LANG['sharedfolder.mail'] = 'Email Address'; $LANG['sharedfolder.other'] = 'Other'; $LANG['sharedfolder.system'] = 'System'; $LANG['sharedfolder.type_id'] = 'Shared Folder Type'; $LANG['signup.headline'] = 'Sign Up for Hosted Kolab'; $LANG['signup.intro1'] = 'Having an account on a Kolab server is way better than just simple Email. It also provides you with full groupware functionality including synchronization for shared addressbooks, calendars, tasks, journal and more.'; $LANG['signup.intro2'] = 'You can sign up here now for an account.'; $LANG['signup.formtitle'] = 'Sign Up'; $LANG['signup.username'] = 'Username'; $LANG['signup.domain'] = 'Domain'; $LANG['signup.mailalternateaddress'] = 'Current Email Address'; $LANG['signup.futuremail'] = 'Future Email Address'; $LANG['signup.company'] = 'Company'; $LANG['signup.captcha'] = 'CAPTCHA'; $LANG['signup.userexists'] = 'User already exists!'; $LANG['signup.usercreated'] = '

    Your account has been successfully added!

    Congratulations, you now have your own Kolab account.'; $LANG['signup.wronguid'] = 'Invalid Username!'; $LANG['signup.wrongmailalternateaddress'] = 'Please provide a valid Email Address!'; $LANG['signup.footer'] = 'This is a service offered by Kolab Systems.'; $LANG['type.add'] = 'Add Object Type'; $LANG['type.add.success'] = 'Object type created successfully.'; $LANG['type.attributes'] = 'Attributes'; $LANG['type.description'] = 'Popis'; $LANG['type.delete.confirm'] = 'Are you sure, you want to delete this object type?'; $LANG['type.delete.success'] = 'Object type deleted successfully.'; $LANG['type.domain'] = 'Domain'; $LANG['type.edit.success'] = 'Object type updated successfully.'; $LANG['type.group'] = 'Group'; $LANG['type.list'] = 'Object Types List'; $LANG['type.key'] = 'Key'; $LANG['type.name'] = 'Název'; $LANG['type.norecords'] = 'No object type records found!'; $LANG['type.objectclass'] = 'Object class'; $LANG['type.object_type'] = 'Object type'; $LANG['type.ou'] = 'Organizational Unit'; $LANG['type.properties'] = 'Properties'; $LANG['type.resource'] = 'Prostředek'; $LANG['type.role'] = 'Role'; $LANG['type.sharedfolder'] = 'Shared Folder'; $LANG['type.used_for'] = 'Hosted'; $LANG['type.user'] = 'User'; $LANG['user.add'] = 'Add User'; $LANG['user.add.success'] = 'User created successfully.'; $LANG['user.alias'] = 'Secondary Email Address(es)'; $LANG['user.astaccountallowedcodec'] = 'Allowed codec(s)'; $LANG['user.astaccountcallerid'] = 'Caller ID'; $LANG['user.astaccountcontext'] = 'Account Context'; $LANG['user.astaccountdefaultuser'] = 'Asterisk Account Default User'; $LANG['user.astaccountdeny'] = 'Account deny'; $LANG['user.astaccounthost'] = 'Asterisk Host'; $LANG['user.astaccountmailbox'] = 'Mailbox'; $LANG['user.astaccountnat'] = 'Account uses NAT'; $LANG['user.astaccountname'] = 'Asterisk Account Name'; $LANG['user.astaccountqualify'] = 'Account Qualify'; $LANG['user.astaccountrealmedpassword'] = 'Realmed Account Password'; $LANG['user.astaccountregistrationexten'] = 'Extension'; $LANG['user.astaccountregistrationcontext'] = 'Registration Context'; $LANG['user.astaccountsecret'] = 'Plaintext Password'; $LANG['user.astaccounttype'] = 'Account Type'; $LANG['user.astcontext'] = 'Asterisk Context'; $LANG['user.asterisk'] = 'Asterisk SIP'; $LANG['user.astextension'] = 'Asterisk Extension'; $LANG['user.astvoicemailpassword'] = 'Voicemail PIN Code'; $LANG['user.c'] = 'Country'; $LANG['user.city'] = 'City'; $LANG['user.cn'] = 'Common name'; $LANG['user.config'] = 'Configuration'; $LANG['user.contact'] = 'Contact'; $LANG['user.contact_info'] = 'Contact Information'; $LANG['user.country'] = 'Country'; $LANG['user.country.desc'] = '2 letter code from ISO 3166-1'; $LANG['user.delete.confirm'] = 'Are you sure, you want to delete this user?'; $LANG['user.delete.success'] = 'User deleted successfully.'; $LANG['user.displayname'] = 'Display name'; $LANG['user.edit.success'] = 'User updated successfully.'; $LANG['user.fax'] = 'Fax number'; $LANG['user.fbinterval'] = 'Free-Busy interval'; $LANG['user.fbinterval.desc'] = 'Leave blank for default (60 days)'; $LANG['user.gidnumber'] = 'Primary group number'; $LANG['user.givenname'] = 'Given name'; $LANG['user.homedirectory'] = 'Home directory'; $LANG['user.homephone'] = 'Home Phone Number'; $LANG['user.initials'] = 'Initials'; $LANG['user.invitation-policy'] = 'Invitation policy'; $LANG['user.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['user.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['user.kolabdelegate'] = 'Delegates'; $LANG['user.kolabhomeserver'] = 'Email Server'; $LANG['user.kolabinvitationpolicy'] = 'Invitation Handling Policy'; $LANG['user.l'] = 'City, Region'; $LANG['user.list'] = 'Users List'; $LANG['user.loginshell'] = 'Shell'; $LANG['user.mail'] = 'Primary Email Address'; $LANG['user.mailalternateaddress'] = 'External Email Address(es)'; $LANG['user.mailforwardingaddress'] = 'Forward Mail To'; $LANG['user.mailhost'] = 'Email Server'; $LANG['user.mailquota'] = 'Quota'; $LANG['user.mailquota.desc'] = 'Leave blank for unlimited'; $LANG['user.mobile'] = 'Mobile Phone Number'; $LANG['user.name'] = 'Název'; $LANG['user.norecords'] = 'No user records found!'; $LANG['user.nsrole'] = 'Role(s)'; $LANG['user.nsroledn'] = 'Role(s)'; $LANG['user.other'] = 'Other'; $LANG['user.o'] = 'Organization'; $LANG['user.org'] = 'Organization'; $LANG['user.orgunit'] = 'Organizational Unit'; $LANG['user.ou'] = 'Organizational Unit'; $LANG['user.pager'] = 'Pager Number'; $LANG['user.password.mismatch'] = 'Passwords do not match!'; $LANG['user.personal'] = 'Personal'; $LANG['user.phone'] = 'Phone number'; $LANG['user.postalcode'] = 'Postal Code'; $LANG['user.postbox'] = 'Postal box'; $LANG['user.postcode'] = 'Postal code'; $LANG['user.preferredlanguage'] = 'Native tongue'; $LANG['user.room'] = 'Room number'; $LANG['user.sn'] = 'Surname'; $LANG['user.street'] = 'Street'; $LANG['user.system'] = 'System'; $LANG['user.telephonenumber'] = 'Phone Number'; $LANG['user.title'] = 'Job Title'; $LANG['user.type_id'] = 'Account type'; $LANG['user.uid'] = 'Unique identity (UID)'; $LANG['user.userpassword'] = 'Password'; $LANG['user.userpassword2'] = 'Confirm password'; $LANG['user.uidnumber'] = 'User ID number'; $LANG['welcome'] = 'Welcome to the Kolab Groupware Server Maintenance'; $LANG['yes'] = 'yes'; diff --git a/lib/locale/de_CH.php b/lib/locale/de_CH.php index 33c47f1..5750530 100644 --- a/lib/locale/de_CH.php +++ b/lib/locale/de_CH.php @@ -1,444 +1,443 @@ Kolab Server.'; $LANG['about.kolab'] = 'Kolab'; $LANG['about.kolabsys'] = 'Kolab Systems'; $LANG['about.support'] = 'Professional support is available from Kolab Systems.'; $LANG['about.technology'] = 'Technology'; $LANG['about.warranty'] = 'It comes with absolutely no warranties and is typically run entirely self supported. You can find help & information on the community web site & wiki.'; $LANG['aci.new'] = 'New...'; $LANG['aci.edit'] = 'Edit...'; $LANG['aci.remove'] = 'Löschen'; $LANG['aci.users'] = 'Users'; $LANG['aci.rights'] = 'Rights'; $LANG['aci.targets'] = 'Targets'; $LANG['aci.aciname'] = 'ACI name:'; $LANG['aci.hosts'] = 'Hosts'; $LANG['aci.times'] = 'Times'; $LANG['aci.name'] = 'Name'; $LANG['aci.userid'] = 'User ID'; $LANG['aci.email'] = 'E-mail'; $LANG['aci.read'] = 'Read'; $LANG['aci.compare'] = 'Compare'; $LANG['aci.search'] = 'Suchen'; $LANG['aci.write'] = 'Write'; $LANG['aci.selfwrite'] = 'Self-write'; $LANG['aci.delete'] = 'Löschen'; $LANG['aci.add'] = 'Add'; $LANG['aci.proxy'] = 'Proxy'; $LANG['aci.all'] = 'All rights'; $LANG['aci.allow'] = 'Allow'; $LANG['aci.deny'] = 'Deny'; $LANG['aci.typeusers'] = 'Users'; $LANG['aci.typegroups'] = 'Groups'; $LANG['aci.typeroles'] = 'Roles'; $LANG['aci.typeadmins'] = 'Administrators'; $LANG['aci.typespecials'] = 'Special Rights'; $LANG['aci.ldap-self'] = 'Self'; $LANG['aci.ldap-anyone'] = 'All users'; $LANG['aci.ldap-all'] = 'All authenticated users'; $LANG['aci.ldap-parent'] = 'Parent'; $LANG['aci.usersearch'] = 'Search for:'; $LANG['aci.usersearchresult'] = 'Search results:'; $LANG['aci.userselected'] = 'Selected users/groups/roles:'; $LANG['aci.useradd'] = 'Add'; $LANG['aci.userremove'] = 'Löschen'; $LANG['aci.error.noname'] = 'ACI rule name is required!'; $LANG['aci.error.exists'] = 'ACI rule with specified name already exists!'; $LANG['aci.error.nousers'] = 'At least one user entry is required!'; $LANG['aci.rights.target'] = 'Target entry:'; $LANG['aci.rights.filter'] = 'Filter:'; $LANG['aci.rights.attrs'] = 'Attributes:'; $LANG['aci.checkall'] = 'Check all'; $LANG['aci.checknone'] = 'Check none'; $LANG['aci.thisentry'] = 'This entry'; $LANG['aci.selected'] = 'all selected'; $LANG['aci.other'] = 'all except selected'; $LANG['acl.all'] = 'all'; $LANG['acl.append'] = 'append'; $LANG['acl.custom'] = 'custom...'; $LANG['acl.full'] = 'Full (without access control)'; $LANG['acl.post'] = 'post'; $LANG['acl.read'] = 'read'; $LANG['acl.read-only'] = 'Read-Only'; $LANG['acl.read-write'] = 'Read/Write'; $LANG['acl.semi-full'] = 'Write new items'; $LANG['acl.write'] = 'write'; $LANG['acl.l'] = 'Lookup'; $LANG['acl.r'] = 'Read messages'; $LANG['acl.s'] = 'Keep Seen state'; $LANG['acl.w'] = 'Write flags'; $LANG['acl.i'] = 'Insert (Copy into)'; $LANG['acl.p'] = 'Post'; $LANG['acl.c'] = 'Create subfolders'; $LANG['acl.k'] = 'Create subfolders'; $LANG['acl.d'] = 'Delete messages'; $LANG['acl.t'] = 'Delete messages'; $LANG['acl.e'] = 'Expunge'; $LANG['acl.x'] = 'Delete folder'; $LANG['acl.a'] = 'Administer'; $LANG['acl.n'] = 'Annotate messages'; $LANG['acl.identifier'] = 'Identifier'; $LANG['acl.rights'] = 'Access Rights'; $LANG['acl.expire'] = 'Expires On'; $LANG['acl.user'] = 'User...'; $LANG['acl.anyone'] = 'All users (anyone)'; $LANG['acl.anonymous'] = 'Guests (anonymous)'; $LANG['acl.error.invaliddate'] = 'Invalid date format!'; $LANG['acl.error.norights'] = 'No access rights specified!'; $LANG['acl.error.subjectexists'] = 'Access rights for specified identifier already exist!'; $LANG['acl.error.nouser'] = 'User identifier not specified!'; $LANG['add'] = 'Add'; $LANG['api.notypeid'] = 'No object type ID specified!'; $LANG['api.invalidtypeid'] = 'Invalid object type ID!'; $LANG['attribute.add'] = 'Add attribute'; $LANG['attribute.default'] = 'Default value'; $LANG['attribute.static'] = 'Static value'; $LANG['attribute.name'] = 'Attribute'; $LANG['attribute.optional'] = 'Optional'; $LANG['attribute.maxcount'] = 'Max. count'; $LANG['attribute.readonly'] = 'Read-only'; $LANG['attribute.type'] = 'Field type'; $LANG['attribute.value'] = 'Value'; $LANG['attribute.value.auto'] = 'Generated'; $LANG['attribute.value.auto-readonly'] = 'Generated (read-only)'; $LANG['attribute.value.normal'] = 'Normal'; $LANG['attribute.value.static'] = 'Static'; $LANG['attribute.options'] = 'Options'; $LANG['attribute.key.invalid'] = 'Type key contains forbidden characters!'; $LANG['attribute.required.error'] = 'Required attributes missing in attributes list ($1)!'; $LANG['attribute.validate'] = ' Validation'; $LANG['attribute.validate.default'] = 'default'; $LANG['attribute.validate.none'] = 'none'; $LANG['attribute.validate.basic'] = 'basic'; $LANG['attribute.validate.extended'] = 'extended'; $LANG['button.cancel'] = 'Abbrechen'; $LANG['button.delete'] = 'Löschen'; $LANG['button.ok'] = 'OK'; $LANG['button.save'] = 'Speichern'; $LANG['button.submit'] = 'Absenden'; $LANG['creatorsname'] = 'Created by'; $LANG['days'] = 'days'; $LANG['debug'] = 'Debug info'; $LANG['delete'] = 'Löschen'; $LANG['deleting'] = 'Deleting data...'; $LANG['domain.add'] = 'Add Domain'; $LANG['domain.add.success'] = 'Domain created successfully.'; $LANG['domain.associateddomain'] = 'Domain name(s)'; $LANG['domain.delete.confirm'] = 'Are you sure, you want to delete this domain?'; $LANG['domain.delete.force'] = "There are users assigned to this domain.\nAre you sure, you want to delete this domain and all assigned objects?"; $LANG['domain.delete.success'] = 'Domain deleted successfully.'; $LANG['domain.edit'] = 'Edit domain'; $LANG['domain.edit.success'] = 'Domain updated successfully.'; $LANG['domain.inetdomainbasedn'] = 'Custom Root DN'; $LANG['domain.inetdomainstatus'] = 'Status'; $LANG['domain.list'] = 'Domains List'; $LANG['domain.norecords'] = 'No domain records found!'; $LANG['domain.o'] = 'Organization'; $LANG['domain.other'] = 'Other'; $LANG['domain.system'] = 'System'; $LANG['domain.type_id'] = 'Standard Domain'; $LANG['edit'] = 'Bearbeiten'; $LANG['error'] = 'Error'; $LANG['error.401'] = 'Unauthorized.'; $LANG['error.403'] = 'Access forbidden.'; $LANG['error.404'] = 'Object not found.'; $LANG['error.408'] = 'Request timeout.'; $LANG['error.450'] = 'Domain is not empty.'; $LANG['error.500'] = 'Internal server error.'; $LANG['error.503'] = 'Service unavailable. Try again later.'; $LANG['form.required.empty'] = 'Some of the required fields are empty!'; $LANG['form.maxcount.exceeded'] = 'Maximum count of items exceeded!'; $LANG['group.add'] = 'Add Group'; $LANG['group.add.success'] = 'Group created successfully.'; $LANG['group.cn'] = 'Common name'; $LANG['group.delete.confirm'] = 'Are you sure, you want to delete this group?'; $LANG['group.delete.success'] = 'Group deleted successfully.'; $LANG['group.edit.success'] = 'Group updated successfully.'; $LANG['group.gidnumber'] = 'Primary group number'; $LANG['group.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['group.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['group.list'] = 'Groups List'; $LANG['group.mail'] = 'Primary Email Address'; $LANG['group.member'] = 'Member(s)'; $LANG['group.memberurl'] = 'Members URL'; $LANG['group.norecords'] = 'No group records found!'; $LANG['group.other'] = 'Other'; $LANG['group.ou'] = 'Organizational Unit'; $LANG['group.system'] = 'System'; $LANG['group.type_id'] = 'Group type'; $LANG['group.uniquemember'] = 'Members'; $LANG['info'] = 'Information'; $LANG['internalerror'] = 'Interner Systemfehler!'; $LANG['ldap.one'] = 'one: all entries one level under the base DN'; $LANG['ldap.sub'] = 'sub: whole subtree starting with the base DN'; $LANG['ldap.base'] = 'base: base DN only'; $LANG['ldap.basedn'] = 'Base DN'; $LANG['ldap.host'] = 'LDAP Server'; $LANG['ldap.conditions'] = 'Conditions'; $LANG['ldap.scope'] = 'Scope'; $LANG['ldap.filter_any'] = 'is non-empty'; $LANG['ldap.filter_both'] = 'contains'; $LANG['ldap.filter_prefix'] = 'starts with'; $LANG['ldap.filter_suffix'] = 'ends with'; $LANG['ldap.filter_exact'] = 'is equal to'; $LANG['list.records'] = '$1 to $2 of $3'; $LANG['loading'] = 'Laden...'; $LANG['logout'] = 'Abmelden'; -$LANG['login.username'] = 'Username:'; -$LANG['login.password'] = 'Password:'; -$LANG['login.domain'] = 'Domain:'; +$LANG['login.username'] = 'Username'; +$LANG['login.password'] = 'Password'; $LANG['login.login'] = 'Login'; $LANG['loginerror'] = 'Benutzername oder Passwort inkorrekt!'; $LANG['MB'] = 'MB'; $LANG['menu.about'] = 'About'; $LANG['menu.domains'] = 'Domains'; $LANG['menu.groups'] = 'Groups'; $LANG['menu.ous'] = 'Units'; $LANG['menu.resources'] = 'Resources'; $LANG['menu.roles'] = 'Roles'; $LANG['menu.settings'] = 'Einstellungen'; $LANG['menu.sharedfolders'] = 'Shared Folders'; $LANG['menu.users'] = 'Users'; $LANG['modifiersname'] = 'Modified by'; $LANG['password.generate'] = 'Generate password'; $LANG['reqtime'] = 'Zeit der Anfrage: $1 Sekunde(n).'; $LANG['ou.aci'] = 'Access Rights'; $LANG['ou.add'] = 'Add Unit'; $LANG['ou.add.success'] = 'Unit created successfully.'; $LANG['ou.ou'] = 'Unit Name'; $LANG['ou.delete.confirm'] = 'Are you sure, you want to delete this organizational unit?'; $LANG['ou.delete.success'] = 'Unit deleted successfully.'; $LANG['ou.description'] = 'Unit Description'; $LANG['ou.edit.success'] = 'Unit updated successfully.'; $LANG['ou.list'] = 'Organizational Unit List'; $LANG['ou.norecords'] = 'No organizational unit records found!'; $LANG['ou.system'] = 'Details'; $LANG['ou.type_id'] = 'Unit Type'; $LANG['ou.base_dn'] = 'Parent Unit'; $LANG['resource.acl'] = 'Access Rights'; $LANG['resource.add'] = 'Add Resource'; $LANG['resource.add.success'] = 'Resource created successfully.'; $LANG['resource.cn'] = 'Name'; $LANG['resource.delete'] = 'Delete Resource'; $LANG['resource.delete.confirm'] = 'Are you sure, you want to delete this resource?'; $LANG['resource.delete.success'] = 'Resource deleted successfully.'; $LANG['resource.edit'] = 'Edit Resource'; $LANG['resource.edit.success'] = 'Resource updated successfully.'; $LANG['resource.kolabtargetfolder'] = 'Target Folder'; $LANG['resource.kolabinvitationpolicy'] = 'Invitation Policy'; $LANG['resource.list'] = 'Resource (Collection) List'; $LANG['resource.mail'] = 'Mail Address'; $LANG['resource.member'] = 'Collection Members'; $LANG['resource.norecords'] = 'No resource records found!'; $LANG['resource.other'] = 'Other'; $LANG['resource.ou'] = 'Organizational Unit'; $LANG['resource.system'] = 'System'; $LANG['resource.type_id'] = 'Resource Type'; $LANG['resource.uniquemember'] = 'Collection Members'; $LANG['resource.description'] = 'Beschreibung'; $LANG['resource.owner'] = 'Owner'; $LANG['role.add'] = 'Add Role'; $LANG['role.add.success'] = 'Role created successfully.'; $LANG['role.cn'] = 'Role Name'; $LANG['role.delete.confirm'] = 'Are you sure, you want to delete this role?'; $LANG['role.delete.success'] = 'Role deleted successfully.'; $LANG['role.description'] = 'Role Description'; $LANG['role.edit.success'] = 'Role updated successfully.'; $LANG['role.list'] = 'Role List'; $LANG['role.norecords'] = 'No role records found!'; $LANG['role.system'] = 'Details'; $LANG['role.type_id'] = 'Role Type'; $LANG['saving'] = 'Speichere...'; -$LANG['search'] = 'Suchen'; +$LANG['search'] = 'Suchen...'; $LANG['search.reset'] = 'Reset'; $LANG['search.criteria'] = 'Search criteria'; $LANG['search.field'] = 'Field:'; $LANG['search.method'] = 'Method:'; $LANG['search.contains'] = 'contains'; $LANG['search.is'] = 'is'; $LANG['search.key'] = 'key'; $LANG['search.prefix'] = 'begins with'; $LANG['search.name'] = 'Name'; $LANG['search.email'] = 'email'; $LANG['search.description'] = 'description'; $LANG['search.uid'] = 'UID'; $LANG['search.loading'] = 'Suchen...'; $LANG['search.acchars'] = 'At least $min characters required for autocompletion'; $LANG['servererror'] = 'Serverfehler!'; $LANG['session.expired'] = 'Ihre Sitzung ist abgelaufen. Bitte melden Sie sich erneut an.'; $LANG['sharedfolder.acl'] = 'IMAP Access Rights'; $LANG['sharedfolder.add'] = 'Add Shared Folder'; $LANG['sharedfolder.add.success'] = 'Shared folder created successfully.'; $LANG['sharedfolder.alias'] = 'Secondary Email Address(es)'; $LANG['sharedfolder.cn'] = 'Folder Name'; $LANG['sharedfolder.delete.confirm'] = 'Are you sure, you want to delete this shared folder?'; $LANG['sharedfolder.delete.success'] = 'Shared folder deleted successfully.'; $LANG['sharedfolder.edit'] = 'Edit Shared Folder'; $LANG['sharedfolder.edit.success'] = 'Shared folder updated successfully.'; $LANG['sharedfolder.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['sharedfolder.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['sharedfolder.kolabdelegate'] = 'Delegate(s)'; $LANG['sharedfolder.kolabtargetfolder'] = 'Target IMAP Folder'; $LANG['sharedfolder.list'] = 'Shared Folders List'; $LANG['sharedfolder.norecords'] = 'No shared folder records found!'; $LANG['sharedfolder.mail'] = 'Email Address'; $LANG['sharedfolder.other'] = 'Other'; $LANG['sharedfolder.system'] = 'System'; $LANG['sharedfolder.type_id'] = 'Shared Folder Type'; $LANG['signup.headline'] = 'Sign Up for Hosted Kolab'; $LANG['signup.intro1'] = 'Having an account on a Kolab server is way better than just simple Email. It also provides you with full groupware functionality including synchronization for shared addressbooks, calendars, tasks, journal and more.'; $LANG['signup.intro2'] = 'You can sign up here now for an account.'; $LANG['signup.formtitle'] = 'Sign Up'; $LANG['signup.username'] = 'Benutzername'; $LANG['signup.domain'] = 'Domain'; $LANG['signup.mailalternateaddress'] = 'Current Email Address'; $LANG['signup.futuremail'] = 'Future Email Address'; $LANG['signup.company'] = 'Company'; $LANG['signup.captcha'] = 'CAPTCHA'; $LANG['signup.userexists'] = 'User already exists!'; $LANG['signup.usercreated'] = '

    Your account has been successfully added!

    Congratulations, you now have your own Kolab account.'; $LANG['signup.wronguid'] = 'Invalid Username!'; $LANG['signup.wrongmailalternateaddress'] = 'Please provide a valid Email Address!'; $LANG['signup.footer'] = 'This is a service offered by Kolab Systems.'; $LANG['type.add'] = 'Add Object Type'; $LANG['type.add.success'] = 'Object type created successfully.'; $LANG['type.attributes'] = 'Attributes'; $LANG['type.description'] = 'Beschreibung'; $LANG['type.delete.confirm'] = 'Are you sure, you want to delete this object type?'; $LANG['type.delete.success'] = 'Object type deleted successfully.'; $LANG['type.domain'] = 'Domain'; $LANG['type.edit.success'] = 'Object type updated successfully.'; $LANG['type.group'] = 'Group'; $LANG['type.list'] = 'Object Types List'; $LANG['type.key'] = 'Key'; $LANG['type.name'] = 'Name'; $LANG['type.norecords'] = 'No object type records found!'; $LANG['type.objectclass'] = 'Object class'; $LANG['type.object_type'] = 'Object type'; $LANG['type.ou'] = 'Organizational Unit'; $LANG['type.properties'] = 'Properties'; $LANG['type.resource'] = 'Ressource'; $LANG['type.role'] = 'Rolle'; $LANG['type.sharedfolder'] = 'Shared Folder'; $LANG['type.used_for'] = 'Hosted'; $LANG['type.user'] = 'User'; $LANG['user.add'] = 'Add User'; $LANG['user.add.success'] = 'User created successfully.'; $LANG['user.alias'] = 'Secondary Email Address(es)'; $LANG['user.astaccountallowedcodec'] = 'Allowed codec(s)'; $LANG['user.astaccountcallerid'] = 'Caller ID'; $LANG['user.astaccountcontext'] = 'Account Context'; $LANG['user.astaccountdefaultuser'] = 'Asterisk Account Default User'; $LANG['user.astaccountdeny'] = 'Account deny'; $LANG['user.astaccounthost'] = 'Asterisk Host'; $LANG['user.astaccountmailbox'] = 'Mailbox'; $LANG['user.astaccountnat'] = 'Account uses NAT'; $LANG['user.astaccountname'] = 'Asterisk Account Name'; $LANG['user.astaccountqualify'] = 'Account Qualify'; $LANG['user.astaccountrealmedpassword'] = 'Realmed Account Password'; $LANG['user.astaccountregistrationexten'] = 'Extension'; $LANG['user.astaccountregistrationcontext'] = 'Registration Context'; $LANG['user.astaccountsecret'] = 'Plaintext Password'; $LANG['user.astaccounttype'] = 'Account Type'; $LANG['user.astcontext'] = 'Asterisk Context'; $LANG['user.asterisk'] = 'Asterisk SIP'; $LANG['user.astextension'] = 'Asterisk Extension'; $LANG['user.astvoicemailpassword'] = 'Voicemail PIN Code'; $LANG['user.c'] = 'Country'; $LANG['user.city'] = 'City'; $LANG['user.cn'] = 'Common name'; $LANG['user.config'] = 'Configuration'; $LANG['user.contact'] = 'Contact'; $LANG['user.contact_info'] = 'Contact Information'; $LANG['user.country'] = 'Country'; $LANG['user.country.desc'] = '2 letter code from ISO 3166-1'; $LANG['user.delete.confirm'] = 'Are you sure, you want to delete this user?'; $LANG['user.delete.success'] = 'User deleted successfully.'; $LANG['user.displayname'] = 'Display name'; $LANG['user.edit.success'] = 'User updated successfully.'; $LANG['user.fax'] = 'Fax number'; $LANG['user.fbinterval'] = 'Free-Busy interval'; $LANG['user.fbinterval.desc'] = 'Leave blank for default (60 days)'; $LANG['user.gidnumber'] = 'Primary group number'; $LANG['user.givenname'] = 'Given name'; $LANG['user.homedirectory'] = 'Home directory'; $LANG['user.homephone'] = 'Home Phone Number'; $LANG['user.initials'] = 'Initials'; $LANG['user.invitation-policy'] = 'Invitation policy'; $LANG['user.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['user.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['user.kolabdelegate'] = 'Vertreter'; $LANG['user.kolabhomeserver'] = 'Email Server'; $LANG['user.kolabinvitationpolicy'] = 'Invitation Handling Policy'; $LANG['user.l'] = 'City, Region'; $LANG['user.list'] = 'Users List'; $LANG['user.loginshell'] = 'Shell'; $LANG['user.mail'] = 'Primary Email Address'; $LANG['user.mailalternateaddress'] = 'External Email Address(es)'; $LANG['user.mailforwardingaddress'] = 'Forward Mail To'; $LANG['user.mailhost'] = 'Email Server'; $LANG['user.mailquota'] = 'Quota'; $LANG['user.mailquota.desc'] = 'Leave blank for unlimited'; $LANG['user.mobile'] = 'Mobile Phone Number'; $LANG['user.name'] = 'Name'; $LANG['user.norecords'] = 'No user records found!'; $LANG['user.nsrole'] = 'Role(s)'; $LANG['user.nsroledn'] = 'Role(s)'; $LANG['user.other'] = 'Other'; $LANG['user.o'] = 'Organization'; $LANG['user.org'] = 'Organization'; $LANG['user.orgunit'] = 'Organizational Unit'; $LANG['user.ou'] = 'Organizational Unit'; $LANG['user.pager'] = 'Pager Number'; $LANG['user.password.mismatch'] = 'Passwords do not match!'; $LANG['user.personal'] = 'Personal'; $LANG['user.phone'] = 'Phone number'; $LANG['user.postalcode'] = 'Postal Code'; $LANG['user.postbox'] = 'Postal box'; $LANG['user.postcode'] = 'Postal code'; $LANG['user.preferredlanguage'] = 'Native tongue'; $LANG['user.room'] = 'Room number'; $LANG['user.sn'] = 'Surname'; $LANG['user.street'] = 'Street'; $LANG['user.system'] = 'System'; $LANG['user.telephonenumber'] = 'Phone Number'; $LANG['user.title'] = 'Job Title'; $LANG['user.type_id'] = 'Account type'; $LANG['user.uid'] = 'Unique identity (UID)'; $LANG['user.userpassword'] = 'Passwort'; $LANG['user.userpassword2'] = 'Confirm password'; $LANG['user.uidnumber'] = 'User ID number'; $LANG['welcome'] = 'Welcome to the Kolab Groupware Server Maintenance'; $LANG['yes'] = 'yes'; diff --git a/lib/locale/de_DE.php b/lib/locale/de_DE.php index 1727518..bfc8934 100644 --- a/lib/locale/de_DE.php +++ b/lib/locale/de_DE.php @@ -1,450 +1,449 @@ Kolab Servers.'; $LANG['about.kolab'] = 'Kolab'; $LANG['about.kolabsys'] = 'Kolab Systems'; $LANG['about.support'] = 'Professionelle Unterstützung ist erhältlich bei Kolab Systems.'; $LANG['about.technology'] = 'Technologie'; $LANG['about.warranty'] = 'Sie kommt mit keinen Garantien und wird normalerweise ohne professionelle Unterstützung eingesetzt. Hilfe und weitere Informationen finden Sie auf der Web-Seite und im Wiki.'; $LANG['aci.new'] = 'Neu...'; $LANG['aci.edit'] = 'Bearbeiten...'; $LANG['aci.remove'] = 'Entfernen'; $LANG['aci.users'] = 'Benutzer'; $LANG['aci.rights'] = 'Rechte'; $LANG['aci.targets'] = 'Ziele'; $LANG['aci.aciname'] = 'ACI Nam'; $LANG['aci.hosts'] = 'Hosts'; $LANG['aci.times'] = 'Zeiten'; $LANG['aci.name'] = 'Name'; $LANG['aci.userid'] = 'Benutzer ID'; $LANG['aci.email'] = 'E-Mail'; $LANG['aci.read'] = 'Lesen'; $LANG['aci.compare'] = 'Vergleichen'; $LANG['aci.search'] = 'Suchen'; $LANG['aci.write'] = 'Schreiben'; $LANG['aci.selfwrite'] = 'Sich-Selbst-Beschreiben'; $LANG['aci.delete'] = 'Löschen'; $LANG['aci.add'] = 'Hinzufügen'; $LANG['aci.proxy'] = 'Proxy'; $LANG['aci.all'] = 'Alle Rechte'; $LANG['aci.allow'] = 'Erlauben'; $LANG['aci.deny'] = 'Verbieten'; $LANG['aci.typeusers'] = 'Benutzer'; $LANG['aci.typegroups'] = 'Gruppen'; $LANG['aci.typeroles'] = 'Rollen'; $LANG['aci.typeadmins'] = 'Administratoren'; $LANG['aci.typespecials'] = 'Spezialrechte'; $LANG['aci.ldap-self'] = 'Selbst'; $LANG['aci.ldap-anyone'] = 'Alle Benutzer'; $LANG['aci.ldap-all'] = 'Alle authentifizierten Benutzer'; $LANG['aci.ldap-parent'] = 'Eltern'; $LANG['aci.usersearch'] = 'Suche nach:'; $LANG['aci.usersearchresult'] = 'Suchergebnis:'; $LANG['aci.userselected'] = 'Ausgewählte Benutzer/Gruppen/Rollen:'; $LANG['aci.useradd'] = 'Hinzufügen'; $LANG['aci.userremove'] = 'Entfernen'; $LANG['aci.error.noname'] = 'ACI Regel Name wird benötigt!'; $LANG['aci.error.exists'] = 'ACI Regel mit dem gegebenen Namen exisitiert bereits!'; $LANG['aci.error.nousers'] = 'Mindestens ein Benutzer Eintrag ist erforderlich!'; $LANG['aci.rights.target'] = 'Ziel Eintrag:'; $LANG['aci.rights.filter'] = 'Filter:'; $LANG['aci.rights.attrs'] = 'Attribute:'; $LANG['aci.checkall'] = 'Alle auswählen'; $LANG['aci.checknone'] = 'Nichts auswählen'; $LANG['aci.thisentry'] = 'Dieser Eintrag'; $LANG['aci.selected'] = 'alle ausgewählten'; $LANG['aci.other'] = 'alle nicht ausgewählten'; $LANG['acl.all'] = 'alle'; $LANG['acl.append'] = 'anhängen'; $LANG['acl.custom'] = 'benutzerdefiniert...'; $LANG['acl.full'] = 'Volle Rechte (ohne Zugriffs Verwaltung)'; $LANG['acl.post'] = 'zustellen'; $LANG['acl.read'] = 'lesen'; $LANG['acl.read-only'] = 'Nur lesen'; $LANG['acl.read-write'] = 'Lesen/Schreiben'; $LANG['acl.semi-full'] = 'Schreibe neue Items'; $LANG['acl.write'] = 'schreiben'; $LANG['acl.l'] = 'Nachschlagen'; $LANG['acl.r'] = 'Nachrichten lesen'; $LANG['acl.s'] = 'Behalte Gelesen Status'; $LANG['acl.w'] = 'Schreibe Kennzeichen'; $LANG['acl.i'] = 'Einfügen (Kopiere in)'; $LANG['acl.p'] = 'Zustellen'; $LANG['acl.c'] = 'Erzeuge Unterordner'; $LANG['acl.k'] = 'Erzeuge Unterordner'; $LANG['acl.d'] = 'Nachricht löschen'; $LANG['acl.t'] = 'Nachricht löschen'; $LANG['acl.e'] = 'Löschen'; $LANG['acl.x'] = 'Ordner löschen'; $LANG['acl.a'] = 'Verwalten'; $LANG['acl.n'] = 'Nachricht beschriften'; $LANG['acl.identifier'] = 'Kennung'; $LANG['acl.rights'] = 'Zugriffsrechte'; $LANG['acl.expire'] = 'Läuft ab am'; $LANG['acl.user'] = 'Benutzer...'; $LANG['acl.anyone'] = 'Alle Benutzer (jeder)'; $LANG['acl.anonymous'] = 'Gast (anonym)'; $LANG['acl.error.invaliddate'] = 'Ungültiges Zeitformat'; $LANG['acl.error.norights'] = 'Keine Zugriffsrechte angegeben!'; $LANG['acl.error.subjectexists'] = 'Die Zugriffsrechte für die Kennung existieren bereits!'; $LANG['acl.error.nouser'] = 'Benutzer Kennung nicht angegeben!'; $LANG['add'] = 'Hinzufügen'; $LANG['api.notypeid'] = 'Keine ID für den Objekt-Typen angegeben!'; $LANG['api.invalidtypeid'] = 'Ungültige ID für den Objekt-Typ!'; $LANG['attribute.add'] = 'Attribut hinzufügen'; $LANG['attribute.default'] = 'Standard Wert'; $LANG['attribute.static'] = 'Statischer Wert'; $LANG['attribute.name'] = 'Attribut'; $LANG['attribute.optional'] = 'Optional'; $LANG['attribute.maxcount'] = 'Max. Anzahl'; $LANG['attribute.readonly'] = 'Schreibgeschützt'; $LANG['attribute.type'] = 'Feldtyp'; $LANG['attribute.value'] = 'Wert'; $LANG['attribute.value.auto'] = 'Erzeugt'; $LANG['attribute.value.auto-readonly'] = 'Erzeugt (schreibgeschützt)'; $LANG['attribute.value.normal'] = 'Normal'; $LANG['attribute.value.static'] = 'Statisch'; $LANG['attribute.options'] = 'Optionen'; $LANG['attribute.key.invalid'] = 'Der Typ-Key enthält unzulässige Zeichen!'; $LANG['attribute.required.error'] = 'Benötigte Attribute fehlen in Attributliste ($1)!'; $LANG['attribute.validate'] = 'Validierung'; $LANG['attribute.validate.default'] = 'standard'; $LANG['attribute.validate.none'] = 'keine'; $LANG['attribute.validate.basic'] = 'einfach'; $LANG['attribute.validate.extended'] = 'erweitert'; $LANG['button.cancel'] = 'Abbrechen'; $LANG['button.delete'] = 'Löschen'; $LANG['button.ok'] = 'OK'; $LANG['button.save'] = 'Speichern'; $LANG['button.submit'] = 'Absenden'; $LANG['creatorsname'] = 'Erstellt von'; $LANG['days'] = 'Tage'; $LANG['debug'] = 'Informationen zur Fehlerbehebung'; $LANG['delete'] = 'Löschen'; $LANG['deleting'] = 'Daten löschen…'; $LANG['domain.add'] = 'Domäne hinzufügen'; $LANG['domain.add.success'] = 'Domäne erfolgreich hinzugefügt.'; $LANG['domain.associateddomain'] = 'Domänenname(n)'; $LANG['domain.delete.confirm'] = 'Diese Domain wirklich löschen?'; $LANG['domain.delete.force'] = "Benutzer sind mit dieser Domain verbunden.\nSind Sie sicher, dass Sie die Domain und alle zugehörigen Objekte löschen möchten?"; $LANG['domain.delete.success'] = 'Domäne erfolgreich gelöscht.'; $LANG['domain.edit'] = 'Domäne bearbeiten'; $LANG['domain.edit.success'] = 'Domäne erfolgreich aktualisiert.'; $LANG['domain.inetdomainbasedn'] = 'Benutzerdefinierter Root DN'; $LANG['domain.inetdomainstatus'] = 'Status'; $LANG['domain.list'] = 'Domänenliste'; $LANG['domain.norecords'] = 'Keine Domain-Einträge gefunden!'; $LANG['domain.o'] = 'Organisation'; $LANG['domain.other'] = 'Andere'; $LANG['domain.system'] = 'System'; $LANG['domain.type_id'] = 'Standarddomäne'; $LANG['edit'] = 'Bearbeiten'; $LANG['error'] = 'Fehler'; $LANG['error.401'] = 'Nicht berechtigt.'; $LANG['error.403'] = 'Zugriff verweigert.'; $LANG['error.404'] = 'Objekt nicht gefunden.'; $LANG['error.408'] = 'Zeitüberschreitung der Anfrage.'; $LANG['error.450'] = 'Domain ist nicht leer.'; $LANG['error.500'] = 'Interner Serverfehler.'; $LANG['error.503'] = 'Service nicht verfügbar. Bitte versuchen Sie es später noch einmal.'; $LANG['form.required.empty'] = 'Einige der erforderlichen Felder sind leer!'; $LANG['form.maxcount.exceeded'] = 'Maximale Zahl der Felder erreicht!'; $LANG['group.add'] = 'Gruppe hinzufügen'; $LANG['group.add.success'] = 'Gruppe erfolgreich erstellt.'; $LANG['group.cn'] = 'Common Name'; $LANG['group.delete.confirm'] = 'Diese Gruppe wirklich löschen?'; $LANG['group.delete.success'] = 'Gruppe erfolgreich gelöscht.'; $LANG['group.edit.success'] = 'Gruppe erfolgreich aktualisiert.'; $LANG['group.gidnumber'] = 'Primäre Gruppennummer'; $LANG['group.kolaballowsmtprecipient'] = 'Liste von Adressaten'; $LANG['group.kolaballowsmtpsender'] = 'Absender Zugriffsliste'; $LANG['group.list'] = 'Gruppenliste'; $LANG['group.mail'] = 'Primäre Email-Adresse'; $LANG['group.member'] = 'Mitglied(er)'; $LANG['group.memberurl'] = 'Mitglieder URL'; $LANG['group.norecords'] = 'Keine Gruppeneinträge gefunden!'; $LANG['group.other'] = 'Andere'; $LANG['group.ou'] = 'Organisationseinheit'; $LANG['group.system'] = 'System'; $LANG['group.type_id'] = 'Gruppentyp'; $LANG['group.uniquemember'] = 'Mitglieder'; $LANG['info'] = 'Informationen'; $LANG['internalerror'] = 'Interner Systemfehler!'; $LANG['ldap.one'] = 'one: Alle Einträge ein Level unterhalb der Base DN'; $LANG['ldap.sub'] = 'sub: Der ganze Unterzweig ab dem Base DN'; $LANG['ldap.base'] = 'base: nur Base DN'; $LANG['ldap.basedn'] = 'Base DN'; $LANG['ldap.host'] = 'LDAP-Server'; $LANG['ldap.conditions'] = 'Bedingungen'; $LANG['ldap.scope'] = 'Geltungsbereich'; $LANG['ldap.filter_any'] = 'ist nicht leer'; $LANG['ldap.filter_both'] = 'enthält'; $LANG['ldap.filter_prefix'] = 'beginnt mit'; $LANG['ldap.filter_suffix'] = 'endet mit'; $LANG['ldap.filter_exact'] = 'ist gleich'; $LANG['list.records'] = '$1 zu $2 von $3'; $LANG['loading'] = 'Laden…'; $LANG['logout'] = 'Abmelden'; -$LANG['login.username'] = 'Benutzername:'; -$LANG['login.password'] = 'Passwort:'; -$LANG['login.domain'] = 'Domäne:'; +$LANG['login.username'] = 'Benutzername'; +$LANG['login.password'] = 'Passwort'; $LANG['login.login'] = 'Anmelden'; $LANG['loginerror'] = 'Ungültiger Benutzername oder Passwort!'; $LANG['MB'] = 'MB'; $LANG['menu.about'] = 'Über'; $LANG['menu.domains'] = 'Domänen'; $LANG['menu.groups'] = 'Gruppen'; $LANG['menu.ous'] = 'Einheiten'; $LANG['menu.resources'] = 'Ressourcen'; $LANG['menu.roles'] = 'Rollen'; $LANG['menu.settings'] = 'Einstellungen'; $LANG['menu.sharedfolders'] = 'Gemeinschaftsordner'; $LANG['menu.users'] = 'Benutzer'; $LANG['modifiersname'] = 'Geändert von'; $LANG['password.generate'] = 'Passwort erzeugen'; $LANG['reqtime'] = 'Anfragezeit: $1 Sekunde(n)'; $LANG['ou.aci'] = 'Zugriffsrechte'; $LANG['ou.add'] = 'Einheit hinzufügen'; $LANG['ou.add.success'] = 'Einheit erfolgreich erzeugt.'; $LANG['ou.ou'] = 'Einheit Name'; $LANG['ou.delete.confirm'] = 'Bist du dir sicher das du diese Organisationseinheit löschen willst?'; $LANG['ou.delete.success'] = 'Einheit erfolgreich gelöscht.'; $LANG['ou.description'] = 'Einheit Beschreibung'; $LANG['ou.edit.success'] = 'Einheit erfolgreich aktualisiert.'; $LANG['ou.list'] = 'Organisationseinheitsliste'; $LANG['ou.norecords'] = 'Keine Organisationseinheits Einträge wurde gefunden'; $LANG['ou.system'] = 'Details'; $LANG['ou.type_id'] = 'Einheit Typ'; $LANG['ou.base_dn'] = 'Eltern Einheit'; $LANG['resource.acl'] = 'Zugriffsrechte'; $LANG['resource.add'] = 'Ressource hinzufügen'; $LANG['resource.add.success'] = 'Ressource erfolgreich hinzugefügt.'; $LANG['resource.cn'] = 'Name'; $LANG['resource.delete'] = 'Ressource löschen'; $LANG['resource.delete.confirm'] = 'Diese Resource wirklich löschen?'; $LANG['resource.delete.success'] = 'Ressource erfolgreich gelöscht.'; $LANG['resource.edit'] = 'Ressource bearbeiten'; $LANG['resource.edit.success'] = 'Ressource erfolgreich bearbeitet.'; $LANG['resource.kolabtargetfolder'] = 'Zielordner'; $LANG['resource.kolabinvitationpolicy'] = 'Einladungs Richtlinie'; $LANG['resource.list'] = 'Ressourcen-(Sammlung)-Liste'; $LANG['resource.mail'] = 'Email-Adresse'; $LANG['resource.member'] = 'Mitglieder der Sammlung'; $LANG['resource.norecords'] = 'Keine Ressourceneinträge gefunden!'; $LANG['resource.other'] = 'Andere'; $LANG['resource.ou'] = 'Organisationseinheit'; $LANG['resource.system'] = 'System'; $LANG['resource.type_id'] = 'Ressourcentyp'; $LANG['resource.uniquemember'] = 'Mitglieder der Sammlung'; $LANG['resource.description'] = 'Beschreibung'; $LANG['resource.owner'] = 'Eigentümer'; $LANG['role.add'] = 'Rolle hinzufügen'; $LANG['role.add.success'] = 'Rolle erfolgreich erzeugt.'; $LANG['role.cn'] = 'Rollenname'; $LANG['role.delete.confirm'] = 'Diese Rolle wirklich löschen?'; $LANG['role.delete.success'] = 'Rolle erfolgreich gelöscht.'; $LANG['role.description'] = 'Rollenbeschreibung'; $LANG['role.edit.success'] = 'Rolle erfolgreich aktualisiert.'; $LANG['role.list'] = 'Rollenliste'; $LANG['role.norecords'] = 'Keine Rolleneinträge gefunden!'; $LANG['role.system'] = 'Details'; $LANG['role.type_id'] = 'Rollentyp'; $LANG['saving'] = 'Speichern…'; -$LANG['search'] = 'Suchen'; +$LANG['search'] = 'Suchen...'; $LANG['search.reset'] = 'Zurücksetzen'; $LANG['search.criteria'] = 'Suchkriterien'; $LANG['search.field'] = 'Feld:'; $LANG['search.method'] = 'Methode:'; $LANG['search.contains'] = 'enthält'; $LANG['search.is'] = 'ist'; $LANG['search.key'] = 'Schlüssel'; $LANG['search.prefix'] = 'beginnt mit'; $LANG['search.name'] = 'Name'; $LANG['search.email'] = 'Email'; $LANG['search.description'] = 'Beschreibung'; $LANG['search.uid'] = 'UID'; $LANG['search.loading'] = 'Suchen…'; $LANG['search.acchars'] = 'Mindestens $min Zeichen werden für die Autovervollständigung benötigt'; $LANG['servererror'] = 'Server Fehler!'; $LANG['session.expired'] = 'Die Sitzung ist abgelaufen. Bitte erneut anmelden'; $LANG['sharedfolder.acl'] = 'IMAP Zugriffsrechte'; $LANG['sharedfolder.add'] = 'Gemeinschaftsordner anlegen'; $LANG['sharedfolder.add.success'] = 'Gemeinschaftsordner erfolgreich erstellt.'; $LANG['sharedfolder.alias'] = 'Sekundäre Email-Adresse(n)'; $LANG['sharedfolder.cn'] = 'Ordner-Name'; $LANG['sharedfolder.delete.confirm'] = 'Diesen Gemeinschaftsordner wirklich löschen?'; $LANG['sharedfolder.delete.success'] = 'Gemeinschaftsordner erfolgreich gelöscht.'; $LANG['sharedfolder.edit'] = 'Gemeinschaftsordner bearbeiten'; $LANG['sharedfolder.edit.success'] = 'Gemeinschaftsordner erfolgreich aktualisiert.'; $LANG['sharedfolder.kolaballowsmtprecipient'] = 'Liste von Adressaten'; $LANG['sharedfolder.kolaballowsmtpsender'] = 'Absender Zugriffsliste'; $LANG['sharedfolder.kolabdelegate'] = 'Vertreter'; $LANG['sharedfolder.kolabtargetfolder'] = 'IMAP Ziel Ordner'; $LANG['sharedfolder.list'] = 'Liste von Gemeinschaftsordnern'; $LANG['sharedfolder.norecords'] = 'Keine Gemeinschaftsordner gefunden!'; $LANG['sharedfolder.mail'] = 'Email-Adresse'; $LANG['sharedfolder.other'] = 'Andere'; $LANG['sharedfolder.system'] = 'System'; $LANG['sharedfolder.type_id'] = 'Gemeinschaftsordner-Typ'; $LANG['signup.headline'] = 'Anmeldung für ein Kolab Konto'; $LANG['signup.intro1'] = 'Ein Kolab E-Mail Adresse ist viel besser als eine normale E-Mail, denn sie stellt Ihnen volle Groupware-Funktionalität zur Verfügung, inklusive Synchronisation gemeinsamer Adressbücher, Kalender, Aufgaben, Notizen und vielem mehr.'; $LANG['signup.intro2'] = 'Sie können sich hier eine E-Mail Adresse registrieren.'; $LANG['signup.formtitle'] = 'Anmelden'; $LANG['signup.username'] = 'Benutzername'; $LANG['signup.domain'] = 'Domäne'; $LANG['signup.mailalternateaddress'] = 'Aktuelle E-Mail Adresse'; $LANG['signup.futuremail'] = 'Zukünftige E-Mail Adresse'; $LANG['signup.company'] = 'Firma'; $LANG['signup.captcha'] = 'CAPTCHA'; $LANG['signup.userexists'] = 'Benutzer existiert bereits!'; $LANG['signup.usercreated'] = '

    Ihre E-Mail Adresse wurde erfolgreich angelegt!

    Glückwunsch, Sie haben jetzt ein eigenes Kolab-Konto.'; $LANG['signup.wronguid'] = 'Ungültiger Benutzername!'; $LANG['signup.wrongmailalternateaddress'] = 'Bitte geben Sie eine gültige E-Mail Adresse an!'; $LANG['signup.footer'] = 'Dieser Dienst wird von Kolab Systems angeboten.'; $LANG['type.add'] = 'Objekt-Typ hinzufügen'; $LANG['type.add.success'] = 'Objekt-Typ erfolgreich generiert.'; $LANG['type.attributes'] = 'Attribute'; $LANG['type.description'] = 'Beschreibung'; $LANG['type.delete.confirm'] = 'Diesen Objekttyp wirklich löschen?'; $LANG['type.delete.success'] = 'Objekt-Typ erfolgreich entfernt.'; $LANG['type.domain'] = 'Domäne'; $LANG['type.edit.success'] = 'Objekt-Typ erfolgreich geändert.'; $LANG['type.group'] = 'Gruppe'; $LANG['type.list'] = 'Liste von Objekt-Typen'; $LANG['type.key'] = 'Schlüssel'; $LANG['type.name'] = 'Name'; $LANG['type.norecords'] = 'Keine Enträge von Objekt-Typen gefunden!'; $LANG['type.objectclass'] = 'Objektklasse'; $LANG['type.object_type'] = 'Objekttyp'; $LANG['type.ou'] = 'Organisationseinheit'; $LANG['type.properties'] = 'Eigenschaften'; $LANG['type.resource'] = 'Ressource'; $LANG['type.role'] = 'Rolle'; $LANG['type.sharedfolder'] = 'Gemeinschaftsordner'; $LANG['type.used_for'] = 'Gehostet'; $LANG['type.user'] = 'Benutzer'; $LANG['user.add'] = 'Benutzer hinzufügen'; $LANG['user.add.success'] = 'Benutzer erfolgreich hinzugefügt.'; $LANG['user.alias'] = 'Sekundäre Email-Adresse'; $LANG['user.astaccountallowedcodec'] = 'Erlaubte(r) Codec(s)'; $LANG['user.astaccountcallerid'] = 'Anrufer-ID'; $LANG['user.astaccountcontext'] = 'Konto-Kontext'; $LANG['user.astaccountdefaultuser'] = 'Asterisk Konto Standardbenutzer'; $LANG['user.astaccountdeny'] = 'Account verweigern'; $LANG['user.astaccounthost'] = 'Asterisk Server'; $LANG['user.astaccountmailbox'] = 'Anrufbeantworter'; $LANG['user.astaccountnat'] = 'Account benutzt NAT'; $LANG['user.astaccountname'] = 'Asterisk Kontoname'; $LANG['user.astaccountqualify'] = 'Kontoberechtigung'; $LANG['user.astaccountrealmedpassword'] = 'Bereichskonto Passwort'; $LANG['user.astaccountregistrationexten'] = 'Erweiterung'; $LANG['user.astaccountregistrationcontext'] = 'Registrierungs Kontext'; $LANG['user.astaccountsecret'] = 'Klartext-Passwort'; $LANG['user.astaccounttype'] = 'Kontotyp'; $LANG['user.astcontext'] = 'Asterisk Kontext'; $LANG['user.asterisk'] = 'Asterisk SIP'; $LANG['user.astextension'] = 'Asterisk Erweiterung'; $LANG['user.astvoicemailpassword'] = 'Voicemail PIN Schlüssel'; $LANG['user.c'] = 'Land'; $LANG['user.city'] = 'Start'; $LANG['user.cn'] = 'Gewöhnlicher Name'; $LANG['user.config'] = 'Konfiguration'; $LANG['user.contact'] = 'Kontakt'; $LANG['user.contact_info'] = 'Kontaktinformation'; $LANG['user.country'] = 'Land'; $LANG['user.country.desc'] = '2 Buchstaben Ländercode aus ISO 3166-1'; $LANG['user.delete.confirm'] = 'Diesen Nutzer wirklich löschen?'; $LANG['user.delete.success'] = 'Benutzer erfolgreich gelöscht.'; $LANG['user.displayname'] = 'Anzeigename'; $LANG['user.edit.success'] = 'Benutzer erfolgreich bearbeitet.'; $LANG['user.fax'] = 'Faxnummer'; $LANG['user.fbinterval'] = 'Frei-Beschäftigt Intervall'; $LANG['user.fbinterval.desc'] = 'Leer lassen für Standardwert (60 Tage)'; $LANG['user.gidnumber'] = 'Primäre Gruppennummer'; $LANG['user.givenname'] = 'Vorname'; $LANG['user.homedirectory'] = 'Heimverzeichnis'; $LANG['user.homephone'] = 'Festnetznummer'; $LANG['user.initials'] = 'Initialen'; $LANG['user.invitation-policy'] = 'Einladungsrichtlinie'; $LANG['user.kolaballowsmtprecipient'] = 'Liste von Adressaten'; $LANG['user.kolaballowsmtpsender'] = 'Absender Zugriffsliste'; $LANG['user.kolabdelegate'] = 'Delegierte'; $LANG['user.kolabhomeserver'] = 'Email-Server'; $LANG['user.kolabinvitationpolicy'] = 'Richtlinie zur Handhabung von Einladungen'; $LANG['user.l'] = 'Stadt, Region'; $LANG['user.list'] = 'Benutzerliste'; $LANG['user.loginshell'] = 'Shell'; $LANG['user.mail'] = 'Primäre Email-Adresse'; $LANG['user.mailalternateaddress'] = 'Externe Email-Adresse(n)'; $LANG['user.mailforwardingaddress'] = 'Mail weiterleiten an'; $LANG['user.mailhost'] = 'Email-Server'; $LANG['user.mailquota'] = 'Kontingent'; $LANG['user.mailquota.desc'] = 'Leer lassen für unbegrenzt'; $LANG['user.mobile'] = 'Handynummer'; $LANG['user.name'] = 'Name'; $LANG['user.norecords'] = 'Keine Benutzereinträge gefunden!'; $LANG['user.nsrole'] = 'Rolle(n)'; $LANG['user.nsroledn'] = 'Rolle(n)'; $LANG['user.other'] = 'Andere'; $LANG['user.o'] = 'Organisation'; $LANG['user.org'] = 'Organisation'; $LANG['user.orgunit'] = 'Organisationseinheit'; $LANG['user.ou'] = 'Organisationseinheit'; $LANG['user.pager'] = 'Pager Nummer'; $LANG['user.password.notallowed'] = 'Passwort enthält Zeichen (z.B. Umlaute), die nicht erlaubt sind'; $LANG['user.password.mismatch'] = 'Passwörter stimmen nicht überein!'; $LANG['user.password.moreupper'] = 'Passwort muss mindestens $1 Großbuchstaben enthalten'; $LANG['user.password.morelower'] = 'Passwort muss mindestens $1 Kleinbuchstaben enthalten'; $LANG['user.password.moredigits'] = 'Passwort muss mindestens $1 Ziffer enthalten'; $LANG['user.password.morespecial'] = 'Passwort muss mindestens $1 Sonderzeichen enthalten: $2'; $LANG['user.password.tooshort'] = 'Passwort ist zu kurz, es muss mindestens $1 Zeichen angeben'; $LANG['user.personal'] = 'Persönlich'; $LANG['user.phone'] = 'Telefonnummer'; $LANG['user.postalcode'] = 'Postleitzahl'; $LANG['user.postbox'] = 'Postfach'; $LANG['user.postcode'] = 'Postleitzahl'; $LANG['user.preferredlanguage'] = 'Muttersprache'; $LANG['user.room'] = 'Raumnummer'; $LANG['user.sn'] = 'Nachname'; $LANG['user.street'] = 'Straße'; $LANG['user.system'] = 'System'; $LANG['user.telephonenumber'] = 'Telefonnummer'; $LANG['user.title'] = 'Jobbezeichnung'; $LANG['user.type_id'] = 'Kontotyp'; $LANG['user.uid'] = 'Eindeutige Identität (UID)'; $LANG['user.userpassword'] = 'Passwort'; $LANG['user.userpassword2'] = 'Passwort bestätigen'; $LANG['user.uidnumber'] = 'Benutzer ID Nummer'; $LANG['welcome'] = 'Willkommen bei der Kolab Groupware Server-Wartung'; $LANG['yes'] = 'ja'; diff --git a/lib/locale/en_US.php b/lib/locale/en_US.php index 4cbe353..d67c413 100644 --- a/lib/locale/en_US.php +++ b/lib/locale/en_US.php @@ -1,450 +1,448 @@ Kolab Server.'; $LANG['about.kolab'] = 'Kolab'; $LANG['about.kolabsys'] = 'Kolab Systems'; $LANG['about.support'] = 'Professional support is available from Kolab Systems.'; $LANG['about.technology'] = 'Technology'; $LANG['about.warranty'] = 'It comes with absolutely no warranties and is typically run entirely self supported. You can find help & information on the community web site & wiki.'; $LANG['aci.new'] = 'New...'; $LANG['aci.edit'] = 'Edit...'; $LANG['aci.remove'] = 'Remove'; $LANG['aci.users'] = 'Users'; $LANG['aci.rights'] = 'Rights'; $LANG['aci.targets'] = 'Targets'; $LANG['aci.aciname'] = 'ACI name:'; $LANG['aci.hosts'] = 'Hosts'; $LANG['aci.times'] = 'Times'; $LANG['aci.name'] = 'Name'; $LANG['aci.userid'] = 'User ID'; $LANG['aci.email'] = 'E-mail'; $LANG['aci.read'] = 'Read'; $LANG['aci.compare'] = 'Compare'; $LANG['aci.search'] = 'Search'; $LANG['aci.write'] = 'Write'; $LANG['aci.selfwrite'] = 'Self-write'; $LANG['aci.delete'] = 'Delete'; $LANG['aci.add'] = 'Add'; $LANG['aci.proxy'] = 'Proxy'; $LANG['aci.all'] = 'All rights'; $LANG['aci.allow'] = 'Allow'; $LANG['aci.deny'] = 'Deny'; $LANG['aci.typeusers'] = 'Users'; $LANG['aci.typegroups'] = 'Groups'; $LANG['aci.typeroles'] = 'Roles'; $LANG['aci.typeadmins'] = 'Administrators'; $LANG['aci.typespecials'] = 'Special Rights'; $LANG['aci.ldap-self'] = 'Self'; $LANG['aci.ldap-anyone'] = 'All users'; $LANG['aci.ldap-all'] = 'All authenticated users'; $LANG['aci.ldap-parent'] = 'Parent'; $LANG['aci.usersearch'] = 'Search for:'; $LANG['aci.usersearchresult'] = 'Search results:'; $LANG['aci.userselected'] = 'Selected users/groups/roles:'; $LANG['aci.useradd'] = 'Add'; $LANG['aci.userremove'] = 'Remove'; $LANG['aci.error.noname'] = 'ACI rule name is required!'; $LANG['aci.error.exists'] = 'ACI rule with specified name already exists!'; $LANG['aci.error.nousers'] = 'At least one user entry is required!'; $LANG['aci.rights.target'] = 'Target entry:'; $LANG['aci.rights.filter'] = 'Filter:'; $LANG['aci.rights.attrs'] = 'Attributes:'; $LANG['aci.checkall'] = 'Check all'; $LANG['aci.checknone'] = 'Check none'; $LANG['aci.thisentry'] = 'This entry'; $LANG['aci.selected'] = 'all selected'; $LANG['aci.other'] = 'all except selected'; $LANG['acl.all'] = 'All'; $LANG['acl.custom'] = 'Custom...'; $LANG['acl.full'] = 'Full (without access control)'; $LANG['acl.read-only'] = 'Read-Only'; $LANG['acl.read-write'] = 'Read/Write'; $LANG['acl.semi-full'] = 'Write new items'; $LANG['acl.l'] = 'l - Lookup'; $LANG['acl.r'] = 'r - Read messages'; $LANG['acl.s'] = 's - Keep Seen state'; $LANG['acl.w'] = 'w - Write flags'; $LANG['acl.i'] = 'i - Insert (Copy into)'; $LANG['acl.p'] = 'p - Post'; $LANG['acl.c'] = 'c - Create subfolders'; $LANG['acl.k'] = 'k - Create subfolders'; $LANG['acl.d'] = 'd - Delete messages'; $LANG['acl.t'] = 't - Delete messages'; $LANG['acl.e'] = 'e - Expunge'; $LANG['acl.x'] = 'x - Delete folder'; $LANG['acl.a'] = 'a - Administer'; $LANG['acl.n'] = 'n - Annotate messages'; $LANG['acl.identifier'] = 'Identifier'; $LANG['acl.rights'] = 'Access Rights'; $LANG['acl.expire'] = 'Expires On'; $LANG['acl.user'] = 'User...'; $LANG['acl.anyone'] = 'All users (anyone)'; $LANG['acl.anonymous'] = 'Guests (anonymous)'; $LANG['acl.error.invaliddate'] = 'Invalid date format!'; $LANG['acl.error.norights'] = 'No access rights specified!'; $LANG['acl.error.subjectexists'] = 'Access rights for specified identifier already exist!'; $LANG['acl.error.nouser'] = 'User identifier not specified!'; $LANG['add'] = 'Add'; $LANG['api.notypeid'] = 'No object type ID specified!'; $LANG['api.invalidtypeid'] = 'Invalid object type ID!'; $LANG['attribute.add'] = 'Add attribute'; $LANG['attribute.default'] = 'Default value'; $LANG['attribute.static'] = 'Static value'; $LANG['attribute.name'] = 'Attribute'; $LANG['attribute.optional'] = 'Optional'; $LANG['attribute.maxcount'] = 'Max. count'; $LANG['attribute.readonly'] = 'Read-only'; $LANG['attribute.type'] = 'Field type'; $LANG['attribute.value'] = 'Value'; $LANG['attribute.value.auto'] = 'Generated'; $LANG['attribute.value.auto-readonly'] = 'Generated (read-only)'; $LANG['attribute.value.normal'] = 'Normal'; $LANG['attribute.value.static'] = 'Static'; $LANG['attribute.options'] = 'Options'; $LANG['attribute.key.invalid'] = 'Type key contains forbidden characters!'; $LANG['attribute.required.error'] = 'Required attributes missing in attributes list ($1)!'; $LANG['attribute.validate'] = ' Validation'; $LANG['attribute.validate.default'] = 'default'; $LANG['attribute.validate.none'] = 'none'; $LANG['attribute.validate.basic'] = 'basic'; $LANG['attribute.validate.extended'] = 'extended'; $LANG['button.cancel'] = 'Cancel'; $LANG['button.clone'] = 'Clone'; $LANG['button.delete'] = 'Delete'; $LANG['button.ok'] = 'OK'; $LANG['button.save'] = 'Save'; $LANG['button.submit'] = 'Submit'; $LANG['creatorsname'] = 'Created by'; $LANG['days'] = 'days'; $LANG['debug'] = 'Debug info'; $LANG['delete'] = 'Delete'; $LANG['deleting'] = 'Deleting data...'; $LANG['domain.add'] = 'Add Domain'; $LANG['domain.add.success'] = 'Domain created successfully.'; $LANG['domain.associateddomain'] = 'Domain name(s)'; $LANG['domain.delete.confirm'] = 'Are you sure, you want to delete this domain?'; $LANG['domain.delete.force'] = "There are users assigned to this domain.\nAre you sure, you want to delete this domain and all assigned objects?"; $LANG['domain.delete.success'] = 'Domain deleted successfully.'; $LANG['domain.edit'] = 'Edit domain'; $LANG['domain.edit.success'] = 'Domain updated successfully.'; $LANG['domain.inetdomainbasedn'] = 'Custom Root DN'; $LANG['domain.inetdomainstatus'] = 'Status'; $LANG['domain.list'] = 'Domains List'; $LANG['domain.norecords'] = 'No domain records found!'; $LANG['domain.o'] = 'Organization'; $LANG['domain.other'] = 'Other'; $LANG['domain.system'] = 'System'; $LANG['domain.type_id'] = 'Standard Domain'; $LANG['edit'] = 'Edit'; $LANG['error'] = 'Error'; $LANG['error.401'] = 'Unauthorized.'; $LANG['error.403'] = 'Access forbidden.'; $LANG['error.404'] = 'Object not found.'; $LANG['error.408'] = 'Request timeout.'; $LANG['error.450'] = 'Domain is not empty.'; $LANG['error.500'] = 'Internal server error.'; $LANG['error.503'] = 'Service unavailable. Try again later.'; $LANG['form.required.empty'] = 'Some of the required fields are empty!'; $LANG['form.maxcount.exceeded'] = 'Maximum count of items exceeded!'; $LANG['group.add'] = 'Add Group'; $LANG['group.add.success'] = 'Group created successfully.'; $LANG['group.cn'] = 'Common name'; $LANG['group.delete.confirm'] = 'Are you sure, you want to delete this group?'; $LANG['group.delete.success'] = 'Group deleted successfully.'; $LANG['group.edit.success'] = 'Group updated successfully.'; $LANG['group.gidnumber'] = 'Primary group number'; $LANG['group.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['group.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['group.list'] = 'Groups List'; $LANG['group.mail'] = 'Primary Email Address'; $LANG['group.member'] = 'Member(s)'; $LANG['group.memberurl'] = 'Members URL'; $LANG['group.norecords'] = 'No group records found!'; $LANG['group.other'] = 'Other'; $LANG['group.ou'] = 'Organizational Unit'; $LANG['group.system'] = 'System'; $LANG['group.type_id'] = 'Group type'; $LANG['group.uniquemember'] = 'Members'; $LANG['info'] = 'Information'; $LANG['internalerror'] = 'Internal system error!'; $LANG['ldap.one'] = 'one: all entries one level under the base DN'; $LANG['ldap.sub'] = 'sub: whole subtree starting with the base DN'; $LANG['ldap.base'] = 'base: base DN only'; $LANG['ldap.basedn'] = 'Base DN'; $LANG['ldap.host'] = 'LDAP Server'; $LANG['ldap.conditions'] = 'Conditions'; $LANG['ldap.scope'] = 'Scope'; $LANG['ldap.filter_any'] = 'is non-empty'; $LANG['ldap.filter_both'] = 'contains'; $LANG['ldap.filter_prefix'] = 'starts with'; $LANG['ldap.filter_suffix'] = 'ends with'; $LANG['ldap.filter_exact'] = 'is equal to'; -$LANG['ldap.filter_notexact'] = 'is not equal to'; $LANG['list.records'] = '$1 to $2 of $3'; $LANG['loading'] = 'Loading...'; $LANG['logout'] = 'Logout'; -$LANG['login.username'] = 'Username:'; -$LANG['login.password'] = 'Password:'; -$LANG['login.domain'] = 'Domain:'; +$LANG['login.username'] = 'Username'; +$LANG['login.password'] = 'Password'; $LANG['login.login'] = 'Login'; $LANG['loginerror'] = 'Incorrect username or password!'; $LANG['MB'] = 'MB'; $LANG['menu.about'] = 'About'; $LANG['menu.domains'] = 'Domains'; $LANG['menu.groups'] = 'Groups'; $LANG['menu.ous'] = 'Units'; $LANG['menu.resources'] = 'Resources'; $LANG['menu.roles'] = 'Roles'; $LANG['menu.settings'] = 'Settings'; $LANG['menu.sharedfolders'] = 'Shared Folders'; $LANG['menu.users'] = 'Users'; $LANG['modifiersname'] = 'Modified by'; $LANG['password.generate'] = 'Generate password'; $LANG['reqtime'] = 'Request time: $1 sec.'; $LANG['ou.aci'] = 'Access Rights'; $LANG['ou.add'] = 'Add Unit'; $LANG['ou.add.success'] = 'Unit created successfully.'; $LANG['ou.ou'] = 'Unit Name'; $LANG['ou.delete.confirm'] = 'Are you sure, you want to delete this organizational unit?'; $LANG['ou.delete.success'] = 'Unit deleted successfully.'; $LANG['ou.description'] = 'Unit Description'; $LANG['ou.edit.success'] = 'Unit updated successfully.'; $LANG['ou.list'] = 'Organizational Unit List'; $LANG['ou.norecords'] = 'No organizational unit records found!'; $LANG['ou.system'] = 'Details'; $LANG['ou.type_id'] = 'Unit Type'; $LANG['ou.base_dn'] = 'Parent Unit'; $LANG['resource.acl'] = 'Access Rights'; $LANG['resource.add'] = 'Add Resource'; $LANG['resource.add.success'] = 'Resource created successfully.'; $LANG['resource.cn'] = 'Name'; $LANG['resource.delete'] = 'Delete Resource'; $LANG['resource.delete.confirm'] = 'Are you sure, you want to delete this resource?'; $LANG['resource.delete.success'] = 'Resource deleted successfully.'; $LANG['resource.edit'] = 'Edit Resource'; $LANG['resource.edit.success'] = 'Resource updated successfully.'; $LANG['resource.kolabtargetfolder'] = 'Target Folder'; $LANG['resource.kolabinvitationpolicy'] = 'Invitation Policy'; $LANG['resource.kolabdescattribute'] = 'Attributes'; $LANG['resource.list'] = 'Resource (Collection) List'; $LANG['resource.mail'] = 'Mail Address'; $LANG['resource.member'] = 'Collection Members'; $LANG['resource.norecords'] = 'No resource records found!'; $LANG['resource.other'] = 'Other'; $LANG['resource.ou'] = 'Organizational Unit'; $LANG['resource.system'] = 'System'; $LANG['resource.type_id'] = 'Resource Type'; $LANG['resource.uniquemember'] = 'Collection Members'; $LANG['resource.description'] = 'Description'; $LANG['resource.owner'] = 'Owner'; $LANG['role.add'] = 'Add Role'; $LANG['role.add.success'] = 'Role created successfully.'; $LANG['role.cn'] = 'Role Name'; $LANG['role.delete.confirm'] = 'Are you sure, you want to delete this role?'; $LANG['role.delete.success'] = 'Role deleted successfully.'; $LANG['role.description'] = 'Role Description'; $LANG['role.edit.success'] = 'Role updated successfully.'; $LANG['role.list'] = 'Role List'; $LANG['role.norecords'] = 'No role records found!'; $LANG['role.system'] = 'Details'; $LANG['role.type_id'] = 'Role Type'; $LANG['saving'] = 'Saving data...'; -$LANG['search'] = 'Search'; +$LANG['search'] = 'Search...'; $LANG['search.reset'] = 'Reset'; $LANG['search.criteria'] = 'Search criteria'; $LANG['search.field'] = 'Field:'; $LANG['search.method'] = 'Method:'; $LANG['search.contains'] = 'contains'; $LANG['search.is'] = 'is'; $LANG['search.key'] = 'key'; $LANG['search.prefix'] = 'begins with'; $LANG['search.name'] = 'name'; $LANG['search.email'] = 'email'; $LANG['search.description'] = 'description'; $LANG['search.uid'] = 'UID'; $LANG['search.loading'] = 'Searching...'; $LANG['search.acchars'] = 'At least $min characters required for autocompletion'; $LANG['servererror'] = 'Server Error!'; $LANG['session.expired'] = 'Session has expired. Login again, please'; $LANG['sharedfolder.acl'] = 'IMAP Access Rights'; $LANG['sharedfolder.add'] = 'Add Shared Folder'; $LANG['sharedfolder.add.success'] = 'Shared folder created successfully.'; $LANG['sharedfolder.alias'] = 'Secondary Email Address(es)'; $LANG['sharedfolder.cn'] = 'Folder Name'; $LANG['sharedfolder.delete.confirm'] = 'Are you sure, you want to delete this shared folder?'; $LANG['sharedfolder.delete.success'] = 'Shared folder deleted successfully.'; $LANG['sharedfolder.edit'] = 'Edit Shared Folder'; $LANG['sharedfolder.edit.success'] = 'Shared folder updated successfully.'; $LANG['sharedfolder.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['sharedfolder.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['sharedfolder.kolabdelegate'] = 'Delegate(s)'; $LANG['sharedfolder.kolabtargetfolder'] = 'Target IMAP Folder'; $LANG['sharedfolder.list'] = 'Shared Folders List'; $LANG['sharedfolder.norecords'] = 'No shared folder records found!'; $LANG['sharedfolder.mail'] = 'Email Address'; $LANG['sharedfolder.other'] = 'Other'; $LANG['sharedfolder.system'] = 'System'; $LANG['sharedfolder.type_id'] = 'Shared Folder Type'; $LANG['signup.headline'] = 'Sign Up for Hosted Kolab'; $LANG['signup.intro1'] = 'Having an account on a Kolab server is way better than just simple Email. It also provides you with full groupware functionality including synchronization for shared addressbooks, calendars, tasks, journal and more.'; $LANG['signup.intro2'] = 'You can sign up here now for an account.'; $LANG['signup.formtitle'] = 'Sign Up'; $LANG['signup.username'] = 'Username'; $LANG['signup.domain'] = 'Domain'; $LANG['signup.mailalternateaddress'] = 'Current Email Address'; $LANG['signup.futuremail'] = 'Future Email Address'; $LANG['signup.company'] = 'Company'; $LANG['signup.captcha'] = 'CAPTCHA'; $LANG['signup.userexists'] = 'User already exists!'; $LANG['signup.usercreated'] = '

    Your account has been successfully added!

    Congratulations, you now have your own Kolab account.'; $LANG['signup.wronguid'] = 'Invalid Username!'; $LANG['signup.wrongmailalternateaddress'] = 'Please provide a valid Email Address!'; $LANG['signup.footer'] = 'This is a service offered by Kolab Systems.'; $LANG['type.add'] = 'Add Object Type'; $LANG['type.add.success'] = 'Object type created successfully.'; $LANG['type.attributes'] = 'Attributes'; $LANG['type.description'] = 'Description'; $LANG['type.delete.confirm'] = 'Are you sure, you want to delete this object type?'; $LANG['type.delete.success'] = 'Object type deleted successfully.'; $LANG['type.domain'] = 'Domain'; $LANG['type.edit.success'] = 'Object type updated successfully.'; $LANG['type.group'] = 'Group'; $LANG['type.is_default'] = 'Default'; $LANG['type.list'] = 'Object Types List'; $LANG['type.key'] = 'Key'; $LANG['type.name'] = 'Name'; $LANG['type.norecords'] = 'No object type records found!'; $LANG['type.objectclass'] = 'Object class'; $LANG['type.object_type'] = 'Object type'; $LANG['type.ou'] = 'Organizational Unit'; $LANG['type.properties'] = 'Properties'; $LANG['type.resource'] = 'Resource'; $LANG['type.role'] = 'Role'; $LANG['type.sharedfolder'] = 'Shared Folder'; $LANG['type.used_for'] = 'Hosted'; $LANG['type.user'] = 'User'; $LANG['user.add'] = 'Add User'; $LANG['user.add.success'] = 'User created successfully.'; $LANG['user.alias'] = 'Secondary Email Address(es)'; $LANG['user.astaccountallowedcodec'] = 'Allowed codec(s)'; $LANG['user.astaccountcallerid'] = 'Caller ID'; $LANG['user.astaccountcontext'] = 'Account Context'; $LANG['user.astaccountdefaultuser'] = 'Asterisk Account Default User'; $LANG['user.astaccountdeny'] = 'Account deny'; $LANG['user.astaccounthost'] = 'Asterisk Host'; $LANG['user.astaccountmailbox'] = 'Mailbox'; $LANG['user.astaccountnat'] = 'Account uses NAT'; $LANG['user.astaccountname'] = 'Asterisk Account Name'; $LANG['user.astaccountqualify'] = 'Account Qualify'; $LANG['user.astaccountrealmedpassword'] = 'Realmed Account Password'; $LANG['user.astaccountregistrationexten'] = 'Extension'; $LANG['user.astaccountregistrationcontext'] = 'Registration Context'; $LANG['user.astaccountsecret'] = 'Plaintext Password'; $LANG['user.astaccounttype'] = 'Account Type'; $LANG['user.astcontext'] = 'Asterisk Context'; $LANG['user.asterisk'] = 'Asterisk SIP'; $LANG['user.astextension'] = 'Asterisk Extension'; $LANG['user.astvoicemailpassword'] = 'Voicemail PIN Code'; $LANG['user.c'] = 'Country'; $LANG['user.city'] = 'City'; $LANG['user.cn'] = 'Common name'; $LANG['user.config'] = 'Configuration'; $LANG['user.contact'] = 'Contact'; $LANG['user.contact_info'] = 'Contact Information'; $LANG['user.country'] = 'Country'; $LANG['user.country.desc'] = '2 letter code from ISO 3166-1'; $LANG['user.delete.confirm'] = 'Are you sure, you want to delete this user?'; $LANG['user.delete.success'] = 'User deleted successfully.'; $LANG['user.displayname'] = 'Display name'; $LANG['user.edit.success'] = 'User updated successfully.'; $LANG['user.fax'] = 'Fax number'; $LANG['user.fbinterval'] = 'Free-Busy interval'; $LANG['user.fbinterval.desc'] = 'Leave blank for default (60 days)'; $LANG['user.gidnumber'] = 'Primary group number'; $LANG['user.givenname'] = 'Given name'; $LANG['user.homedirectory'] = 'Home directory'; $LANG['user.homephone'] = 'Home Phone Number'; $LANG['user.initials'] = 'Initials'; $LANG['user.invitation-policy'] = 'Invitation policy'; $LANG['user.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['user.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['user.kolabdelegate'] = 'Delegates'; $LANG['user.kolabhomeserver'] = 'Email Server'; $LANG['user.kolabinvitationpolicy'] = 'Invitation Handling Policy'; $LANG['user.l'] = 'City, Region'; $LANG['user.list'] = 'Users List'; $LANG['user.loginshell'] = 'Shell'; $LANG['user.mail'] = 'Primary Email Address'; $LANG['user.mailalternateaddress'] = 'External Email Address(es)'; $LANG['user.mailforwardingaddress'] = 'Forward Mail To'; $LANG['user.mailhost'] = 'Email Server'; $LANG['user.mailquota'] = 'Quota'; $LANG['user.mailquota.desc'] = 'Leave blank for unlimited'; $LANG['user.mobile'] = 'Mobile Phone Number'; $LANG['user.name'] = 'Name'; $LANG['user.norecords'] = 'No user records found!'; $LANG['user.nsrole'] = 'Role(s)'; $LANG['user.nsroledn'] = 'Role(s)'; $LANG['user.other'] = 'Other'; $LANG['user.o'] = 'Organization'; $LANG['user.org'] = 'Organization'; $LANG['user.orgunit'] = 'Organizational Unit'; $LANG['user.ou'] = 'Organizational Unit'; $LANG['user.pager'] = 'Pager Number'; $LANG['user.password.notallowed'] = 'Password contains characters (eg. Umlaut) that are not permitted'; $LANG['user.password.mismatch'] = 'Passwords do not match!'; $LANG['user.password.moreupper'] = 'Password needs to contain at least $1 uppercase character(s)'; $LANG['user.password.morelower'] = 'Password needs to contain at least $1 lowercase character(s)'; $LANG['user.password.moredigits'] = 'Password needs to contain at least $1 digit(s)'; $LANG['user.password.morespecial'] = 'Password needs to contain at least $1 special character(s): $2'; $LANG['user.password.tooshort'] = 'Password is too short, it must have at least $1 characters'; $LANG['user.personal'] = 'Personal'; $LANG['user.phone'] = 'Phone number'; $LANG['user.postalcode'] = 'Postal Code'; $LANG['user.postbox'] = 'Postal box'; $LANG['user.postcode'] = 'Postal code'; $LANG['user.preferredlanguage'] = 'Native tongue'; $LANG['user.room'] = 'Room number'; $LANG['user.sn'] = 'Surname'; $LANG['user.street'] = 'Street'; $LANG['user.system'] = 'System'; $LANG['user.telephonenumber'] = 'Phone Number'; $LANG['user.title'] = 'Job Title'; $LANG['user.type_id'] = 'Account type'; $LANG['user.uid'] = 'Unique identity (UID)'; $LANG['user.userpassword'] = 'Password'; $LANG['user.userpassword2'] = 'Confirm password'; $LANG['user.uidnumber'] = 'User ID number'; $LANG['welcome'] = 'Welcome to the Kolab Groupware Server Maintenance'; $LANG['yes'] = 'yes'; diff --git a/lib/locale/es_ES.php b/lib/locale/es_ES.php index 082478b..c37c800 100644 --- a/lib/locale/es_ES.php +++ b/lib/locale/es_ES.php @@ -1,444 +1,443 @@ Kolab Server.'; $LANG['about.kolab'] = 'Kolab'; $LANG['about.kolabsys'] = 'Kolab Systems'; $LANG['about.support'] = 'Professional support is available from Kolab Systems.'; $LANG['about.technology'] = 'Tecnología'; $LANG['about.warranty'] = 'Viene absolutamente sin ninguna garantia y normalmente se ejecuta sin ningun tipo de soporte. Puedes obetner ayuda y más información en el sitio web de la comunidad y en el wiki.'; $LANG['aci.new'] = 'New...'; $LANG['aci.edit'] = 'Edit...'; $LANG['aci.remove'] = 'Remove'; $LANG['aci.users'] = 'Usuarios'; $LANG['aci.rights'] = 'Rights'; $LANG['aci.targets'] = 'Targets'; $LANG['aci.aciname'] = 'ACI name:'; $LANG['aci.hosts'] = 'Hosts'; $LANG['aci.times'] = 'Times'; $LANG['aci.name'] = 'Nombre'; $LANG['aci.userid'] = 'ID de usuario'; $LANG['aci.email'] = 'Correo electrónico'; $LANG['aci.read'] = 'Read'; $LANG['aci.compare'] = 'Compare'; $LANG['aci.search'] = 'Buscar'; $LANG['aci.write'] = 'Write'; $LANG['aci.selfwrite'] = 'Self-write'; $LANG['aci.delete'] = 'Borrar'; $LANG['aci.add'] = 'Añadir'; $LANG['aci.proxy'] = 'Proxy'; $LANG['aci.all'] = 'All rights'; $LANG['aci.allow'] = 'Allow'; $LANG['aci.deny'] = 'Deny'; $LANG['aci.typeusers'] = 'Usuarios'; $LANG['aci.typegroups'] = 'Grupos'; $LANG['aci.typeroles'] = 'Roles'; $LANG['aci.typeadmins'] = 'Administradores'; $LANG['aci.typespecials'] = 'Special Rights'; $LANG['aci.ldap-self'] = 'Self'; $LANG['aci.ldap-anyone'] = 'All users'; $LANG['aci.ldap-all'] = 'All authenticated users'; $LANG['aci.ldap-parent'] = 'Parent'; $LANG['aci.usersearch'] = 'Search for:'; $LANG['aci.usersearchresult'] = 'Search results:'; $LANG['aci.userselected'] = 'Selected users/groups/roles:'; $LANG['aci.useradd'] = 'Añadir'; $LANG['aci.userremove'] = 'Remove'; $LANG['aci.error.noname'] = 'ACI rule name is required!'; $LANG['aci.error.exists'] = 'ACI rule with specified name already exists!'; $LANG['aci.error.nousers'] = 'At least one user entry is required!'; $LANG['aci.rights.target'] = 'Target entry:'; $LANG['aci.rights.filter'] = 'Filtro:'; $LANG['aci.rights.attrs'] = 'Attributes:'; $LANG['aci.checkall'] = 'Check all'; $LANG['aci.checknone'] = 'Check none'; $LANG['aci.thisentry'] = 'This entry'; $LANG['aci.selected'] = 'all selected'; $LANG['aci.other'] = 'all except selected'; $LANG['acl.all'] = 'all'; $LANG['acl.append'] = 'append'; $LANG['acl.custom'] = 'custom...'; $LANG['acl.full'] = 'Full (without access control)'; $LANG['acl.post'] = 'post'; $LANG['acl.read'] = 'read'; $LANG['acl.read-only'] = 'Read-Only'; $LANG['acl.read-write'] = 'Read/Write'; $LANG['acl.semi-full'] = 'Write new items'; $LANG['acl.write'] = 'write'; $LANG['acl.l'] = 'Lookup'; $LANG['acl.r'] = 'Read messages'; $LANG['acl.s'] = 'Keep Seen state'; $LANG['acl.w'] = 'Write flags'; $LANG['acl.i'] = 'Insert (Copy into)'; $LANG['acl.p'] = 'Post'; $LANG['acl.c'] = 'Create subfolders'; $LANG['acl.k'] = 'Create subfolders'; $LANG['acl.d'] = 'Delete messages'; $LANG['acl.t'] = 'Delete messages'; $LANG['acl.e'] = 'Expunge'; $LANG['acl.x'] = 'Delete folder'; $LANG['acl.a'] = 'Administer'; $LANG['acl.n'] = 'Annotate messages'; $LANG['acl.identifier'] = 'Identifier'; $LANG['acl.rights'] = 'Access Rights'; $LANG['acl.expire'] = 'Expires On'; $LANG['acl.user'] = 'User...'; $LANG['acl.anyone'] = 'All users (anyone)'; $LANG['acl.anonymous'] = 'Guests (anonymous)'; $LANG['acl.error.invaliddate'] = 'Invalid date format!'; $LANG['acl.error.norights'] = 'No access rights specified!'; $LANG['acl.error.subjectexists'] = 'Access rights for specified identifier already exist!'; $LANG['acl.error.nouser'] = 'User identifier not specified!'; $LANG['add'] = 'Añadir'; $LANG['api.notypeid'] = 'No object type ID specified!'; $LANG['api.invalidtypeid'] = 'Invalid object type ID!'; $LANG['attribute.add'] = 'Agregar atributo'; $LANG['attribute.default'] = 'Default value'; $LANG['attribute.static'] = 'Valor estático'; $LANG['attribute.name'] = 'Atributo'; $LANG['attribute.optional'] = 'Opcional'; $LANG['attribute.maxcount'] = 'Max. count'; $LANG['attribute.readonly'] = 'Solo-lectura'; $LANG['attribute.type'] = 'Tipo de campo'; $LANG['attribute.value'] = 'Valor'; $LANG['attribute.value.auto'] = 'Generado'; $LANG['attribute.value.auto-readonly'] = 'Generado (solo-lectura)'; $LANG['attribute.value.normal'] = 'Normal'; $LANG['attribute.value.static'] = 'Estático'; $LANG['attribute.options'] = 'Opciones'; $LANG['attribute.key.invalid'] = 'Type key contains forbidden characters!'; $LANG['attribute.required.error'] = 'Faltan atributos requeridos en la lista de atributos ($1)!'; $LANG['attribute.validate'] = ' Validation'; $LANG['attribute.validate.default'] = 'default'; $LANG['attribute.validate.none'] = 'none'; $LANG['attribute.validate.basic'] = 'basic'; $LANG['attribute.validate.extended'] = 'extended'; $LANG['button.cancel'] = 'Cancelar'; $LANG['button.delete'] = 'Borrar'; $LANG['button.ok'] = 'OK'; $LANG['button.save'] = 'Guardar'; $LANG['button.submit'] = 'Enviar'; $LANG['creatorsname'] = 'Creado por'; $LANG['days'] = 'días'; $LANG['debug'] = 'Información de depuración'; $LANG['delete'] = 'Borrar'; $LANG['deleting'] = 'Borrando datos...'; $LANG['domain.add'] = 'Añadir dominio'; $LANG['domain.add.success'] = 'Dominio añadido'; $LANG['domain.associateddomain'] = 'Nombre(s) de dominio(s)'; $LANG['domain.delete.confirm'] = 'Are you sure, you want to delete this domain?'; $LANG['domain.delete.force'] = "There are users assigned to this domain.\nAre you sure, you want to delete this domain and all assigned objects?"; $LANG['domain.delete.success'] = 'Dominio borrado correctamente'; $LANG['domain.edit'] = 'Editar dominio'; $LANG['domain.edit.success'] = 'Dominio actualizado'; $LANG['domain.inetdomainbasedn'] = 'Custom Root DN'; $LANG['domain.inetdomainstatus'] = 'Status'; $LANG['domain.list'] = 'Lista de dominios'; $LANG['domain.norecords'] = 'No se encontraron registros de dominio!'; $LANG['domain.o'] = 'Organización'; $LANG['domain.other'] = 'Otro'; $LANG['domain.system'] = 'Sistema'; $LANG['domain.type_id'] = 'Dominio estandar'; $LANG['edit'] = 'Editar'; $LANG['error'] = 'Error'; $LANG['error.401'] = 'Unauthorized.'; $LANG['error.403'] = 'Access forbidden.'; $LANG['error.404'] = 'Object not found.'; $LANG['error.408'] = 'Request timeout.'; $LANG['error.450'] = 'Domain is not empty.'; $LANG['error.500'] = 'Internal server error.'; $LANG['error.503'] = 'Service unavailable. Try again later.'; $LANG['form.required.empty'] = '¡Alguno de los campos obligatorios está vacio!'; $LANG['form.maxcount.exceeded'] = '¡Número máximo de elementos superado!'; $LANG['group.add'] = 'Añadir grupo'; $LANG['group.add.success'] = 'Grupo creado correctamente.'; $LANG['group.cn'] = 'Nombre común'; $LANG['group.delete.confirm'] = 'Are you sure, you want to delete this group?'; $LANG['group.delete.success'] = 'Grupo borrado correctamente.'; $LANG['group.edit.success'] = 'Grupo editado correctamente.'; $LANG['group.gidnumber'] = 'Número de grupo primario'; $LANG['group.kolaballowsmtprecipient'] = 'Lista de acceso del destinatario(s)'; $LANG['group.kolaballowsmtpsender'] = 'Lista de acceso del remitente'; $LANG['group.list'] = 'Lista de grupos'; $LANG['group.mail'] = 'Dirección primario de correo electrónico'; $LANG['group.member'] = 'Miembros(s)'; $LANG['group.memberurl'] = 'URL de Miembros'; $LANG['group.norecords'] = '¡No se han encontrado registro(s) de recursos¡'; $LANG['group.other'] = 'Otro'; $LANG['group.ou'] = 'Unidad organizativa'; $LANG['group.system'] = 'Sistema'; $LANG['group.type_id'] = 'Tipo de grupo'; $LANG['group.uniquemember'] = 'Miembros'; $LANG['info'] = 'Información'; $LANG['internalerror'] = '¡Error interno del sistema!'; $LANG['ldap.one'] = 'one: todas las entradas un nivel debajo del DN base'; $LANG['ldap.sub'] = 'sub: todo el sub-árbol comenzando con el DN base'; $LANG['ldap.base'] = 'base: solo el DN base'; $LANG['ldap.basedn'] = 'DN Base'; $LANG['ldap.host'] = 'Servidor LDAP'; $LANG['ldap.conditions'] = 'Condiciones'; $LANG['ldap.scope'] = 'Scope'; $LANG['ldap.filter_any'] = 'no esta vacío'; $LANG['ldap.filter_both'] = 'contiene'; $LANG['ldap.filter_prefix'] = 'comienza con'; $LANG['ldap.filter_suffix'] = 'acaba por'; $LANG['ldap.filter_exact'] = 'es igual a'; $LANG['list.records'] = '$1 to $2 of $3'; $LANG['loading'] = 'Cargando...'; $LANG['logout'] = 'Desloguearse'; -$LANG['login.username'] = 'Nombre de usuario:'; -$LANG['login.password'] = 'Contraseña:'; -$LANG['login.domain'] = 'Dominio:'; +$LANG['login.username'] = 'Nombre de usuario'; +$LANG['login.password'] = 'Contraseña'; $LANG['login.login'] = 'Login'; $LANG['loginerror'] = '¡Nombre de usuario o contraseña incorrectos!'; $LANG['MB'] = 'MB'; $LANG['menu.about'] = 'Sobre Kolab'; $LANG['menu.domains'] = 'Dominios'; $LANG['menu.groups'] = 'Grupos'; $LANG['menu.ous'] = 'Units'; $LANG['menu.resources'] = 'Recursos'; $LANG['menu.roles'] = 'Roles'; $LANG['menu.settings'] = 'Servicios'; $LANG['menu.sharedfolders'] = 'Carpetas compartidas'; $LANG['menu.users'] = 'Usuarios'; $LANG['modifiersname'] = 'Modificado por'; $LANG['password.generate'] = 'Generar contraseña'; $LANG['reqtime'] = 'Tiempo requerido: $1 sec.'; $LANG['ou.aci'] = 'Access Rights'; $LANG['ou.add'] = 'Add Unit'; $LANG['ou.add.success'] = 'Unit created successfully.'; $LANG['ou.ou'] = 'Unit Name'; $LANG['ou.delete.confirm'] = 'Are you sure, you want to delete this organizational unit?'; $LANG['ou.delete.success'] = 'Unit deleted successfully.'; $LANG['ou.description'] = 'Unit Description'; $LANG['ou.edit.success'] = 'Unit updated successfully.'; $LANG['ou.list'] = 'Organizational Unit List'; $LANG['ou.norecords'] = 'No organizational unit records found!'; $LANG['ou.system'] = 'Detalles'; $LANG['ou.type_id'] = 'Unit Type'; $LANG['ou.base_dn'] = 'Parent Unit'; $LANG['resource.acl'] = 'Access Rights'; $LANG['resource.add'] = 'Añadir recurso'; $LANG['resource.add.success'] = 'Recurso añadido'; $LANG['resource.cn'] = 'Nombre'; $LANG['resource.delete'] = 'Eliminar recurso'; $LANG['resource.delete.confirm'] = 'Are you sure, you want to delete this resource?'; $LANG['resource.delete.success'] = 'Recurso editado correctamente'; $LANG['resource.edit'] = 'Editar recurso'; $LANG['resource.edit.success'] = 'Successfully updated Resource'; $LANG['resource.kolabtargetfolder'] = 'Carpeta de destino'; $LANG['resource.kolabinvitationpolicy'] = 'Política de invitación'; $LANG['resource.list'] = 'Lista de recursos'; $LANG['resource.mail'] = 'Correo electrónico'; $LANG['resource.member'] = 'Miembros de la colección'; $LANG['resource.norecords'] = '¡No se ha encontrado registro(s) de recursos¡'; $LANG['resource.other'] = 'Otro'; $LANG['resource.ou'] = 'Unidad organizativa'; $LANG['resource.system'] = 'Sistema'; $LANG['resource.type_id'] = 'Tipo de recurso'; $LANG['resource.uniquemember'] = 'Miembros de la colección'; $LANG['resource.description'] = 'Descripción'; $LANG['resource.owner'] = 'Owner'; $LANG['role.add'] = 'Añadir role'; $LANG['role.add.success'] = 'Rol creado correctamente'; $LANG['role.cn'] = 'Nombre de Rol'; $LANG['role.delete.confirm'] = 'Are you sure, you want to delete this role?'; $LANG['role.delete.success'] = 'Rol eliminado correctamente'; $LANG['role.description'] = 'Descripción del Rol'; $LANG['role.edit.success'] = 'Role updated successfully.'; $LANG['role.list'] = 'Lista de roles'; $LANG['role.norecords'] = '¡No se han encontrado registros del rol!'; $LANG['role.system'] = 'Detalles'; $LANG['role.type_id'] = 'Tipo de Rol'; $LANG['saving'] = 'Guardando datos...'; -$LANG['search'] = 'Buscar'; +$LANG['search'] = 'Buscar...'; $LANG['search.reset'] = 'Restablecer'; $LANG['search.criteria'] = 'Criterio de búsqueda'; $LANG['search.field'] = 'Campo:'; $LANG['search.method'] = 'Método:'; $LANG['search.contains'] = 'contiene'; $LANG['search.is'] = 'es'; $LANG['search.key'] = 'key'; $LANG['search.prefix'] = 'comienza por'; $LANG['search.name'] = 'nombre'; $LANG['search.email'] = 'correo electrónico'; $LANG['search.description'] = 'Descripción'; $LANG['search.uid'] = 'ID Usuario'; $LANG['search.loading'] = 'Buscando...'; $LANG['search.acchars'] = 'Son necesarios $min caracteres para el autocompletado'; $LANG['servererror'] = '¡Error del servidor!'; $LANG['session.expired'] = 'La sesión ha finalizado. Por faovr, inicie la sesión de nuevo'; $LANG['sharedfolder.acl'] = 'IMAP Access Rights'; $LANG['sharedfolder.add'] = 'Añadir carpeta compartida'; $LANG['sharedfolder.add.success'] = 'Shared folder created successfully.'; $LANG['sharedfolder.alias'] = 'Dirección secundaria de correo electrónico'; $LANG['sharedfolder.cn'] = 'Nombre de carpeta'; $LANG['sharedfolder.delete.confirm'] = 'Are you sure, you want to delete this shared folder?'; $LANG['sharedfolder.delete.success'] = 'Shared folder deleted successfully.'; $LANG['sharedfolder.edit'] = 'Edit Shared Folder'; $LANG['sharedfolder.edit.success'] = 'Shared folder updated successfully.'; $LANG['sharedfolder.kolaballowsmtprecipient'] = 'Lista de acceso del destinatario(s)'; $LANG['sharedfolder.kolaballowsmtpsender'] = 'Lista de acceso del remitente'; $LANG['sharedfolder.kolabdelegate'] = 'Delegate(s)'; $LANG['sharedfolder.kolabtargetfolder'] = 'Target IMAP Folder'; $LANG['sharedfolder.list'] = 'Shared Folders List'; $LANG['sharedfolder.norecords'] = 'No shared folder records found!'; $LANG['sharedfolder.mail'] = 'Email Address'; $LANG['sharedfolder.other'] = 'Otros'; $LANG['sharedfolder.system'] = 'Sistema'; $LANG['sharedfolder.type_id'] = 'Shared Folder Type'; $LANG['signup.headline'] = 'Registrarse a Hosted Kolab'; $LANG['signup.intro1'] = 'Having an account on a Kolab server is way better than just simple Email. It also provides you with full groupware functionality including synchronization for shared addressbooks, calendars, tasks, journal and more.'; $LANG['signup.intro2'] = 'Puedes registrarte aqui para obtener una nueva cuenta'; $LANG['signup.formtitle'] = 'Registrarse'; $LANG['signup.username'] = 'Nombre de usuario'; $LANG['signup.domain'] = 'Dominio'; $LANG['signup.mailalternateaddress'] = 'Dirección de correo actual'; $LANG['signup.futuremail'] = 'Dirección de correo futura'; $LANG['signup.company'] = 'Compania'; $LANG['signup.captcha'] = 'CAPTCHA'; $LANG['signup.userexists'] = 'El usuario existe'; $LANG['signup.usercreated'] = '

    Su cuenta ha sido agregada!

    Felicitaciones, ya tienes tu propia cuenta de Kolab'; $LANG['signup.wronguid'] = 'Usuario Invalido'; $LANG['signup.wrongmailalternateaddress'] = '¡Introduzca una dirección de email correcta, por favor!'; $LANG['signup.footer'] = 'Este es un servicio ofrecido por Kolab Systems.'; $LANG['type.add'] = 'Agregar tipo de objeto'; $LANG['type.add.success'] = 'Tipo de objeto creado correctamente'; $LANG['type.attributes'] = 'Atributos'; $LANG['type.description'] = 'Descripción'; $LANG['type.delete.confirm'] = 'Are you sure, you want to delete this object type?'; $LANG['type.delete.success'] = 'Tipo de objeto borrado correctamente'; $LANG['type.domain'] = 'Dominio'; $LANG['type.edit.success'] = 'Tipo de objecto actualizado correctamente'; $LANG['type.group'] = 'Grupo'; $LANG['type.list'] = 'Object Types List'; $LANG['type.key'] = 'Key'; $LANG['type.name'] = 'Nombre'; $LANG['type.norecords'] = 'No se encontraron tipos de objetos'; $LANG['type.objectclass'] = 'Clase de objeto'; $LANG['type.object_type'] = 'Tipo de Objeto'; $LANG['type.ou'] = 'Unidad organizativa'; $LANG['type.properties'] = 'Propiedades'; $LANG['type.resource'] = 'Recurso'; $LANG['type.role'] = 'Rol'; $LANG['type.sharedfolder'] = 'Carpetas compartidas'; $LANG['type.used_for'] = 'Alojado'; $LANG['type.user'] = 'Usuario'; $LANG['user.add'] = 'Añadir usuario'; $LANG['user.add.success'] = 'Usuario creado con exito.'; $LANG['user.alias'] = 'Dirección(es) de correo electrónico secundaria(s)'; $LANG['user.astaccountallowedcodec'] = 'Codec(s) permitidos'; $LANG['user.astaccountcallerid'] = 'Identificador de llamadas'; $LANG['user.astaccountcontext'] = 'Contexto de la cuenta'; $LANG['user.astaccountdefaultuser'] = 'Cuenta de Asterisk por defecto '; $LANG['user.astaccountdeny'] = 'Cuenta denegadaM'; $LANG['user.astaccounthost'] = 'Servidor Asterisk'; $LANG['user.astaccountmailbox'] = 'Casilla de correo'; $LANG['user.astaccountnat'] = 'La cuenta utiliza NAT'; $LANG['user.astaccountname'] = 'Nombre de la cuenta de Asterisk'; $LANG['user.astaccountqualify'] = 'Calificación de la cuenta'; $LANG['user.astaccountrealmedpassword'] = 'Realmed Account Password'; $LANG['user.astaccountregistrationexten'] = 'Extensión '; $LANG['user.astaccountregistrationcontext'] = 'Contexto de registración'; $LANG['user.astaccountsecret'] = 'Contraseña texto plano'; $LANG['user.astaccounttype'] = 'Tipo de cuenta'; $LANG['user.astcontext'] = 'Asterisk Context'; $LANG['user.asterisk'] = 'Asterisk SIP'; $LANG['user.astextension'] = 'Extensión de Asterisk '; $LANG['user.astvoicemailpassword'] = 'Voicemail PIN Code'; $LANG['user.c'] = 'País'; $LANG['user.city'] = 'Ciudad'; $LANG['user.cn'] = 'Nombre común'; $LANG['user.config'] = 'Configuración'; $LANG['user.contact'] = 'Contacto'; $LANG['user.contact_info'] = 'Información de contacto'; $LANG['user.country'] = 'País'; $LANG['user.country.desc'] = 'Código de 2 letras del ISO 3166-1'; $LANG['user.delete.confirm'] = 'Are you sure, you want to delete this user?'; $LANG['user.delete.success'] = 'Usuario borrado correctamente'; $LANG['user.displayname'] = 'Nombre mostrado'; $LANG['user.edit.success'] = 'Usuario editado correctamente.'; $LANG['user.fax'] = 'Número de Fax'; $LANG['user.fbinterval'] = 'Intervalo libre-ocupado'; $LANG['user.fbinterval.desc'] = 'Dejar en blanco para usar el valor por defecto (60 días)'; $LANG['user.gidnumber'] = 'Número de grupo primario'; $LANG['user.givenname'] = 'Nombre proporcionado'; $LANG['user.homedirectory'] = 'Home directory'; $LANG['user.homephone'] = 'Teléfono de casa'; $LANG['user.initials'] = 'Iniciales'; $LANG['user.invitation-policy'] = 'Pólitica de invitaciones'; $LANG['user.kolaballowsmtprecipient'] = 'Lista de acceso del destinatario(s)'; $LANG['user.kolaballowsmtpsender'] = 'Lista de acceso del remitente'; $LANG['user.kolabdelegate'] = 'Delegados'; $LANG['user.kolabhomeserver'] = 'Servidor de correo electronico'; $LANG['user.kolabinvitationpolicy'] = 'Política de administración de invitaciones'; $LANG['user.l'] = 'Población, Provincia'; $LANG['user.list'] = 'Listado de usuarios'; $LANG['user.loginshell'] = 'Shell'; $LANG['user.mail'] = 'Dirección primaria de correo electrónico'; $LANG['user.mailalternateaddress'] = 'Dirección secundaria de correo electrónico'; $LANG['user.mailforwardingaddress'] = 'reenviar correo a'; $LANG['user.mailhost'] = 'Servidor de correo electrónico'; $LANG['user.mailquota'] = 'Cuota'; $LANG['user.mailquota.desc'] = 'Dejar en blanco para ilimitado'; $LANG['user.mobile'] = 'Número de teléfono movil'; $LANG['user.name'] = 'Nombre'; $LANG['user.norecords'] = '¡No se han encontrado registros de usuario!'; $LANG['user.nsrole'] = 'Rol(es)'; $LANG['user.nsroledn'] = 'Rol(es)'; $LANG['user.other'] = 'Otros'; $LANG['user.o'] = 'Organización'; $LANG['user.org'] = 'Organización'; $LANG['user.orgunit'] = 'Unidad organizativa'; $LANG['user.ou'] = 'Unidad organizativa'; $LANG['user.pager'] = 'Número de página'; $LANG['user.password.mismatch'] = '¡Las contraseñas no coinciden!'; $LANG['user.personal'] = 'Personal'; $LANG['user.phone'] = 'Número de teléfono'; $LANG['user.postalcode'] = 'Código Postal'; $LANG['user.postbox'] = 'Apartado de correo'; $LANG['user.postcode'] = 'Código Postal'; $LANG['user.preferredlanguage'] = 'Lengua nativa'; $LANG['user.room'] = 'Número de despacho'; $LANG['user.sn'] = 'Apellido'; $LANG['user.street'] = 'Calle'; $LANG['user.system'] = 'Sistema'; $LANG['user.telephonenumber'] = 'Número de teléfono'; $LANG['user.title'] = 'Cargo'; $LANG['user.type_id'] = 'Tipo de cuenta'; $LANG['user.uid'] = 'Identificador único (UID)'; $LANG['user.userpassword'] = 'Contraseña'; $LANG['user.userpassword2'] = 'Confirmar contraseña'; $LANG['user.uidnumber'] = 'Número de ID de usuario'; $LANG['welcome'] = 'Bienvenido a la interfaz de administración de Kolab'; $LANG['yes'] = 'Sí'; diff --git a/lib/locale/et_EE.php b/lib/locale/et_EE.php index 08ec479..4e5d9d1 100644 --- a/lib/locale/et_EE.php +++ b/lib/locale/et_EE.php @@ -1,444 +1,444 @@ Kolab Server.'; $LANG['about.kolab'] = 'Kolab'; $LANG['about.kolabsys'] = 'Kolab Systems'; $LANG['about.support'] = 'Professional support is available from Kolab Systems.'; $LANG['about.technology'] = 'Tehnoloogia'; $LANG['about.warranty'] = 'It comes with absolutely no warranties and is typically run entirely self supported. You can find help & information on the community web site & wiki.'; $LANG['aci.new'] = 'New...'; $LANG['aci.edit'] = 'Edit...'; $LANG['aci.remove'] = 'Remove'; $LANG['aci.users'] = 'Kasutajad'; $LANG['aci.rights'] = 'Rights'; $LANG['aci.targets'] = 'Targets'; $LANG['aci.aciname'] = 'ACI name:'; $LANG['aci.hosts'] = 'Hosts'; $LANG['aci.times'] = 'Times'; $LANG['aci.name'] = 'Nimi'; $LANG['aci.userid'] = 'User ID'; $LANG['aci.email'] = 'E-mail'; $LANG['aci.read'] = 'Read'; $LANG['aci.compare'] = 'Compare'; $LANG['aci.search'] = 'Search'; $LANG['aci.write'] = 'Write'; $LANG['aci.selfwrite'] = 'Self-write'; $LANG['aci.delete'] = 'Kustuta'; $LANG['aci.add'] = 'Lisa'; $LANG['aci.proxy'] = 'Proxy'; $LANG['aci.all'] = 'All rights'; $LANG['aci.allow'] = 'Allow'; $LANG['aci.deny'] = 'Deny'; $LANG['aci.typeusers'] = 'Kasutajad'; $LANG['aci.typegroups'] = 'Groups'; $LANG['aci.typeroles'] = 'Roles'; $LANG['aci.typeadmins'] = 'Administraatorid'; $LANG['aci.typespecials'] = 'Special Rights'; $LANG['aci.ldap-self'] = 'Self'; $LANG['aci.ldap-anyone'] = 'All users'; $LANG['aci.ldap-all'] = 'All authenticated users'; $LANG['aci.ldap-parent'] = 'Parent'; $LANG['aci.usersearch'] = 'Search for:'; $LANG['aci.usersearchresult'] = 'Search results:'; $LANG['aci.userselected'] = 'Selected users/groups/roles:'; $LANG['aci.useradd'] = 'Lisa'; $LANG['aci.userremove'] = 'Remove'; $LANG['aci.error.noname'] = 'ACI rule name is required!'; $LANG['aci.error.exists'] = 'ACI rule with specified name already exists!'; $LANG['aci.error.nousers'] = 'At least one user entry is required!'; $LANG['aci.rights.target'] = 'Target entry:'; $LANG['aci.rights.filter'] = 'Filter:'; $LANG['aci.rights.attrs'] = 'Attributes:'; $LANG['aci.checkall'] = 'Check all'; $LANG['aci.checknone'] = 'Check none'; $LANG['aci.thisentry'] = 'This entry'; $LANG['aci.selected'] = 'all selected'; $LANG['aci.other'] = 'all except selected'; $LANG['acl.all'] = 'all'; $LANG['acl.append'] = 'append'; $LANG['acl.custom'] = 'custom...'; $LANG['acl.full'] = 'Full (without access control)'; $LANG['acl.post'] = 'post'; $LANG['acl.read'] = 'read'; $LANG['acl.read-only'] = 'Read-Only'; $LANG['acl.read-write'] = 'Read/Write'; $LANG['acl.semi-full'] = 'Write new items'; $LANG['acl.write'] = 'write'; $LANG['acl.l'] = 'Lookup'; $LANG['acl.r'] = 'Read messages'; $LANG['acl.s'] = 'Keep Seen state'; $LANG['acl.w'] = 'Write flags'; $LANG['acl.i'] = 'Insert (Copy into)'; $LANG['acl.p'] = 'Post'; $LANG['acl.c'] = 'Create subfolders'; $LANG['acl.k'] = 'Create subfolders'; $LANG['acl.d'] = 'Delete messages'; $LANG['acl.t'] = 'Delete messages'; $LANG['acl.e'] = 'Expunge'; $LANG['acl.x'] = 'Delete folder'; $LANG['acl.a'] = 'Administer'; $LANG['acl.n'] = 'Annotate messages'; $LANG['acl.identifier'] = 'Identifier'; $LANG['acl.rights'] = 'Access Rights'; $LANG['acl.expire'] = 'Expires On'; $LANG['acl.user'] = 'User...'; $LANG['acl.anyone'] = 'All users (anyone)'; $LANG['acl.anonymous'] = 'Guests (anonymous)'; $LANG['acl.error.invaliddate'] = 'Invalid date format!'; $LANG['acl.error.norights'] = 'No access rights specified!'; $LANG['acl.error.subjectexists'] = 'Access rights for specified identifier already exist!'; $LANG['acl.error.nouser'] = 'User identifier not specified!'; $LANG['add'] = 'Lisa'; $LANG['api.notypeid'] = 'No object type ID specified!'; $LANG['api.invalidtypeid'] = 'Invalid object type ID!'; $LANG['attribute.add'] = 'Add attribute'; $LANG['attribute.default'] = 'Default value'; $LANG['attribute.static'] = 'Static value'; $LANG['attribute.name'] = 'Attribute'; $LANG['attribute.optional'] = 'Optional'; $LANG['attribute.maxcount'] = 'Max. count'; $LANG['attribute.readonly'] = 'Read-only'; $LANG['attribute.type'] = 'Field type'; $LANG['attribute.value'] = 'Value'; $LANG['attribute.value.auto'] = 'Generated'; $LANG['attribute.value.auto-readonly'] = 'Generated (read-only)'; $LANG['attribute.value.normal'] = 'Normal'; $LANG['attribute.value.static'] = 'Static'; $LANG['attribute.options'] = 'Options'; $LANG['attribute.key.invalid'] = 'Type key contains forbidden characters!'; $LANG['attribute.required.error'] = 'Required attributes missing in attributes list ($1)!'; $LANG['attribute.validate'] = ' Validation'; $LANG['attribute.validate.default'] = 'default'; $LANG['attribute.validate.none'] = 'none'; $LANG['attribute.validate.basic'] = 'basic'; $LANG['attribute.validate.extended'] = 'extended'; $LANG['button.cancel'] = 'Cancel'; $LANG['button.delete'] = 'Kustuta'; $LANG['button.ok'] = 'OK'; $LANG['button.save'] = 'Salvesta'; $LANG['button.submit'] = 'Submit'; $LANG['creatorsname'] = 'Created by'; $LANG['days'] = 'days'; $LANG['debug'] = 'Debug info'; $LANG['delete'] = 'Kustuta'; $LANG['deleting'] = 'Deleting data...'; $LANG['domain.add'] = 'Add Domain'; $LANG['domain.add.success'] = 'Domain created successfully.'; $LANG['domain.associateddomain'] = 'Domain name(s)'; $LANG['domain.delete.confirm'] = 'Are you sure, you want to delete this domain?'; $LANG['domain.delete.force'] = "There are users assigned to this domain.\nAre you sure, you want to delete this domain and all assigned objects?"; $LANG['domain.delete.success'] = 'Domain deleted successfully.'; $LANG['domain.edit'] = 'Edit domain'; $LANG['domain.edit.success'] = 'Domain updated successfully.'; $LANG['domain.inetdomainbasedn'] = 'Custom Root DN'; $LANG['domain.inetdomainstatus'] = 'Status'; $LANG['domain.list'] = 'Domains List'; $LANG['domain.norecords'] = 'No domain records found!'; $LANG['domain.o'] = 'Organization'; $LANG['domain.other'] = 'Other'; $LANG['domain.system'] = 'System'; $LANG['domain.type_id'] = 'Standard Domain'; $LANG['edit'] = 'Edit'; $LANG['error'] = 'Error'; $LANG['error.401'] = 'Unauthorized.'; $LANG['error.403'] = 'Access forbidden.'; $LANG['error.404'] = 'Object not found.'; $LANG['error.408'] = 'Request timeout.'; $LANG['error.450'] = 'Domain is not empty.'; $LANG['error.500'] = 'Internal server error.'; $LANG['error.503'] = 'Service unavailable. Try again later.'; $LANG['form.required.empty'] = 'Some of the required fields are empty!'; $LANG['form.maxcount.exceeded'] = 'Maximum count of items exceeded!'; $LANG['group.add'] = 'Add Group'; $LANG['group.add.success'] = 'Group created successfully.'; $LANG['group.cn'] = 'Common name'; $LANG['group.delete.confirm'] = 'Are you sure, you want to delete this group?'; $LANG['group.delete.success'] = 'Group deleted successfully.'; $LANG['group.edit.success'] = 'Group updated successfully.'; $LANG['group.gidnumber'] = 'Primary group number'; $LANG['group.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['group.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['group.list'] = 'Groups List'; $LANG['group.mail'] = 'Peamine e-posti aadress'; $LANG['group.member'] = 'Member(s)'; $LANG['group.memberurl'] = 'Members URL'; $LANG['group.norecords'] = 'No group records found!'; $LANG['group.other'] = 'Other'; $LANG['group.ou'] = 'Organizational Unit'; $LANG['group.system'] = 'System'; $LANG['group.type_id'] = 'Group type'; $LANG['group.uniquemember'] = 'Liikmed'; $LANG['info'] = 'Information'; $LANG['internalerror'] = 'Internal system error!'; $LANG['ldap.one'] = 'one: all entries one level under the base DN'; $LANG['ldap.sub'] = 'sub: whole subtree starting with the base DN'; $LANG['ldap.base'] = 'base: base DN only'; $LANG['ldap.basedn'] = 'Base DN'; $LANG['ldap.host'] = 'LDAP Server'; $LANG['ldap.conditions'] = 'Conditions'; $LANG['ldap.scope'] = 'Scope'; $LANG['ldap.filter_any'] = 'is non-empty'; $LANG['ldap.filter_both'] = 'contains'; $LANG['ldap.filter_prefix'] = 'starts with'; $LANG['ldap.filter_suffix'] = 'ends with'; $LANG['ldap.filter_exact'] = 'is equal to'; $LANG['list.records'] = '$1 to $2 of $3'; $LANG['loading'] = 'Loading...'; $LANG['logout'] = 'Logout'; -$LANG['login.username'] = 'Username:'; -$LANG['login.password'] = 'Password:'; -$LANG['login.domain'] = 'Domain:'; +$LANG['login.username'] = 'Username'; +$LANG['login.password'] = 'Password'; +$LANG['login.domain'] = 'Domain'; $LANG['login.login'] = 'Login'; $LANG['loginerror'] = 'Incorrect username or password!'; $LANG['MB'] = 'MB'; $LANG['menu.about'] = 'About'; $LANG['menu.domains'] = 'Domeenid'; $LANG['menu.groups'] = 'Groups'; $LANG['menu.ous'] = 'Units'; $LANG['menu.resources'] = 'Resources'; $LANG['menu.roles'] = 'Roles'; $LANG['menu.settings'] = 'Settings'; $LANG['menu.sharedfolders'] = 'Shared Folders'; $LANG['menu.users'] = 'Kasutajad'; $LANG['modifiersname'] = 'Modified by'; $LANG['password.generate'] = 'Generate password'; $LANG['reqtime'] = 'Request time: $1 sec.'; $LANG['ou.aci'] = 'Access Rights'; $LANG['ou.add'] = 'Add Unit'; $LANG['ou.add.success'] = 'Unit created successfully.'; $LANG['ou.ou'] = 'Unit Name'; $LANG['ou.delete.confirm'] = 'Are you sure, you want to delete this organizational unit?'; $LANG['ou.delete.success'] = 'Unit deleted successfully.'; $LANG['ou.description'] = 'Unit Description'; $LANG['ou.edit.success'] = 'Unit updated successfully.'; $LANG['ou.list'] = 'Organizational Unit List'; $LANG['ou.norecords'] = 'No organizational unit records found!'; $LANG['ou.system'] = 'Details'; $LANG['ou.type_id'] = 'Unit Type'; $LANG['ou.base_dn'] = 'Parent Unit'; $LANG['resource.acl'] = 'Access Rights'; $LANG['resource.add'] = 'Add Resource'; $LANG['resource.add.success'] = 'Resource created successfully.'; $LANG['resource.cn'] = 'Nimi'; $LANG['resource.delete'] = 'Delete Resource'; $LANG['resource.delete.confirm'] = 'Are you sure, you want to delete this resource?'; $LANG['resource.delete.success'] = 'Resource deleted successfully.'; $LANG['resource.edit'] = 'Edit Resource'; $LANG['resource.edit.success'] = 'Resource updated successfully.'; $LANG['resource.kolabtargetfolder'] = 'Target Folder'; $LANG['resource.kolabinvitationpolicy'] = 'Invitation Policy'; $LANG['resource.list'] = 'Resource (Collection) List'; $LANG['resource.mail'] = 'Mail Address'; $LANG['resource.member'] = 'Collection Members'; $LANG['resource.norecords'] = 'No resource records found!'; $LANG['resource.other'] = 'Other'; $LANG['resource.ou'] = 'Organizational Unit'; $LANG['resource.system'] = 'System'; $LANG['resource.type_id'] = 'Resource Type'; $LANG['resource.uniquemember'] = 'Collection Members'; $LANG['resource.description'] = 'Description'; $LANG['resource.owner'] = 'Owner'; $LANG['role.add'] = 'Add Role'; $LANG['role.add.success'] = 'Role created successfully.'; $LANG['role.cn'] = 'Role Name'; $LANG['role.delete.confirm'] = 'Are you sure, you want to delete this role?'; $LANG['role.delete.success'] = 'Role deleted successfully.'; $LANG['role.description'] = 'Role Description'; $LANG['role.edit.success'] = 'Role updated successfully.'; $LANG['role.list'] = 'Role List'; $LANG['role.norecords'] = 'No role records found!'; $LANG['role.system'] = 'Details'; $LANG['role.type_id'] = 'Role Type'; $LANG['saving'] = 'Saving data...'; -$LANG['search'] = 'Search'; +$LANG['search'] = 'Search...'; $LANG['search.reset'] = 'Reset'; $LANG['search.criteria'] = 'Search criteria'; $LANG['search.field'] = 'Field:'; $LANG['search.method'] = 'Method:'; $LANG['search.contains'] = 'contains'; $LANG['search.is'] = 'is'; $LANG['search.key'] = 'key'; $LANG['search.prefix'] = 'begins with'; $LANG['search.name'] = 'Nimi'; $LANG['search.email'] = 'email'; $LANG['search.description'] = 'description'; $LANG['search.uid'] = 'UID'; $LANG['search.loading'] = 'Searching...'; $LANG['search.acchars'] = 'At least $min characters required for autocompletion'; $LANG['servererror'] = 'Server Error!'; $LANG['session.expired'] = 'Session has expired. Login again, please'; $LANG['sharedfolder.acl'] = 'IMAP Access Rights'; $LANG['sharedfolder.add'] = 'Add Shared Folder'; $LANG['sharedfolder.add.success'] = 'Shared folder created successfully.'; $LANG['sharedfolder.alias'] = 'Secondary Email Address(es)'; $LANG['sharedfolder.cn'] = 'Folder Name'; $LANG['sharedfolder.delete.confirm'] = 'Are you sure, you want to delete this shared folder?'; $LANG['sharedfolder.delete.success'] = 'Shared folder deleted successfully.'; $LANG['sharedfolder.edit'] = 'Edit Shared Folder'; $LANG['sharedfolder.edit.success'] = 'Shared folder updated successfully.'; $LANG['sharedfolder.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['sharedfolder.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['sharedfolder.kolabdelegate'] = 'Delegate(s)'; $LANG['sharedfolder.kolabtargetfolder'] = 'Target IMAP Folder'; $LANG['sharedfolder.list'] = 'Shared Folders List'; $LANG['sharedfolder.norecords'] = 'No shared folder records found!'; $LANG['sharedfolder.mail'] = 'Email Address'; $LANG['sharedfolder.other'] = 'Other'; $LANG['sharedfolder.system'] = 'System'; $LANG['sharedfolder.type_id'] = 'Shared Folder Type'; $LANG['signup.headline'] = 'Sign Up for Hosted Kolab'; $LANG['signup.intro1'] = 'Having an account on a Kolab server is way better than just simple Email. It also provides you with full groupware functionality including synchronization for shared addressbooks, calendars, tasks, journal and more.'; $LANG['signup.intro2'] = 'You can sign up here now for an account.'; $LANG['signup.formtitle'] = 'Sign Up'; $LANG['signup.username'] = 'Username'; $LANG['signup.domain'] = 'Domeen'; $LANG['signup.mailalternateaddress'] = 'Current Email Address'; $LANG['signup.futuremail'] = 'Future Email Address'; $LANG['signup.company'] = 'Company'; $LANG['signup.captcha'] = 'CAPTCHA'; $LANG['signup.userexists'] = 'User already exists!'; $LANG['signup.usercreated'] = '

    Your account has been successfully added!

    Congratulations, you now have your own Kolab account.'; $LANG['signup.wronguid'] = 'Invalid Username!'; $LANG['signup.wrongmailalternateaddress'] = 'Please provide a valid Email Address!'; $LANG['signup.footer'] = 'This is a service offered by Kolab Systems.'; $LANG['type.add'] = 'Add Object Type'; $LANG['type.add.success'] = 'Object type created successfully.'; $LANG['type.attributes'] = 'Attributes'; $LANG['type.description'] = 'Description'; $LANG['type.delete.confirm'] = 'Are you sure, you want to delete this object type?'; $LANG['type.delete.success'] = 'Object type deleted successfully.'; $LANG['type.domain'] = 'Domeen'; $LANG['type.edit.success'] = 'Object type updated successfully.'; $LANG['type.group'] = 'Group'; $LANG['type.list'] = 'Object Types List'; $LANG['type.key'] = 'Key'; $LANG['type.name'] = 'Nimi'; $LANG['type.norecords'] = 'No object type records found!'; $LANG['type.objectclass'] = 'Object class'; $LANG['type.object_type'] = 'Object type'; $LANG['type.ou'] = 'Organizational Unit'; $LANG['type.properties'] = 'Properties'; $LANG['type.resource'] = 'Resource'; $LANG['type.role'] = 'Role'; $LANG['type.sharedfolder'] = 'Jagatud kaust'; $LANG['type.used_for'] = 'Hosted'; $LANG['type.user'] = 'User'; $LANG['user.add'] = 'Add User'; $LANG['user.add.success'] = 'User created successfully.'; $LANG['user.alias'] = 'Secondary Email Address(es)'; $LANG['user.astaccountallowedcodec'] = 'Allowed codec(s)'; $LANG['user.astaccountcallerid'] = 'Caller ID'; $LANG['user.astaccountcontext'] = 'Account Context'; $LANG['user.astaccountdefaultuser'] = 'Asterisk Account Default User'; $LANG['user.astaccountdeny'] = 'Account deny'; $LANG['user.astaccounthost'] = 'Asterisk Host'; $LANG['user.astaccountmailbox'] = 'Mailbox'; $LANG['user.astaccountnat'] = 'Account uses NAT'; $LANG['user.astaccountname'] = 'Asterisk Account Name'; $LANG['user.astaccountqualify'] = 'Account Qualify'; $LANG['user.astaccountrealmedpassword'] = 'Realmed Account Password'; $LANG['user.astaccountregistrationexten'] = 'Extension'; $LANG['user.astaccountregistrationcontext'] = 'Registration Context'; $LANG['user.astaccountsecret'] = 'Plaintext Password'; $LANG['user.astaccounttype'] = 'Account Type'; $LANG['user.astcontext'] = 'Asterisk Context'; $LANG['user.asterisk'] = 'Asterisk SIP'; $LANG['user.astextension'] = 'Asterisk Extension'; $LANG['user.astvoicemailpassword'] = 'Voicemail PIN Code'; $LANG['user.c'] = 'Riik'; $LANG['user.city'] = 'Linn'; $LANG['user.cn'] = 'Common name'; $LANG['user.config'] = 'Configuration'; $LANG['user.contact'] = 'Contact'; $LANG['user.contact_info'] = 'Contact Information'; $LANG['user.country'] = 'Riik'; $LANG['user.country.desc'] = '2 letter code from ISO 3166-1'; $LANG['user.delete.confirm'] = 'Are you sure, you want to delete this user?'; $LANG['user.delete.success'] = 'User deleted successfully.'; $LANG['user.displayname'] = 'Display name'; $LANG['user.edit.success'] = 'User updated successfully.'; $LANG['user.fax'] = 'Fax number'; $LANG['user.fbinterval'] = 'Free-Busy interval'; $LANG['user.fbinterval.desc'] = 'Leave blank for default (60 days)'; $LANG['user.gidnumber'] = 'Primary group number'; $LANG['user.givenname'] = 'Given name'; $LANG['user.homedirectory'] = 'Home directory'; $LANG['user.homephone'] = 'Home Phone Number'; $LANG['user.initials'] = 'Initials'; $LANG['user.invitation-policy'] = 'Invitation policy'; $LANG['user.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['user.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['user.kolabdelegate'] = 'Delegates'; $LANG['user.kolabhomeserver'] = 'Email Server'; $LANG['user.kolabinvitationpolicy'] = 'Invitation Handling Policy'; $LANG['user.l'] = 'City, Region'; $LANG['user.list'] = 'Users List'; $LANG['user.loginshell'] = 'Shell'; $LANG['user.mail'] = 'Peamine e-posti aadress'; $LANG['user.mailalternateaddress'] = 'External Email Address(es)'; $LANG['user.mailforwardingaddress'] = 'Forward Mail To'; $LANG['user.mailhost'] = 'Email Server'; $LANG['user.mailquota'] = 'Quota'; $LANG['user.mailquota.desc'] = 'Leave blank for unlimited'; $LANG['user.mobile'] = 'Mobile Phone Number'; $LANG['user.name'] = 'Nimi'; $LANG['user.norecords'] = 'No user records found!'; $LANG['user.nsrole'] = 'Role(s)'; $LANG['user.nsroledn'] = 'Role(s)'; $LANG['user.other'] = 'Other'; $LANG['user.o'] = 'Organization'; $LANG['user.org'] = 'Organization'; $LANG['user.orgunit'] = 'Organizational Unit'; $LANG['user.ou'] = 'Organizational Unit'; $LANG['user.pager'] = 'Pager Number'; $LANG['user.password.mismatch'] = 'Passwords do not match!'; $LANG['user.personal'] = 'Personal'; $LANG['user.phone'] = 'Phone number'; $LANG['user.postalcode'] = 'Postal Code'; $LANG['user.postbox'] = 'Postal box'; $LANG['user.postcode'] = 'Postal code'; $LANG['user.preferredlanguage'] = 'Native tongue'; $LANG['user.room'] = 'Room number'; $LANG['user.sn'] = 'Surname'; $LANG['user.street'] = 'Street'; $LANG['user.system'] = 'System'; $LANG['user.telephonenumber'] = 'Phone Number'; $LANG['user.title'] = 'Job Title'; $LANG['user.type_id'] = 'Account type'; $LANG['user.uid'] = 'Unique identity (UID)'; $LANG['user.userpassword'] = 'Parool'; $LANG['user.userpassword2'] = 'Confirm password'; $LANG['user.uidnumber'] = 'User ID number'; $LANG['welcome'] = 'Welcome to the Kolab Groupware Server Maintenance'; $LANG['yes'] = 'yes'; diff --git a/lib/locale/fi_FI.php b/lib/locale/fi_FI.php index 6ae5835..d9b9b58 100644 --- a/lib/locale/fi_FI.php +++ b/lib/locale/fi_FI.php @@ -1,444 +1,443 @@ Kolab-palvelimen yhteisöversio.'; $LANG['about.kolab'] = 'Kolab'; $LANG['about.kolabsys'] = 'Kolab Systems'; $LANG['about.support'] = 'Kaupallista tukea tarjoaa Kolab Systems.'; $LANG['about.technology'] = 'Technology'; $LANG['about.warranty'] = 'Se ei sisällä minkäänlaista takuuta, ja tuki on yleensä hoidettava itse. Apua ja ohjeita on saatavilla yhteisön verkkosivustolta sekä wikistä.'; $LANG['aci.new'] = 'New...'; $LANG['aci.edit'] = 'Edit...'; $LANG['aci.remove'] = 'Poista'; $LANG['aci.users'] = 'Käyttäjät'; $LANG['aci.rights'] = 'Rights'; $LANG['aci.targets'] = 'Targets'; $LANG['aci.aciname'] = 'ACI name:'; $LANG['aci.hosts'] = 'Hosts'; $LANG['aci.times'] = 'Times'; $LANG['aci.name'] = 'Nimi'; $LANG['aci.userid'] = 'User ID'; $LANG['aci.email'] = 'E-mail'; $LANG['aci.read'] = 'Read'; $LANG['aci.compare'] = 'Compare'; $LANG['aci.search'] = 'Etsi'; $LANG['aci.write'] = 'Kirjoitus'; $LANG['aci.selfwrite'] = 'Self-write'; $LANG['aci.delete'] = 'Poista'; $LANG['aci.add'] = 'Lisää'; $LANG['aci.proxy'] = 'Proxy'; $LANG['aci.all'] = 'All rights'; $LANG['aci.allow'] = 'Allow'; $LANG['aci.deny'] = 'Deny'; $LANG['aci.typeusers'] = 'Käyttäjät'; $LANG['aci.typegroups'] = 'Ryhmät'; $LANG['aci.typeroles'] = 'Roolit'; $LANG['aci.typeadmins'] = 'Administrators'; $LANG['aci.typespecials'] = 'Special Rights'; $LANG['aci.ldap-self'] = 'Self'; $LANG['aci.ldap-anyone'] = 'All users'; $LANG['aci.ldap-all'] = 'All authenticated users'; $LANG['aci.ldap-parent'] = 'Parent'; $LANG['aci.usersearch'] = 'Search for:'; $LANG['aci.usersearchresult'] = 'Search results:'; $LANG['aci.userselected'] = 'Selected users/groups/roles:'; $LANG['aci.useradd'] = 'Lisää'; $LANG['aci.userremove'] = 'Poista'; $LANG['aci.error.noname'] = 'ACI rule name is required!'; $LANG['aci.error.exists'] = 'ACI rule with specified name already exists!'; $LANG['aci.error.nousers'] = 'At least one user entry is required!'; $LANG['aci.rights.target'] = 'Target entry:'; $LANG['aci.rights.filter'] = 'Filter:'; $LANG['aci.rights.attrs'] = 'Attributes:'; $LANG['aci.checkall'] = 'Check all'; $LANG['aci.checknone'] = 'Check none'; $LANG['aci.thisentry'] = 'This entry'; $LANG['aci.selected'] = 'all selected'; $LANG['aci.other'] = 'all except selected'; $LANG['acl.all'] = 'all'; $LANG['acl.append'] = 'append'; $LANG['acl.custom'] = 'custom...'; $LANG['acl.full'] = 'Full (without access control)'; $LANG['acl.post'] = 'post'; $LANG['acl.read'] = 'read'; $LANG['acl.read-only'] = 'Read-Only'; $LANG['acl.read-write'] = 'Read/Write'; $LANG['acl.semi-full'] = 'Write new items'; $LANG['acl.write'] = 'write'; $LANG['acl.l'] = 'Lookup'; $LANG['acl.r'] = 'Read messages'; $LANG['acl.s'] = 'Keep Seen state'; $LANG['acl.w'] = 'Write flags'; $LANG['acl.i'] = 'Insert (Copy into)'; $LANG['acl.p'] = 'Post'; $LANG['acl.c'] = 'Create subfolders'; $LANG['acl.k'] = 'Create subfolders'; $LANG['acl.d'] = 'Delete messages'; $LANG['acl.t'] = 'Delete messages'; $LANG['acl.e'] = 'Expunge'; $LANG['acl.x'] = 'Poista kansio'; $LANG['acl.a'] = 'Administer'; $LANG['acl.n'] = 'Annotate messages'; $LANG['acl.identifier'] = 'Identifier'; $LANG['acl.rights'] = 'Access Rights'; $LANG['acl.expire'] = 'Expires On'; $LANG['acl.user'] = 'User...'; $LANG['acl.anyone'] = 'All users (anyone)'; $LANG['acl.anonymous'] = 'Guests (anonymous)'; $LANG['acl.error.invaliddate'] = 'Invalid date format!'; $LANG['acl.error.norights'] = 'No access rights specified!'; $LANG['acl.error.subjectexists'] = 'Access rights for specified identifier already exist!'; $LANG['acl.error.nouser'] = 'User identifier not specified!'; $LANG['add'] = 'Lisää'; $LANG['api.notypeid'] = 'No object type ID specified!'; $LANG['api.invalidtypeid'] = 'Invalid object type ID!'; $LANG['attribute.add'] = 'Add attribute'; $LANG['attribute.default'] = 'Oletusarvo'; $LANG['attribute.static'] = 'Static value'; $LANG['attribute.name'] = 'Attribute'; $LANG['attribute.optional'] = 'Valinnainen'; $LANG['attribute.maxcount'] = 'Max. count'; $LANG['attribute.readonly'] = 'Vain luku'; $LANG['attribute.type'] = 'Kentän tyyppi'; $LANG['attribute.value'] = 'Arvo'; $LANG['attribute.value.auto'] = 'Generated'; $LANG['attribute.value.auto-readonly'] = 'Generated (read-only)'; $LANG['attribute.value.normal'] = 'Normal'; $LANG['attribute.value.static'] = 'Static'; $LANG['attribute.options'] = 'Valinnat'; $LANG['attribute.key.invalid'] = 'Type key contains forbidden characters!'; $LANG['attribute.required.error'] = 'Required attributes missing in attributes list ($1)!'; $LANG['attribute.validate'] = ' Validation'; $LANG['attribute.validate.default'] = 'oletus'; $LANG['attribute.validate.none'] = 'none'; $LANG['attribute.validate.basic'] = 'basic'; $LANG['attribute.validate.extended'] = 'extended'; $LANG['button.cancel'] = 'Peru'; $LANG['button.delete'] = 'Poista'; $LANG['button.ok'] = 'OK'; $LANG['button.save'] = 'Tallenna'; $LANG['button.submit'] = 'Lähetä'; $LANG['creatorsname'] = 'Luonut'; $LANG['days'] = 'päivää'; $LANG['debug'] = 'Debug info'; $LANG['delete'] = 'Poista'; $LANG['deleting'] = 'Poistetaan tietoja...'; $LANG['domain.add'] = 'Lisää toimialue'; $LANG['domain.add.success'] = 'Toimialue luotiin onnistuneesti.'; $LANG['domain.associateddomain'] = 'Domain name(s)'; $LANG['domain.delete.confirm'] = 'Are you sure, you want to delete this domain?'; $LANG['domain.delete.force'] = "There are users assigned to this domain.\nAre you sure, you want to delete this domain and all assigned objects?"; $LANG['domain.delete.success'] = 'Toimialue poistettu onnistuneesti.'; $LANG['domain.edit'] = 'Muokkaa toimialuetta'; $LANG['domain.edit.success'] = 'Toimialue päivitettiin onnistuneesti.'; $LANG['domain.inetdomainbasedn'] = 'Custom Root DN'; $LANG['domain.inetdomainstatus'] = 'Tila'; $LANG['domain.list'] = 'Domains List'; $LANG['domain.norecords'] = 'No domain records found!'; $LANG['domain.o'] = 'Organisaatio'; $LANG['domain.other'] = 'Muu'; $LANG['domain.system'] = 'System'; $LANG['domain.type_id'] = 'Standard Domain'; $LANG['edit'] = 'Muokkaa'; $LANG['error'] = 'Virhe'; $LANG['error.401'] = 'Unauthorized.'; $LANG['error.403'] = 'Access forbidden.'; $LANG['error.404'] = 'Object not found.'; $LANG['error.408'] = 'Request timeout.'; $LANG['error.450'] = 'Domain is not empty.'; $LANG['error.500'] = 'Internal server error.'; $LANG['error.503'] = 'Service unavailable. Try again later.'; $LANG['form.required.empty'] = 'Jotkin vaaditut kentät ovat tyhjiä!'; $LANG['form.maxcount.exceeded'] = 'Maximum count of items exceeded!'; $LANG['group.add'] = 'Lisää ryhmä'; $LANG['group.add.success'] = 'Ryhmä luotiin onnistuneesti.'; $LANG['group.cn'] = 'Common name'; $LANG['group.delete.confirm'] = 'Are you sure, you want to delete this group?'; $LANG['group.delete.success'] = 'Ryhmä poistettu onnistuneesti.'; $LANG['group.edit.success'] = 'Ryhmä päivitetty onnistuneesti.'; $LANG['group.gidnumber'] = 'Primary group number'; $LANG['group.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['group.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['group.list'] = 'Groups List'; $LANG['group.mail'] = 'Ensisijainen sähköpostiosoite'; $LANG['group.member'] = 'Member(s)'; $LANG['group.memberurl'] = 'Members URL'; $LANG['group.norecords'] = 'No group records found!'; $LANG['group.other'] = 'Muu'; $LANG['group.ou'] = 'Organisaatioyksikkö'; $LANG['group.system'] = 'System'; $LANG['group.type_id'] = 'Ryhmän tyyppi'; $LANG['group.uniquemember'] = 'Jäsenet'; $LANG['info'] = 'Information'; $LANG['internalerror'] = 'Sisäinen järjestelmävirhe!'; $LANG['ldap.one'] = 'one: all entries one level under the base DN'; $LANG['ldap.sub'] = 'sub: whole subtree starting with the base DN'; $LANG['ldap.base'] = 'base: base DN only'; $LANG['ldap.basedn'] = 'Base DN'; $LANG['ldap.host'] = 'LDAP-palvelin'; $LANG['ldap.conditions'] = 'Conditions'; $LANG['ldap.scope'] = 'Scope'; $LANG['ldap.filter_any'] = 'is non-empty'; $LANG['ldap.filter_both'] = 'sisältää'; $LANG['ldap.filter_prefix'] = 'starts with'; $LANG['ldap.filter_suffix'] = 'ends with'; $LANG['ldap.filter_exact'] = 'is equal to'; $LANG['list.records'] = '$1 to $2 of $3'; $LANG['loading'] = 'Ladataan...'; $LANG['logout'] = 'Kirjaudu ulos'; -$LANG['login.username'] = 'Käyttäjätunnus:'; -$LANG['login.password'] = 'Salasana:'; -$LANG['login.domain'] = 'Toimialue:'; +$LANG['login.username'] = 'Käyttäjätunnus'; +$LANG['login.password'] = 'Salasana'; $LANG['login.login'] = 'Kirjaudu'; $LANG['loginerror'] = 'Väärä käyttäjätunnus tai salasana!'; $LANG['MB'] = 'Mt'; $LANG['menu.about'] = 'Tietoja'; $LANG['menu.domains'] = 'Toimialueet'; $LANG['menu.groups'] = 'Ryhmät'; $LANG['menu.ous'] = 'Units'; $LANG['menu.resources'] = 'Resurssit'; $LANG['menu.roles'] = 'Roolit'; $LANG['menu.settings'] = 'Asetukset'; $LANG['menu.sharedfolders'] = 'Jaetut kansiot'; $LANG['menu.users'] = 'Käyttäjät'; $LANG['modifiersname'] = 'Muokannut'; $LANG['password.generate'] = 'Luo salasana'; $LANG['reqtime'] = 'Request time: $1 sec.'; $LANG['ou.aci'] = 'Access Rights'; $LANG['ou.add'] = 'Add Unit'; $LANG['ou.add.success'] = 'Unit created successfully.'; $LANG['ou.ou'] = 'Unit Name'; $LANG['ou.delete.confirm'] = 'Are you sure, you want to delete this organizational unit?'; $LANG['ou.delete.success'] = 'Unit deleted successfully.'; $LANG['ou.description'] = 'Unit Description'; $LANG['ou.edit.success'] = 'Unit updated successfully.'; $LANG['ou.list'] = 'Organizational Unit List'; $LANG['ou.norecords'] = 'No organizational unit records found!'; $LANG['ou.system'] = 'Tiedot'; $LANG['ou.type_id'] = 'Unit Type'; $LANG['ou.base_dn'] = 'Parent Unit'; $LANG['resource.acl'] = 'Access Rights'; $LANG['resource.add'] = 'Lisää resurssi'; $LANG['resource.add.success'] = 'Resurssi luotiin onnistuneesti.'; $LANG['resource.cn'] = 'Nimi'; $LANG['resource.delete'] = 'Poista resurssi'; $LANG['resource.delete.confirm'] = 'Are you sure, you want to delete this resource?'; $LANG['resource.delete.success'] = 'Resurssi poistettiin onnistuneesti.'; $LANG['resource.edit'] = 'Muokkaa resurssia'; $LANG['resource.edit.success'] = 'Resurssi päivitettiin onnistuneesti.'; $LANG['resource.kolabtargetfolder'] = 'Target Folder'; $LANG['resource.kolabinvitationpolicy'] = 'Invitation Policy'; $LANG['resource.list'] = 'Resource (Collection) List'; $LANG['resource.mail'] = 'Mail Address'; $LANG['resource.member'] = 'Collection Members'; $LANG['resource.norecords'] = 'No resource records found!'; $LANG['resource.other'] = 'Muu'; $LANG['resource.ou'] = 'Organisaatioyksikkö'; $LANG['resource.system'] = 'System'; $LANG['resource.type_id'] = 'Resource Type'; $LANG['resource.uniquemember'] = 'Collection Members'; $LANG['resource.description'] = 'Kuvaus'; $LANG['resource.owner'] = 'Owner'; $LANG['role.add'] = 'Lisää rooli'; $LANG['role.add.success'] = 'Rooli luotiin onnistuneesti.'; $LANG['role.cn'] = 'Roolin nimi'; $LANG['role.delete.confirm'] = 'Are you sure, you want to delete this role?'; $LANG['role.delete.success'] = 'Rooli poistettiin onnistuneesti.'; $LANG['role.description'] = 'Roolin kuvaus'; $LANG['role.edit.success'] = 'Rooli päivitetty onnistuneesti.'; $LANG['role.list'] = 'Role List'; $LANG['role.norecords'] = 'No role records found!'; $LANG['role.system'] = 'Tiedot'; $LANG['role.type_id'] = 'Roolin tyyppi'; $LANG['saving'] = 'Tallennetaan tietoja...'; -$LANG['search'] = 'Etsi'; +$LANG['search'] = 'Etsi...'; $LANG['search.reset'] = 'Reset'; $LANG['search.criteria'] = 'Search criteria'; $LANG['search.field'] = 'Kenttä:'; $LANG['search.method'] = 'Method:'; $LANG['search.contains'] = 'sisältää'; $LANG['search.is'] = 'on'; $LANG['search.key'] = 'key'; $LANG['search.prefix'] = 'alkaa'; $LANG['search.name'] = 'nimi'; $LANG['search.email'] = 'email'; $LANG['search.description'] = 'kuvaus'; $LANG['search.uid'] = 'UID'; $LANG['search.loading'] = 'Etsitään...'; $LANG['search.acchars'] = 'At least $min characters required for autocompletion'; $LANG['servererror'] = 'Palvelinvirhe!'; $LANG['session.expired'] = 'Istunto on vanhentunut. Kirjaudu sisään uudelleen.'; $LANG['sharedfolder.acl'] = 'IMAP Access Rights'; $LANG['sharedfolder.add'] = 'Lisää jaettu kansio'; $LANG['sharedfolder.add.success'] = 'Jaettu kansio luotiin onnistuneesti.'; $LANG['sharedfolder.alias'] = 'Secondary Email Address(es)'; $LANG['sharedfolder.cn'] = 'Kansion nimi'; $LANG['sharedfolder.delete.confirm'] = 'Are you sure, you want to delete this shared folder?'; $LANG['sharedfolder.delete.success'] = 'Jaettu kansio poistettiin onnistuneesti.'; $LANG['sharedfolder.edit'] = 'Muokkaa jaettua kansiota'; $LANG['sharedfolder.edit.success'] = 'Jaettu kansio päivitetty onnistuneesti.'; $LANG['sharedfolder.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['sharedfolder.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['sharedfolder.kolabdelegate'] = 'Delegate(s)'; $LANG['sharedfolder.kolabtargetfolder'] = 'Target IMAP Folder'; $LANG['sharedfolder.list'] = 'Shared Folders List'; $LANG['sharedfolder.norecords'] = 'No shared folder records found!'; $LANG['sharedfolder.mail'] = 'Sähköpostiosoite'; $LANG['sharedfolder.other'] = 'Muu'; $LANG['sharedfolder.system'] = 'System'; $LANG['sharedfolder.type_id'] = 'Jaetun kansion tyyppi'; $LANG['signup.headline'] = 'Sign Up for Hosted Kolab'; $LANG['signup.intro1'] = 'Having an account on a Kolab server is way better than just simple Email. It also provides you with full groupware functionality including synchronization for shared addressbooks, calendars, tasks, journal and more.'; $LANG['signup.intro2'] = 'Rekisteröi itsellesi tili tästä.'; $LANG['signup.formtitle'] = 'Rekisteröidy'; $LANG['signup.username'] = 'Käyttäjätunnus'; $LANG['signup.domain'] = 'Toimialue'; $LANG['signup.mailalternateaddress'] = 'Nykyinen sähköpostiosoite'; $LANG['signup.futuremail'] = 'Future Email Address'; $LANG['signup.company'] = 'Yhtiö'; $LANG['signup.captcha'] = 'CAPTCHA'; $LANG['signup.userexists'] = 'Käyttäjä on jo olemassa!'; $LANG['signup.usercreated'] = '

    Tilisi lisättiin onnistuneesti!

    Onnittelut, sinulla on nyt oma Kolab-tili.'; $LANG['signup.wronguid'] = 'Virheellinen käyttäjätunnus!'; $LANG['signup.wrongmailalternateaddress'] = 'Anna kelvollinen sähköpostiosoite!'; $LANG['signup.footer'] = 'Palvelun tarjoaa Kolab Systems.'; $LANG['type.add'] = 'Add Object Type'; $LANG['type.add.success'] = 'Object type created successfully.'; $LANG['type.attributes'] = 'Attributes'; $LANG['type.description'] = 'Kuvaus'; $LANG['type.delete.confirm'] = 'Are you sure, you want to delete this object type?'; $LANG['type.delete.success'] = 'Object type deleted successfully.'; $LANG['type.domain'] = 'Toimialue'; $LANG['type.edit.success'] = 'Object type updated successfully.'; $LANG['type.group'] = 'Ryhmä'; $LANG['type.list'] = 'Object Types List'; $LANG['type.key'] = 'Key'; $LANG['type.name'] = 'Nimi'; $LANG['type.norecords'] = 'No object type records found!'; $LANG['type.objectclass'] = 'Object class'; $LANG['type.object_type'] = 'Object type'; $LANG['type.ou'] = 'Organisaatioyksikkö'; $LANG['type.properties'] = 'Ominaisuudet'; $LANG['type.resource'] = 'Resurssi'; $LANG['type.role'] = 'Rooli'; $LANG['type.sharedfolder'] = 'Jaettu kansio'; $LANG['type.used_for'] = 'Hosted'; $LANG['type.user'] = 'Käyttäjä'; $LANG['user.add'] = 'Lisää käyttäjä'; $LANG['user.add.success'] = 'Käyttäjä luotiin onnistuneesti.'; $LANG['user.alias'] = 'Secondary Email Address(es)'; $LANG['user.astaccountallowedcodec'] = 'Allowed codec(s)'; $LANG['user.astaccountcallerid'] = 'Caller ID'; $LANG['user.astaccountcontext'] = 'Account Context'; $LANG['user.astaccountdefaultuser'] = 'Asterisk Account Default User'; $LANG['user.astaccountdeny'] = 'Account deny'; $LANG['user.astaccounthost'] = 'Asterisk Host'; $LANG['user.astaccountmailbox'] = 'Mailbox'; $LANG['user.astaccountnat'] = 'Account uses NAT'; $LANG['user.astaccountname'] = 'Asterisk Account Name'; $LANG['user.astaccountqualify'] = 'Account Qualify'; $LANG['user.astaccountrealmedpassword'] = 'Realmed Account Password'; $LANG['user.astaccountregistrationexten'] = 'Extension'; $LANG['user.astaccountregistrationcontext'] = 'Registration Context'; $LANG['user.astaccountsecret'] = 'Plaintext Password'; $LANG['user.astaccounttype'] = 'Tilin tyyppi'; $LANG['user.astcontext'] = 'Asterisk Context'; $LANG['user.asterisk'] = 'Asterisk SIP'; $LANG['user.astextension'] = 'Asterisk Extension'; $LANG['user.astvoicemailpassword'] = 'Voicemail PIN Code'; $LANG['user.c'] = 'Maa'; $LANG['user.city'] = 'Kaupunki'; $LANG['user.cn'] = 'Common name'; $LANG['user.config'] = 'Asetukset'; $LANG['user.contact'] = 'Contact'; $LANG['user.contact_info'] = 'Contact Information'; $LANG['user.country'] = 'Maa'; $LANG['user.country.desc'] = 'ISO 3166-1:n 2-merkkinen koodi'; $LANG['user.delete.confirm'] = 'Are you sure, you want to delete this user?'; $LANG['user.delete.success'] = 'Käyttäjä poistettiin onnistuneesti.'; $LANG['user.displayname'] = 'Näyttönimi'; $LANG['user.edit.success'] = 'Käyttäjä päivitettiin onnistuneesti.'; $LANG['user.fax'] = 'Faksinumero'; $LANG['user.fbinterval'] = 'Free-Busy interval'; $LANG['user.fbinterval.desc'] = 'Leave blank for default (60 days)'; $LANG['user.gidnumber'] = 'Primary group number'; $LANG['user.givenname'] = 'Given name'; $LANG['user.homedirectory'] = 'Kotikansio'; $LANG['user.homephone'] = 'Puhelin kotiin'; $LANG['user.initials'] = 'Nimikirjaimet'; $LANG['user.invitation-policy'] = 'Invitation policy'; $LANG['user.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['user.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['user.kolabdelegate'] = 'Edustajat'; $LANG['user.kolabhomeserver'] = 'Sähköpostipalvelin'; $LANG['user.kolabinvitationpolicy'] = 'Invitation Handling Policy'; $LANG['user.l'] = 'Kaupunki, alue'; $LANG['user.list'] = 'Users List'; $LANG['user.loginshell'] = 'Shell'; $LANG['user.mail'] = 'Ensisijainen sähköpostiosoite'; $LANG['user.mailalternateaddress'] = 'External Email Address(es)'; $LANG['user.mailforwardingaddress'] = 'Forward Mail To'; $LANG['user.mailhost'] = 'Sähköpostipalvelin'; $LANG['user.mailquota'] = 'Kiintiö'; $LANG['user.mailquota.desc'] = 'Leave blank for unlimited'; $LANG['user.mobile'] = 'Matkapuhelinnumero'; $LANG['user.name'] = 'Nimi'; $LANG['user.norecords'] = 'No user records found!'; $LANG['user.nsrole'] = 'Rooli(t)'; $LANG['user.nsroledn'] = 'Rooli(t)'; $LANG['user.other'] = 'Muu'; $LANG['user.o'] = 'Organisaatio'; $LANG['user.org'] = 'Organisaatio'; $LANG['user.orgunit'] = 'Organisaatioyksikkö'; $LANG['user.ou'] = 'Organisaatioyksikkö'; $LANG['user.pager'] = 'Pager Number'; $LANG['user.password.mismatch'] = 'Salasanat eivät täsmää!'; $LANG['user.personal'] = 'Personal'; $LANG['user.phone'] = 'Puhelinnumero'; $LANG['user.postalcode'] = 'Postinumero'; $LANG['user.postbox'] = 'Postilokero'; $LANG['user.postcode'] = 'Postinumero'; $LANG['user.preferredlanguage'] = 'Äidinkieli'; $LANG['user.room'] = 'Huoneen numero'; $LANG['user.sn'] = 'Sukunimi'; $LANG['user.street'] = 'Katu'; $LANG['user.system'] = 'System'; $LANG['user.telephonenumber'] = 'Puhelinnumero'; $LANG['user.title'] = 'Tehtävänimike'; $LANG['user.type_id'] = 'Tilin tyyppi'; $LANG['user.uid'] = 'Unique identity (UID)'; $LANG['user.userpassword'] = 'Salasana'; $LANG['user.userpassword2'] = 'Vahvista salasana'; $LANG['user.uidnumber'] = 'User ID number'; $LANG['welcome'] = 'Tervetuloa Kolab-työryhmäohjelmiston palvelimen ylläpitoon'; $LANG['yes'] = 'kyllä'; diff --git a/lib/locale/fr_FR.php b/lib/locale/fr_FR.php index c86e2de..f77312c 100644 --- a/lib/locale/fr_FR.php +++ b/lib/locale/fr_FR.php @@ -1,444 +1,443 @@ Kolab Server.'; $LANG['about.kolab'] = 'Kolab'; $LANG['about.kolabsys'] = 'Kolab Systems'; $LANG['about.support'] = 'Un support professionnel est disponible au près de Kolab Systems.'; $LANG['about.technology'] = 'Technologie'; $LANG['about.warranty'] = 'Il est livré sans aucune garantie et généralement exécuté sous votre responsabilité. Vous pouvez trouver de l\'aide et des informations sur le site web communautaire et sur le wiki.'; $LANG['aci.new'] = 'New...'; $LANG['aci.edit'] = 'Edit...'; $LANG['aci.remove'] = 'Supprimer'; $LANG['aci.users'] = 'Utilisateurs'; $LANG['aci.rights'] = 'Rights'; $LANG['aci.targets'] = 'Targets'; $LANG['aci.aciname'] = 'ACI name:'; $LANG['aci.hosts'] = 'Hôtes'; $LANG['aci.times'] = 'Times'; $LANG['aci.name'] = 'Nom'; $LANG['aci.userid'] = 'User ID'; $LANG['aci.email'] = 'Adresse de messagerie'; $LANG['aci.read'] = 'Read'; $LANG['aci.compare'] = 'Compare'; $LANG['aci.search'] = 'Chercher'; $LANG['aci.write'] = 'Écriture'; $LANG['aci.selfwrite'] = 'Self-write'; $LANG['aci.delete'] = 'Supprimer'; $LANG['aci.add'] = 'Ajouter'; $LANG['aci.proxy'] = 'Proxy'; $LANG['aci.all'] = 'All rights'; $LANG['aci.allow'] = 'Allow'; $LANG['aci.deny'] = 'Deny'; $LANG['aci.typeusers'] = 'Utilisateurs'; $LANG['aci.typegroups'] = 'Groupes'; $LANG['aci.typeroles'] = 'Rôles'; $LANG['aci.typeadmins'] = 'Administrateurs'; $LANG['aci.typespecials'] = 'Special Rights'; $LANG['aci.ldap-self'] = 'Self'; $LANG['aci.ldap-anyone'] = 'All users'; $LANG['aci.ldap-all'] = 'All authenticated users'; $LANG['aci.ldap-parent'] = 'Parent'; $LANG['aci.usersearch'] = 'Search for:'; $LANG['aci.usersearchresult'] = 'Search results:'; $LANG['aci.userselected'] = 'Selected users/groups/roles:'; $LANG['aci.useradd'] = 'Ajouter'; $LANG['aci.userremove'] = 'Supprimer'; $LANG['aci.error.noname'] = 'ACI rule name is required!'; $LANG['aci.error.exists'] = 'ACI rule with specified name already exists!'; $LANG['aci.error.nousers'] = 'At least one user entry is required!'; $LANG['aci.rights.target'] = 'Target entry:'; $LANG['aci.rights.filter'] = 'Filtre :'; $LANG['aci.rights.attrs'] = 'Attributes:'; $LANG['aci.checkall'] = 'Check all'; $LANG['aci.checknone'] = 'Check none'; $LANG['aci.thisentry'] = 'This entry'; $LANG['aci.selected'] = 'all selected'; $LANG['aci.other'] = 'all except selected'; $LANG['acl.all'] = 'all'; $LANG['acl.append'] = 'append'; $LANG['acl.custom'] = 'custom...'; $LANG['acl.full'] = 'Full (without access control)'; $LANG['acl.post'] = 'post'; $LANG['acl.read'] = 'read'; $LANG['acl.read-only'] = 'Read-Only'; $LANG['acl.read-write'] = 'Read/Write'; $LANG['acl.semi-full'] = 'Write new items'; $LANG['acl.write'] = 'write'; $LANG['acl.l'] = 'Lookup'; $LANG['acl.r'] = 'Read messages'; $LANG['acl.s'] = 'Keep Seen state'; $LANG['acl.w'] = 'Write flags'; $LANG['acl.i'] = 'Insert (Copy into)'; $LANG['acl.p'] = 'Post'; $LANG['acl.c'] = 'Create subfolders'; $LANG['acl.k'] = 'Create subfolders'; $LANG['acl.d'] = 'Delete messages'; $LANG['acl.t'] = 'Delete messages'; $LANG['acl.e'] = 'Expunge'; $LANG['acl.x'] = 'Supprimer le répertoire'; $LANG['acl.a'] = 'Administer'; $LANG['acl.n'] = 'Annotate messages'; $LANG['acl.identifier'] = 'Identifier'; $LANG['acl.rights'] = 'Access Rights'; $LANG['acl.expire'] = 'Expires On'; $LANG['acl.user'] = 'User...'; $LANG['acl.anyone'] = 'All users (anyone)'; $LANG['acl.anonymous'] = 'Guests (anonymous)'; $LANG['acl.error.invaliddate'] = 'Invalid date format!'; $LANG['acl.error.norights'] = 'No access rights specified!'; $LANG['acl.error.subjectexists'] = 'Access rights for specified identifier already exist!'; $LANG['acl.error.nouser'] = 'User identifier not specified!'; $LANG['add'] = 'Ajouter'; $LANG['api.notypeid'] = 'No object type ID specified!'; $LANG['api.invalidtypeid'] = 'Invalid object type ID!'; $LANG['attribute.add'] = 'Ajouter un attribut'; $LANG['attribute.default'] = 'Valeur par défaut'; $LANG['attribute.static'] = 'Valeure statique'; $LANG['attribute.name'] = 'Attribut'; $LANG['attribute.optional'] = 'Optionel'; $LANG['attribute.maxcount'] = 'Nombre maximum'; $LANG['attribute.readonly'] = 'Lecture Seule'; $LANG['attribute.type'] = 'Type de champ'; $LANG['attribute.value'] = 'Valeur'; $LANG['attribute.value.auto'] = 'Automatique'; $LANG['attribute.value.auto-readonly'] = 'Automatique (lecture seule)'; $LANG['attribute.value.normal'] = 'Normal'; $LANG['attribute.value.static'] = 'Statique'; $LANG['attribute.options'] = 'Options'; $LANG['attribute.key.invalid'] = 'La clé contient des caractères invalides!'; $LANG['attribute.required.error'] = 'Certains attributs obligatoires manquent dans la liste ($1)!'; $LANG['attribute.validate'] = 'Validation'; $LANG['attribute.validate.default'] = 'default'; $LANG['attribute.validate.none'] = 'none'; $LANG['attribute.validate.basic'] = 'basique'; $LANG['attribute.validate.extended'] = 'extended'; $LANG['button.cancel'] = 'Annuler'; $LANG['button.delete'] = 'Supprimer'; $LANG['button.ok'] = 'OK'; $LANG['button.save'] = 'Enregistrer'; $LANG['button.submit'] = 'Envoyer'; $LANG['creatorsname'] = 'Créé par'; $LANG['days'] = 'jours'; $LANG['debug'] = 'Debug info'; $LANG['delete'] = 'Supprimer'; $LANG['deleting'] = 'Suppression des données...'; $LANG['domain.add'] = 'Ajouter un domaine'; $LANG['domain.add.success'] = 'Domaine créé.
    N\'oubliez pas d\'ajouter le nouveau domaine dans /etc/kolab/kolab.conf
    Voir chapitre 11 dans le Guide de l\'Administrateur.'; $LANG['domain.associateddomain'] = 'Nom du(des) domaine(s)'; $LANG['domain.delete.confirm'] = 'Are you sure, you want to delete this domain?'; $LANG['domain.delete.force'] = "There are users assigned to this domain.\nAre you sure, you want to delete this domain and all assigned objects?"; $LANG['domain.delete.success'] = 'Domaine supprimé.'; $LANG['domain.edit'] = 'Modifier le Domaine'; $LANG['domain.edit.success'] = 'Domaine modifié.'; $LANG['domain.inetdomainbasedn'] = 'Custom Root DN'; $LANG['domain.inetdomainstatus'] = 'Statut'; $LANG['domain.list'] = 'Liste des Domaines'; $LANG['domain.norecords'] = 'Pas de domaine trouvé!'; $LANG['domain.o'] = 'Organisation'; $LANG['domain.other'] = 'Autre'; $LANG['domain.system'] = 'Système'; $LANG['domain.type_id'] = 'Domaine Standard'; $LANG['edit'] = 'Modifier'; $LANG['error'] = 'Erreur'; $LANG['error.401'] = 'Unauthorized.'; $LANG['error.403'] = 'Access forbidden.'; $LANG['error.404'] = 'Object not found.'; $LANG['error.408'] = 'Request timeout.'; $LANG['error.450'] = 'Domain is not empty.'; $LANG['error.500'] = 'Internal server error.'; $LANG['error.503'] = 'Service unavailable. Try again later.'; $LANG['form.required.empty'] = 'Certains champs obligatoires sont vides!'; $LANG['form.maxcount.exceeded'] = 'Le nombre maximum d\'objet est dépassé!'; $LANG['group.add'] = 'Ajouter Groupe'; $LANG['group.add.success'] = 'Groupe créé.'; $LANG['group.cn'] = 'Nom'; $LANG['group.delete.confirm'] = 'Are you sure, you want to delete this group?'; $LANG['group.delete.success'] = 'Groupe supprimé.'; $LANG['group.edit.success'] = 'Group modifié.'; $LANG['group.gidnumber'] = 'Numéro de groupe principal'; $LANG['group.kolaballowsmtprecipient'] = 'Liste d\'accès destinataire(s)'; $LANG['group.kolaballowsmtpsender'] = 'Liste d\'accès expéditeur'; $LANG['group.list'] = 'Liste des Groups'; $LANG['group.mail'] = 'Adresse courriel principale'; $LANG['group.member'] = 'Membre(s)'; $LANG['group.memberurl'] = 'Membees URL'; $LANG['group.norecords'] = 'Pas de groupes trouvés!'; $LANG['group.other'] = 'Autre'; $LANG['group.ou'] = 'Unité Organisationelle'; $LANG['group.system'] = 'Système'; $LANG['group.type_id'] = 'Type de groupe'; $LANG['group.uniquemember'] = 'Membre'; $LANG['info'] = 'Information'; $LANG['internalerror'] = 'Erreur système interne!'; $LANG['ldap.one'] = 'one: Toutes les entrées de niveau 1 à la base du DN'; $LANG['ldap.sub'] = 'sub: Tous les sous-ensembles commençant à la base du DN'; $LANG['ldap.base'] = 'base: base DN seulement'; $LANG['ldap.basedn'] = 'Base DN'; $LANG['ldap.host'] = 'LDAP Serveur'; $LANG['ldap.conditions'] = 'Conditions'; $LANG['ldap.scope'] = 'Champ'; $LANG['ldap.filter_any'] = 'n\'est pas vide'; $LANG['ldap.filter_both'] = 'contient'; $LANG['ldap.filter_prefix'] = 'commence par'; $LANG['ldap.filter_suffix'] = 'finit par'; $LANG['ldap.filter_exact'] = 'est égal à'; $LANG['list.records'] = '$1 to $2 of $3'; $LANG['loading'] = 'Chargement...'; $LANG['logout'] = 'Déconnexion'; -$LANG['login.username'] = 'Nom d\'Utilisateur:'; -$LANG['login.password'] = 'Mot de passe:'; -$LANG['login.domain'] = 'Domaine:'; +$LANG['login.username'] = 'Nom d\'Utilisateur'; +$LANG['login.password'] = 'Mot de passe'; $LANG['login.login'] = 'Se connecter'; $LANG['loginerror'] = 'Nom d\'utilisateur ou mot de passe incorrect!'; $LANG['MB'] = 'MB'; $LANG['menu.about'] = 'A propos'; $LANG['menu.domains'] = 'Domaines'; $LANG['menu.groups'] = 'Groupes'; $LANG['menu.ous'] = 'Units'; $LANG['menu.resources'] = 'Ressources'; $LANG['menu.roles'] = 'Rôles'; $LANG['menu.settings'] = 'Paramètres'; $LANG['menu.sharedfolders'] = 'Shared Folders'; $LANG['menu.users'] = 'Utilisateurs'; $LANG['modifiersname'] = 'Modifié par'; $LANG['password.generate'] = 'Generer un mot de passe'; $LANG['reqtime'] = 'Délais: $1 sec.'; $LANG['ou.aci'] = 'Access Rights'; $LANG['ou.add'] = 'Add Unit'; $LANG['ou.add.success'] = 'Unit created successfully.'; $LANG['ou.ou'] = 'Unit Name'; $LANG['ou.delete.confirm'] = 'Are you sure, you want to delete this organizational unit?'; $LANG['ou.delete.success'] = 'Unit deleted successfully.'; $LANG['ou.description'] = 'Unit Description'; $LANG['ou.edit.success'] = 'Unit updated successfully.'; $LANG['ou.list'] = 'Organizational Unit List'; $LANG['ou.norecords'] = 'No organizational unit records found!'; $LANG['ou.system'] = 'Détails'; $LANG['ou.type_id'] = 'Unit Type'; $LANG['ou.base_dn'] = 'Parent Unit'; $LANG['resource.acl'] = 'Access Rights'; $LANG['resource.add'] = 'Ajouter une Ressource'; $LANG['resource.add.success'] = 'Ressource crée.'; $LANG['resource.cn'] = 'Nom'; $LANG['resource.delete'] = 'Supprimer une Ressource'; $LANG['resource.delete.confirm'] = 'Are you sure, you want to delete this resource?'; $LANG['resource.delete.success'] = 'Ressource supprimée.'; $LANG['resource.edit'] = 'Modifier une Ressource'; $LANG['resource.edit.success'] = 'Ressource modifiée.'; $LANG['resource.kolabtargetfolder'] = 'Dossier cible'; $LANG['resource.kolabinvitationpolicy'] = 'Politique d\'invitation'; $LANG['resource.list'] = 'Liste des Ressources'; $LANG['resource.mail'] = 'Courriel '; $LANG['resource.member'] = 'Ensemble des Membres'; $LANG['resource.norecords'] = 'Pas de Ressource trouvée!'; $LANG['resource.other'] = 'Autre'; $LANG['resource.ou'] = 'Unité Organisationelle'; $LANG['resource.system'] = 'Système'; $LANG['resource.type_id'] = 'Type de Ressource'; $LANG['resource.uniquemember'] = 'Membre'; $LANG['resource.description'] = 'Description'; $LANG['resource.owner'] = 'Owner'; $LANG['role.add'] = 'Ajouter un Rôle'; $LANG['role.add.success'] = 'Rôle créé.'; $LANG['role.cn'] = 'Nom du rôle'; $LANG['role.delete.confirm'] = 'Are you sure, you want to delete this role?'; $LANG['role.delete.success'] = 'Rôle supprimé.'; $LANG['role.description'] = 'Description du Rôle'; $LANG['role.edit.success'] = 'Role updated successfully.'; $LANG['role.list'] = 'Liste des Rôles'; $LANG['role.norecords'] = 'Pas de Rôle trouvé!'; $LANG['role.system'] = 'Détails'; $LANG['role.type_id'] = 'Type de Rôle'; $LANG['saving'] = 'Enregistrer...'; -$LANG['search'] = 'Chercher'; +$LANG['search'] = 'Chercher...'; $LANG['search.reset'] = 'Réinitialiser'; $LANG['search.criteria'] = 'Critères de recherche'; $LANG['search.field'] = 'Champ:'; $LANG['search.method'] = 'Méthode:'; $LANG['search.contains'] = 'Contient'; $LANG['search.is'] = 'est'; $LANG['search.key'] = 'clé'; $LANG['search.prefix'] = 'commence par'; $LANG['search.name'] = 'nom'; $LANG['search.email'] = 'courriel'; $LANG['search.description'] = 'description'; $LANG['search.uid'] = 'UID'; $LANG['search.loading'] = 'Cherche...'; $LANG['search.acchars'] = 'Au moins $min charactères nécessaires pour l\'autocomplétion'; $LANG['servererror'] = 'Erreur du Serveur!'; $LANG['session.expired'] = 'Votre session a expiré. Reconnecter vous, svp.'; $LANG['sharedfolder.acl'] = 'IMAP Access Rights'; $LANG['sharedfolder.add'] = 'Ajouter un dossier partagé'; $LANG['sharedfolder.add.success'] = 'Shared folder created successfully.'; $LANG['sharedfolder.alias'] = 'Courriel(s) secondaire(s)'; $LANG['sharedfolder.cn'] = 'Nom du dossier'; $LANG['sharedfolder.delete.confirm'] = 'Are you sure, you want to delete this shared folder?'; $LANG['sharedfolder.delete.success'] = 'Shared folder deleted successfully.'; $LANG['sharedfolder.edit'] = 'Edit Shared Folder'; $LANG['sharedfolder.edit.success'] = 'Shared folder updated successfully.'; $LANG['sharedfolder.kolaballowsmtprecipient'] = 'Liste d\'accès destinataire(s)'; $LANG['sharedfolder.kolaballowsmtpsender'] = 'Liste d\'accès expéditeur'; $LANG['sharedfolder.kolabdelegate'] = 'Delegate(s)'; $LANG['sharedfolder.kolabtargetfolder'] = 'Target IMAP Folder'; $LANG['sharedfolder.list'] = 'Shared Folders List'; $LANG['sharedfolder.norecords'] = 'No shared folder records found!'; $LANG['sharedfolder.mail'] = 'Adresse mail'; $LANG['sharedfolder.other'] = 'Autre'; $LANG['sharedfolder.system'] = 'Système'; $LANG['sharedfolder.type_id'] = 'Shared Folder Type'; $LANG['signup.headline'] = 'Connectez vous pour un Kolab hébergé'; $LANG['signup.intro1'] = 'Avoir un compte sur un serveur Kolab, c\'est bien plus qu\'avoir une simple messagerie. Kolab vous fourni également toutes les fonctionnalités d\'n logiciel collaboratif incluant la synchronisation des annuaires partagés, agendas, tâches, journaux et bien plus.'; $LANG['signup.intro2'] = 'Vous pouvez vous enregistrer ici pour vous créer un compte.'; $LANG['signup.formtitle'] = 'Enregistrement'; $LANG['signup.username'] = 'Nom d\'utilisateur'; $LANG['signup.domain'] = 'Domaine'; $LANG['signup.mailalternateaddress'] = 'Courriel existant'; $LANG['signup.futuremail'] = 'Nouveau Courriel'; $LANG['signup.company'] = 'Société'; $LANG['signup.captcha'] = 'CAPTCHA'; $LANG['signup.userexists'] = 'Utilisateur déjà existant!'; $LANG['signup.usercreated'] = '

    Votre compte a été créé!

    Félicitation, vous avez désormais votre propre compte Kolab.'; $LANG['signup.wronguid'] = 'Nom d\'utilisateur invalide!'; $LANG['signup.wrongmailalternateaddress'] = 'Merci de fournir une adresse valide!'; $LANG['signup.footer'] = 'Ce service vous est offer par Kolab Systems.'; $LANG['type.add'] = 'Ajouter un type d\'objet'; $LANG['type.add.success'] = 'Type d\'objet ajouté.'; $LANG['type.attributes'] = 'Attributs'; $LANG['type.description'] = 'Description'; $LANG['type.delete.confirm'] = 'Are you sure, you want to delete this object type?'; $LANG['type.delete.success'] = 'Type d\'objet supprimé.'; $LANG['type.domain'] = 'Domaine'; $LANG['type.edit.success'] = 'Type d\'object modifié.'; $LANG['type.group'] = 'Groupe'; $LANG['type.list'] = 'Liste des Types d\'objet'; $LANG['type.key'] = 'Clé'; $LANG['type.name'] = 'Nom'; $LANG['type.norecords'] = 'Pas de type d\'objet trouvé!'; $LANG['type.objectclass'] = 'Classe d\'Object'; $LANG['type.object_type'] = 'Type d\'Object '; $LANG['type.ou'] = 'Unité Organisationelle'; $LANG['type.properties'] = 'Propriétés'; $LANG['type.resource'] = 'Ressource'; $LANG['type.role'] = 'Rôle'; $LANG['type.sharedfolder'] = 'Dossier partagé'; $LANG['type.used_for'] = 'Hébergé'; $LANG['type.user'] = 'Utilisateur'; $LANG['user.add'] = 'Ajouter un utilisateur'; $LANG['user.add.success'] = 'Utilisateur créé.'; $LANG['user.alias'] = 'Courriel(s) secondaire(s)'; $LANG['user.astaccountallowedcodec'] = 'Codec(s) autorisé(s)'; $LANG['user.astaccountcallerid'] = 'Caller ID'; $LANG['user.astaccountcontext'] = 'Account Context'; $LANG['user.astaccountdefaultuser'] = 'Compte Utilisateur par défaut Asterisk'; $LANG['user.astaccountdeny'] = 'Compte non autorisé'; $LANG['user.astaccounthost'] = 'Serveur Asterisk'; $LANG['user.astaccountmailbox'] = 'Boite Mail'; $LANG['user.astaccountnat'] = 'Account uses NAT'; $LANG['user.astaccountname'] = 'Nom du compte Asterisk'; $LANG['user.astaccountqualify'] = 'Qualification du compte'; $LANG['user.astaccountrealmedpassword'] = 'Mot de Passe du Domaine'; $LANG['user.astaccountregistrationexten'] = 'Extension'; $LANG['user.astaccountregistrationcontext'] = 'Contexte d\'enregistrement'; $LANG['user.astaccountsecret'] = 'Mot de passe'; $LANG['user.astaccounttype'] = 'Type de compte'; $LANG['user.astcontext'] = 'Contexte Asterisk'; $LANG['user.asterisk'] = 'Asterisk SIP'; $LANG['user.astextension'] = 'Numéro Asterisk'; $LANG['user.astvoicemailpassword'] = 'Identifiant boite vocale(PIN)'; $LANG['user.c'] = 'Pays'; $LANG['user.city'] = 'Ville'; $LANG['user.cn'] = 'Nom'; $LANG['user.config'] = 'Configuration'; $LANG['user.contact'] = 'Contact'; $LANG['user.contact_info'] = 'Information du Contact'; $LANG['user.country'] = 'Pays'; $LANG['user.country.desc'] = '2 lettres selon la norme ISO 3166-1'; $LANG['user.delete.confirm'] = 'Are you sure, you want to delete this user?'; $LANG['user.delete.success'] = 'Utilisateur supprimé.'; $LANG['user.displayname'] = 'Nom affiché'; $LANG['user.edit.success'] = 'Utilisateur modifié.'; $LANG['user.fax'] = 'Numéro de Fax'; $LANG['user.fbinterval'] = 'Interval Libre/Occupé'; $LANG['user.fbinterval.desc'] = 'Laisser vide pour la valeur par défaut (60 jours)'; $LANG['user.gidnumber'] = 'Numéro de groupe principal'; $LANG['user.givenname'] = 'Prénom'; $LANG['user.homedirectory'] = 'Répertoire Personnel'; $LANG['user.homephone'] = 'Téléphone personnel'; $LANG['user.initials'] = 'Initiales'; $LANG['user.invitation-policy'] = 'Règles d\'invitation'; $LANG['user.kolaballowsmtprecipient'] = 'Liste d\'accès destinataire(s)'; $LANG['user.kolaballowsmtpsender'] = 'Liste d\'accès expéditeur'; $LANG['user.kolabdelegate'] = 'Délégation'; $LANG['user.kolabhomeserver'] = 'Serveur de Courriel'; $LANG['user.kolabinvitationpolicy'] = 'Règle de traitement des invitations'; $LANG['user.l'] = 'Ville, Région'; $LANG['user.list'] = 'Liste Utilisateurs'; $LANG['user.loginshell'] = 'Shell'; $LANG['user.mail'] = 'Courriel principal'; $LANG['user.mailalternateaddress'] = 'Courriel(s) externe'; $LANG['user.mailforwardingaddress'] = 'Transférer à'; $LANG['user.mailhost'] = 'Serveur de courriel'; $LANG['user.mailquota'] = 'Quota'; $LANG['user.mailquota.desc'] = 'Laisser vide pour illimité'; $LANG['user.mobile'] = 'Numéro de téléphone mobile'; $LANG['user.name'] = 'Nom'; $LANG['user.norecords'] = 'Pas d\'utilisateur trouvé!'; $LANG['user.nsrole'] = 'Rôle(s)'; $LANG['user.nsroledn'] = 'Rôle(s)'; $LANG['user.other'] = 'Autre'; $LANG['user.o'] = 'Organisation'; $LANG['user.org'] = 'Organisation'; $LANG['user.orgunit'] = 'Unité Organisationelle'; $LANG['user.ou'] = 'Unité Organisationelle'; $LANG['user.pager'] = 'Numéro de beep(pager)'; $LANG['user.password.mismatch'] = 'Les mots de passe ne sont pas identique!'; $LANG['user.personal'] = 'Personnel'; $LANG['user.phone'] = 'Numéro de téléphone'; $LANG['user.postalcode'] = 'Code postal'; $LANG['user.postbox'] = 'Cedex'; $LANG['user.postcode'] = 'Code postal'; $LANG['user.preferredlanguage'] = 'Langue préférée'; $LANG['user.room'] = 'Numéro de salle'; $LANG['user.sn'] = 'Nom de famille'; $LANG['user.street'] = 'Rue'; $LANG['user.system'] = 'Système'; $LANG['user.telephonenumber'] = 'Numéro de téléphone'; $LANG['user.title'] = 'Emploi'; $LANG['user.type_id'] = 'Type de compte'; $LANG['user.uid'] = 'Identifiant Unique (UID)'; $LANG['user.userpassword'] = 'Mot de passe'; $LANG['user.userpassword2'] = 'Confirmer le mot de passe'; $LANG['user.uidnumber'] = 'Numéro d\'utilisateur (ID)'; $LANG['welcome'] = 'Bienvenu sur le serveur d\'administration du serveur Kolab'; $LANG['yes'] = 'yes'; diff --git a/lib/locale/it_IT.php b/lib/locale/it_IT.php index cc20cb8..c807303 100644 --- a/lib/locale/it_IT.php +++ b/lib/locale/it_IT.php @@ -1,444 +1,443 @@ Kolab Server in Versione Comunitaria.'; $LANG['about.kolab'] = 'Kolab'; $LANG['about.kolabsys'] = 'Kolab Systems'; $LANG['about.support'] = 'È disponibile il supporto professionale di Kolab Systems.'; $LANG['about.technology'] = 'Technology'; $LANG['about.warranty'] = 'It comes with absolutely no warranties and is typically run entirely self supported. You can find help & information on the community web site & wiki.'; $LANG['aci.new'] = 'New...'; $LANG['aci.edit'] = 'Edit...'; $LANG['aci.remove'] = 'Elimina'; $LANG['aci.users'] = 'Utenti'; $LANG['aci.rights'] = 'Rights'; $LANG['aci.targets'] = 'Targets'; $LANG['aci.aciname'] = 'ACI name:'; $LANG['aci.hosts'] = 'Hosts'; $LANG['aci.times'] = 'Times'; $LANG['aci.name'] = 'Nome'; $LANG['aci.userid'] = 'User ID'; $LANG['aci.email'] = 'E-mail'; $LANG['aci.read'] = 'Read'; $LANG['aci.compare'] = 'Compare'; $LANG['aci.search'] = 'Search'; $LANG['aci.write'] = 'Scrittura'; $LANG['aci.selfwrite'] = 'Self-write'; $LANG['aci.delete'] = 'Elimina'; $LANG['aci.add'] = 'Add'; $LANG['aci.proxy'] = 'Proxy'; $LANG['aci.all'] = 'All rights'; $LANG['aci.allow'] = 'Allow'; $LANG['aci.deny'] = 'Deny'; $LANG['aci.typeusers'] = 'Utenti'; $LANG['aci.typegroups'] = 'Gruppi'; $LANG['aci.typeroles'] = 'Roles'; $LANG['aci.typeadmins'] = 'Administrators'; $LANG['aci.typespecials'] = 'Special Rights'; $LANG['aci.ldap-self'] = 'Self'; $LANG['aci.ldap-anyone'] = 'All users'; $LANG['aci.ldap-all'] = 'All authenticated users'; $LANG['aci.ldap-parent'] = 'Parent'; $LANG['aci.usersearch'] = 'Search for:'; $LANG['aci.usersearchresult'] = 'Search results:'; $LANG['aci.userselected'] = 'Selected users/groups/roles:'; $LANG['aci.useradd'] = 'Add'; $LANG['aci.userremove'] = 'Elimina'; $LANG['aci.error.noname'] = 'ACI rule name is required!'; $LANG['aci.error.exists'] = 'ACI rule with specified name already exists!'; $LANG['aci.error.nousers'] = 'At least one user entry is required!'; $LANG['aci.rights.target'] = 'Target entry:'; $LANG['aci.rights.filter'] = 'Filter:'; $LANG['aci.rights.attrs'] = 'Attributes:'; $LANG['aci.checkall'] = 'Check all'; $LANG['aci.checknone'] = 'Check none'; $LANG['aci.thisentry'] = 'This entry'; $LANG['aci.selected'] = 'all selected'; $LANG['aci.other'] = 'all except selected'; $LANG['acl.all'] = 'all'; $LANG['acl.append'] = 'append'; $LANG['acl.custom'] = 'custom...'; $LANG['acl.full'] = 'Full (without access control)'; $LANG['acl.post'] = 'post'; $LANG['acl.read'] = 'read'; $LANG['acl.read-only'] = 'Read-Only'; $LANG['acl.read-write'] = 'Read/Write'; $LANG['acl.semi-full'] = 'Write new items'; $LANG['acl.write'] = 'write'; $LANG['acl.l'] = 'Lookup'; $LANG['acl.r'] = 'Read messages'; $LANG['acl.s'] = 'Keep Seen state'; $LANG['acl.w'] = 'Write flags'; $LANG['acl.i'] = 'Insert (Copy into)'; $LANG['acl.p'] = 'Post'; $LANG['acl.c'] = 'Create subfolders'; $LANG['acl.k'] = 'Create subfolders'; $LANG['acl.d'] = 'Delete messages'; $LANG['acl.t'] = 'Delete messages'; $LANG['acl.e'] = 'Expunge'; $LANG['acl.x'] = 'Elimina cartella'; $LANG['acl.a'] = 'Administer'; $LANG['acl.n'] = 'Annotate messages'; $LANG['acl.identifier'] = 'Identifier'; $LANG['acl.rights'] = 'Access Rights'; $LANG['acl.expire'] = 'Expires On'; $LANG['acl.user'] = 'User...'; $LANG['acl.anyone'] = 'All users (anyone)'; $LANG['acl.anonymous'] = 'Guests (anonymous)'; $LANG['acl.error.invaliddate'] = 'Invalid date format!'; $LANG['acl.error.norights'] = 'No access rights specified!'; $LANG['acl.error.subjectexists'] = 'Access rights for specified identifier already exist!'; $LANG['acl.error.nouser'] = 'User identifier not specified!'; $LANG['add'] = 'Add'; $LANG['api.notypeid'] = 'No object type ID specified!'; $LANG['api.invalidtypeid'] = 'Invalid object type ID!'; $LANG['attribute.add'] = 'Add attribute'; $LANG['attribute.default'] = 'Default value'; $LANG['attribute.static'] = 'Static value'; $LANG['attribute.name'] = 'Attribute'; $LANG['attribute.optional'] = 'Facoltativo'; $LANG['attribute.maxcount'] = 'Max. count'; $LANG['attribute.readonly'] = 'Sola lettura'; $LANG['attribute.type'] = 'Field type'; $LANG['attribute.value'] = 'Valore'; $LANG['attribute.value.auto'] = 'Generated'; $LANG['attribute.value.auto-readonly'] = 'Generated (read-only)'; $LANG['attribute.value.normal'] = 'Normal'; $LANG['attribute.value.static'] = 'Static'; $LANG['attribute.options'] = 'Options'; $LANG['attribute.key.invalid'] = 'Type key contains forbidden characters!'; $LANG['attribute.required.error'] = 'Required attributes missing in attributes list ($1)!'; $LANG['attribute.validate'] = ' Validation'; $LANG['attribute.validate.default'] = 'default'; $LANG['attribute.validate.none'] = 'none'; $LANG['attribute.validate.basic'] = 'basic'; $LANG['attribute.validate.extended'] = 'extended'; $LANG['button.cancel'] = 'Annulla'; $LANG['button.delete'] = 'Elimina'; $LANG['button.ok'] = 'OK'; $LANG['button.save'] = 'Salva'; $LANG['button.submit'] = 'Submit'; $LANG['creatorsname'] = 'Creato da'; $LANG['days'] = 'giorni'; $LANG['debug'] = 'Informazioni di debug'; $LANG['delete'] = 'Elimina'; $LANG['deleting'] = 'Eliminazione dati...'; $LANG['domain.add'] = 'Aggiungi Dominio'; $LANG['domain.add.success'] = 'Dominio creato con successo.'; $LANG['domain.associateddomain'] = 'Nome/i dominio'; $LANG['domain.delete.confirm'] = 'Are you sure, you want to delete this domain?'; $LANG['domain.delete.force'] = "There are users assigned to this domain.\nAre you sure, you want to delete this domain and all assigned objects?"; $LANG['domain.delete.success'] = 'Domain deleted successfully.'; $LANG['domain.edit'] = 'Modifica dominio'; $LANG['domain.edit.success'] = 'Dominio aggiornato con successo.'; $LANG['domain.inetdomainbasedn'] = 'Custom Root DN'; $LANG['domain.inetdomainstatus'] = 'Stato'; $LANG['domain.list'] = 'Lista Domini'; $LANG['domain.norecords'] = 'No domain records found!'; $LANG['domain.o'] = 'Organization'; $LANG['domain.other'] = 'Altro'; $LANG['domain.system'] = 'Sistema'; $LANG['domain.type_id'] = 'Dominio Standard'; $LANG['edit'] = 'Modifica'; $LANG['error'] = 'Errore'; $LANG['error.401'] = 'Unauthorized.'; $LANG['error.403'] = 'Access forbidden.'; $LANG['error.404'] = 'Object not found.'; $LANG['error.408'] = 'Request timeout.'; $LANG['error.450'] = 'Domain is not empty.'; $LANG['error.500'] = 'Internal server error.'; $LANG['error.503'] = 'Service unavailable. Try again later.'; $LANG['form.required.empty'] = 'Alcuni dei campi richiesti sono vuoti!'; $LANG['form.maxcount.exceeded'] = 'Maximum count of items exceeded!'; $LANG['group.add'] = 'Aggiungi Gruppo'; $LANG['group.add.success'] = 'Gruppo creato con successo.'; $LANG['group.cn'] = 'Nome comune'; $LANG['group.delete.confirm'] = 'Are you sure, you want to delete this group?'; $LANG['group.delete.success'] = 'Gruppo eliminato con successo.'; $LANG['group.edit.success'] = 'Gruppo aggiornato con successo.'; $LANG['group.gidnumber'] = 'Primary group number'; $LANG['group.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['group.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['group.list'] = 'Lista Gruppi'; $LANG['group.mail'] = 'Indirizzo Email Principale'; $LANG['group.member'] = 'Membro/i'; $LANG['group.memberurl'] = 'Members URL'; $LANG['group.norecords'] = 'No group records found!'; $LANG['group.other'] = 'Altro'; $LANG['group.ou'] = 'Organizational Unit'; $LANG['group.system'] = 'Sistema'; $LANG['group.type_id'] = 'Tipo di gruppo'; $LANG['group.uniquemember'] = 'Membri'; $LANG['info'] = 'Information'; $LANG['internalerror'] = 'Internal system error!'; $LANG['ldap.one'] = 'one: all entries one level under the base DN'; $LANG['ldap.sub'] = 'sub: whole subtree starting with the base DN'; $LANG['ldap.base'] = 'base: base DN only'; $LANG['ldap.basedn'] = 'Base DN'; $LANG['ldap.host'] = 'LDAP Server'; $LANG['ldap.conditions'] = 'Conditions'; $LANG['ldap.scope'] = 'Scope'; $LANG['ldap.filter_any'] = 'is non-empty'; $LANG['ldap.filter_both'] = 'contains'; $LANG['ldap.filter_prefix'] = 'starts with'; $LANG['ldap.filter_suffix'] = 'ends with'; $LANG['ldap.filter_exact'] = 'is equal to'; $LANG['list.records'] = '$1 to $2 of $3'; $LANG['loading'] = 'Caricamento...'; $LANG['logout'] = 'Logout'; -$LANG['login.username'] = 'Nome Utente:'; -$LANG['login.password'] = 'Password:'; -$LANG['login.domain'] = 'Dominio:'; +$LANG['login.username'] = 'Nome Utente'; +$LANG['login.password'] = 'Password'; $LANG['login.login'] = 'Accedi'; $LANG['loginerror'] = 'Nome utente o password errati!'; $LANG['MB'] = 'MB'; $LANG['menu.about'] = 'About'; $LANG['menu.domains'] = 'Domini'; $LANG['menu.groups'] = 'Gruppi'; $LANG['menu.ous'] = 'Unità'; $LANG['menu.resources'] = 'Risorse'; $LANG['menu.roles'] = 'Roles'; $LANG['menu.settings'] = 'Impostazioni'; $LANG['menu.sharedfolders'] = 'Shared Folders'; $LANG['menu.users'] = 'Utenti'; $LANG['modifiersname'] = 'Modified by'; $LANG['password.generate'] = 'Generate password'; $LANG['reqtime'] = 'Request time: $1 sec.'; $LANG['ou.aci'] = 'Access Rights'; $LANG['ou.add'] = 'Add Unit'; $LANG['ou.add.success'] = 'Unit created successfully.'; $LANG['ou.ou'] = 'Unit Name'; $LANG['ou.delete.confirm'] = 'Are you sure, you want to delete this organizational unit?'; $LANG['ou.delete.success'] = 'Unit deleted successfully.'; $LANG['ou.description'] = 'Unit Description'; $LANG['ou.edit.success'] = 'Unit updated successfully.'; $LANG['ou.list'] = 'Organizational Unit List'; $LANG['ou.norecords'] = 'No organizational unit records found!'; $LANG['ou.system'] = 'Dettagli'; $LANG['ou.type_id'] = 'Unit Type'; $LANG['ou.base_dn'] = 'Parent Unit'; $LANG['resource.acl'] = 'Access Rights'; $LANG['resource.add'] = 'Aggiungi Risorsa'; $LANG['resource.add.success'] = 'Risorsa creata con successo.'; $LANG['resource.cn'] = 'Nome'; $LANG['resource.delete'] = 'Elimina Risorsa'; $LANG['resource.delete.confirm'] = 'Are you sure, you want to delete this resource?'; $LANG['resource.delete.success'] = 'Risorsa eliminata con successo.'; $LANG['resource.edit'] = 'Modifica Risorsa'; $LANG['resource.edit.success'] = 'Risorsa aggiornata con successo.'; $LANG['resource.kolabtargetfolder'] = 'Target Folder'; $LANG['resource.kolabinvitationpolicy'] = 'Invitation Policy'; $LANG['resource.list'] = 'Resource (Collection) List'; $LANG['resource.mail'] = 'Mail Address'; $LANG['resource.member'] = 'Collection Members'; $LANG['resource.norecords'] = 'No resource records found!'; $LANG['resource.other'] = 'Altro'; $LANG['resource.ou'] = 'Organizational Unit'; $LANG['resource.system'] = 'Sistema'; $LANG['resource.type_id'] = 'Resource Type'; $LANG['resource.uniquemember'] = 'Collection Members'; $LANG['resource.description'] = 'Descrizione'; $LANG['resource.owner'] = 'Owner'; $LANG['role.add'] = 'Add Role'; $LANG['role.add.success'] = 'Role created successfully.'; $LANG['role.cn'] = 'Role Name'; $LANG['role.delete.confirm'] = 'Are you sure, you want to delete this role?'; $LANG['role.delete.success'] = 'Role deleted successfully.'; $LANG['role.description'] = 'Role Description'; $LANG['role.edit.success'] = 'Role updated successfully.'; $LANG['role.list'] = 'Role List'; $LANG['role.norecords'] = 'No role records found!'; $LANG['role.system'] = 'Dettagli'; $LANG['role.type_id'] = 'Role Type'; $LANG['saving'] = 'Salvataggio dati...'; -$LANG['search'] = 'Search'; +$LANG['search'] = 'Search...'; $LANG['search.reset'] = 'Reset'; $LANG['search.criteria'] = 'Search criteria'; $LANG['search.field'] = 'Field:'; $LANG['search.method'] = 'Method:'; $LANG['search.contains'] = 'contains'; $LANG['search.is'] = 'is'; $LANG['search.key'] = 'key'; $LANG['search.prefix'] = 'begins with'; $LANG['search.name'] = 'Nome'; $LANG['search.email'] = 'email'; $LANG['search.description'] = 'description'; $LANG['search.uid'] = 'UID'; $LANG['search.loading'] = 'Searching...'; $LANG['search.acchars'] = 'At least $min characters required for autocompletion'; $LANG['servererror'] = 'Server Error!'; $LANG['session.expired'] = 'Session has expired. Login again, please'; $LANG['sharedfolder.acl'] = 'IMAP Access Rights'; $LANG['sharedfolder.add'] = 'Add Shared Folder'; $LANG['sharedfolder.add.success'] = 'Shared folder created successfully.'; $LANG['sharedfolder.alias'] = 'Secondary Email Address(es)'; $LANG['sharedfolder.cn'] = 'Folder Name'; $LANG['sharedfolder.delete.confirm'] = 'Are you sure, you want to delete this shared folder?'; $LANG['sharedfolder.delete.success'] = 'Shared folder deleted successfully.'; $LANG['sharedfolder.edit'] = 'Edit Shared Folder'; $LANG['sharedfolder.edit.success'] = 'Shared folder updated successfully.'; $LANG['sharedfolder.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['sharedfolder.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['sharedfolder.kolabdelegate'] = 'Delegate(s)'; $LANG['sharedfolder.kolabtargetfolder'] = 'Target IMAP Folder'; $LANG['sharedfolder.list'] = 'Shared Folders List'; $LANG['sharedfolder.norecords'] = 'No shared folder records found!'; $LANG['sharedfolder.mail'] = 'Email Address'; $LANG['sharedfolder.other'] = 'Altro'; $LANG['sharedfolder.system'] = 'Sistema'; $LANG['sharedfolder.type_id'] = 'Shared Folder Type'; $LANG['signup.headline'] = 'Sign Up for Hosted Kolab'; $LANG['signup.intro1'] = 'Having an account on a Kolab server is way better than just simple Email. It also provides you with full groupware functionality including synchronization for shared addressbooks, calendars, tasks, journal and more.'; $LANG['signup.intro2'] = 'You can sign up here now for an account.'; $LANG['signup.formtitle'] = 'Sign Up'; $LANG['signup.username'] = 'Username'; $LANG['signup.domain'] = 'Domain'; $LANG['signup.mailalternateaddress'] = 'Current Email Address'; $LANG['signup.futuremail'] = 'Future Email Address'; $LANG['signup.company'] = 'Azienda'; $LANG['signup.captcha'] = 'CAPTCHA'; $LANG['signup.userexists'] = 'User already exists!'; $LANG['signup.usercreated'] = '

    Your account has been successfully added!

    Congratulations, you now have your own Kolab account.'; $LANG['signup.wronguid'] = 'Invalid Username!'; $LANG['signup.wrongmailalternateaddress'] = 'Please provide a valid Email Address!'; $LANG['signup.footer'] = 'This is a service offered by Kolab Systems.'; $LANG['type.add'] = 'Add Object Type'; $LANG['type.add.success'] = 'Object type created successfully.'; $LANG['type.attributes'] = 'Attributes'; $LANG['type.description'] = 'Descrizione'; $LANG['type.delete.confirm'] = 'Are you sure, you want to delete this object type?'; $LANG['type.delete.success'] = 'Object type deleted successfully.'; $LANG['type.domain'] = 'Domain'; $LANG['type.edit.success'] = 'Object type updated successfully.'; $LANG['type.group'] = 'Gruppo'; $LANG['type.list'] = 'Object Types List'; $LANG['type.key'] = 'Key'; $LANG['type.name'] = 'Nome'; $LANG['type.norecords'] = 'No object type records found!'; $LANG['type.objectclass'] = 'Object class'; $LANG['type.object_type'] = 'Object type'; $LANG['type.ou'] = 'Organizational Unit'; $LANG['type.properties'] = 'Properties'; $LANG['type.resource'] = 'Risorsa'; $LANG['type.role'] = 'Ruolo'; $LANG['type.sharedfolder'] = 'Shared Folder'; $LANG['type.used_for'] = 'Hosted'; $LANG['type.user'] = 'User'; $LANG['user.add'] = 'Add User'; $LANG['user.add.success'] = 'User created successfully.'; $LANG['user.alias'] = 'Secondary Email Address(es)'; $LANG['user.astaccountallowedcodec'] = 'Allowed codec(s)'; $LANG['user.astaccountcallerid'] = 'Caller ID'; $LANG['user.astaccountcontext'] = 'Account Context'; $LANG['user.astaccountdefaultuser'] = 'Asterisk Account Default User'; $LANG['user.astaccountdeny'] = 'Account deny'; $LANG['user.astaccounthost'] = 'Asterisk Host'; $LANG['user.astaccountmailbox'] = 'Mailbox'; $LANG['user.astaccountnat'] = 'Account uses NAT'; $LANG['user.astaccountname'] = 'Asterisk Account Name'; $LANG['user.astaccountqualify'] = 'Account Qualify'; $LANG['user.astaccountrealmedpassword'] = 'Realmed Account Password'; $LANG['user.astaccountregistrationexten'] = 'Extension'; $LANG['user.astaccountregistrationcontext'] = 'Registration Context'; $LANG['user.astaccountsecret'] = 'Plaintext Password'; $LANG['user.astaccounttype'] = 'Account Type'; $LANG['user.astcontext'] = 'Asterisk Context'; $LANG['user.asterisk'] = 'Asterisk SIP'; $LANG['user.astextension'] = 'Asterisk Extension'; $LANG['user.astvoicemailpassword'] = 'Voicemail PIN Code'; $LANG['user.c'] = 'Country'; $LANG['user.city'] = 'City'; $LANG['user.cn'] = 'Nome comune'; $LANG['user.config'] = 'Configurazione'; $LANG['user.contact'] = 'Contact'; $LANG['user.contact_info'] = 'Contact Information'; $LANG['user.country'] = 'Country'; $LANG['user.country.desc'] = '2 letter code from ISO 3166-1'; $LANG['user.delete.confirm'] = 'Are you sure, you want to delete this user?'; $LANG['user.delete.success'] = 'User deleted successfully.'; $LANG['user.displayname'] = 'Display name'; $LANG['user.edit.success'] = 'User updated successfully.'; $LANG['user.fax'] = 'Fax number'; $LANG['user.fbinterval'] = 'Free-Busy interval'; $LANG['user.fbinterval.desc'] = 'Leave blank for default (60 days)'; $LANG['user.gidnumber'] = 'Primary group number'; $LANG['user.givenname'] = 'Given name'; $LANG['user.homedirectory'] = 'Home directory'; $LANG['user.homephone'] = 'Home Phone Number'; $LANG['user.initials'] = 'Iniziali'; $LANG['user.invitation-policy'] = 'Invitation policy'; $LANG['user.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['user.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['user.kolabdelegate'] = 'Delegati'; $LANG['user.kolabhomeserver'] = 'Email Server'; $LANG['user.kolabinvitationpolicy'] = 'Invitation Handling Policy'; $LANG['user.l'] = 'City, Region'; $LANG['user.list'] = 'Users List'; $LANG['user.loginshell'] = 'Shell'; $LANG['user.mail'] = 'Indirizzo Email Principale'; $LANG['user.mailalternateaddress'] = 'External Email Address(es)'; $LANG['user.mailforwardingaddress'] = 'Forward Mail To'; $LANG['user.mailhost'] = 'Email Server'; $LANG['user.mailquota'] = 'Quota'; $LANG['user.mailquota.desc'] = 'Leave blank for unlimited'; $LANG['user.mobile'] = 'Mobile Phone Number'; $LANG['user.name'] = 'Nome'; $LANG['user.norecords'] = 'No user records found!'; $LANG['user.nsrole'] = 'Role(s)'; $LANG['user.nsroledn'] = 'Role(s)'; $LANG['user.other'] = 'Altro'; $LANG['user.o'] = 'Organization'; $LANG['user.org'] = 'Organization'; $LANG['user.orgunit'] = 'Organizational Unit'; $LANG['user.ou'] = 'Organizational Unit'; $LANG['user.pager'] = 'Pager Number'; $LANG['user.password.mismatch'] = 'Passwords do not match!'; $LANG['user.personal'] = 'Personal'; $LANG['user.phone'] = 'Numero di telefono'; $LANG['user.postalcode'] = 'Postal Code'; $LANG['user.postbox'] = 'Postal box'; $LANG['user.postcode'] = 'Postal code'; $LANG['user.preferredlanguage'] = 'Native tongue'; $LANG['user.room'] = 'Room number'; $LANG['user.sn'] = 'Surname'; $LANG['user.street'] = 'Street'; $LANG['user.system'] = 'Sistema'; $LANG['user.telephonenumber'] = 'Phone Number'; $LANG['user.title'] = 'Job Title'; $LANG['user.type_id'] = 'Account type'; $LANG['user.uid'] = 'Unique identity (UID)'; $LANG['user.userpassword'] = 'Password'; $LANG['user.userpassword2'] = 'Confirm password'; $LANG['user.uidnumber'] = 'User ID number'; $LANG['welcome'] = 'Welcome to the Kolab Groupware Server Maintenance'; $LANG['yes'] = 'yes'; diff --git a/lib/locale/ja_JP.php b/lib/locale/ja_JP.php index df1eba4..f6a3a7c 100644 --- a/lib/locale/ja_JP.php +++ b/lib/locale/ja_JP.php @@ -1,444 +1,443 @@ Kolab Serverのコミュニティーエディションです。'; $LANG['about.kolab'] = 'Kolab'; $LANG['about.kolabsys'] = 'Kolab Systems'; $LANG['about.support'] = '有償サポートはKolab Systemsにて受付けております。'; $LANG['about.technology'] = 'Technology'; $LANG['about.warranty'] = '動作保証は全くなく、ユーザの自己責任により実行されます。 web site & wikiにてヘルプやコミュニティの情報を得ることができます。'; $LANG['aci.new'] = 'New...'; $LANG['aci.edit'] = 'Edit...'; $LANG['aci.remove'] = '削除'; $LANG['aci.users'] = 'ユーザ'; $LANG['aci.rights'] = 'Rights'; $LANG['aci.targets'] = 'Targets'; $LANG['aci.aciname'] = 'ACI name:'; $LANG['aci.hosts'] = 'ホスト'; $LANG['aci.times'] = 'Times'; $LANG['aci.name'] = '名前'; $LANG['aci.userid'] = 'ユーザ ID'; $LANG['aci.email'] = 'E-mail'; $LANG['aci.read'] = 'Read'; $LANG['aci.compare'] = 'Compare'; $LANG['aci.search'] = '検索'; $LANG['aci.write'] = 'Write'; $LANG['aci.selfwrite'] = 'Self-write'; $LANG['aci.delete'] = '削除'; $LANG['aci.add'] = '追加'; $LANG['aci.proxy'] = 'Proxy'; $LANG['aci.all'] = 'All rights'; $LANG['aci.allow'] = 'Allow'; $LANG['aci.deny'] = 'Deny'; $LANG['aci.typeusers'] = 'ユーザ'; $LANG['aci.typegroups'] = 'グループ'; $LANG['aci.typeroles'] = '役割'; $LANG['aci.typeadmins'] = 'Administrators'; $LANG['aci.typespecials'] = 'Special Rights'; $LANG['aci.ldap-self'] = 'Self'; $LANG['aci.ldap-anyone'] = 'All users'; $LANG['aci.ldap-all'] = 'All authenticated users'; $LANG['aci.ldap-parent'] = 'Parent'; $LANG['aci.usersearch'] = 'Search for:'; $LANG['aci.usersearchresult'] = 'Search results:'; $LANG['aci.userselected'] = 'Selected users/groups/roles:'; $LANG['aci.useradd'] = '追加'; $LANG['aci.userremove'] = '削除'; $LANG['aci.error.noname'] = 'ACI rule name is required!'; $LANG['aci.error.exists'] = 'ACI rule with specified name already exists!'; $LANG['aci.error.nousers'] = 'At least one user entry is required!'; $LANG['aci.rights.target'] = 'Target entry:'; $LANG['aci.rights.filter'] = 'Filter:'; $LANG['aci.rights.attrs'] = 'Attributes:'; $LANG['aci.checkall'] = 'Check all'; $LANG['aci.checknone'] = 'Check none'; $LANG['aci.thisentry'] = 'This entry'; $LANG['aci.selected'] = 'all selected'; $LANG['aci.other'] = 'all except selected'; $LANG['acl.all'] = 'all'; $LANG['acl.append'] = 'append'; $LANG['acl.custom'] = 'custom...'; $LANG['acl.full'] = 'Full (without access control)'; $LANG['acl.post'] = 'post'; $LANG['acl.read'] = 'read'; $LANG['acl.read-only'] = 'Read-Only'; $LANG['acl.read-write'] = 'Read/Write'; $LANG['acl.semi-full'] = 'Write new items'; $LANG['acl.write'] = 'write'; $LANG['acl.l'] = 'Lookup'; $LANG['acl.r'] = 'Read messages'; $LANG['acl.s'] = 'Keep Seen state'; $LANG['acl.w'] = 'Write flags'; $LANG['acl.i'] = 'Insert (Copy into)'; $LANG['acl.p'] = 'Post'; $LANG['acl.c'] = 'Create subfolders'; $LANG['acl.k'] = 'Create subfolders'; $LANG['acl.d'] = 'Delete messages'; $LANG['acl.t'] = 'Delete messages'; $LANG['acl.e'] = 'Expunge'; $LANG['acl.x'] = 'Delete folder'; $LANG['acl.a'] = 'Administer'; $LANG['acl.n'] = 'Annotate messages'; $LANG['acl.identifier'] = 'Identifier'; $LANG['acl.rights'] = 'Access Rights'; $LANG['acl.expire'] = 'Expires On'; $LANG['acl.user'] = 'User...'; $LANG['acl.anyone'] = 'All users (anyone)'; $LANG['acl.anonymous'] = 'Guests (anonymous)'; $LANG['acl.error.invaliddate'] = 'Invalid date format!'; $LANG['acl.error.norights'] = 'No access rights specified!'; $LANG['acl.error.subjectexists'] = 'Access rights for specified identifier already exist!'; $LANG['acl.error.nouser'] = 'User identifier not specified!'; $LANG['add'] = '追加'; $LANG['api.notypeid'] = 'No object type ID specified!'; $LANG['api.invalidtypeid'] = 'Invalid object type ID!'; $LANG['attribute.add'] = '属性追加'; $LANG['attribute.default'] = 'Default value'; $LANG['attribute.static'] = '固定値'; $LANG['attribute.name'] = '属性'; $LANG['attribute.optional'] = 'オプション'; $LANG['attribute.maxcount'] = '最大値'; $LANG['attribute.readonly'] = '読込のみ'; $LANG['attribute.type'] = 'フィールドタイプ'; $LANG['attribute.value'] = '値'; $LANG['attribute.value.auto'] = '生成された'; $LANG['attribute.value.auto-readonly'] = '生成された(読込のみ)'; $LANG['attribute.value.normal'] = 'ノーマル'; $LANG['attribute.value.static'] = '固定'; $LANG['attribute.options'] = 'オプション'; $LANG['attribute.key.invalid'] = 'タイプキーに使用できない文字が含まれています!'; $LANG['attribute.required.error'] = '属性一覧($1)に要求された属性がありません!'; $LANG['attribute.validate'] = ' Validation'; $LANG['attribute.validate.default'] = 'default'; $LANG['attribute.validate.none'] = 'none'; $LANG['attribute.validate.basic'] = 'basic'; $LANG['attribute.validate.extended'] = 'extended'; $LANG['button.cancel'] = 'キャンセル'; $LANG['button.delete'] = '削除'; $LANG['button.ok'] = 'OK'; $LANG['button.save'] = '保存'; $LANG['button.submit'] = '適用'; $LANG['creatorsname'] = 'Created by'; $LANG['days'] = 'days'; $LANG['debug'] = 'Debug info'; $LANG['delete'] = '削除'; $LANG['deleting'] = 'データの削除'; $LANG['domain.add'] = 'ドメインの追加'; $LANG['domain.add.success'] = 'ドメインを作成しました。'; $LANG['domain.associateddomain'] = 'ドメイン名(s)'; $LANG['domain.delete.confirm'] = 'Are you sure, you want to delete this domain?'; $LANG['domain.delete.force'] = "There are users assigned to this domain.\nAre you sure, you want to delete this domain and all assigned objects?"; $LANG['domain.delete.success'] = 'ドメインを削除しました。'; $LANG['domain.edit'] = 'ドメイン編集'; $LANG['domain.edit.success'] = 'ドメインを更新しました。'; $LANG['domain.inetdomainbasedn'] = 'Custom Root DN'; $LANG['domain.inetdomainstatus'] = '状態'; $LANG['domain.list'] = 'ドメイン一覧'; $LANG['domain.norecords'] = 'ドメインレコードが見つかりません!'; $LANG['domain.o'] = '組織'; $LANG['domain.other'] = 'その他'; $LANG['domain.system'] = 'システム'; $LANG['domain.type_id'] = '標準ドメイン'; $LANG['edit'] = '編集'; $LANG['error'] = 'エラー'; $LANG['error.401'] = 'Unauthorized.'; $LANG['error.403'] = 'Access forbidden.'; $LANG['error.404'] = 'Object not found.'; $LANG['error.408'] = 'Request timeout.'; $LANG['error.450'] = 'Domain is not empty.'; $LANG['error.500'] = 'Internal server error.'; $LANG['error.503'] = 'Service unavailable. Try again later.'; $LANG['form.required.empty'] = '要求されているフィールドが空欄です!'; $LANG['form.maxcount.exceeded'] = 'アイテムの最大数を超過しています!'; $LANG['group.add'] = 'グループ追加'; $LANG['group.add.success'] = 'グループを作成しました。'; $LANG['group.cn'] = '共通名'; $LANG['group.delete.confirm'] = 'Are you sure, you want to delete this group?'; $LANG['group.delete.success'] = 'グループを削除しました。'; $LANG['group.edit.success'] = 'グループを更新しました。'; $LANG['group.gidnumber'] = 'プライマリグループナンバー'; $LANG['group.kolaballowsmtprecipient'] = '受信者(s)アクセスリスト'; $LANG['group.kolaballowsmtpsender'] = '送信者アクセスリスト'; $LANG['group.list'] = 'グループ一覧'; $LANG['group.mail'] = 'プライマリEmailアドレス'; $LANG['group.member'] = 'メンバー(s)'; $LANG['group.memberurl'] = 'メンバーURL'; $LANG['group.norecords'] = 'グループレコードは見つかりません。'; $LANG['group.other'] = 'その他'; $LANG['group.ou'] = 'Organization Unit'; $LANG['group.system'] = 'システム'; $LANG['group.type_id'] = 'グループタイプ'; $LANG['group.uniquemember'] = 'メンバー'; $LANG['info'] = 'インフォメーション'; $LANG['internalerror'] = '内部システムエラー!'; $LANG['ldap.one'] = 'one: 全てのエントリーがベースDN下で1レベル'; $LANG['ldap.sub'] = 'sub: 全てのサブツリーがベースDNから始まる'; $LANG['ldap.base'] = 'base: ベースDNのみ'; $LANG['ldap.basedn'] = 'ベースDN'; $LANG['ldap.host'] = 'LDAPサーバ'; $LANG['ldap.conditions'] = 'コンディション'; $LANG['ldap.scope'] = 'スコープ'; $LANG['ldap.filter_any'] = '空ではありません'; $LANG['ldap.filter_both'] = 'コンテンツ'; $LANG['ldap.filter_prefix'] = '開始'; $LANG['ldap.filter_suffix'] = '終了'; $LANG['ldap.filter_exact'] = '等しい'; $LANG['list.records'] = '$1から$2 $3中'; $LANG['loading'] = '読込中…'; $LANG['logout'] = 'ログアウト'; -$LANG['login.username'] = 'ユーザ名:'; -$LANG['login.password'] = 'パスワード:'; -$LANG['login.domain'] = 'ドメイン:'; +$LANG['login.username'] = 'ユーザ名'; +$LANG['login.password'] = 'パスワード'; $LANG['login.login'] = 'ログイン'; $LANG['loginerror'] = 'ユーザ名もしくはパスワードが違います!'; $LANG['MB'] = 'MB'; $LANG['menu.about'] = 'About'; $LANG['menu.domains'] = 'ドメイン'; $LANG['menu.groups'] = 'グループ'; $LANG['menu.ous'] = 'Units'; $LANG['menu.resources'] = 'リソース'; $LANG['menu.roles'] = '役割'; $LANG['menu.settings'] = '設定'; $LANG['menu.sharedfolders'] = 'Shared Folders'; $LANG['menu.users'] = 'ユーザ'; $LANG['modifiersname'] = '変更'; $LANG['password.generate'] = 'パスワード生成'; $LANG['reqtime'] = 'リクエストタイム: $1 sec.'; $LANG['ou.aci'] = 'Access Rights'; $LANG['ou.add'] = 'Add Unit'; $LANG['ou.add.success'] = 'Unit created successfully.'; $LANG['ou.ou'] = 'Unit Name'; $LANG['ou.delete.confirm'] = 'Are you sure, you want to delete this organizational unit?'; $LANG['ou.delete.success'] = 'Unit deleted successfully.'; $LANG['ou.description'] = 'Unit Description'; $LANG['ou.edit.success'] = 'Unit updated successfully.'; $LANG['ou.list'] = 'Organizational Unit List'; $LANG['ou.norecords'] = 'No organizational unit records found!'; $LANG['ou.system'] = '詳細'; $LANG['ou.type_id'] = 'Unit Type'; $LANG['ou.base_dn'] = 'Parent Unit'; $LANG['resource.acl'] = 'Access Rights'; $LANG['resource.add'] = 'リソース追加'; $LANG['resource.add.success'] = 'リソースを生成しました。'; $LANG['resource.cn'] = '名前'; $LANG['resource.delete'] = 'リソース削除'; $LANG['resource.delete.confirm'] = 'Are you sure, you want to delete this resource?'; $LANG['resource.delete.success'] = 'リソースを削除しました。'; $LANG['resource.edit'] = 'リソース編集'; $LANG['resource.edit.success'] = 'リソースをアップデートしました。'; $LANG['resource.kolabtargetfolder'] = 'ターゲットフォルダ'; $LANG['resource.kolabinvitationpolicy'] = 'Invitation Policy'; $LANG['resource.list'] = 'リソース(コレクション)一覧'; $LANG['resource.mail'] = 'メールアドレス'; $LANG['resource.member'] = 'コレクションメンバーズ'; $LANG['resource.norecords'] = 'リソースのレコードが見つかりません!'; $LANG['resource.other'] = 'その他'; $LANG['resource.ou'] = 'Organization Unit'; $LANG['resource.system'] = 'システム'; $LANG['resource.type_id'] = 'リソースタイプ'; $LANG['resource.uniquemember'] = 'コレクションメンバーズ'; $LANG['resource.description'] = '説明'; $LANG['resource.owner'] = 'Owner'; $LANG['role.add'] = 'ルール追加'; $LANG['role.add.success'] = 'ロールを生成しました。'; $LANG['role.cn'] = 'ロール名'; $LANG['role.delete.confirm'] = 'Are you sure, you want to delete this role?'; $LANG['role.delete.success'] = 'ロールを削除しました。'; $LANG['role.description'] = 'ロール説明'; $LANG['role.edit.success'] = 'Role updated successfully.'; $LANG['role.list'] = 'ロール一覧'; $LANG['role.norecords'] = 'ロールのレコードが見つかりません!'; $LANG['role.system'] = '詳細'; $LANG['role.type_id'] = 'ロールタイプ'; $LANG['saving'] = 'データを保存中…'; -$LANG['search'] = '検索'; +$LANG['search'] = '検索...'; $LANG['search.reset'] = 'リセット'; $LANG['search.criteria'] = '検索設定'; $LANG['search.field'] = 'フィールド:'; $LANG['search.method'] = 'メソッド:'; $LANG['search.contains'] = 'を含む'; $LANG['search.is'] = 'と一致する'; $LANG['search.key'] = 'キー'; $LANG['search.prefix'] = 'から始まる'; $LANG['search.name'] = '氏名'; $LANG['search.email'] = 'Eメール'; $LANG['search.description'] = '説明'; $LANG['search.uid'] = 'ユーザID'; $LANG['search.loading'] = '検索中'; $LANG['search.acchars'] = '少なくとも $min 文字が自動補完には必要です'; $LANG['servererror'] = 'サーバエラー!'; $LANG['session.expired'] = 'セッションは期限切れになりました。再度ログインしてください。'; $LANG['sharedfolder.acl'] = 'IMAP Access Rights'; $LANG['sharedfolder.add'] = 'Add Shared Folder'; $LANG['sharedfolder.add.success'] = 'Shared folder created successfully.'; $LANG['sharedfolder.alias'] = 'セカンダリEmailアドレス(es)'; $LANG['sharedfolder.cn'] = 'Folder Name'; $LANG['sharedfolder.delete.confirm'] = 'Are you sure, you want to delete this shared folder?'; $LANG['sharedfolder.delete.success'] = 'Shared folder deleted successfully.'; $LANG['sharedfolder.edit'] = 'Edit Shared Folder'; $LANG['sharedfolder.edit.success'] = 'Shared folder updated successfully.'; $LANG['sharedfolder.kolaballowsmtprecipient'] = '受信者(s)アクセスリスト'; $LANG['sharedfolder.kolaballowsmtpsender'] = '送信者アクセスリスト'; $LANG['sharedfolder.kolabdelegate'] = 'Delegate(s)'; $LANG['sharedfolder.kolabtargetfolder'] = 'Target IMAP Folder'; $LANG['sharedfolder.list'] = 'Shared Folders List'; $LANG['sharedfolder.norecords'] = 'No shared folder records found!'; $LANG['sharedfolder.mail'] = 'Email Address'; $LANG['sharedfolder.other'] = 'その他'; $LANG['sharedfolder.system'] = 'システム'; $LANG['sharedfolder.type_id'] = 'Shared Folder Type'; $LANG['signup.headline'] = 'Hosted Kolab へのサインアップ'; $LANG['signup.intro1'] = 'KolabサーバのアカウントはたんなるEmailアカウントと比べてとても便利です。共有アドレス帳やカレンダー、タスク、業務日誌などなどのグループウェアの全機能を利用できます。'; $LANG['signup.intro2'] = 'ここからアカウント登録できます。'; $LANG['signup.formtitle'] = 'サインアップ'; $LANG['signup.username'] = 'ユーザ名'; $LANG['signup.domain'] = 'ドメイン'; $LANG['signup.mailalternateaddress'] = 'お使いのEmailアドレス'; $LANG['signup.futuremail'] = '希望するEmailアドレス'; $LANG['signup.company'] = '会社名'; $LANG['signup.captcha'] = 'キャプチャ'; $LANG['signup.userexists'] = 'ユーザはすでに存在します!'; $LANG['signup.usercreated'] = '

    アカウントの追加に成功しました!

    おめでとうございます、あなたのKolab アカウントができました。'; $LANG['signup.wronguid'] = '無効なユーザ名です!'; $LANG['signup.wrongmailalternateaddress'] = '有効なEmailアドレスを入力してください!'; $LANG['signup.footer'] = 'Kolab Systemsからのご案内です。'; $LANG['type.add'] = 'オブジェクトタイプ追加'; $LANG['type.add.success'] = 'オブジェクトタイプを生成しました。'; $LANG['type.attributes'] = '属性'; $LANG['type.description'] = '説明'; $LANG['type.delete.confirm'] = 'Are you sure, you want to delete this object type?'; $LANG['type.delete.success'] = 'オブジェクトタイプを削除しました。'; $LANG['type.domain'] = 'ドメイン'; $LANG['type.edit.success'] = 'オブジェクトタイプをアップデートしました。'; $LANG['type.group'] = 'グループ'; $LANG['type.list'] = 'オブジェクトタイプ一覧'; $LANG['type.key'] = 'キー'; $LANG['type.name'] = '名前'; $LANG['type.norecords'] = 'オブジェクトタイプのレコードが見つかりません!'; $LANG['type.objectclass'] = 'オブジェクトクラス'; $LANG['type.object_type'] = 'オブジェクトタイプ'; $LANG['type.ou'] = 'Organization Unit'; $LANG['type.properties'] = 'プロパティ'; $LANG['type.resource'] = 'リソース'; $LANG['type.role'] = 'ロール'; $LANG['type.sharedfolder'] = 'Shared Folder'; $LANG['type.used_for'] = 'ホスト'; $LANG['type.user'] = 'ユーザ'; $LANG['user.add'] = 'ユーザ追加'; $LANG['user.add.success'] = 'ユーザを生成しました。'; $LANG['user.alias'] = 'セカンダリEmailアドレス(es)'; $LANG['user.astaccountallowedcodec'] = '使用可能コーデック(s)'; $LANG['user.astaccountcallerid'] = '呼出し人ID'; $LANG['user.astaccountcontext'] = 'アカウントコンテクスト'; $LANG['user.astaccountdefaultuser'] = 'Asterisk Account Default User'; $LANG['user.astaccountdeny'] = 'アカウント拒否'; $LANG['user.astaccounthost'] = 'Asterisk Host'; $LANG['user.astaccountmailbox'] = 'メールボックス'; $LANG['user.astaccountnat'] = 'アカウントはNATを使用する'; $LANG['user.astaccountname'] = 'Asterisk Account Name'; $LANG['user.astaccountqualify'] = 'アカウントの資格'; $LANG['user.astaccountrealmedpassword'] = '暗号化アカウントパスワード'; $LANG['user.astaccountregistrationexten'] = '拡張'; $LANG['user.astaccountregistrationcontext'] = 'レジストレーションコンテクスト'; $LANG['user.astaccountsecret'] = '平文パスワード'; $LANG['user.astaccounttype'] = 'アカウントタイプ'; $LANG['user.astcontext'] = 'Asterisk Context'; $LANG['user.asterisk'] = 'Asterisk SIP'; $LANG['user.astextension'] = 'Asterisk Extension'; $LANG['user.astvoicemailpassword'] = 'ボイスメールPINコード'; $LANG['user.c'] = '国'; $LANG['user.city'] = '市町村'; $LANG['user.cn'] = '共通名'; $LANG['user.config'] = '設定'; $LANG['user.contact'] = 'コンタクト'; $LANG['user.contact_info'] = 'コンタクト情報'; $LANG['user.country'] = '国'; $LANG['user.country.desc'] = 'ISO 3166-1 から2つの文字コード'; $LANG['user.delete.confirm'] = 'Are you sure, you want to delete this user?'; $LANG['user.delete.success'] = 'ユーザの削除に成功しました。'; $LANG['user.displayname'] = '表示名'; $LANG['user.edit.success'] = 'ユーザの更新に成功しました。'; $LANG['user.fax'] = 'Fax番号'; $LANG['user.fbinterval'] = '空き状況間隔'; $LANG['user.fbinterval.desc'] = '空白の場合デフォルト(60日)'; $LANG['user.gidnumber'] = 'プライマリグループナンバー'; $LANG['user.givenname'] = '名'; $LANG['user.homedirectory'] = 'ホームディレクトリ'; $LANG['user.homephone'] = '自宅電話番号'; $LANG['user.initials'] = 'イニシャル'; $LANG['user.invitation-policy'] = '招待ポリシー'; $LANG['user.kolaballowsmtprecipient'] = '受信者(s)アクセスリスト'; $LANG['user.kolaballowsmtpsender'] = '送信者アクセスリスト'; $LANG['user.kolabdelegate'] = '委任者'; $LANG['user.kolabhomeserver'] = 'Emailサーバ'; $LANG['user.kolabinvitationpolicy'] = '招待取扱ポリシー'; $LANG['user.l'] = '市町村、地域'; $LANG['user.list'] = 'ユーザ一覧'; $LANG['user.loginshell'] = 'シェル'; $LANG['user.mail'] = 'プライマリEmailアドレス'; $LANG['user.mailalternateaddress'] = '外部Emailアドレス(es)'; $LANG['user.mailforwardingaddress'] = 'メール転送先'; $LANG['user.mailhost'] = 'Emailサーバ'; $LANG['user.mailquota'] = '容量制限'; $LANG['user.mailquota.desc'] = '空白の場合は無制限'; $LANG['user.mobile'] = '携帯電話番号'; $LANG['user.name'] = '名前'; $LANG['user.norecords'] = 'ユーザのレコードが見つかりません!'; $LANG['user.nsrole'] = 'ロール(s)'; $LANG['user.nsroledn'] = 'ロール(s)'; $LANG['user.other'] = 'その他'; $LANG['user.o'] = '組織'; $LANG['user.org'] = '組織'; $LANG['user.orgunit'] = 'Organization Unit'; $LANG['user.ou'] = 'Organization Unit'; $LANG['user.pager'] = 'ページャーナンバー'; $LANG['user.password.mismatch'] = 'パスワードが違います!'; $LANG['user.personal'] = '個人情報'; $LANG['user.phone'] = '電話番号'; $LANG['user.postalcode'] = '郵便番号'; $LANG['user.postbox'] = '私書箱'; $LANG['user.postcode'] = '郵便番号'; $LANG['user.preferredlanguage'] = '母国語'; $LANG['user.room'] = 'ルームナンバー'; $LANG['user.sn'] = '氏'; $LANG['user.street'] = '住所'; $LANG['user.system'] = 'システム'; $LANG['user.telephonenumber'] = '電話番号'; $LANG['user.title'] = '肩書'; $LANG['user.type_id'] = 'アカウントタイプ'; $LANG['user.uid'] = 'ユニークID(UID)'; $LANG['user.userpassword'] = 'パスワード'; $LANG['user.userpassword2'] = 'パスワードの確認'; $LANG['user.uidnumber'] = 'ユーザIDナンバー'; $LANG['welcome'] = 'Kolab グループウェア サーバ管理へようこそ'; $LANG['yes'] = 'はい'; diff --git a/lib/locale/nl_NL.php b/lib/locale/nl_NL.php index c678df9..3bc1d45 100644 --- a/lib/locale/nl_NL.php +++ b/lib/locale/nl_NL.php @@ -1,444 +1,443 @@ Kolab Server'; $LANG['about.kolab'] = 'Kolab'; $LANG['about.kolabsys'] = 'Kolab Systems'; $LANG['about.support'] = 'Professionele ondersteuning is beschikbaar bij Kolab Systems'; $LANG['about.technology'] = 'Technologie'; $LANG['about.warranty'] = 'Het komt zonder enige garanties en wordt typisch geheel zelf ondersteund. U kunt help & informatie vinden in de community web site & wiki.'; $LANG['aci.new'] = 'nieuw...'; $LANG['aci.edit'] = 'Wijzigen...'; $LANG['aci.remove'] = 'Verwijder'; $LANG['aci.users'] = 'Gebruikers'; $LANG['aci.rights'] = 'Rechten'; $LANG['aci.targets'] = 'Doelen'; $LANG['aci.aciname'] = 'ACI naam:'; $LANG['aci.hosts'] = 'Hosts'; $LANG['aci.times'] = 'Tijden'; $LANG['aci.name'] = 'Naam'; $LANG['aci.userid'] = 'Gebruiker ID'; $LANG['aci.email'] = 'E-mail'; $LANG['aci.read'] = 'Lezen'; $LANG['aci.compare'] = 'Vergelijken'; $LANG['aci.search'] = 'Zoeken'; $LANG['aci.write'] = 'Schrijven'; $LANG['aci.selfwrite'] = 'Zelf-schrijven'; $LANG['aci.delete'] = 'Verwijderen'; $LANG['aci.add'] = 'Toevoegen'; $LANG['aci.proxy'] = 'Proxy'; $LANG['aci.all'] = 'Alle rechten'; $LANG['aci.allow'] = 'Toestaan'; $LANG['aci.deny'] = 'Weigeren'; $LANG['aci.typeusers'] = 'Gebruikers'; $LANG['aci.typegroups'] = 'Groepen'; $LANG['aci.typeroles'] = 'Rollen'; $LANG['aci.typeadmins'] = 'Administratoren'; $LANG['aci.typespecials'] = 'Speciale Rechten'; $LANG['aci.ldap-self'] = 'Zelf'; $LANG['aci.ldap-anyone'] = 'Alle gebruikers'; $LANG['aci.ldap-all'] = 'Alle geauthorizeerde gebruikers'; $LANG['aci.ldap-parent'] = 'Ouder'; $LANG['aci.usersearch'] = 'Zoek op:'; $LANG['aci.usersearchresult'] = 'Zoekresultaten:'; $LANG['aci.userselected'] = 'Geselecteerde gebruikers/groepen/rollen:'; $LANG['aci.useradd'] = 'Toevoegen'; $LANG['aci.userremove'] = 'Verwijder'; $LANG['aci.error.noname'] = 'ACI regel naam is vereist!'; $LANG['aci.error.exists'] = 'ACI regel met de gespecificeerde naam bestaat al!'; $LANG['aci.error.nousers'] = 'Tenminste één gebruikerstoegang is vereist!'; $LANG['aci.rights.target'] = 'Doel toegang:'; $LANG['aci.rights.filter'] = 'Filter:'; $LANG['aci.rights.attrs'] = 'Attributen:'; $LANG['aci.checkall'] = 'Selecteer alles'; $LANG['aci.checknone'] = 'Deselecteer alles'; $LANG['aci.thisentry'] = 'Deze toegang'; $LANG['aci.selected'] = 'Alle geselecteerde'; $LANG['aci.other'] = 'Alle behalve geselecteerde'; $LANG['acl.all'] = 'all'; $LANG['acl.append'] = 'append'; $LANG['acl.custom'] = 'custom...'; $LANG['acl.full'] = 'Full (without access control)'; $LANG['acl.post'] = 'post'; $LANG['acl.read'] = 'read'; $LANG['acl.read-only'] = 'Read-Only'; $LANG['acl.read-write'] = 'Read/Write'; $LANG['acl.semi-full'] = 'Write new items'; $LANG['acl.write'] = 'write'; $LANG['acl.l'] = 'Lookup'; $LANG['acl.r'] = 'Read messages'; $LANG['acl.s'] = 'Keep Seen state'; $LANG['acl.w'] = 'Write flags'; $LANG['acl.i'] = 'Insert (Copy into)'; $LANG['acl.p'] = 'Post'; $LANG['acl.c'] = 'Create subfolders'; $LANG['acl.k'] = 'Create subfolders'; $LANG['acl.d'] = 'Delete messages'; $LANG['acl.t'] = 'Delete messages'; $LANG['acl.e'] = 'Expunge'; $LANG['acl.x'] = 'Verwijder map'; $LANG['acl.a'] = 'Administer'; $LANG['acl.n'] = 'Annotate messages'; $LANG['acl.identifier'] = 'Identifier'; $LANG['acl.rights'] = 'Teogangsrechten'; $LANG['acl.expire'] = 'Expires On'; $LANG['acl.user'] = 'User...'; $LANG['acl.anyone'] = 'All users (anyone)'; $LANG['acl.anonymous'] = 'Guests (anonymous)'; $LANG['acl.error.invaliddate'] = 'Invalid date format!'; $LANG['acl.error.norights'] = 'No access rights specified!'; $LANG['acl.error.subjectexists'] = 'Access rights for specified identifier already exist!'; $LANG['acl.error.nouser'] = 'User identifier not specified!'; $LANG['add'] = 'Toevoegen'; $LANG['api.notypeid'] = 'Geen object type ID gespecificeerd!'; $LANG['api.invalidtypeid'] = 'Ongeldig object type ID!'; $LANG['attribute.add'] = 'Voeg attribuut toe'; $LANG['attribute.default'] = 'Standaard waarde'; $LANG['attribute.static'] = 'Statische waarde'; $LANG['attribute.name'] = 'Attribuut'; $LANG['attribute.optional'] = 'Optioneel'; $LANG['attribute.maxcount'] = 'Max. aantal'; $LANG['attribute.readonly'] = 'Alleen-lezen'; $LANG['attribute.type'] = 'Veld type'; $LANG['attribute.value'] = 'Waarde'; $LANG['attribute.value.auto'] = 'Gegenereerd'; $LANG['attribute.value.auto-readonly'] = 'Gegenereerd (alleen-lezen)'; $LANG['attribute.value.normal'] = 'Normaal'; $LANG['attribute.value.static'] = 'Statisch'; $LANG['attribute.options'] = 'Opties'; $LANG['attribute.key.invalid'] = 'De sleutelwaarde voor het type bevat ongeldige karakters!'; $LANG['attribute.required.error'] = 'Er missen vereiste attributen van de attributen-lijst ($1)!'; $LANG['attribute.validate'] = 'Validatie'; $LANG['attribute.validate.default'] = 'standaard'; $LANG['attribute.validate.none'] = 'geen'; $LANG['attribute.validate.basic'] = 'basis'; $LANG['attribute.validate.extended'] = 'uitgebreid'; $LANG['button.cancel'] = 'Annuleren'; $LANG['button.delete'] = 'Verwijder'; $LANG['button.ok'] = 'OK'; $LANG['button.save'] = 'Opslaan'; $LANG['button.submit'] = 'Opslaan'; $LANG['creatorsname'] = 'Gemaakt door'; $LANG['days'] = 'dagen'; $LANG['debug'] = 'Debug informatie'; $LANG['delete'] = 'Verwijder'; $LANG['deleting'] = 'Bezig data te verwijderen...'; $LANG['domain.add'] = 'Domein Toevoegen'; $LANG['domain.add.success'] = 'Domein Toegevoegd'; $LANG['domain.associateddomain'] = 'Domein naam/namen'; $LANG['domain.delete.confirm'] = 'Wilt u dit domein echt verwijderen?'; $LANG['domain.delete.force'] = "Er zijn gebruikers toegewezen aan dit domein.\n Weet u zeker dat u dit domein en alle toegewezen objecten wilt verwijderen?"; $LANG['domain.delete.success'] = 'Domein succesvol verwijderd'; $LANG['domain.edit'] = 'Domein wijzigen'; $LANG['domain.edit.success'] = 'Domein bijgewerkt'; $LANG['domain.inetdomainbasedn'] = 'Custom Root DN'; $LANG['domain.inetdomainstatus'] = 'Status'; $LANG['domain.list'] = 'Lijst van Domeinen'; $LANG['domain.norecords'] = 'Geen domeinen gevonden!'; $LANG['domain.o'] = 'Organisatie'; $LANG['domain.other'] = 'Overig'; $LANG['domain.system'] = 'Systeem'; $LANG['domain.type_id'] = 'Standaard domein'; $LANG['edit'] = 'Wijzigen'; $LANG['error'] = 'Fout'; $LANG['error.401'] = 'Niet geauthorizeerd.'; $LANG['error.403'] = 'Toegang verboden.'; $LANG['error.404'] = 'Object niet gevonden.'; $LANG['error.408'] = 'Verzoek timeout.'; $LANG['error.450'] = 'Domein is niet leeg.'; $LANG['error.500'] = 'Interne server fout.'; $LANG['error.503'] = 'Dienst niet beschikbaar. Probeer het later slstublieft nog een keer.'; $LANG['form.required.empty'] = 'Sommige van de vereiste velden zijn leeg!'; $LANG['form.maxcount.exceeded'] = 'Maximaal aantal waarden overtreden!'; $LANG['group.add'] = 'Groep Toevoegen'; $LANG['group.add.success'] = 'Groep succesvol toegevoegd.'; $LANG['group.cn'] = 'Volledige naam'; $LANG['group.delete.confirm'] = 'Wilt u deze groep echt verwijderen?'; $LANG['group.delete.success'] = 'Groep succesvol verwijderd.'; $LANG['group.edit.success'] = 'Groep succesvol gewijzigd.'; $LANG['group.gidnumber'] = 'Primair groep nummer'; $LANG['group.kolaballowsmtprecipient'] = 'Ontvanger(s) Toegangslijst'; $LANG['group.kolaballowsmtpsender'] = 'Afzender Toegangslijst'; $LANG['group.list'] = 'Lijst van Groepen'; $LANG['group.mail'] = 'Primair E-mail Adres'; $LANG['group.member'] = 'Leden'; $LANG['group.memberurl'] = 'URL voor leden'; $LANG['group.norecords'] = 'Geen groepen gevonden!'; $LANG['group.other'] = 'Overig'; $LANG['group.ou'] = 'Afdeling'; $LANG['group.system'] = 'Systeem'; $LANG['group.type_id'] = 'Type Groep'; $LANG['group.uniquemember'] = 'Leden'; $LANG['info'] = 'Informatie'; $LANG['internalerror'] = 'Interne systeem-fout!'; $LANG['ldap.one'] = 'one: alle entiteiten een enkel niveau onder de basis DN'; $LANG['ldap.sub'] = 'sub: alle entiteiten onder de basis DN'; $LANG['ldap.base'] = 'base: alleen de basis DN'; $LANG['ldap.basedn'] = 'Basis DN'; $LANG['ldap.host'] = 'LDAP Server'; $LANG['ldap.conditions'] = 'Condities'; $LANG['ldap.scope'] = 'Omvang'; $LANG['ldap.filter_any'] = 'is niet leeg'; $LANG['ldap.filter_both'] = 'bevat'; $LANG['ldap.filter_prefix'] = 'begint met'; $LANG['ldap.filter_suffix'] = 'eindigt met'; $LANG['ldap.filter_exact'] = 'is gelijk aan'; $LANG['list.records'] = '$1 tot $2 van $3'; $LANG['loading'] = 'Bezig met laden...'; $LANG['logout'] = 'Uitloggen'; -$LANG['login.username'] = 'Gebruikersnaam:'; -$LANG['login.password'] = 'Wachtwoord:'; -$LANG['login.domain'] = 'Domein:'; +$LANG['login.username'] = 'Gebruikersnaam'; +$LANG['login.password'] = 'Wachtwoord'; $LANG['login.login'] = 'Gebruikersnaam'; $LANG['loginerror'] = 'Incorrecte gebruikersnaam of wachtwoord!'; $LANG['MB'] = 'MB'; $LANG['menu.about'] = 'Over'; $LANG['menu.domains'] = 'Domeinen'; $LANG['menu.groups'] = 'Groepen'; $LANG['menu.ous'] = 'Units'; $LANG['menu.resources'] = 'Middelen'; $LANG['menu.roles'] = 'Rollen'; $LANG['menu.settings'] = 'Instellingen'; $LANG['menu.sharedfolders'] = 'Gedeelde mappen'; $LANG['menu.users'] = 'Gebruikers'; $LANG['modifiersname'] = 'Laatst gewijzigd door'; $LANG['password.generate'] = 'Genereer wachtwoord'; $LANG['reqtime'] = 'Verzoek duurde: $1 sec.'; $LANG['ou.aci'] = 'Teogangsrechten'; $LANG['ou.add'] = 'Unit toevoegen'; $LANG['ou.add.success'] = 'Unit succesvol toegeveogd.'; $LANG['ou.ou'] = 'Unit Naam'; $LANG['ou.delete.confirm'] = 'Wilt u deze organizational unit echt verwijderen?'; $LANG['ou.delete.success'] = 'Unit succesvol verwijderd.'; $LANG['ou.description'] = 'Unit beschrijving'; $LANG['ou.edit.success'] = 'Unit succesvol gewijzigd.'; $LANG['ou.list'] = 'Organizational Unit Lijst'; $LANG['ou.norecords'] = 'Geen organizational unit records gevonden!'; $LANG['ou.system'] = 'Details'; $LANG['ou.type_id'] = 'Unit Type'; $LANG['ou.base_dn'] = 'Ouderlijke Unit'; $LANG['resource.acl'] = 'Teogangsrechten'; $LANG['resource.add'] = 'Middel Toevoegen'; $LANG['resource.add.success'] = 'Middel Toegevoegd'; $LANG['resource.cn'] = 'Naam'; $LANG['resource.delete'] = 'Verwijder Middel'; $LANG['resource.delete.confirm'] = 'Wilt u dit middel echt verwijderen?'; $LANG['resource.delete.success'] = 'Middel succesvol verwijderd'; $LANG['resource.edit'] = 'Middel Wijzigen'; $LANG['resource.edit.success'] = 'Middel succesvol bijgewerkt'; $LANG['resource.kolabtargetfolder'] = 'Doel Map'; $LANG['resource.kolabinvitationpolicy'] = 'Invitation Policy'; $LANG['resource.list'] = '(Collecties van) Middellen Lijst'; $LANG['resource.mail'] = 'Email Adres'; $LANG['resource.member'] = 'Middelen in Collectie'; $LANG['resource.norecords'] = 'Geen middelen gevonden!'; $LANG['resource.other'] = 'Overig'; $LANG['resource.ou'] = 'Afdeling'; $LANG['resource.system'] = 'Systeem'; $LANG['resource.type_id'] = 'Type Middel'; $LANG['resource.uniquemember'] = 'Middellen in Collectie'; $LANG['resource.description'] = 'Omschrijving'; $LANG['resource.owner'] = 'Eigenaar'; $LANG['role.add'] = 'Rol Toevoegen'; $LANG['role.add.success'] = 'Rol succesvol aangemaakt.'; $LANG['role.cn'] = 'Rol naam'; $LANG['role.delete.confirm'] = 'Wilt u deze rol echt verwijderen?'; $LANG['role.delete.success'] = 'Rol succesvol verwijderd.'; $LANG['role.description'] = 'Rol uitleg'; $LANG['role.edit.success'] = 'Rol succesvol gewijzigd.'; $LANG['role.list'] = 'Rollen Lijst'; $LANG['role.norecords'] = 'Geen rollen gevonden!'; $LANG['role.system'] = 'Details'; $LANG['role.type_id'] = 'Rol Type'; $LANG['saving'] = 'Bezig data op te slaan...'; -$LANG['search'] = 'Zoeken'; +$LANG['search'] = 'Zoeken...'; $LANG['search.reset'] = 'Reset'; $LANG['search.criteria'] = 'Zoek criteria'; $LANG['search.field'] = 'Veld:'; $LANG['search.method'] = 'Methode:'; $LANG['search.contains'] = 'bevat'; $LANG['search.is'] = 'is'; $LANG['search.key'] = 'sleutelnaam'; $LANG['search.prefix'] = 'start met'; $LANG['search.name'] = 'naam'; $LANG['search.email'] = 'e-mail'; $LANG['search.description'] = 'beschrijving'; $LANG['search.uid'] = 'uid'; $LANG['search.loading'] = 'Bezig met zoeken...'; $LANG['search.acchars'] = 'Tenminste $min karakters nodig voor autocompletion'; $LANG['servererror'] = 'Server Fout!'; $LANG['session.expired'] = 'Sessie verlopen. Log opnieuw in alstublieft.'; $LANG['sharedfolder.acl'] = 'IMAP Access Rights'; $LANG['sharedfolder.add'] = 'Voeg Gedeelde map toe'; $LANG['sharedfolder.add.success'] = 'Gedeelde map succesvol aangemaakt.'; $LANG['sharedfolder.alias'] = 'Secundaire E-mail Adres(sen)'; $LANG['sharedfolder.cn'] = 'Map naam'; $LANG['sharedfolder.delete.confirm'] = 'Wilt u deze gedeelde map echt verwijderen?'; $LANG['sharedfolder.delete.success'] = 'Gedeelde map succesvol verwijderd.'; $LANG['sharedfolder.edit'] = 'Bewerk Gedeelde map'; $LANG['sharedfolder.edit.success'] = 'Gedeelde map succesvol gewijzigd.'; $LANG['sharedfolder.kolaballowsmtprecipient'] = 'Ontvanger(s) Toegangslijst'; $LANG['sharedfolder.kolaballowsmtpsender'] = 'Afzender Toegangslijst'; $LANG['sharedfolder.kolabdelegate'] = 'Gedelegeerde(n)'; $LANG['sharedfolder.kolabtargetfolder'] = 'Doel IMAP-map'; $LANG['sharedfolder.list'] = 'Gedeelde mappen lijst'; $LANG['sharedfolder.norecords'] = 'Geen gedeelde mappen gevonden!'; $LANG['sharedfolder.mail'] = 'E-mail adres'; $LANG['sharedfolder.other'] = 'Overig'; $LANG['sharedfolder.system'] = 'Systeem'; $LANG['sharedfolder.type_id'] = 'Gedeelde map type'; $LANG['signup.headline'] = 'Meldt u aan voor Hosted Kolab'; $LANG['signup.intro1'] = 'Een account op een Kolab server is geschikt voor veel meer dan alleen E-mail. Het voorziet in complete groupware functionaliteit met mobiele synchronizatie van gedeelde adresboeken, agendas, taken, dagboeken en meer.'; $LANG['signup.intro2'] = 'U kunt zich hier nu aanmelden voor een account.'; $LANG['signup.formtitle'] = 'Aanmelden'; $LANG['signup.username'] = 'Gebruikersnaam'; $LANG['signup.domain'] = 'Domein'; $LANG['signup.mailalternateaddress'] = 'Huidig e-mail adres'; $LANG['signup.futuremail'] = 'Toekomstig e-mail adres'; $LANG['signup.company'] = 'Bedrijfsnaam'; $LANG['signup.captcha'] = 'CAPTCHA'; $LANG['signup.userexists'] = 'Deze gebruikersnaam is reeds in gebruik!'; $LANG['signup.usercreated'] = '

    Uw account is succesvol aangemaakt!

    Gefeliciteerd, u heeft nu een eigen Kolab account.'; $LANG['signup.wronguid'] = 'Ongeldige gebruikersnaam!'; $LANG['signup.wrongmailalternateaddress'] = 'Vul een geldig e-mail adres in, alstublieft!'; $LANG['signup.footer'] = 'Dit is een service wordt u aangeboden door Kolab Systems.'; $LANG['type.add'] = 'Object Type Toevoegen'; $LANG['type.add.success'] = 'Object type succesvol aangemaakt.'; $LANG['type.attributes'] = 'Attributen'; $LANG['type.description'] = 'Beschrijving'; $LANG['type.delete.confirm'] = 'Wilt u dit object type echt verwijderen?'; $LANG['type.delete.success'] = 'Object type succesvol verwijderd.'; $LANG['type.domain'] = 'Domein'; $LANG['type.edit.success'] = 'Object type succesvol gewijzigd.'; $LANG['type.group'] = 'Groep'; $LANG['type.list'] = 'Lijst van Object Typen'; $LANG['type.key'] = 'Sleutelnaam'; $LANG['type.name'] = 'Naam'; $LANG['type.norecords'] = 'Geen object typen gevonden!'; $LANG['type.objectclass'] = 'Object class'; $LANG['type.object_type'] = 'Object type'; $LANG['type.ou'] = 'Afdeling'; $LANG['type.properties'] = 'Eigenschappen'; $LANG['type.resource'] = 'Middel'; $LANG['type.role'] = 'Rol'; $LANG['type.sharedfolder'] = 'Gedeelde map'; $LANG['type.used_for'] = 'Hosted'; $LANG['type.user'] = 'Gebruiker'; $LANG['user.add'] = 'Gebruiker Toevoegen'; $LANG['user.add.success'] = 'Gebruiker succesvol toegevoegd.'; $LANG['user.alias'] = 'Secundaire E-mail Adres(sen)'; $LANG['user.astaccountallowedcodec'] = 'Toegestane codec(s)'; $LANG['user.astaccountcallerid'] = 'Caller ID'; $LANG['user.astaccountcontext'] = 'Account Context'; $LANG['user.astaccountdefaultuser'] = 'Asterisk Account Standaard Gebruiker'; $LANG['user.astaccountdeny'] = 'Account deny'; $LANG['user.astaccounthost'] = 'Asterisk Host'; $LANG['user.astaccountmailbox'] = 'Mailbox'; $LANG['user.astaccountnat'] = 'Account maakt gebruik van NAT'; $LANG['user.astaccountname'] = 'Asterisk Account Naam'; $LANG['user.astaccountqualify'] = 'Account Qualify'; $LANG['user.astaccountrealmedpassword'] = 'Realmed Account Password'; $LANG['user.astaccountregistrationexten'] = 'Extensie'; $LANG['user.astaccountregistrationcontext'] = 'Registratie Context'; $LANG['user.astaccountsecret'] = 'Wachtwoord in gewone text'; $LANG['user.astaccounttype'] = 'Type Account'; $LANG['user.astcontext'] = 'Asterisk Context'; $LANG['user.asterisk'] = 'Asterisk SIP'; $LANG['user.astextension'] = 'Asterisk Extensie'; $LANG['user.astvoicemailpassword'] = 'Voicemail PIN Code'; $LANG['user.c'] = 'Land'; $LANG['user.city'] = 'Stad'; $LANG['user.cn'] = 'Volledige naam'; $LANG['user.config'] = 'Configuratie'; $LANG['user.contact'] = 'Contact'; $LANG['user.contact_info'] = 'Contact Informatie'; $LANG['user.country'] = 'Land'; $LANG['user.country.desc'] = '2-karakter code uit ISO 3166-1'; $LANG['user.delete.confirm'] = 'Wilt u deze gebruiker echt verwijderen?'; $LANG['user.delete.success'] = 'Gebruiker succesvol verwijderd.'; $LANG['user.displayname'] = 'Weer te geven naam'; $LANG['user.edit.success'] = 'Gebruiker succesvol gewijzigd.'; $LANG['user.fax'] = 'Fax nummer'; $LANG['user.fbinterval'] = 'Free-Busy interval'; $LANG['user.fbinterval.desc'] = 'Laat leeg voor standaard (60 dagen)'; $LANG['user.gidnumber'] = 'Primair groep nummer'; $LANG['user.givenname'] = 'Voornaam'; $LANG['user.homedirectory'] = 'Persoonlijke map'; $LANG['user.homephone'] = 'Telefoonnummer (Thuis)'; $LANG['user.initials'] = 'Initialen'; $LANG['user.invitation-policy'] = 'Invitation policy'; $LANG['user.kolaballowsmtprecipient'] = 'Ontvanger Toegangslijst'; $LANG['user.kolaballowsmtpsender'] = 'Afzender Toegangslijst'; $LANG['user.kolabdelegate'] = 'Gedelegeerden'; $LANG['user.kolabhomeserver'] = 'E-mail Server'; $LANG['user.kolabinvitationpolicy'] = 'Policy voor afhandelen uitnodigingen'; $LANG['user.l'] = 'Stad, Regio'; $LANG['user.list'] = 'Gebruikerslijst'; $LANG['user.loginshell'] = 'Shell'; $LANG['user.mail'] = 'Primair E-mail Adres'; $LANG['user.mailalternateaddress'] = 'Externe E-mail Adres(sen)'; $LANG['user.mailforwardingaddress'] = 'Stuur Mail Door Aan'; $LANG['user.mailhost'] = 'E-mail Server'; $LANG['user.mailquota'] = 'Quota'; $LANG['user.mailquota.desc'] = 'Laat leeg voor ongelimiteerd'; $LANG['user.mobile'] = 'Telefoonnummer (Mobiel)'; $LANG['user.name'] = 'Naam'; $LANG['user.norecords'] = 'Geen gebruikers gevonden!'; $LANG['user.nsrole'] = 'Rollen'; $LANG['user.nsroledn'] = 'Rol(len)'; $LANG['user.other'] = 'Overig'; $LANG['user.o'] = 'Organizatie'; $LANG['user.org'] = 'Organizatie'; $LANG['user.orgunit'] = 'Afdeling'; $LANG['user.ou'] = 'Afdeling'; $LANG['user.pager'] = 'Telefoonnummer (Pager)'; $LANG['user.password.mismatch'] = 'Wachtwoorden zijn ongelijk!'; $LANG['user.personal'] = 'Persoonlijk'; $LANG['user.phone'] = 'Telefoonnummer'; $LANG['user.postalcode'] = 'Postcode'; $LANG['user.postbox'] = 'Postbus'; $LANG['user.postcode'] = 'Postcode'; $LANG['user.preferredlanguage'] = 'Moedertaal'; $LANG['user.room'] = 'Kamernummer'; $LANG['user.sn'] = 'Achternaam'; $LANG['user.street'] = 'Straat'; $LANG['user.system'] = 'Systeem'; $LANG['user.telephonenumber'] = 'Telefoonnummer'; $LANG['user.title'] = 'Functie'; $LANG['user.type_id'] = 'Type Account'; $LANG['user.uid'] = 'Unieke identiteit (UID)'; $LANG['user.userpassword'] = 'Wachtwoord'; $LANG['user.userpassword2'] = 'Wachtwoord bevestigen'; $LANG['user.uidnumber'] = 'User ID nummer'; $LANG['welcome'] = 'Welkom bij Kolab Groupware Server Onderhoud'; $LANG['yes'] = 'ja'; diff --git a/lib/locale/pl_PL.php b/lib/locale/pl_PL.php index d2ef1f7..71d5212 100644 --- a/lib/locale/pl_PL.php +++ b/lib/locale/pl_PL.php @@ -1,444 +1,443 @@ Serwera Kolab.'; $LANG['about.kolab'] = 'Kolab'; $LANG['about.kolabsys'] = 'Kolab Systems'; $LANG['about.support'] = 'Profesjonalne wsparcie techniczne jest dostępne ze strony Kolab Systems.'; $LANG['about.technology'] = 'Technologia'; $LANG['about.warranty'] = 'Oprogramowanie to dostarczane jest bez żadnych gwarancji ani wsparcia. Pomoc i niezbędne informacje można znaleźć na stronie społeczności oraz wiki.'; $LANG['aci.new'] = 'Nowy...'; $LANG['aci.edit'] = 'Edytuj...'; $LANG['aci.remove'] = 'Usuń'; $LANG['aci.users'] = 'Użytkownicy'; $LANG['aci.rights'] = 'Uprawnienia'; $LANG['aci.targets'] = 'Cele'; $LANG['aci.aciname'] = 'Nazwa ACI:'; $LANG['aci.hosts'] = 'Hosty'; $LANG['aci.times'] = 'Czas'; $LANG['aci.name'] = 'Nazwa'; $LANG['aci.userid'] = 'ID użytkownika'; $LANG['aci.email'] = 'E-mail'; $LANG['aci.read'] = 'Odczyt'; $LANG['aci.compare'] = 'Porównaj'; $LANG['aci.search'] = 'Znajdź'; $LANG['aci.write'] = 'Zapis'; $LANG['aci.selfwrite'] = 'Zapis dla siebie'; $LANG['aci.delete'] = 'Usuń'; $LANG['aci.add'] = 'Dodaj'; $LANG['aci.proxy'] = 'Proxy'; $LANG['aci.all'] = 'Wszystkie prawa'; $LANG['aci.allow'] = 'Pozwolenie'; $LANG['aci.deny'] = 'Odmowa'; $LANG['aci.typeusers'] = 'Użytkownicy'; $LANG['aci.typegroups'] = 'Grupy'; $LANG['aci.typeroles'] = 'Role'; $LANG['aci.typeadmins'] = 'Administratorzy'; $LANG['aci.typespecials'] = 'Uprawnienia specjalne'; $LANG['aci.ldap-self'] = 'Ja'; $LANG['aci.ldap-anyone'] = 'Wszyscy użytkownicy'; $LANG['aci.ldap-all'] = 'Uwierzytelnieni użytkownicy'; $LANG['aci.ldap-parent'] = 'Rodzic'; $LANG['aci.usersearch'] = 'Szukaj wg:'; $LANG['aci.usersearchresult'] = 'Wyniki wyszukiwania:'; $LANG['aci.userselected'] = 'Wybrani użytkownicy/grupy/role:'; $LANG['aci.useradd'] = 'Dodaj'; $LANG['aci.userremove'] = 'Usuń'; $LANG['aci.error.noname'] = 'Nazwa reguły ACI jest wymagana!'; $LANG['aci.error.exists'] = 'Reguła ACI o podanej nazwie już istnieje!'; $LANG['aci.error.nousers'] = 'Wymagany jest co najmniej jeden wpis użytkownika!'; $LANG['aci.rights.target'] = 'Cel:'; $LANG['aci.rights.filter'] = 'Filtr:'; $LANG['aci.rights.attrs'] = 'Atrybuty:'; $LANG['aci.checkall'] = 'Zaznacz wszystkie'; $LANG['aci.checknone'] = 'Odznacz wszystkie'; $LANG['aci.thisentry'] = 'Ten wpis'; $LANG['aci.selected'] = 'wszystkie zaznaczone'; $LANG['aci.other'] = 'wszystkie oprócz zaznaczonych'; $LANG['acl.all'] = 'wszystkie'; $LANG['acl.append'] = 'dodaj'; $LANG['acl.custom'] = 'własne...'; $LANG['acl.full'] = 'Pełne (bez kontroli dostępu)'; $LANG['acl.post'] = 'wysyłanie'; $LANG['acl.read'] = 'odczyt'; $LANG['acl.read-only'] = 'Tylko-Odczyt'; $LANG['acl.read-write'] = 'Odczyt/Zapis'; $LANG['acl.semi-full'] = 'Write new items'; $LANG['acl.write'] = 'zapis'; $LANG['acl.l'] = 'Podgląd'; $LANG['acl.r'] = 'Odczyt wiadomości'; $LANG['acl.s'] = 'Status przeczytania'; $LANG['acl.w'] = 'Zapis flag'; $LANG['acl.i'] = 'Tworzenie (kopiowanie do)'; $LANG['acl.p'] = 'Wysyłka'; $LANG['acl.c'] = 'Tworzenie pod-folderów'; $LANG['acl.k'] = 'Tworzenie pod-folderów'; $LANG['acl.d'] = 'Usuwanie wiadomości'; $LANG['acl.t'] = 'Usuwanie wiadomości'; $LANG['acl.e'] = 'Porządkowanie'; $LANG['acl.x'] = 'Usuń folder'; $LANG['acl.a'] = 'Administracja'; $LANG['acl.n'] = 'Adnotacje wiadomości'; $LANG['acl.identifier'] = 'Identyfikator'; $LANG['acl.rights'] = 'Prawa dostępu'; $LANG['acl.expire'] = 'Wygasa'; $LANG['acl.user'] = 'Użytkownik...'; $LANG['acl.anyone'] = 'Wszyscy użytkownicy (anyone)'; $LANG['acl.anonymous'] = 'Goście (anonymous)'; $LANG['acl.error.invaliddate'] = 'Błędny format daty!'; $LANG['acl.error.norights'] = 'Nie zdefiniowano praw dostępu!'; $LANG['acl.error.subjectexists'] = 'Prawa dostępu dla wybranego identyfikatora już istnieją!'; $LANG['acl.error.nouser'] = 'Nie podano identyfikatora użytkownika!'; $LANG['add'] = 'Dodaj'; $LANG['api.notypeid'] = 'Nie podano identyfikatora typu obiektu!'; $LANG['api.invalidtypeid'] = 'Błędny identyfikator typu obiektu!'; $LANG['attribute.add'] = 'Dodaj atrybut'; $LANG['attribute.default'] = 'Wartość domyślna'; $LANG['attribute.static'] = 'Wartość stała'; $LANG['attribute.name'] = 'Atrybut'; $LANG['attribute.optional'] = 'Opcjonalny'; $LANG['attribute.maxcount'] = 'Max. ilość'; $LANG['attribute.readonly'] = 'Tylko-do-odczytu'; $LANG['attribute.type'] = 'Typ pola'; $LANG['attribute.value'] = 'Wartość'; $LANG['attribute.value.auto'] = 'Generowana'; $LANG['attribute.value.auto-readonly'] = 'Generowana (tylko-do-odczytu)'; $LANG['attribute.value.normal'] = 'Zwykła'; $LANG['attribute.value.static'] = 'Stała'; $LANG['attribute.options'] = 'Opcje'; $LANG['attribute.key.invalid'] = 'Klucz typu zawiera niedozwolone znaki!'; $LANG['attribute.required.error'] = 'Pominięto wymagane atrybuty na liście atrybutów ($1)!'; $LANG['attribute.validate'] = 'Spr. poprawności'; $LANG['attribute.validate.default'] = 'domyślne'; $LANG['attribute.validate.none'] = 'brak'; $LANG['attribute.validate.basic'] = 'podstawowe'; $LANG['attribute.validate.extended'] = 'rozszerzone'; $LANG['button.cancel'] = 'Anuluj'; $LANG['button.delete'] = 'Usuń'; $LANG['button.ok'] = 'OK'; $LANG['button.save'] = 'Zapisz'; $LANG['button.submit'] = 'Zatwierdź'; $LANG['creatorsname'] = 'Utworzony przez'; $LANG['days'] = 'dni'; $LANG['debug'] = 'Debug info'; $LANG['delete'] = 'Usuń'; $LANG['deleting'] = 'Usuwanie danych...'; $LANG['domain.add'] = 'Dodaj domenę'; $LANG['domain.add.success'] = 'Domena została dodana pomyślnie.'; $LANG['domain.associateddomain'] = 'Nazwy domen'; $LANG['domain.delete.confirm'] = 'Czy na pewno chcesz usunąć tą domenę?'; $LANG['domain.delete.force'] = "Do tej domeny są przpisani użytkownicy.\nCzy na pewno chcesz usunąć tą domenę i wszystkie przypisane obiekty?"; $LANG['domain.delete.success'] = 'Domena usunięta pomyślnie.'; $LANG['domain.edit'] = 'Edytuj domenę'; $LANG['domain.edit.success'] = 'Domena zostałą uaktualniona pomyślnie.'; $LANG['domain.inetdomainbasedn'] = 'Własny Root DN'; $LANG['domain.inetdomainstatus'] = 'Status'; $LANG['domain.list'] = 'Lista domen'; $LANG['domain.norecords'] = 'Nie znaleziono żadnej domeny!'; $LANG['domain.o'] = 'Organizacja'; $LANG['domain.other'] = 'Inne'; $LANG['domain.system'] = 'System'; $LANG['domain.type_id'] = 'Domena standardowa'; $LANG['edit'] = 'Edytuj'; $LANG['error'] = 'Błąd'; $LANG['error.401'] = 'Nieupoważniony.'; $LANG['error.403'] = 'Brak dostępu.'; $LANG['error.404'] = 'Nie znaleziono obiektu.'; $LANG['error.408'] = 'Upłynął limit czasu żądania.'; $LANG['error.450'] = 'Domena nie jest pusta.'; $LANG['error.500'] = 'Wewnętrzny błąd serwera.'; $LANG['error.503'] = 'Usługa niedostępna. Spróbuj póżniej.'; $LANG['form.required.empty'] = 'Niektóre z wymaganych pól są puste!'; $LANG['form.maxcount.exceeded'] = 'Przekroczono maksymalną liczbę elementów!'; $LANG['group.add'] = 'Dodaj grupę'; $LANG['group.add.success'] = 'Grupa utworzona pomyślnie.'; $LANG['group.cn'] = 'Nazwa typowa'; $LANG['group.delete.confirm'] = 'Czy na pewno chcesz usunąć tą grupę?'; $LANG['group.delete.success'] = 'Grupa usunięta pomyślnie.'; $LANG['group.edit.success'] = 'Grupa zostałą zmieniona pomyślnie.'; $LANG['group.gidnumber'] = 'Numer grupy głównej'; $LANG['group.kolaballowsmtprecipient'] = 'Lista dostępu odbiorców'; $LANG['group.kolaballowsmtpsender'] = 'Lista dostępu nadawców'; $LANG['group.list'] = 'Lista grup'; $LANG['group.mail'] = 'Główny adres e-mail'; $LANG['group.member'] = 'Członkowie'; $LANG['group.memberurl'] = 'URL członków'; $LANG['group.norecords'] = 'Nie znaleziono żadnej grupy!'; $LANG['group.other'] = 'Inne'; $LANG['group.ou'] = 'Jednostka organizacyjna'; $LANG['group.system'] = 'System'; $LANG['group.type_id'] = 'Rodzaj grupy'; $LANG['group.uniquemember'] = 'Członkowie'; $LANG['info'] = 'Informacje'; $LANG['internalerror'] = 'Wewnętrzny błąd systemu!'; $LANG['ldap.one'] = '(one): wszystkie elementy jeden poziom od główej domeny (base DN)'; $LANG['ldap.sub'] = '(sub): całe drzewo począwszy od głównej domeny (base DN)'; $LANG['ldap.base'] = '(base): tylko główna domena (base DN)'; $LANG['ldap.basedn'] = 'Główna domena (base DN)'; $LANG['ldap.host'] = 'Serwer LDAP'; $LANG['ldap.conditions'] = 'Warunki'; $LANG['ldap.scope'] = 'Zakres'; $LANG['ldap.filter_any'] = 'nie jest pusta'; $LANG['ldap.filter_both'] = 'zawiera'; $LANG['ldap.filter_prefix'] = 'rozpoczyna się od'; $LANG['ldap.filter_suffix'] = 'kończy się na'; $LANG['ldap.filter_exact'] = 'jest równa z'; $LANG['list.records'] = '$1 do $2 z $3'; $LANG['loading'] = 'Ładowanie...'; $LANG['logout'] = 'Wyloguj'; -$LANG['login.username'] = 'Nazwa użytkownika:'; -$LANG['login.password'] = 'Hasło:'; -$LANG['login.domain'] = 'Domena:'; +$LANG['login.username'] = 'Nazwa użytkownika'; +$LANG['login.password'] = 'Hasło'; $LANG['login.login'] = 'Zaloguj'; $LANG['loginerror'] = 'Nieprawidłowa nazwa użytkownika lub hasło!'; $LANG['MB'] = 'MB'; $LANG['menu.about'] = 'O programie'; $LANG['menu.domains'] = 'Domeny'; $LANG['menu.groups'] = 'Grupy'; $LANG['menu.ous'] = 'Jednostki'; $LANG['menu.resources'] = 'Zasoby'; $LANG['menu.roles'] = 'Role'; $LANG['menu.settings'] = 'Ustawienia'; $LANG['menu.sharedfolders'] = 'Foldery dzielone'; $LANG['menu.users'] = 'Użytkownicy'; $LANG['modifiersname'] = 'Zmodyfikowane przez'; $LANG['password.generate'] = 'Generuj hasło'; $LANG['reqtime'] = 'Czas żądania: $1 sek.'; $LANG['ou.aci'] = 'Prawa dostępu'; $LANG['ou.add'] = 'Dodaj jednostkę'; $LANG['ou.add.success'] = 'Jednostka została utworzona pomyślnie.'; $LANG['ou.ou'] = 'Nazwa'; $LANG['ou.delete.confirm'] = 'Czy na pewno chcesz usunąć tą jednostkę organizacyjną?'; $LANG['ou.delete.success'] = 'Jednostka została usunięta pomyślnie.'; $LANG['ou.description'] = 'Opis'; $LANG['ou.edit.success'] = 'Jednostka została zaktualizowana pomyślnie.'; $LANG['ou.list'] = 'Lista jednostek organizacyjnych'; $LANG['ou.norecords'] = 'Nie znaleziono żadnych jednostek organizacyjnych!'; $LANG['ou.system'] = 'Szczegóły'; $LANG['ou.type_id'] = 'Typ'; $LANG['ou.base_dn'] = 'Jednostka nadrzędna'; $LANG['resource.acl'] = 'Prawa dostępu'; $LANG['resource.add'] = 'Dodaj zasób'; $LANG['resource.add.success'] = 'Zasób został dodany pomyślnie.'; $LANG['resource.cn'] = 'Nazwa'; $LANG['resource.delete'] = 'Usuń zasób'; $LANG['resource.delete.confirm'] = 'Czy na pewno chcesz usunąć ten zasób?'; $LANG['resource.delete.success'] = 'Zasób został usunięty pomyślnie.'; $LANG['resource.edit'] = 'Edytuj zasób'; $LANG['resource.edit.success'] = 'Pomyślnie zmieniono zasób.'; $LANG['resource.kolabtargetfolder'] = 'Folder docelowy'; $LANG['resource.kolabinvitationpolicy'] = 'Polityka zaproszeń'; $LANG['resource.list'] = 'Lista (kolekcja) zasobów'; $LANG['resource.mail'] = 'Adres pocztowy'; $LANG['resource.member'] = 'Członkowie kolekcji'; $LANG['resource.norecords'] = 'Nie znaleziono żadnych zasobów!'; $LANG['resource.other'] = 'Inne'; $LANG['resource.ou'] = 'Jednostka organizacyjna'; $LANG['resource.system'] = 'System'; $LANG['resource.type_id'] = 'Rodzaj zasobu'; $LANG['resource.uniquemember'] = 'Członkowie kolekcji'; $LANG['resource.description'] = 'Opis'; $LANG['resource.owner'] = 'Właściciel'; $LANG['role.add'] = 'Dodaj rolę'; $LANG['role.add.success'] = 'Rola została utworzna pomyślnie.'; $LANG['role.cn'] = 'Nazwa roli'; $LANG['role.delete.confirm'] = 'Czy na pewno chcesz usunąć tę rolę?'; $LANG['role.delete.success'] = 'Rola została usunięta pomyślnie.'; $LANG['role.description'] = 'Opis roli'; $LANG['role.edit.success'] = 'Rola została zaktualizowana.'; $LANG['role.list'] = 'Lista ról'; $LANG['role.norecords'] = 'Nie znaleziono żadnej roli!'; $LANG['role.system'] = 'Szczegóły'; $LANG['role.type_id'] = 'Typ roli'; $LANG['saving'] = 'Zapisywanie danych...'; -$LANG['search'] = 'Znajdź'; +$LANG['search'] = 'Wyszukaj...'; $LANG['search.reset'] = 'Wyczyść'; $LANG['search.criteria'] = 'Kryteria wyszukiwania'; $LANG['search.field'] = 'Pole:'; $LANG['search.method'] = 'Metoda:'; $LANG['search.contains'] = 'zawiera'; $LANG['search.is'] = 'jest'; $LANG['search.key'] = 'klucz'; $LANG['search.prefix'] = 'zaczyna się od'; $LANG['search.name'] = 'nazwa'; $LANG['search.email'] = 'email'; $LANG['search.description'] = 'opis'; $LANG['search.uid'] = 'UID'; $LANG['search.loading'] = 'Wyszukiwanie...'; $LANG['search.acchars'] = 'Przynajmniej $min znaków wymaganych jest dla funkcji autouzupełniania'; $LANG['servererror'] = 'Błąd serwera!'; $LANG['session.expired'] = 'Sesja wygasła. Proszę zalogować się ponownie'; $LANG['sharedfolder.acl'] = 'Prawa dostępu IMAP'; $LANG['sharedfolder.add'] = 'Dodaj folder'; $LANG['sharedfolder.add.success'] = 'Folder został utworzony.'; $LANG['sharedfolder.alias'] = 'Dodatkowe adresy email'; $LANG['sharedfolder.cn'] = 'Nazwa folderu'; $LANG['sharedfolder.delete.confirm'] = 'Czy na pewno chcesz usunąć ten folder?'; $LANG['sharedfolder.delete.success'] = 'Folder został usunięty.'; $LANG['sharedfolder.edit'] = 'Edytuj folder'; $LANG['sharedfolder.edit.success'] = 'Folder został zaktualizowany.'; $LANG['sharedfolder.kolaballowsmtprecipient'] = 'Lista dostępu odbiorców'; $LANG['sharedfolder.kolaballowsmtpsender'] = 'Lista dostępu nadawców'; $LANG['sharedfolder.kolabdelegate'] = 'Delegaci'; $LANG['sharedfolder.kolabtargetfolder'] = 'Docelowy folder IMAP'; $LANG['sharedfolder.list'] = 'Lista folderów dzielonych'; $LANG['sharedfolder.norecords'] = 'Nie znaleziono żadnych folderów dzielonych!'; $LANG['sharedfolder.mail'] = 'Adres e-mail'; $LANG['sharedfolder.other'] = 'Inne'; $LANG['sharedfolder.system'] = 'System'; $LANG['sharedfolder.type_id'] = 'Typ folderu'; $LANG['signup.headline'] = 'Zapisz się do Hosted Kolab'; $LANG['signup.intro1'] = 'Konto na serwerze Kolab to coś więcej niż zwykły Email. Konto takie zawiera pełną funkcjonalność oprogramowania do pracy grupowej łącznie z synchronizacją współdzielonych książek adresowych, kalendarzy, zadań, dzienników i nie tylko.'; $LANG['signup.intro2'] = 'Tutaj możesz zapisać się na nowe konto.'; $LANG['signup.formtitle'] = 'Zarejestruj się'; $LANG['signup.username'] = 'Nazwa użytkownika'; $LANG['signup.domain'] = 'Domena'; $LANG['signup.mailalternateaddress'] = 'Bieżący adres email'; $LANG['signup.futuremail'] = 'Przyszły adres email'; $LANG['signup.company'] = 'Firma'; $LANG['signup.captcha'] = 'CAPTCHA'; $LANG['signup.userexists'] = 'Użytkownik już istnieje!'; $LANG['signup.usercreated'] = '

    Konto zostało utworzone pomyślnie!

    Gratulujemy, teraz posiadasz swoje własne kolnto Kolab.'; $LANG['signup.wronguid'] = 'Błędna nazwa użytkownika!'; $LANG['signup.wrongmailalternateaddress'] = 'Proszę wprowadzić poprawny adres email!'; $LANG['signup.footer'] = 'Usługa ta jest oferowana przez Kolab Systems.'; $LANG['type.add'] = 'Dodaj typ obiektu'; $LANG['type.add.success'] = 'Typ obiektu został utworzony pomyślnie.'; $LANG['type.attributes'] = 'Atrybuty'; $LANG['type.description'] = 'Opis'; $LANG['type.delete.confirm'] = 'Czy na pewno chcesz usunąć ten typ obiektu?'; $LANG['type.delete.success'] = 'Typ obiektu został usunięty pomyślnie.'; $LANG['type.domain'] = 'Domena'; $LANG['type.edit.success'] = 'Typ obiektu został zaktualizowany pomyślnie.'; $LANG['type.group'] = 'Grupa'; $LANG['type.list'] = 'Lista typów obiektów'; $LANG['type.key'] = 'Klucz'; $LANG['type.name'] = 'Nazwa'; $LANG['type.norecords'] = 'Nie znaleziono żadnych typów obiektów!'; $LANG['type.objectclass'] = 'Klasa obiektu'; $LANG['type.object_type'] = 'Typ obiektu'; $LANG['type.ou'] = 'Jednostka organizacyjna'; $LANG['type.properties'] = 'Właściwości'; $LANG['type.resource'] = 'Zasób'; $LANG['type.role'] = 'Rola'; $LANG['type.sharedfolder'] = 'Folder dzielony'; $LANG['type.used_for'] = 'Hostowany'; $LANG['type.user'] = 'Użytkownik'; $LANG['user.add'] = 'Dodaj użytkownika'; $LANG['user.add.success'] = 'Użytkownik został pomyślnie dodany.'; $LANG['user.alias'] = 'Dodatkowe adresy email'; $LANG['user.astaccountallowedcodec'] = 'Dozwolone kodeki'; $LANG['user.astaccountcallerid'] = 'ID dzwoniącego'; $LANG['user.astaccountcontext'] = 'Kontekst konta'; $LANG['user.astaccountdefaultuser'] = 'Domyślny użytkownik konta Asterisk'; $LANG['user.astaccountdeny'] = 'Konto zabronione'; $LANG['user.astaccounthost'] = 'Host Asteriska'; $LANG['user.astaccountmailbox'] = 'Skrzynka pocztowa'; $LANG['user.astaccountnat'] = 'Konto używa NAT'; $LANG['user.astaccountname'] = 'Nazwa konta Asterisk'; $LANG['user.astaccountqualify'] = 'Kwalifikacja konta'; $LANG['user.astaccountrealmedpassword'] = 'Domenowe hasło konta'; $LANG['user.astaccountregistrationexten'] = 'Rozszerzenie'; $LANG['user.astaccountregistrationcontext'] = 'Kontekst rejestracji'; $LANG['user.astaccountsecret'] = 'Hasło w czystym tekście'; $LANG['user.astaccounttype'] = 'Typ konta'; $LANG['user.astcontext'] = 'Kontekst Asteriska'; $LANG['user.asterisk'] = 'Asterisk SIP'; $LANG['user.astextension'] = 'Rozszerzenie Asteriska'; $LANG['user.astvoicemailpassword'] = 'Kod PIN poczty głosowej'; $LANG['user.c'] = 'Kraj'; $LANG['user.city'] = 'Miasto'; $LANG['user.cn'] = 'Nazwa zwyczajowa'; $LANG['user.config'] = 'Konfiguracja'; $LANG['user.contact'] = 'Kontakt'; $LANG['user.contact_info'] = 'Informacje kontaktowe'; $LANG['user.country'] = 'Kraj'; $LANG['user.country.desc'] = 'Dwuliterowy kod (ISO 3166-1)'; $LANG['user.delete.confirm'] = 'Czy na pewno chcesz usunąć tego użytkownika?'; $LANG['user.delete.success'] = 'Użytkownik usunięty pomyślnie'; $LANG['user.displayname'] = 'Nazwa wyświetlana'; $LANG['user.edit.success'] = 'Użytkownik został zmieniony pomyślnie.'; $LANG['user.fax'] = 'Numer faxu'; $LANG['user.fbinterval'] = 'Interwał wolny-zajęty'; $LANG['user.fbinterval.desc'] = 'Pozostaw puste dla wartości domyślnej (60 dni)'; $LANG['user.gidnumber'] = 'Numer grupy głównej'; $LANG['user.givenname'] = 'Imię'; $LANG['user.homedirectory'] = 'Katalog domowy'; $LANG['user.homephone'] = 'Domowy numer telefonu'; $LANG['user.initials'] = 'Inicjały'; $LANG['user.invitation-policy'] = 'Polityka zapraszania'; $LANG['user.kolaballowsmtprecipient'] = 'Lista dostępu odbiorców'; $LANG['user.kolaballowsmtpsender'] = 'Lista dostępu nadawców'; $LANG['user.kolabdelegate'] = 'Wydelegowani'; $LANG['user.kolabhomeserver'] = 'Serwer pocztowy'; $LANG['user.kolabinvitationpolicy'] = 'Polityka obsługi zaproszeń'; $LANG['user.l'] = 'Miasto, województwo'; $LANG['user.list'] = 'Lista użytkowników'; $LANG['user.loginshell'] = 'Powłoka'; $LANG['user.mail'] = 'Główny adres email'; $LANG['user.mailalternateaddress'] = 'Zewnętrzne adresy email'; $LANG['user.mailforwardingaddress'] = 'Przekaż pocztę do'; $LANG['user.mailhost'] = 'Serwer pocztowy'; $LANG['user.mailquota'] = 'Quota'; $LANG['user.mailquota.desc'] = 'Pozostaw puste dla braku limitu'; $LANG['user.mobile'] = 'Numer telefonu komórkowego'; $LANG['user.name'] = 'Nazwa'; $LANG['user.norecords'] = 'Nie znaleziono użytkowników'; $LANG['user.nsrole'] = 'Role'; $LANG['user.nsroledn'] = 'Role'; $LANG['user.other'] = 'Inne'; $LANG['user.o'] = 'Organizacja'; $LANG['user.org'] = 'Organizacja'; $LANG['user.orgunit'] = 'Jednostka organizacyjna'; $LANG['user.ou'] = 'Jednostka organizacyjna'; $LANG['user.pager'] = 'Numer pagera'; $LANG['user.password.mismatch'] = 'Hasła do siebie nie pasują!'; $LANG['user.personal'] = 'Osobiste'; $LANG['user.phone'] = 'Numer telefonu'; $LANG['user.postalcode'] = 'Kod pocztowy'; $LANG['user.postbox'] = 'Skrytka pocztowa'; $LANG['user.postcode'] = 'Kod pocztowy'; $LANG['user.preferredlanguage'] = 'Język ojczysty'; $LANG['user.room'] = 'Numer pokoju'; $LANG['user.sn'] = 'Nazwisko'; $LANG['user.street'] = 'Ulica'; $LANG['user.system'] = 'System'; $LANG['user.telephonenumber'] = 'Numer telefonu'; $LANG['user.title'] = 'Tytuł zawodowy'; $LANG['user.type_id'] = 'Typ konta'; $LANG['user.uid'] = 'Unikalna tożsamość (UID)'; $LANG['user.userpassword'] = 'Hasło'; $LANG['user.userpassword2'] = 'Potwierdź hasło'; $LANG['user.uidnumber'] = 'Numer ID użytkownika'; $LANG['welcome'] = 'Witamy w Panelu Zarządzania Serwerem Kolab Groupware'; $LANG['yes'] = 'tak'; diff --git a/lib/locale/pt_BR.php b/lib/locale/pt_BR.php index 63c8b99..69c3916 100644 --- a/lib/locale/pt_BR.php +++ b/lib/locale/pt_BR.php @@ -1,444 +1,443 @@ Kolab Server'; $LANG['about.kolab'] = 'Kolab'; $LANG['about.kolabsys'] = 'Sistemas Kolab'; $LANG['about.support'] = 'Suporte profissional está disponível a partir da Kolab Systems.'; $LANG['about.technology'] = 'Tecnologia '; $LANG['about.warranty'] = 'It comes with absolutely no warranties and is typically run entirely self supported. You can find help & information on the community web site & wiki.'; $LANG['aci.new'] = 'New...'; $LANG['aci.edit'] = 'Edit...'; $LANG['aci.remove'] = 'Remover'; $LANG['aci.users'] = 'Usuários'; $LANG['aci.rights'] = 'Rights'; $LANG['aci.targets'] = 'Targets'; $LANG['aci.aciname'] = 'ACI name:'; $LANG['aci.hosts'] = 'Hosts'; $LANG['aci.times'] = 'Times'; $LANG['aci.name'] = 'Nome'; $LANG['aci.userid'] = 'User ID'; $LANG['aci.email'] = 'E-mail'; $LANG['aci.read'] = 'Read'; $LANG['aci.compare'] = 'Compare'; $LANG['aci.search'] = 'Pesquisar'; $LANG['aci.write'] = 'Gravar'; $LANG['aci.selfwrite'] = 'Self-write'; $LANG['aci.delete'] = 'Deletar'; $LANG['aci.add'] = 'Adicionar'; $LANG['aci.proxy'] = 'Proxy'; $LANG['aci.all'] = 'All rights'; $LANG['aci.allow'] = 'Allow'; $LANG['aci.deny'] = 'Deny'; $LANG['aci.typeusers'] = 'Usuários'; $LANG['aci.typegroups'] = 'Grupos'; $LANG['aci.typeroles'] = 'Papeis'; $LANG['aci.typeadmins'] = 'Administrators'; $LANG['aci.typespecials'] = 'Special Rights'; $LANG['aci.ldap-self'] = 'Self'; $LANG['aci.ldap-anyone'] = 'All users'; $LANG['aci.ldap-all'] = 'All authenticated users'; $LANG['aci.ldap-parent'] = 'Parent'; $LANG['aci.usersearch'] = 'Search for:'; $LANG['aci.usersearchresult'] = 'Search results:'; $LANG['aci.userselected'] = 'Selected users/groups/roles:'; $LANG['aci.useradd'] = 'Adicionar'; $LANG['aci.userremove'] = 'Remover'; $LANG['aci.error.noname'] = 'ACI rule name is required!'; $LANG['aci.error.exists'] = 'ACI rule with specified name already exists!'; $LANG['aci.error.nousers'] = 'At least one user entry is required!'; $LANG['aci.rights.target'] = 'Target entry:'; $LANG['aci.rights.filter'] = 'Filter:'; $LANG['aci.rights.attrs'] = 'Attributes:'; $LANG['aci.checkall'] = 'Check all'; $LANG['aci.checknone'] = 'Check none'; $LANG['aci.thisentry'] = 'This entry'; $LANG['aci.selected'] = 'all selected'; $LANG['aci.other'] = 'all except selected'; $LANG['acl.all'] = 'all'; $LANG['acl.append'] = 'append'; $LANG['acl.custom'] = 'custom...'; $LANG['acl.full'] = 'Full (without access control)'; $LANG['acl.post'] = 'post'; $LANG['acl.read'] = 'read'; $LANG['acl.read-only'] = 'Read-Only'; $LANG['acl.read-write'] = 'Read/Write'; $LANG['acl.semi-full'] = 'Write new items'; $LANG['acl.write'] = 'write'; $LANG['acl.l'] = 'Lookup'; $LANG['acl.r'] = 'Read messages'; $LANG['acl.s'] = 'Keep Seen state'; $LANG['acl.w'] = 'Write flags'; $LANG['acl.i'] = 'Insert (Copy into)'; $LANG['acl.p'] = 'Post'; $LANG['acl.c'] = 'Create subfolders'; $LANG['acl.k'] = 'Create subfolders'; $LANG['acl.d'] = 'Delete messages'; $LANG['acl.t'] = 'Delete messages'; $LANG['acl.e'] = 'Expunge'; $LANG['acl.x'] = 'Remover pasta'; $LANG['acl.a'] = 'Administer'; $LANG['acl.n'] = 'Annotate messages'; $LANG['acl.identifier'] = 'Identifier'; $LANG['acl.rights'] = 'Access Rights'; $LANG['acl.expire'] = 'Expires On'; $LANG['acl.user'] = 'User...'; $LANG['acl.anyone'] = 'All users (anyone)'; $LANG['acl.anonymous'] = 'Guests (anonymous)'; $LANG['acl.error.invaliddate'] = 'Invalid date format!'; $LANG['acl.error.norights'] = 'No access rights specified!'; $LANG['acl.error.subjectexists'] = 'Access rights for specified identifier already exist!'; $LANG['acl.error.nouser'] = 'User identifier not specified!'; $LANG['add'] = 'Adicionar'; $LANG['api.notypeid'] = 'No object type ID specified!'; $LANG['api.invalidtypeid'] = 'Invalid object type ID!'; $LANG['attribute.add'] = 'Adicionar atributo'; $LANG['attribute.default'] = 'Default value'; $LANG['attribute.static'] = 'Valor estático'; $LANG['attribute.name'] = 'Atributo'; $LANG['attribute.optional'] = 'Opcional'; $LANG['attribute.maxcount'] = 'Max. count'; $LANG['attribute.readonly'] = 'Somente leitura'; $LANG['attribute.type'] = 'Tipo do campo'; $LANG['attribute.value'] = 'Valor'; $LANG['attribute.value.auto'] = 'Gerado'; $LANG['attribute.value.auto-readonly'] = 'Gerado ( Apenas leitura )'; $LANG['attribute.value.normal'] = 'Normal'; $LANG['attribute.value.static'] = 'Estático'; $LANG['attribute.options'] = 'Opções'; $LANG['attribute.key.invalid'] = 'Type key contains forbidden characters!'; $LANG['attribute.required.error'] = 'Required attributes missing in attributes list ($1)!'; $LANG['attribute.validate'] = ' Validation'; $LANG['attribute.validate.default'] = 'default'; $LANG['attribute.validate.none'] = 'none'; $LANG['attribute.validate.basic'] = 'basic'; $LANG['attribute.validate.extended'] = 'extended'; $LANG['button.cancel'] = 'Cancelar'; $LANG['button.delete'] = 'Deletar'; $LANG['button.ok'] = 'OK'; $LANG['button.save'] = 'Salvar'; $LANG['button.submit'] = 'Enviar'; $LANG['creatorsname'] = 'Criado por'; $LANG['days'] = 'dias'; $LANG['debug'] = 'Informação do debug'; $LANG['delete'] = 'Deletar'; $LANG['deleting'] = 'Exclusão de dados...'; $LANG['domain.add'] = 'Adicionar Domínio'; $LANG['domain.add.success'] = 'Domínio criado com sucesso.'; $LANG['domain.associateddomain'] = 'Nome(s) de domínio'; $LANG['domain.delete.confirm'] = 'Are you sure, you want to delete this domain?'; $LANG['domain.delete.force'] = "There are users assigned to this domain.\nAre you sure, you want to delete this domain and all assigned objects?"; $LANG['domain.delete.success'] = 'Domínio deletado com sucesso.'; $LANG['domain.edit'] = 'Editar domínio'; $LANG['domain.edit.success'] = 'Domínio alterado com sucesso.'; $LANG['domain.inetdomainbasedn'] = 'Custom Root DN'; $LANG['domain.inetdomainstatus'] = 'Situação'; $LANG['domain.list'] = 'Lista de Domínios'; $LANG['domain.norecords'] = 'Nenhum registro de domínio encontrado!'; $LANG['domain.o'] = 'Organização'; $LANG['domain.other'] = 'Outro'; $LANG['domain.system'] = 'Sistema'; $LANG['domain.type_id'] = 'Domínio padrão'; $LANG['edit'] = 'Editar'; $LANG['error'] = 'Erro'; $LANG['error.401'] = 'Unauthorized.'; $LANG['error.403'] = 'Access forbidden.'; $LANG['error.404'] = 'Object not found.'; $LANG['error.408'] = 'Request timeout.'; $LANG['error.450'] = 'Domain is not empty.'; $LANG['error.500'] = 'Internal server error.'; $LANG['error.503'] = 'Service unavailable. Try again later.'; $LANG['form.required.empty'] = 'Alguns dos campos obrigatórios estão vazios!'; $LANG['form.maxcount.exceeded'] = 'Contagem máxima de itens excedido!'; $LANG['group.add'] = 'Adicionar Grupo'; $LANG['group.add.success'] = 'Grupo criado com sucesso.'; $LANG['group.cn'] = 'Nome comum'; $LANG['group.delete.confirm'] = 'Are you sure, you want to delete this group?'; $LANG['group.delete.success'] = 'Grupo deletado com sucesso.'; $LANG['group.edit.success'] = 'Grupo alterado com sucesso.'; $LANG['group.gidnumber'] = 'Numero do grupo principal'; $LANG['group.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['group.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['group.list'] = 'Lista de grupos'; $LANG['group.mail'] = 'Endereço de e-mail principal'; $LANG['group.member'] = 'Membro(s)'; $LANG['group.memberurl'] = 'URL dos membros'; $LANG['group.norecords'] = 'Não há registros de grupo encontrado!'; $LANG['group.other'] = 'Outro'; $LANG['group.ou'] = 'Unidade organizacional'; $LANG['group.system'] = 'Sistema'; $LANG['group.type_id'] = 'Tipo do grupo'; $LANG['group.uniquemember'] = 'Membros'; $LANG['info'] = 'Informação'; $LANG['internalerror'] = 'Erro interno do sistema!'; $LANG['ldap.one'] = 'one: all entries one level under the base DN'; $LANG['ldap.sub'] = 'sub: whole subtree starting with the base DN'; $LANG['ldap.base'] = 'base: base DN only'; $LANG['ldap.basedn'] = 'Base DN'; $LANG['ldap.host'] = 'Servidor LDAP'; $LANG['ldap.conditions'] = 'Condições'; $LANG['ldap.scope'] = 'Escopo'; $LANG['ldap.filter_any'] = 'is non-empty'; $LANG['ldap.filter_both'] = 'contém'; $LANG['ldap.filter_prefix'] = 'Começar com'; $LANG['ldap.filter_suffix'] = 'Terminar com'; $LANG['ldap.filter_exact'] = 'É igual a'; $LANG['list.records'] = '$1 - $2 de $3'; $LANG['loading'] = 'Carregando...'; $LANG['logout'] = 'Deslogar'; -$LANG['login.username'] = 'Usuário:'; -$LANG['login.password'] = 'Senha:'; -$LANG['login.domain'] = 'Domínio:'; +$LANG['login.username'] = 'Usuário'; +$LANG['login.password'] = 'Senha'; $LANG['login.login'] = 'Usuário'; $LANG['loginerror'] = 'O usuário ou senha estão incorretos!'; $LANG['MB'] = 'MB'; $LANG['menu.about'] = 'Sobre'; $LANG['menu.domains'] = 'Domínios'; $LANG['menu.groups'] = 'Grupos'; $LANG['menu.ous'] = 'Units'; $LANG['menu.resources'] = 'Recursos'; $LANG['menu.roles'] = 'Papeis'; $LANG['menu.settings'] = 'Configurações'; $LANG['menu.sharedfolders'] = 'Shared Folders'; $LANG['menu.users'] = 'Usuários'; $LANG['modifiersname'] = 'Modificado por'; $LANG['password.generate'] = 'Gerar senha'; $LANG['reqtime'] = 'Tempo da requisição: $1 seg.'; $LANG['ou.aci'] = 'Access Rights'; $LANG['ou.add'] = 'Add Unit'; $LANG['ou.add.success'] = 'Unit created successfully.'; $LANG['ou.ou'] = 'Unit Name'; $LANG['ou.delete.confirm'] = 'Are you sure, you want to delete this organizational unit?'; $LANG['ou.delete.success'] = 'Unit deleted successfully.'; $LANG['ou.description'] = 'Unit Description'; $LANG['ou.edit.success'] = 'Unit updated successfully.'; $LANG['ou.list'] = 'Organizational Unit List'; $LANG['ou.norecords'] = 'No organizational unit records found!'; $LANG['ou.system'] = 'Detalhes'; $LANG['ou.type_id'] = 'Unit Type'; $LANG['ou.base_dn'] = 'Parent Unit'; $LANG['resource.acl'] = 'Access Rights'; $LANG['resource.add'] = 'Adicionar Recurso'; $LANG['resource.add.success'] = 'Recurso criado com sucesso.'; $LANG['resource.cn'] = 'Nome'; $LANG['resource.delete'] = 'Deletar Recurso'; $LANG['resource.delete.confirm'] = 'Are you sure, you want to delete this resource?'; $LANG['resource.delete.success'] = 'Recurso deletado com sucesso.'; $LANG['resource.edit'] = 'Editar Recurso'; $LANG['resource.edit.success'] = 'Resource updated successfully.'; $LANG['resource.kolabtargetfolder'] = 'Pasta de destino'; $LANG['resource.kolabinvitationpolicy'] = 'Invitation Policy'; $LANG['resource.list'] = 'Lista de Recursos ( Coleções ) '; $LANG['resource.mail'] = 'Endereço de e-mail'; $LANG['resource.member'] = 'Membros da coleção'; $LANG['resource.norecords'] = 'No resource records found!'; $LANG['resource.other'] = 'Outro'; $LANG['resource.ou'] = 'Unidade organizacional'; $LANG['resource.system'] = 'Sistema'; $LANG['resource.type_id'] = 'Tipo do recurso'; $LANG['resource.uniquemember'] = 'Membros da coleção'; $LANG['resource.description'] = 'Descrição'; $LANG['resource.owner'] = 'Dono'; $LANG['role.add'] = 'Adicionar função'; $LANG['role.add.success'] = 'Função criada com sucesso.'; $LANG['role.cn'] = 'Nome da função'; $LANG['role.delete.confirm'] = 'Are you sure, you want to delete this role?'; $LANG['role.delete.success'] = 'Função deletada com sucesso.'; $LANG['role.description'] = 'Descrição da função'; $LANG['role.edit.success'] = 'Role updated successfully.'; $LANG['role.list'] = 'Lista de papeis'; $LANG['role.norecords'] = 'Nenhum papel encontrado!'; $LANG['role.system'] = 'Detalhes'; $LANG['role.type_id'] = 'Tipo da função'; $LANG['saving'] = 'Salvando dados...'; -$LANG['search'] = 'Pesquisar'; +$LANG['search'] = 'Pesquisar...'; $LANG['search.reset'] = 'Redefinir'; $LANG['search.criteria'] = 'Critério da pesquisa'; $LANG['search.field'] = 'Campo:'; $LANG['search.method'] = 'Método: '; $LANG['search.contains'] = 'contém'; $LANG['search.is'] = 'é'; $LANG['search.key'] = 'chave'; $LANG['search.prefix'] = 'inicia-se com'; $LANG['search.name'] = 'nome'; $LANG['search.email'] = 'e-mail'; $LANG['search.description'] = 'descrição'; $LANG['search.uid'] = 'UID'; $LANG['search.loading'] = 'Pesquisando...'; $LANG['search.acchars'] = 'Pelo menos $min caracteres necessários para autocompletar'; $LANG['servererror'] = 'Erro no servidor!'; $LANG['session.expired'] = 'Sessão foi expirada. Por favor, se autentique novamente'; $LANG['sharedfolder.acl'] = 'IMAP Access Rights'; $LANG['sharedfolder.add'] = 'Add Shared Folder'; $LANG['sharedfolder.add.success'] = 'Shared folder created successfully.'; $LANG['sharedfolder.alias'] = 'Endereço de e-mail secundário(s)'; $LANG['sharedfolder.cn'] = 'Folder Name'; $LANG['sharedfolder.delete.confirm'] = 'Are you sure, you want to delete this shared folder?'; $LANG['sharedfolder.delete.success'] = 'Shared folder deleted successfully.'; $LANG['sharedfolder.edit'] = 'Edit Shared Folder'; $LANG['sharedfolder.edit.success'] = 'Shared folder updated successfully.'; $LANG['sharedfolder.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['sharedfolder.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['sharedfolder.kolabdelegate'] = 'Delegate(s)'; $LANG['sharedfolder.kolabtargetfolder'] = 'Target IMAP Folder'; $LANG['sharedfolder.list'] = 'Shared Folders List'; $LANG['sharedfolder.norecords'] = 'No shared folder records found!'; $LANG['sharedfolder.mail'] = 'Endereço de e-mail'; $LANG['sharedfolder.other'] = 'Outro'; $LANG['sharedfolder.system'] = 'Sistema'; $LANG['sharedfolder.type_id'] = 'Shared Folder Type'; $LANG['signup.headline'] = 'Cadastra-se - Hosted Kolab'; $LANG['signup.intro1'] = ' Ter uma conta em um servidor Kolab é muito melhor do que apenas um simples e-mail. Ele também fornece um completo grupo de funcionalidades incluindo sincronização para catálogos de endereços compartilhados, calendários, tarefas e muito mais.'; $LANG['signup.intro2'] = 'Agora você pode cadastrar uma conta aqui.'; $LANG['signup.formtitle'] = 'Inscreva-se'; $LANG['signup.username'] = 'Usuário'; $LANG['signup.domain'] = 'Domínio'; $LANG['signup.mailalternateaddress'] = 'Endereço de e-mail atual'; $LANG['signup.futuremail'] = 'Futuro endereço de e-mail'; $LANG['signup.company'] = 'Empresa'; $LANG['signup.captcha'] = 'captcha'; $LANG['signup.userexists'] = 'Usuário já existente!'; $LANG['signup.usercreated'] = '

    Sua conta foi criado com sucesso!

    Parabéns, agora você tem sua própria conta no Kolab.'; $LANG['signup.wronguid'] = 'Usuário inválido!'; $LANG['signup.wrongmailalternateaddress'] = 'Por favor forneça um endereço de e-mail válido.'; $LANG['signup.footer'] = 'Esse é um serviço oferecido por Kolab Systems.'; $LANG['type.add'] = 'Adicionar tipo do objeto'; $LANG['type.add.success'] = 'Tipo do objeto foi criado com sucesso.'; $LANG['type.attributes'] = 'Atributos'; $LANG['type.description'] = 'Descrição'; $LANG['type.delete.confirm'] = 'Are you sure, you want to delete this object type?'; $LANG['type.delete.success'] = 'Tipo do objeto foi deletado com sucesso.'; $LANG['type.domain'] = 'Domínio'; $LANG['type.edit.success'] = 'Tipo do objeto foi alterado com sucesso.'; $LANG['type.group'] = 'Grupo'; $LANG['type.list'] = 'Lista dos tipos de objeto'; $LANG['type.key'] = 'Chave'; $LANG['type.name'] = 'Nome'; $LANG['type.norecords'] = 'Nenhum registro de tipo de objeto foi encontrado.'; $LANG['type.objectclass'] = 'Classe de objeto'; $LANG['type.object_type'] = 'Tipo de objeto'; $LANG['type.ou'] = 'Unidade organizacional'; $LANG['type.properties'] = 'Propriedades'; $LANG['type.resource'] = 'Recurso'; $LANG['type.role'] = 'Papel'; $LANG['type.sharedfolder'] = 'Shared Folder'; $LANG['type.used_for'] = 'Hosted'; $LANG['type.user'] = 'Usuário'; $LANG['user.add'] = 'Adicionar usuário'; $LANG['user.add.success'] = 'Usuário criado com sucesso.'; $LANG['user.alias'] = 'Endereço de e-mail secundário(s)'; $LANG['user.astaccountallowedcodec'] = 'Permitir codec(s)'; $LANG['user.astaccountcallerid'] = 'ID do Visitante '; $LANG['user.astaccountcontext'] = 'Contexto de conta'; $LANG['user.astaccountdefaultuser'] = 'Asterisk Account Default User'; $LANG['user.astaccountdeny'] = 'Conta negada'; $LANG['user.astaccounthost'] = 'Servidor Asterisk'; $LANG['user.astaccountmailbox'] = 'Caixa de e-mail'; $LANG['user.astaccountnat'] = 'Account uses NAT'; $LANG['user.astaccountname'] = 'Nome da conta do Asterisk'; $LANG['user.astaccountqualify'] = 'Qualificações da conta'; $LANG['user.astaccountrealmedpassword'] = 'Realmed Account Password'; $LANG['user.astaccountregistrationexten'] = 'Extensão'; $LANG['user.astaccountregistrationcontext'] = 'Registration Context'; $LANG['user.astaccountsecret'] = 'Senha em texto simples'; $LANG['user.astaccounttype'] = 'Tipo de conta'; $LANG['user.astcontext'] = 'Contexto do Asterisk'; $LANG['user.asterisk'] = 'Asterisk SIP'; $LANG['user.astextension'] = 'Asterisk Extension'; $LANG['user.astvoicemailpassword'] = 'Voicemail PIN Code'; $LANG['user.c'] = 'País '; $LANG['user.city'] = 'Cidade'; $LANG['user.cn'] = 'Nome comum'; $LANG['user.config'] = 'Configuração'; $LANG['user.contact'] = 'Contato'; $LANG['user.contact_info'] = 'Informação do contato'; $LANG['user.country'] = 'País'; $LANG['user.country.desc'] = '2 letter code from ISO 3166-1'; $LANG['user.delete.confirm'] = 'Are you sure, you want to delete this user?'; $LANG['user.delete.success'] = 'Usuário deletado com sucesso.'; $LANG['user.displayname'] = 'Nome de exibição'; $LANG['user.edit.success'] = 'Usuário alterado com sucesso.'; $LANG['user.fax'] = 'Fax'; $LANG['user.fbinterval'] = 'Free-Busy interval'; $LANG['user.fbinterval.desc'] = 'Deixar branco por padrão ( 60 dias )'; $LANG['user.gidnumber'] = 'Numero do grupo principal'; $LANG['user.givenname'] = 'Given name'; $LANG['user.homedirectory'] = 'Diretório home'; $LANG['user.homephone'] = 'Telefone residencial '; $LANG['user.initials'] = 'Iniciais'; $LANG['user.invitation-policy'] = 'Política de convite'; $LANG['user.kolaballowsmtprecipient'] = 'Recipient(s) Access List'; $LANG['user.kolaballowsmtpsender'] = 'Sender Access List'; $LANG['user.kolabdelegate'] = 'Delegados'; $LANG['user.kolabhomeserver'] = 'Servidor de e-mail'; $LANG['user.kolabinvitationpolicy'] = 'Invitation Handling Policy'; $LANG['user.l'] = 'Cidade, Região'; $LANG['user.list'] = 'Lista de usuários'; $LANG['user.loginshell'] = 'Shell'; $LANG['user.mail'] = 'Endereço de email principal'; $LANG['user.mailalternateaddress'] = 'Endereço(s) de e-mail externo'; $LANG['user.mailforwardingaddress'] = 'Forward Mail To'; $LANG['user.mailhost'] = 'E-mail do servidor'; $LANG['user.mailquota'] = 'Quota'; $LANG['user.mailquota.desc'] = 'Deixar em branco sem nenhum tempo determinado.'; $LANG['user.mobile'] = 'Número do telefone móvel'; $LANG['user.name'] = 'Nome'; $LANG['user.norecords'] = 'Nenhum registro de usuário encontrado!'; $LANG['user.nsrole'] = 'função(s)'; $LANG['user.nsroledn'] = 'função(s)'; $LANG['user.other'] = 'Outro'; $LANG['user.o'] = 'Organização'; $LANG['user.org'] = 'Organização'; $LANG['user.orgunit'] = 'Unidade organizacional'; $LANG['user.ou'] = 'Unidade organizacional'; $LANG['user.pager'] = 'Pager'; $LANG['user.password.mismatch'] = 'As senhas não combinam!'; $LANG['user.personal'] = 'Pessoal'; $LANG['user.phone'] = 'Telefone'; $LANG['user.postalcode'] = 'Código postal'; $LANG['user.postbox'] = 'Caixa postal'; $LANG['user.postcode'] = 'Código postal'; $LANG['user.preferredlanguage'] = 'Native tongue'; $LANG['user.room'] = 'Número do quarto'; $LANG['user.sn'] = 'Sobrenome'; $LANG['user.street'] = 'Rua'; $LANG['user.system'] = 'Sistema'; $LANG['user.telephonenumber'] = 'Telefone'; $LANG['user.title'] = 'Título do trabalho'; $LANG['user.type_id'] = 'Tipo de conta'; $LANG['user.uid'] = 'Identificador único (UID)'; $LANG['user.userpassword'] = 'Senha'; $LANG['user.userpassword2'] = 'Confirmar senha'; $LANG['user.uidnumber'] = 'ID do usuário'; $LANG['welcome'] = 'Bem-vindo à manutenção do servidor Kolab Groupware '; $LANG['yes'] = 'sim'; diff --git a/lib/locale/ru_RU.php b/lib/locale/ru_RU.php index dda3564..d498765 100644 --- a/lib/locale/ru_RU.php +++ b/lib/locale/ru_RU.php @@ -1,444 +1,443 @@ Kolab Server.'; $LANG['about.kolab'] = 'Kolab'; $LANG['about.kolabsys'] = 'Kolab Systems'; $LANG['about.support'] = 'Профессиональную поддержку можно получить от Kolab Systems.'; $LANG['about.technology'] = 'Технология'; $LANG['about.warranty'] = 'Она распространяется абсолютно без гарантий и обычно поддерживается силами сообщества. Помощь и информацию можно найти на сайте сообщества и wiki.'; $LANG['aci.new'] = 'Новый...'; $LANG['aci.edit'] = 'Редактировать...'; $LANG['aci.remove'] = 'Убрать'; $LANG['aci.users'] = 'Пользователи'; $LANG['aci.rights'] = 'Права'; $LANG['aci.targets'] = 'Targets'; $LANG['aci.aciname'] = 'ACI name:'; $LANG['aci.hosts'] = 'Хосты'; $LANG['aci.times'] = 'Times'; $LANG['aci.name'] = 'Имя'; $LANG['aci.userid'] = 'User ID'; $LANG['aci.email'] = 'E-mail'; $LANG['aci.read'] = 'Читать'; $LANG['aci.compare'] = 'Сравнить'; $LANG['aci.search'] = 'Поиск'; $LANG['aci.write'] = 'Запись'; $LANG['aci.selfwrite'] = 'Self-write'; $LANG['aci.delete'] = 'Удалить'; $LANG['aci.add'] = 'Добавить'; $LANG['aci.proxy'] = 'Proxy'; $LANG['aci.all'] = 'Все права'; $LANG['aci.allow'] = 'Разрешить'; $LANG['aci.deny'] = 'Запретить'; $LANG['aci.typeusers'] = 'Пользователи'; $LANG['aci.typegroups'] = 'Группы'; $LANG['aci.typeroles'] = 'Роли'; $LANG['aci.typeadmins'] = 'Администраторы'; $LANG['aci.typespecials'] = 'Особые права'; $LANG['aci.ldap-self'] = 'Self'; $LANG['aci.ldap-anyone'] = 'Все пользователи'; $LANG['aci.ldap-all'] = 'All authenticated users'; $LANG['aci.ldap-parent'] = 'Parent'; $LANG['aci.usersearch'] = 'Искать:'; $LANG['aci.usersearchresult'] = 'Результат поиска:'; $LANG['aci.userselected'] = 'Выбранные пользователи/группы/роли:'; $LANG['aci.useradd'] = 'Добавить'; $LANG['aci.userremove'] = 'Убрать'; $LANG['aci.error.noname'] = 'Требуется имя правила ACI!'; $LANG['aci.error.exists'] = 'Правило ACI с таким именем уже существует!'; $LANG['aci.error.nousers'] = 'Требуется указать хотябы одного пользователя!'; $LANG['aci.rights.target'] = 'Target entry:'; $LANG['aci.rights.filter'] = 'Фильтр'; $LANG['aci.rights.attrs'] = 'Атрибуты:'; $LANG['aci.checkall'] = 'Проверить все'; $LANG['aci.checknone'] = 'Check none'; $LANG['aci.thisentry'] = 'This entry'; $LANG['aci.selected'] = 'Все выбранные'; $LANG['aci.other'] = 'Все кроме выбранных'; $LANG['acl.all'] = 'все'; $LANG['acl.append'] = 'append'; $LANG['acl.custom'] = 'custom...'; $LANG['acl.full'] = 'Full (without access control)'; $LANG['acl.post'] = 'post'; $LANG['acl.read'] = 'читать'; $LANG['acl.read-only'] = 'Read-Only'; $LANG['acl.read-write'] = 'Read/Write'; $LANG['acl.semi-full'] = 'Write new items'; $LANG['acl.write'] = 'писать'; $LANG['acl.l'] = 'Lookup'; $LANG['acl.r'] = 'Читать сообщения'; $LANG['acl.s'] = 'Keep Seen state'; $LANG['acl.w'] = 'Write flags'; $LANG['acl.i'] = 'Insert (Copy into)'; $LANG['acl.p'] = 'Post'; $LANG['acl.c'] = 'Создать вложенную папку'; $LANG['acl.k'] = 'Создать вложенную папку'; $LANG['acl.d'] = 'Удаление сообщений'; $LANG['acl.t'] = 'Удаление сообщений'; $LANG['acl.e'] = 'Expunge'; $LANG['acl.x'] = 'Удалить папку'; $LANG['acl.a'] = 'Administer'; $LANG['acl.n'] = 'Annotate messages'; $LANG['acl.identifier'] = 'Идентификатор'; $LANG['acl.rights'] = 'Права доступа'; $LANG['acl.expire'] = 'Истекают'; $LANG['acl.user'] = 'Пользователь...'; $LANG['acl.anyone'] = 'Все пользователи (любой)'; $LANG['acl.anonymous'] = 'Гости (анонимный)'; $LANG['acl.error.invaliddate'] = 'Неверный формат даты!'; $LANG['acl.error.norights'] = 'Не указаны права доступа!'; $LANG['acl.error.subjectexists'] = 'Права доступа для указанного идентификатора уже существуют!'; $LANG['acl.error.nouser'] = 'Идентификатор пользователя не указан!'; $LANG['add'] = 'Добавить'; $LANG['api.notypeid'] = 'Не указан ID типа объекта!'; $LANG['api.invalidtypeid'] = 'Неверный ID типа объекта!'; $LANG['attribute.add'] = 'Добавить атрибут'; $LANG['attribute.default'] = 'Значение по умолчанию'; $LANG['attribute.static'] = 'Постоянное значение'; $LANG['attribute.name'] = 'Атрибут'; $LANG['attribute.optional'] = 'Необязательный'; $LANG['attribute.maxcount'] = 'Макс. количество'; $LANG['attribute.readonly'] = 'Только для чтения'; $LANG['attribute.type'] = 'Тип поля'; $LANG['attribute.value'] = 'Значение'; $LANG['attribute.value.auto'] = 'Сгенерированное'; $LANG['attribute.value.auto-readonly'] = 'Сгенерированное (только для чтения)'; $LANG['attribute.value.normal'] = 'Обычное'; $LANG['attribute.value.static'] = 'Постоянное'; $LANG['attribute.options'] = 'Опции'; $LANG['attribute.key.invalid'] = 'Ключ содержит запрещенные символы!'; $LANG['attribute.required.error'] = 'Требуемые атрибуты отсутствуют в списке атрибутов ($1)!'; $LANG['attribute.validate'] = ' Validation'; $LANG['attribute.validate.default'] = 'по умолчанию'; $LANG['attribute.validate.none'] = 'none'; $LANG['attribute.validate.basic'] = 'базовый'; $LANG['attribute.validate.extended'] = 'расширенный'; $LANG['button.cancel'] = 'Отмена'; $LANG['button.delete'] = 'Удалить'; $LANG['button.ok'] = 'Ок'; $LANG['button.save'] = 'Сохранить'; $LANG['button.submit'] = 'Отправить'; $LANG['creatorsname'] = 'Создатель'; $LANG['days'] = 'дней'; $LANG['debug'] = 'Отладочная информация'; $LANG['delete'] = 'Удалить'; $LANG['deleting'] = 'Удаление данных...'; $LANG['domain.add'] = 'Добавить домен'; $LANG['domain.add.success'] = 'Домен успешно создан.'; $LANG['domain.associateddomain'] = 'Доменные имена'; $LANG['domain.delete.confirm'] = 'Вы уверены, что хотите удалить этот домен?'; $LANG['domain.delete.force'] = "К домену приписаны пользователи.\nВы уверены, что хотите удалить этот домен и все его объекты?"; $LANG['domain.delete.success'] = 'Домен успешно удален.'; $LANG['domain.edit'] = 'Редактировать домен'; $LANG['domain.edit.success'] = 'Домен успешно обновлен.'; $LANG['domain.inetdomainbasedn'] = 'Custom Root DN'; $LANG['domain.inetdomainstatus'] = 'Статус'; $LANG['domain.list'] = 'Список доменов'; $LANG['domain.norecords'] = 'Домены не найдены!'; $LANG['domain.o'] = 'Организация'; $LANG['domain.other'] = 'Прочее'; $LANG['domain.system'] = 'Система'; $LANG['domain.type_id'] = 'Стандартный домен'; $LANG['edit'] = 'Редактировать'; $LANG['error'] = 'Ошибка'; $LANG['error.401'] = 'Неавторизован.'; $LANG['error.403'] = 'Доступ запрещён.'; $LANG['error.404'] = 'Объект не найден.'; $LANG['error.408'] = 'Время запроса превышено.'; $LANG['error.450'] = 'Домен не пуст.'; $LANG['error.500'] = 'Внутренняя ошибка сервера.'; $LANG['error.503'] = 'Сервис недоступен. Попробуйте позже.'; $LANG['form.required.empty'] = 'Некоторые обязательные поля не заполнены!'; $LANG['form.maxcount.exceeded'] = 'Превышено максимальное количество элементов!'; $LANG['group.add'] = 'Добавить группу'; $LANG['group.add.success'] = 'Группа успешно создана.'; $LANG['group.cn'] = 'Общее обозначение'; $LANG['group.delete.confirm'] = 'Вы уверены, что хотите удалить эту группу?'; $LANG['group.delete.success'] = 'Группа успешно удалена.'; $LANG['group.edit.success'] = 'Группа успешно обновлена.'; $LANG['group.gidnumber'] = 'Номер основной группы'; $LANG['group.kolaballowsmtprecipient'] = 'Список разрешенных получателей'; $LANG['group.kolaballowsmtpsender'] = 'Список разрешенных отправителей'; $LANG['group.list'] = 'Список групп'; $LANG['group.mail'] = 'Основная электронная почта'; $LANG['group.member'] = 'Участник(и)'; $LANG['group.memberurl'] = 'URL участников'; $LANG['group.norecords'] = 'Группы не найдены!'; $LANG['group.other'] = 'Прочее'; $LANG['group.ou'] = 'Организационная единица'; $LANG['group.system'] = 'Система'; $LANG['group.type_id'] = 'Тип группы'; $LANG['group.uniquemember'] = 'Участники'; $LANG['info'] = 'Информация'; $LANG['internalerror'] = 'Внутренняя ошибка!'; $LANG['ldap.one'] = 'one: только на уровень ниже базы поиска'; $LANG['ldap.sub'] = 'sub: по всему поддереву от базы поиска'; $LANG['ldap.base'] = 'base: только в этом узле'; $LANG['ldap.basedn'] = 'База поиска'; $LANG['ldap.host'] = 'Сервер LDAP'; $LANG['ldap.conditions'] = 'Условия'; $LANG['ldap.scope'] = 'Глубина поиска'; $LANG['ldap.filter_any'] = 'не пустой'; $LANG['ldap.filter_both'] = 'содержит'; $LANG['ldap.filter_prefix'] = 'начинается с'; $LANG['ldap.filter_suffix'] = 'заканчивается на'; $LANG['ldap.filter_exact'] = 'Равен'; $LANG['list.records'] = 'от $1 до $2 из $3'; $LANG['loading'] = 'Загрузка...'; $LANG['logout'] = 'Выход'; -$LANG['login.username'] = 'Имя пользователя:'; -$LANG['login.password'] = 'Пароль:'; -$LANG['login.domain'] = 'Домен:'; +$LANG['login.username'] = 'Имя пользователя'; +$LANG['login.password'] = 'Пароль'; $LANG['login.login'] = 'Логин'; $LANG['loginerror'] = 'Неверное имя пользователя или пароль!'; $LANG['MB'] = 'МБ'; $LANG['menu.about'] = 'О программе'; $LANG['menu.domains'] = 'Домены'; $LANG['menu.groups'] = 'Группы'; $LANG['menu.ous'] = 'Units'; $LANG['menu.resources'] = 'Ресурсы'; $LANG['menu.roles'] = 'Роли'; $LANG['menu.settings'] = 'Настройки'; $LANG['menu.sharedfolders'] = 'Общие папки'; $LANG['menu.users'] = 'Пользователи'; $LANG['modifiersname'] = 'Изменено'; $LANG['password.generate'] = 'Сгенерировать пароль'; $LANG['reqtime'] = 'Время запроса: $1 с.'; $LANG['ou.aci'] = 'Права доступа'; $LANG['ou.add'] = 'Add Unit'; $LANG['ou.add.success'] = 'Unit created successfully.'; $LANG['ou.ou'] = 'Unit Name'; $LANG['ou.delete.confirm'] = 'Are you sure, you want to delete this organizational unit?'; $LANG['ou.delete.success'] = 'Unit deleted successfully.'; $LANG['ou.description'] = 'Unit Description'; $LANG['ou.edit.success'] = 'Unit updated successfully.'; $LANG['ou.list'] = 'Organizational Unit List'; $LANG['ou.norecords'] = 'No organizational unit records found!'; $LANG['ou.system'] = 'Подробнее'; $LANG['ou.type_id'] = 'Unit Type'; $LANG['ou.base_dn'] = 'Parent Unit'; $LANG['resource.acl'] = 'Права доступа'; $LANG['resource.add'] = 'Добавить ресурс'; $LANG['resource.add.success'] = 'Ресурс успешно создан.'; $LANG['resource.cn'] = 'Название'; $LANG['resource.delete'] = 'Удалить ресурс'; $LANG['resource.delete.confirm'] = 'Вы уверены, что хотите удалить этот ресурс?'; $LANG['resource.delete.success'] = 'Ресурс успешно удален.'; $LANG['resource.edit'] = 'Редактировать ресурс'; $LANG['resource.edit.success'] = 'Ресурс успешно обновлен.'; $LANG['resource.kolabtargetfolder'] = 'Целевая папка'; $LANG['resource.kolabinvitationpolicy'] = 'Invitation Policy'; $LANG['resource.list'] = 'Список ресурсов (коллекций)'; $LANG['resource.mail'] = 'Почтовый адрес'; $LANG['resource.member'] = 'Элементы коллекции'; $LANG['resource.norecords'] = 'Ресурсы не найдены!'; $LANG['resource.other'] = 'Другое'; $LANG['resource.ou'] = 'Организационная единица'; $LANG['resource.system'] = 'Система'; $LANG['resource.type_id'] = 'Тип ресурса'; $LANG['resource.uniquemember'] = 'Элементы коллекции'; $LANG['resource.description'] = 'Описание'; $LANG['resource.owner'] = 'Владелец'; $LANG['role.add'] = 'Добавить роль'; $LANG['role.add.success'] = 'Роль успешно создана.'; $LANG['role.cn'] = 'Название роли'; $LANG['role.delete.confirm'] = 'Вы уверены, что хотите удалить эту роль?'; $LANG['role.delete.success'] = 'Роль успешно удалена.'; $LANG['role.description'] = 'Описание роли'; $LANG['role.edit.success'] = 'Роль успешно обновлена.'; $LANG['role.list'] = 'Список ролей'; $LANG['role.norecords'] = 'Роли не найдены!'; $LANG['role.system'] = 'Подробнее'; $LANG['role.type_id'] = 'Тип роли'; $LANG['saving'] = 'Сохранение данных...'; -$LANG['search'] = 'Поиск'; +$LANG['search'] = 'Поиск...'; $LANG['search.reset'] = 'Сбросить'; $LANG['search.criteria'] = 'Критерий'; $LANG['search.field'] = 'Поле:'; $LANG['search.method'] = 'Метод:'; $LANG['search.contains'] = 'содержит'; $LANG['search.is'] = 'точное совпадение'; $LANG['search.key'] = 'key'; $LANG['search.prefix'] = 'начинается с'; $LANG['search.name'] = 'название'; $LANG['search.email'] = 'электронная почта'; $LANG['search.description'] = 'описание'; $LANG['search.uid'] = 'UID'; $LANG['search.loading'] = 'Поиск...'; $LANG['search.acchars'] = 'Как минимум $min символа(ов) необходимо для автодополнения'; $LANG['servererror'] = 'Ошибка сервера!'; $LANG['session.expired'] = 'Время сессии истекло, пожалуйста, войдите в систему заново'; $LANG['sharedfolder.acl'] = 'Права доступа IMAP'; $LANG['sharedfolder.add'] = 'Добавить Общую папку'; $LANG['sharedfolder.add.success'] = 'Общая папка создана успешно.'; $LANG['sharedfolder.alias'] = 'Дополнительные адреса электронной почты'; $LANG['sharedfolder.cn'] = 'Имя папки'; $LANG['sharedfolder.delete.confirm'] = 'Вы уверены, что хотите удалить эту Общую папку?'; $LANG['sharedfolder.delete.success'] = 'Общая папка удалена успешно.'; $LANG['sharedfolder.edit'] = 'Изменить Общую папку'; $LANG['sharedfolder.edit.success'] = 'Общая папка изменена успешно.'; $LANG['sharedfolder.kolaballowsmtprecipient'] = 'Список разрешенных получателей'; $LANG['sharedfolder.kolaballowsmtpsender'] = 'Список разрешенных отправителей'; $LANG['sharedfolder.kolabdelegate'] = 'Представитель(и)'; $LANG['sharedfolder.kolabtargetfolder'] = 'Целевая папка IMAP'; $LANG['sharedfolder.list'] = 'Список Общих папок'; $LANG['sharedfolder.norecords'] = 'Не найдено ни одной Общей папки!'; $LANG['sharedfolder.mail'] = 'Адрес эл. почты'; $LANG['sharedfolder.other'] = 'Прочее'; $LANG['sharedfolder.system'] = 'Система'; $LANG['sharedfolder.type_id'] = 'Тип Общей папки'; $LANG['signup.headline'] = 'Регистрация на хостинге Kolab'; $LANG['signup.intro1'] = 'Иметь учётную запись на сервере Kolab намного лучше, чем просто эл. почту. Он так же предоставляет вам полный функционал для группового взаимодействия, включая синхронизацию общих адресных книг, календарей, задач, журналов и так далее.'; $LANG['signup.intro2'] = 'Вы можете зарегистрироваться здесь для получения аккаунта.'; $LANG['signup.formtitle'] = 'Зарегистрироваться'; $LANG['signup.username'] = 'Имя пользователя'; $LANG['signup.domain'] = 'Домен'; $LANG['signup.mailalternateaddress'] = 'Текущий адрес электронной почты'; $LANG['signup.futuremail'] = 'Будущий адрес электронной почты'; $LANG['signup.company'] = 'Организация'; $LANG['signup.captcha'] = 'CAPTCHA'; $LANG['signup.userexists'] = 'Пользователь уже существует!'; $LANG['signup.usercreated'] = '

    Ваша учетная запись была успешно создана!

    Поздравляем, теперь у Вас есть собственная учетная запись Kolab.'; $LANG['signup.wronguid'] = 'Неверное имя пользователя!'; $LANG['signup.wrongmailalternateaddress'] = 'Пожалуйста, укажите корректный адрес электронной почты!'; $LANG['signup.footer'] = 'Сервис предоставляется Kolab Systems.'; $LANG['type.add'] = 'Добавить объект'; $LANG['type.add.success'] = 'Объект успешно создан.'; $LANG['type.attributes'] = 'Атрибуты'; $LANG['type.description'] = 'Описание'; $LANG['type.delete.confirm'] = 'Вы уверены, что хотите удалить этот тип объектов?'; $LANG['type.delete.success'] = 'Объект успешно удалён.'; $LANG['type.domain'] = 'Домен'; $LANG['type.edit.success'] = 'Объект успешно обновлён.'; $LANG['type.group'] = 'Группа'; $LANG['type.list'] = 'Список объектов'; $LANG['type.key'] = 'Ключ'; $LANG['type.name'] = 'Название'; $LANG['type.norecords'] = 'Объектов не найдено!'; $LANG['type.objectclass'] = 'Класс объекта'; $LANG['type.object_type'] = 'Тип объекта'; $LANG['type.ou'] = 'Организационная единица'; $LANG['type.properties'] = 'Свойства'; $LANG['type.resource'] = 'Ресурс'; $LANG['type.role'] = 'Роль'; $LANG['type.sharedfolder'] = 'Общая папка'; $LANG['type.used_for'] = 'Хостинг'; $LANG['type.user'] = 'Пользователь'; $LANG['user.add'] = 'Добавить пользователя'; $LANG['user.add.success'] = 'Пользователь успешно создан.'; $LANG['user.alias'] = 'Дополнительные адреса электронной почты'; $LANG['user.astaccountallowedcodec'] = 'Допустимый(ые) кодек(и)'; $LANG['user.astaccountcallerid'] = 'ID звонящего'; $LANG['user.astaccountcontext'] = 'Контекст учётной записи'; $LANG['user.astaccountdefaultuser'] = 'Пользователь Asterisk по умолчанию'; $LANG['user.astaccountdeny'] = 'Account deny'; $LANG['user.astaccounthost'] = 'Хост Asterisk'; $LANG['user.astaccountmailbox'] = 'Почтовый ящик'; $LANG['user.astaccountnat'] = 'Учетная запись использует NAT'; $LANG['user.astaccountname'] = 'Имя учетной записи Asterisk'; $LANG['user.astaccountqualify'] = 'Account Qualify'; $LANG['user.astaccountrealmedpassword'] = 'Realmed Account Password'; $LANG['user.astaccountregistrationexten'] = 'Расширение'; $LANG['user.astaccountregistrationcontext'] = 'Контекст регистрации'; $LANG['user.astaccountsecret'] = 'Пароль в открытом виде'; $LANG['user.astaccounttype'] = 'Тип учетной записи'; $LANG['user.astcontext'] = 'Контекст Asterisk'; $LANG['user.asterisk'] = 'Asterisk SIP'; $LANG['user.astextension'] = 'Расширение Asterisk'; $LANG['user.astvoicemailpassword'] = 'ПИН голосовой почты'; $LANG['user.c'] = 'Страна'; $LANG['user.city'] = 'Город'; $LANG['user.cn'] = 'Общее обозначение'; $LANG['user.config'] = 'Конфигурация'; $LANG['user.contact'] = 'Контакты'; $LANG['user.contact_info'] = 'Контактная информация'; $LANG['user.country'] = 'Страна'; $LANG['user.country.desc'] = '2-буквенный код страны согласно ISO 3166-1'; $LANG['user.delete.confirm'] = 'Вы уверены, что хотите удалить этого пользователя?'; $LANG['user.delete.success'] = 'Пользователь успешно удален.'; $LANG['user.displayname'] = 'Имя для отображения'; $LANG['user.edit.success'] = 'Пользователь успешно изменен.'; $LANG['user.fax'] = 'Факс'; $LANG['user.fbinterval'] = 'Интервал для свободен/занят'; $LANG['user.fbinterval.desc'] = 'Оставьте пустым для значения по умолчанию (60 дней)'; $LANG['user.gidnumber'] = 'Номер основной группы'; $LANG['user.givenname'] = 'Имя'; $LANG['user.homedirectory'] = 'Домашняя директория'; $LANG['user.homephone'] = 'Домашний телефон'; $LANG['user.initials'] = 'Инициалы'; $LANG['user.invitation-policy'] = 'Политика приглашений'; $LANG['user.kolaballowsmtprecipient'] = 'Список разрешенных получателей'; $LANG['user.kolaballowsmtpsender'] = 'Список разрешенных отправителей'; $LANG['user.kolabdelegate'] = 'Представители'; $LANG['user.kolabhomeserver'] = 'Почтовый сервер'; $LANG['user.kolabinvitationpolicy'] = 'Политика обработки приглашений'; $LANG['user.l'] = 'Город, регион'; $LANG['user.list'] = 'Список пользователей'; $LANG['user.loginshell'] = 'Оболочка'; $LANG['user.mail'] = 'Основной адрес электронной почты'; $LANG['user.mailalternateaddress'] = 'Внешние адреса эл. почты'; $LANG['user.mailforwardingaddress'] = 'Перенаправлять почту на'; $LANG['user.mailhost'] = 'Почтовый сервер'; $LANG['user.mailquota'] = 'Ограничение почтового ящика'; $LANG['user.mailquota.desc'] = 'Оставьте пустым, для неограниченного'; $LANG['user.mobile'] = 'Сотовый'; $LANG['user.name'] = 'Имя'; $LANG['user.norecords'] = 'Пользователи не найдены!'; $LANG['user.nsrole'] = 'Роль(и)'; $LANG['user.nsroledn'] = 'Роль(и)'; $LANG['user.other'] = 'Другое'; $LANG['user.o'] = 'Организация'; $LANG['user.org'] = 'Организация'; $LANG['user.orgunit'] = 'Организационная единица'; $LANG['user.ou'] = 'Организационная единица'; $LANG['user.pager'] = 'Пейджер'; $LANG['user.password.mismatch'] = 'Пароли не совпадают!'; $LANG['user.personal'] = 'Личное'; $LANG['user.phone'] = 'Телефон'; $LANG['user.postalcode'] = 'Почтовый индекс'; $LANG['user.postbox'] = 'Почтовый ящик'; $LANG['user.postcode'] = 'Почтовый индекс'; $LANG['user.preferredlanguage'] = 'Родной язык'; $LANG['user.room'] = 'Номер комнаты'; $LANG['user.sn'] = 'Фамилия'; $LANG['user.street'] = 'Улица'; $LANG['user.system'] = 'Система'; $LANG['user.telephonenumber'] = 'Телефон'; $LANG['user.title'] = 'Должность'; $LANG['user.type_id'] = 'Тип учетной записи'; $LANG['user.uid'] = 'Уникальный идентификатор (UID)'; $LANG['user.userpassword'] = 'Пароль'; $LANG['user.userpassword2'] = 'Повторите пароль'; $LANG['user.uidnumber'] = 'Идентификатор (ID) пользователя'; $LANG['welcome'] = 'Добро пожаловать в панель настройки сервера Kolab Groupware'; $LANG['yes'] = 'да'; diff --git a/public_html/js/jquery.datetimepicker.js b/public_html/js/jquery.datetimepicker.js deleted file mode 100644 index bf64572..0000000 --- a/public_html/js/jquery.datetimepicker.js +++ /dev/null @@ -1,1287 +0,0 @@ -/** - * @preserve jQuery DateTimePicker plugin v2.2.5 - * @homepage http://xdsoft.net/jqplugins/datetimepicker/ - * (c) 2014, Chupurnov Valeriy. - */ -(function( $ ) { - 'use strict' - var default_options = { - i18n:{ - ru:{ // Russian - months:[ - 'Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь' - ], - dayOfWeek:[ - "Вск", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб" - ] - }, - en:{ // English - months: [ - "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" - ], - dayOfWeek: [ - "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" - ] - }, - de:{ // German - months:[ - 'Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember' - ], - dayOfWeek:[ - "So", "Mo", "Di", "Mi", "Do", "Fr", "Sa" - ] - }, - nl:{ // Dutch - months:[ - "januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december" - ], - dayOfWeek:[ - "zo", "ma", "di", "wo", "do", "vr", "za" - ] - }, - tr:{ // Turkish - months:[ - "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık" - ], - dayOfWeek:[ - "Paz", "Pts", "Sal", "Çar", "Per", "Cum", "Cts" - ] - }, - fr:{ //French - months:[ - "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre" - ], - dayOfWeek:[ - "Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam" - ] - }, - es:{ // Spanish - months: [ - "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre" - ], - dayOfWeek: [ - "Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb" - ] - }, - th:{ // Thai - months:[ - 'มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน','กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม' - ], - dayOfWeek:[ - 'อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.' - ] - }, - pl:{ // Polish - months: [ - "styczeń", "luty", "marzec", "kwiecień", "maj", "czerwiec", "lipiec", "sierpień", "wrzesień", "październik", "listopad", "grudzień" - ], - dayOfWeek: [ - "nd", "pn", "wt", "śr", "cz", "pt", "sb" - ] - }, - pt:{ // Portuguese - months: [ - "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro" - ], - dayOfWeek: [ - "Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab" - ] - }, - ch:{ // Simplified Chinese - months: [ - "一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月" - ], - dayOfWeek: [ - "日", "一","二","三","四","五","六" - ] - }, - se:{ // Swedish - months: [ - "Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September","Oktober", "November", "December" - ], - dayOfWeek: [ - "Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör" - ] - }, - kr:{ // Korean - months: [ - "1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월" - ], - dayOfWeek: [ - "일", "월", "화", "수", "목", "금", "토" - ] - }, - it:{ // Italian - months: [ - "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre" - ], - dayOfWeek: [ - "Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab" - ] - }, - da:{ // Dansk - months: [ - "January", "Februar", "Marts", "April", "Maj", "Juni", "July", "August", "September", "Oktober", "November", "December" - ], - dayOfWeek: [ - "Søn", "Man", "Tir", "ons", "Tor", "Fre", "lør" - ] - }, - ja:{ // Japanese - months: [ - "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月" - ], - dayOfWeek: [ - "日", "月", "火", "水", "木", "金", "土" - ] - } - }, - value:'', - lang: 'en', - - format: 'Y/m/d H:i', - formatTime: 'H:i', - formatDate: 'Y/m/d', - - startDate: false, // new Date(), '1986/12/08', '-1970/01/05','-1970/01/05', - - //fromUnixtime: false, - - step:60, - - closeOnDateSelect:false, - closeOnWithoutClick:true, - - timepicker:true, - datepicker:true, - - minDate:false, - maxDate:false, - minTime:false, - maxTime:false, - - allowTimes:[], - opened:false, - initTime:true, - inline:false, - - onSelectDate:function() {}, - onSelectTime:function() {}, - onChangeMonth:function() {}, - onChangeDateTime:function() {}, - onShow:function() {}, - onClose:function() {}, - onGenerate:function() {}, - - withoutCopyright:true, - - inverseButton:false, - hours12:false, - next: 'xdsoft_next', - prev : 'xdsoft_prev', - dayOfWeekStart:0, - - timeHeightInTimePicker:25, - timepickerScrollbar:true, - - todayButton:true, // 2.1.0 - defaultSelect:true, // 2.1.0 - - scrollMonth:true, - scrollTime:true, - scrollInput:true, - - lazyInit:false, - - mask:false, - validateOnBlur:true, - allowBlank:true, - - yearStart:1950, - yearEnd:2050, - - style:'', - id:'', - - roundTime:'round', // ceil, floor - className:'', - - weekends : [], - yearOffset:0 - }; - - // fix for ie8 - if ( !Array.prototype.indexOf ) { - Array.prototype.indexOf = function(obj, start) { - for (var i = (start || 0), j = this.length; i < j; i++) { - if (this[i] === obj) { return i; } - } - return -1; - } - }; - - $.fn.xdsoftScroller = function( _percent ) { - return this.each(function() { - var timeboxparent = $(this); - if( !$(this).hasClass('xdsoft_scroller_box') ) { - var pointerEventToXY = function( e ) { - var out = {x:0, y:0}; - if( e.type == 'touchstart' || e.type == 'touchmove' || e.type == 'touchend' || e.type == 'touchcancel' ) { - var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; - out.x = touch.pageX; - out.y = touch.pageY; - }else if (e.type == 'mousedown' || e.type == 'mouseup' || e.type == 'mousemove' || e.type == 'mouseover'|| e.type=='mouseout' || e.type=='mouseenter' || e.type=='mouseleave') { - out.x = e.pageX; - out.y = e.pageY; - } - return out; - }, - move = 0, - timebox = timeboxparent.children().eq(0), - parentHeight = timeboxparent[0].clientHeight, - height = timebox[0].offsetHeight, - scrollbar = $('
    '), - scroller = $('
    '), - maximumOffset = 100, - start = false; - - scrollbar.append(scroller); - - timeboxparent.addClass('xdsoft_scroller_box').append(scrollbar); - scroller.on('mousedown.xdsoft_scroller',function ( event ) { - if( !parentHeight ) - timeboxparent.trigger('resize_scroll.xdsoft_scroller',[_percent]); - var pageY = event.pageY, - top = parseInt(scroller.css('margin-top')), - h1 = scrollbar[0].offsetHeight; - $(document.body).addClass('xdsoft_noselect'); - $([document.body,window]).on('mouseup.xdsoft_scroller',function arguments_callee() { - $([document.body,window]).off('mouseup.xdsoft_scroller',arguments_callee) - .off('mousemove.xdsoft_scroller',move) - .removeClass('xdsoft_noselect'); - }); - $(document.body).on('mousemove.xdsoft_scroller',move = function(event) { - var offset = event.pageY-pageY+top; - if( offset<0 ) - offset = 0; - if( offset+scroller[0].offsetHeight>h1 ) - offset = h1-scroller[0].offsetHeight; - timeboxparent.trigger('scroll_element.xdsoft_scroller',[maximumOffset?offset/maximumOffset:0]); - }); - }); - - timeboxparent - .on('scroll_element.xdsoft_scroller',function( event,percent ) { - if( !parentHeight ) - timeboxparent.trigger('resize_scroll.xdsoft_scroller',[percent,true]); - percent = percent>1?1:(percent<0||isNaN(percent))?0:percent; - scroller.css('margin-top',maximumOffset*percent); - timebox.css('marginTop',-parseInt((height-parentHeight)*percent)) - }) - .on('resize_scroll.xdsoft_scroller',function( event,_percent,noTriggerScroll ) { - parentHeight = timeboxparent[0].clientHeight; - height = timebox[0].offsetHeight; - var percent = parentHeight/height, - sh = percent*scrollbar[0].offsetHeight; - if( percent>1 ) - scroller.hide(); - else{ - scroller.show(); - scroller.css('height',parseInt(sh>10?sh:10)); - maximumOffset = scrollbar[0].offsetHeight-scroller[0].offsetHeight; - if( noTriggerScroll!==true ) - timeboxparent.trigger('scroll_element.xdsoft_scroller',[_percent?_percent:Math.abs(parseInt(timebox.css('marginTop')))/(height-parentHeight)]); - } - }); - timeboxparent.mousewheel&&timeboxparent.mousewheel(function(event, delta, deltaX, deltaY) { - var top = Math.abs(parseInt(timebox.css('marginTop'))); - timeboxparent.trigger('scroll_element.xdsoft_scroller',[(top-delta*20)/(height-parentHeight)]); - event.stopPropagation(); - return false; - }); - timeboxparent.on('touchstart',function( event ) { - start = pointerEventToXY(event); - }); - timeboxparent.on('touchmove',function( event ) { - if( start ) { - var coord = pointerEventToXY(event), top = Math.abs(parseInt(timebox.css('marginTop'))); - timeboxparent.trigger('scroll_element.xdsoft_scroller',[(top-(coord.y-start.y))/(height-parentHeight)]); - event.stopPropagation(); - event.preventDefault(); - }; - }); - timeboxparent.on('touchend touchcancel',function( event ) { - start = false; - }); - } - timeboxparent.trigger('resize_scroll.xdsoft_scroller',[_percent]); - }); - }; - $.fn.datetimepicker = function( opt ) { - var KEY0 = 48, - KEY9 = 57, - _KEY0 = 96, - _KEY9 = 105, - CTRLKEY = 17, - DEL = 46, - ENTER = 13, - ESC = 27, - BACKSPACE = 8, - ARROWLEFT = 37, - ARROWUP = 38, - ARROWRIGHT = 39, - ARROWDOWN = 40, - TAB = 9, - F5 = 116, - AKEY = 65, - CKEY = 67, - VKEY = 86, - ZKEY = 90, - YKEY = 89, - ctrlDown = false, - options = ($.isPlainObject(opt)||!opt)?$.extend(true,{},default_options,opt):$.extend({},default_options), - - lazyInitTimer = 0, - - lazyInit = function( input ){ - input - .on('open.xdsoft focusin.xdsoft mousedown.xdsoft',function initOnActionCallback(event) { - if( input.is(':disabled')||input.is(':hidden')||!input.is(':visible')||input.data( 'xdsoft_datetimepicker') ) - return; - - clearTimeout(lazyInitTimer); - - lazyInitTimer = setTimeout(function() { - - if( !input.data( 'xdsoft_datetimepicker') ) - createDateTimePicker(input); - - input - .off('open.xdsoft focusin.xdsoft mousedown.xdsoft',initOnActionCallback) - .trigger('open.xdsoft'); - },100); - - }); - }, - - createDateTimePicker = function( input ) { - - var datetimepicker = $('
    '), - xdsoft_copyright = $(''), - datepicker = $('
    '), - mounth_picker = $('
    '), - calendar = $('
    '), - timepicker = $('
    '), - timeboxparent = timepicker.find('.xdsoft_time_box').eq(0), - timebox = $('
    '), - scrollbar = $('
    '), - scroller = $('
    '), - monthselect =$('
    '), - yearselect =$('
    '); - - //constructor lego - mounth_picker - .find('.xdsoft_month span') - .after(monthselect); - mounth_picker - .find('.xdsoft_year span') - .after(yearselect); - - mounth_picker - .find('.xdsoft_month,.xdsoft_year') - .on('mousedown.xdsoft',function(event) { - mounth_picker - .find('.xdsoft_select') - .hide(); - - var select = $(this).find('.xdsoft_select').eq(0), - val = 0, - top = 0; - - if( _xdsoft_datetime.currentTime ) - val = _xdsoft_datetime.currentTime[$(this).hasClass('xdsoft_month')?'getMonth':'getFullYear'](); - - select.show(); - - for(var items = select.find('div.xdsoft_option'),i = 0;i6 ) - options.dayOfWeekStart = 0; - else - options.dayOfWeekStart = parseInt(options.dayOfWeekStart); - - if( !options.timepickerScrollbar ) - scrollbar.hide(); - - if( options.minDate && /^-(.*)$/.test(options.minDate) ){ - options.minDate = _xdsoft_datetime.strToDateTime(options.minDate).dateFormat( options.formatDate ); - } - - if( options.maxDate && /^\+(.*)$/.test(options.maxDate) ) { - options.maxDate = _xdsoft_datetime.strToDateTime(options.maxDate).dateFormat( options.formatDate ); - } - - mounth_picker - .find('.xdsoft_today_button') - .css('visibility',!options.todayButton?'hidden':'visible'); - - if( options.mask ) { - var e, - getCaretPos = function ( input ) { - try{ - if ( document.selection && document.selection.createRange ) { - var range = document.selection.createRange(); - return range.getBookmark().charCodeAt(2) - 2; - }else - if ( input.setSelectionRange ) - return input.selectionStart; - }catch(e) { - return 0; - } - }, - setCaretPos = function ( node,pos ) { - var node = (typeof node == "string" || node instanceof String) ? document.getElementById(node) : node; - if(!node) { - return false; - }else if(node.createTextRange) { - var textRange = node.createTextRange(); - textRange.collapse(true); - textRange.moveEnd(pos); - textRange.moveStart(pos); - textRange.select(); - return true; - }else if(node.setSelectionRange) { - node.setSelectionRange(pos,pos); - return true; - } - return false; - }, - isValidValue = function ( mask,value ) { - var reg = mask - .replace(/([\[\]\/\{\}\(\)\-\.\+]{1})/g,'\\$1') - .replace(/_/g,'{digit+}') - .replace(/([0-9]{1})/g,'{digit$1}') - .replace(/\{digit([0-9]{1})\}/g,'[0-$1_]{1}') - .replace(/\{digit[\+]\}/g,'[0-9_]{1}'); - return RegExp(reg).test(value); - }; - input.off('keydown.xdsoft'); - switch(true) { - case ( options.mask===true ): - - options.mask = options.format - .replace(/Y/g,'9999') - .replace(/F/g,'9999') - .replace(/m/g,'19') - .replace(/d/g,'39') - .replace(/H/g,'29') - .replace(/i/g,'59') - .replace(/s/g,'59'); - - case ( $.type(options.mask) == 'string' ): - - if( !isValidValue( options.mask,input.val() ) ) - input.val(options.mask.replace(/[0-9]/g,'_')); - - input.on('keydown.xdsoft',function( event ) { - var val = this.value, - key = event.which; - - switch(true) { - case (( key>=KEY0&&key<=KEY9 )||( key>=_KEY0&&key<=_KEY9 ))||(key==BACKSPACE||key==DEL): - var pos = getCaretPos(this), - digit = ( key!=BACKSPACE&&key!=DEL )?String.fromCharCode((_KEY0 <= key && key <= _KEY9)? key-KEY0 : key):'_'; - - if( (key==BACKSPACE||key==DEL)&&pos ) { - pos--; - digit='_'; - } - - while( /[^0-9_]/.test(options.mask.substr(pos,1))&&pos0 ) - pos+=( key==BACKSPACE||key==DEL )?-1:1; - - val = val.substr(0,pos)+digit+val.substr(pos+1); - if( $.trim(val)=='' ){ - val = options.mask.replace(/[0-9]/g,'_'); - }else{ - if( pos==options.mask.length ) - break; - } - - pos+=(key==BACKSPACE||key==DEL)?0:1; - while( /[^0-9_]/.test(options.mask.substr(pos,1))&&pos0 ) - pos+=(key==BACKSPACE||key==DEL)?-1:1; - - if( isValidValue( options.mask,val ) ) { - this.value = val; - setCaretPos(this,pos); - }else if( $.trim(val)=='' ) - this.value = options.mask.replace(/[0-9]/g,'_'); - else{ - input.trigger('error_input.xdsoft'); - } - break; - case ( !!~([AKEY,CKEY,VKEY,ZKEY,YKEY].indexOf(key))&&ctrlDown ): - case !!~([ESC,ARROWUP,ARROWDOWN,ARROWLEFT,ARROWRIGHT,F5,CTRLKEY,TAB,ENTER].indexOf(key)): - return true; - } - event.preventDefault(); - return false; - }); - break; - } - } - if( options.validateOnBlur ) { - input - .off('blur.xdsoft') - .on('blur.xdsoft', function() { - if( options.allowBlank && !$.trim($(this).val()).length ) { - $(this).val(null); - datetimepicker.data('xdsoft_datetime').empty(); - }else if( !Date.parseDate( $(this).val(), options.format ) ) { - $(this).val((_xdsoft_datetime.now()).dateFormat( options.format )); - datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val()); - } - else{ - datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val()); - } - datetimepicker.trigger('changedatetime.xdsoft'); - }); - } - options.dayOfWeekStartPrev = (options.dayOfWeekStart==0)?6:options.dayOfWeekStart-1; - datetimepicker - .trigger('xchange.xdsoft'); - }; - - datetimepicker - .data('options',options) - .on('mousedown.xdsoft',function( event ) { - event.stopPropagation(); - event.preventDefault(); - yearselect.hide(); - monthselect.hide(); - return false; - }); - - var scroll_element = timepicker.find('.xdsoft_time_box'); - scroll_element.append(timebox); - scroll_element.xdsoftScroller(); - datetimepicker.on('afterOpen.xdsoft',function() { - scroll_element.xdsoftScroller(); - }); - - datetimepicker - .append(datepicker) - .append(timepicker); - - if( options.withoutCopyright!==true ) - datetimepicker - .append(xdsoft_copyright); - - datepicker - .append(mounth_picker) - .append(calendar); - - $('body').append(datetimepicker); - - var _xdsoft_datetime = new function() { - var _this = this; - _this.now = function() { - var d = new Date(); - if( options.yearOffset ) - d.setFullYear(d.getFullYear()+options.yearOffset); - return d; - }; - - _this.currentTime = this.now(); - _this.isValidDate = function (d) { - if ( Object.prototype.toString.call(d) !== "[object Date]" ) - return false; - return !isNaN(d.getTime()); - }; - - _this.setCurrentTime = function( dTime) { - _this.currentTime = (typeof dTime == 'string')? _this.strToDateTime(dTime) : _this.isValidDate(dTime) ? dTime: _this.now(); - datetimepicker.trigger('xchange.xdsoft'); - }; - - _this.empty = function() { - _this.currentTime = null; - }; - - _this.getCurrentTime = function( dTime) { - return _this.currentTime; - }; - - _this.nextMonth = function() { - var month = _this.currentTime.getMonth()+1; - if( month==12 ) { - _this.currentTime.setFullYear(_this.currentTime.getFullYear()+1); - month = 0; - } - _this.currentTime.setDate( - Math.min( - Date.daysInMonth[month], - _this.currentTime.getDate() - ) - ) - _this.currentTime.setMonth(month); - options.onChangeMonth&&options.onChangeMonth.call&&options.onChangeMonth.call(datetimepicker,_xdsoft_datetime.currentTime,datetimepicker.data('input')); - datetimepicker.trigger('xchange.xdsoft'); - return month; - }; - - _this.prevMonth = function() { - var month = _this.currentTime.getMonth()-1; - if( month==-1 ) { - _this.currentTime.setFullYear(_this.currentTime.getFullYear()-1); - month = 11; - } - _this.currentTime.setDate( - Math.min( - Date.daysInMonth[month], - _this.currentTime.getDate() - ) - ) - _this.currentTime.setMonth(month); - options.onChangeMonth&&options.onChangeMonth.call&&options.onChangeMonth.call(datetimepicker,_xdsoft_datetime.currentTime,datetimepicker.data('input')); - datetimepicker.trigger('xchange.xdsoft'); - return month; - }; - - _this.strToDateTime = function( sDateTime ) { - var tmpDate = [],timeOffset,currentTime; - - if( ( tmpDate = /^(\+|\-)(.*)$/.exec(sDateTime) ) && ( tmpDate[2]=Date.parseDate(tmpDate[2], options.formatDate) ) ) { - timeOffset = tmpDate[2].getTime()-1*(tmpDate[2].getTimezoneOffset())*60000; - currentTime = new Date((_xdsoft_datetime.now()).getTime()+parseInt(tmpDate[1]+'1')*timeOffset); - }else - currentTime = sDateTime?Date.parseDate(sDateTime, options.format):_this.now(); - - if( !_this.isValidDate(currentTime) ) - currentTime = _this.now(); - - return currentTime; - }; - - _this.strtodate = function( sDate ) { - var currentTime = sDate?Date.parseDate(sDate, options.formatDate):_this.now(); - if( !_this.isValidDate(currentTime) ) - currentTime = _this.now(); - return currentTime; - }; - - _this.strtotime = function( sTime ) { - var currentTime = sTime?Date.parseDate(sTime, options.formatTime):_this.now(); - if( !_this.isValidDate(currentTime) ) - currentTime = _this.now(); - return currentTime; - }; - - _this.str = function() { - return _this.currentTime.dateFormat(options.format); - }; - }; - mounth_picker - .find('.xdsoft_today_button') - .on('mousedown.xdsoft',function() { - datetimepicker.data('changed',true); - _xdsoft_datetime.setCurrentTime(0); - datetimepicker.trigger('afterOpen.xdsoft'); - }).on('dblclick.xdsoft',function(){ - input.val( _xdsoft_datetime.str() ); - datetimepicker.trigger('close.xdsoft'); - }); - mounth_picker - .find('.xdsoft_prev,.xdsoft_next') - .on('mousedown.xdsoft',function() { - var $this = $(this), - timer = 0, - stop = false; - - (function arguments_callee1(v) { - var month = _xdsoft_datetime.currentTime.getMonth(); - if( $this.hasClass( options.next ) ) { - _xdsoft_datetime.nextMonth(); - }else if( $this.hasClass( options.prev ) ) { - _xdsoft_datetime.prevMonth(); - } - !stop&&(timer = setTimeout(arguments_callee1,v?v:100)); - })(500); - - $([document.body,window]).on('mouseup.xdsoft',function arguments_callee2() { - clearTimeout(timer); - stop = true; - $([document.body,window]).off('mouseup.xdsoft',arguments_callee2); - }); - }); - - timepicker - .find('.xdsoft_prev,.xdsoft_next') - .on('mousedown.xdsoft',function() { - var $this = $(this), - timer = 0, - stop = false, - period = 110; - (function arguments_callee4(v) { - var pheight = timeboxparent[0].clientHeight, - height = timebox[0].offsetHeight, - top = Math.abs(parseInt(timebox.css('marginTop'))); - if( $this.hasClass(options.next) && (height-pheight)- options.timeHeightInTimePicker>=top ) { - timebox.css('marginTop','-'+(top+options.timeHeightInTimePicker)+'px') - }else if( $this.hasClass(options.prev) && top-options.timeHeightInTimePicker>=0 ) { - timebox.css('marginTop','-'+(top-options.timeHeightInTimePicker)+'px') - } - timeboxparent.trigger('scroll_element.xdsoft_scroller',[Math.abs(parseInt(timebox.css('marginTop'))/(height-pheight))]); - period= ( period>10 )?10:period-10; - !stop&&(timer = setTimeout(arguments_callee4,v?v:period)); - })(500); - $([document.body,window]).on('mouseup.xdsoft',function arguments_callee5() { - clearTimeout(timer); - stop = true; - $([document.body,window]) - .off('mouseup.xdsoft',arguments_callee5); - }); - }); - - var xchangeTimer = 0; - // base handler - generating a calendar and timepicker - datetimepicker - .on('xchange.xdsoft',function( event ) { - clearTimeout(xchangeTimer); - xchangeTimer = setTimeout(function(){ - var table = '', - start = new Date(_xdsoft_datetime.currentTime.getFullYear(),_xdsoft_datetime.currentTime.getMonth(),1, 12, 0, 0), - i = 0, - today = _xdsoft_datetime.now(); - - while( start.getDay()!=options.dayOfWeekStart ) - start.setDate(start.getDate()-1); - - //generate calendar - table+=''; - - // days - for(var j = 0; j<7; j++) { - table+=''; - } - - table+=''; - table+=''; - var maxDate = false, minDate = false; - - if( options.maxDate!==false ) { - maxDate = _xdsoft_datetime.strtodate(options.maxDate); - maxDate = new Date(maxDate.getFullYear(),maxDate.getMonth(),maxDate.getDate(),23,59,59,999); - } - - if( options.minDate!==false ) { - minDate = _xdsoft_datetime.strtodate(options.minDate); - minDate = new Date(minDate.getFullYear(),minDate.getMonth(),minDate.getDate()); - } - - var d,y,m,classes = []; - - while( i<_xdsoft_datetime.currentTime.getDaysInMonth()||start.getDay()!=options.dayOfWeekStart||_xdsoft_datetime.currentTime.getMonth()==start.getMonth() ) { - classes = []; - i++; - - d = start.getDate(); y = start.getFullYear(); m = start.getMonth(); - - classes.push('xdsoft_date'); - - if( ( maxDate!==false && start > maxDate )||( minDate!==false && start < minDate ) ){ - classes.push('xdsoft_disabled'); - } - - if( _xdsoft_datetime.currentTime.getMonth()!=m ){ - classes.push('xdsoft_other_month'); - } - - if( (options.defaultSelect||datetimepicker.data('changed')) && _xdsoft_datetime.currentTime.dateFormat('d.m.Y')==start.dateFormat('d.m.Y') ) { - classes.push('xdsoft_current'); - } - - if( today.dateFormat('d.m.Y')==start.dateFormat('d.m.Y') ) { - classes.push('xdsoft_today'); - } - - if( start.getDay()==0||start.getDay()==6||~options.weekends.indexOf(start.dateFormat('d.m.Y')) ) { - classes.push('xdsoft_weekend'); - } - - table+=''; - - if( start.getDay()==options.dayOfWeekStartPrev ) { - table+=''; - } - - start.setDate(d+1); - } - table+='
    '+options.i18n[options.lang].dayOfWeek[(j+options.dayOfWeekStart)>6?0:j+options.dayOfWeekStart]+'
    '+ - '
    '+d+'
    '+ - '
    '; - - calendar.html(table); - - mounth_picker.find('.xdsoft_label span').eq(0).text(options.i18n[options.lang].months[_xdsoft_datetime.currentTime.getMonth()]); - mounth_picker.find('.xdsoft_label span').eq(1).text(_xdsoft_datetime.currentTime.getFullYear()); - - // generate timebox - var time = '', - h = '', - m ='', - line_time = function line_time( h,m ) { - var now = _xdsoft_datetime.now(); - now.setHours(h); - h = parseInt(now.getHours()); - now.setMinutes(m); - m = parseInt(now.getMinutes()); - - classes = []; - if( (options.maxTime!==false&&_xdsoft_datetime.strtotime(options.maxTime).getTime()now.getTime())) - classes.push('xdsoft_disabled'); - if( (options.initTime||options.defaultSelect||datetimepicker.data('changed')) && parseInt(_xdsoft_datetime.currentTime.getHours())==parseInt(h)&&(options.step>59||Math[options.roundTime](_xdsoft_datetime.currentTime.getMinutes()/options.step)*options.step==parseInt(m))) { - if( options.defaultSelect||datetimepicker.data('changed')) { - classes.push('xdsoft_current'); - } else if( options.initTime ) { - classes.push('xdsoft_init_time'); - } - } - if( parseInt(today.getHours())==parseInt(h)&&parseInt(today.getMinutes())==parseInt(m)) - classes.push('xdsoft_today'); - time+= '
    '+now.dateFormat(options.formatTime)+'
    '; - }; - - if( !options.allowTimes || !$.isArray(options.allowTimes) || !options.allowTimes.length ) { - for( var i=0,j=0;i<(options.hours12?12:24);i++ ) { - for( j=0;j<60;j+=options.step ) { - h = (i<10?'0':'')+i; - m = (j<10?'0':'')+j; - line_time( h,m ); - } - } - }else{ - for( var i=0;i'+i+''; - } - yearselect.children().eq(0) - .html(opt); - - for( i = 0,opt = '';i<= 11;i++ ) { - opt+='
    '+options.i18n[options.lang].months[i]+'
    '; - } - monthselect.children().eq(0).html(opt); - $(this).trigger('generate.xdsoft'); - },10); - event.stopPropagation(); - }) - .on('afterOpen.xdsoft',function() { - if( options.timepicker ) { - var classType; - if( timebox.find('.xdsoft_current').length ) { - classType = '.xdsoft_current'; - } else if( timebox.find('.xdsoft_init_time').length ) { - classType = '.xdsoft_init_time'; - } - - if( classType ) { - var pheight = timeboxparent[0].clientHeight, - height = timebox[0].offsetHeight, - top = timebox.find(classType).index()*options.timeHeightInTimePicker+1; - if( (height-pheight)1||(options.closeOnDateSelect===true||( options.closeOnDateSelect===0&&!options.timepicker )))&&!options.inline ) { - datetimepicker.trigger('close.xdsoft'); - } - - if( options.onSelectDate && options.onSelectDate.call ) { - options.onSelectDate.call(datetimepicker,_xdsoft_datetime.currentTime,datetimepicker.data('input')); - } - - datetimepicker.data('changed',true); - datetimepicker.trigger('xchange.xdsoft'); - datetimepicker.trigger('changedatetime.xdsoft'); - setTimeout(function(){ - timerclick = 0; - },200); - }); - - timebox - .on('click.xdsoft', 'div', function (xdevent) { - xdevent.stopPropagation(); // NAJ: Prevents closing of Pop-ups, Modals and Flyouts - var $this = $(this), - currentTime = _xdsoft_datetime.currentTime; - if( $this.hasClass('xdsoft_disabled') ) - return false; - currentTime.setHours($this.data('hour')); - currentTime.setMinutes($this.data('minute')); - datetimepicker.trigger('select.xdsoft',[currentTime]); - - datetimepicker.data('input').val( _xdsoft_datetime.str() ); - - !options.inline&&datetimepicker.trigger('close.xdsoft'); - - if( options.onSelectTime&&options.onSelectTime.call ) { - options.onSelectTime.call(datetimepicker,_xdsoft_datetime.currentTime,datetimepicker.data('input')); - } - datetimepicker.data('changed',true); - datetimepicker.trigger('xchange.xdsoft'); - datetimepicker.trigger('changedatetime.xdsoft'); - }); - - datetimepicker.mousewheel&&datepicker.mousewheel(function(event, delta, deltaX, deltaY) { - if( !options.scrollMonth ) - return true; - if( delta<0 ) - _xdsoft_datetime.nextMonth(); - else - _xdsoft_datetime.prevMonth(); - return false; - }); - - datetimepicker.mousewheel&&timeboxparent.unmousewheel().mousewheel(function(event, delta, deltaX, deltaY) { - if( !options.scrollTime ) - return true; - var pheight = timeboxparent[0].clientHeight, - height = timebox[0].offsetHeight, - top = Math.abs(parseInt(timebox.css('marginTop'))), - fl = true; - if( delta<0 && (height-pheight)-options.timeHeightInTimePicker>=top ) { - timebox.css('marginTop','-'+(top+options.timeHeightInTimePicker)+'px'); - fl = false; - }else if( delta>0&&top-options.timeHeightInTimePicker>=0 ) { - timebox.css('marginTop','-'+(top-options.timeHeightInTimePicker)+'px'); - fl = false; - } - timeboxparent.trigger('scroll_element.xdsoft_scroller',[Math.abs(parseInt(timebox.css('marginTop'))/(height-pheight))]); - event.stopPropagation(); - return fl; - }); - - datetimepicker - .on('changedatetime.xdsoft',function() { - if( options.onChangeDateTime&&options.onChangeDateTime.call ) { - var $input = datetimepicker.data('input'); - options.onChangeDateTime.call(datetimepicker, _xdsoft_datetime.currentTime, $input); - $input.trigger('change'); - } - }) - .on('generate.xdsoft',function() { - if( options.onGenerate&&options.onGenerate.call ) - options.onGenerate.call(datetimepicker,_xdsoft_datetime.currentTime,datetimepicker.data('input')); - }); - - var current_time_index = 0; - input.mousewheel&&input.mousewheel(function( event, delta, deltaX, deltaY ) { - if( !options.scrollInput ) - return true; - if( !options.datepicker && options.timepicker ) { - current_time_index = timebox.find('.xdsoft_current').length?timebox.find('.xdsoft_current').eq(0).index():0; - if( current_time_index+delta>=0&¤t_time_index+delta$(window).height()+$(window).scrollTop() ) - top = offset.top-datetimepicker[0].offsetHeight+1; - if (top < 0) - top = 0; - if( left+datetimepicker[0].offsetWidth>$(window).width() ) - left = offset.left-datetimepicker[0].offsetWidth+datetimepicker.data('input')[0].offsetWidth; - datetimepicker.css({ - left:left, - top:top - }); - }; - datetimepicker - .on('open.xdsoft', function() { - var onShow = true; - if( options.onShow&&options.onShow.call) { - onShow = options.onShow.call(datetimepicker,_xdsoft_datetime.currentTime,datetimepicker.data('input')); - } - if( onShow!==false ) { - datetimepicker.show(); - datetimepicker.trigger('afterOpen.xdsoft'); - setPos(); - $(window) - .off('resize.xdsoft',setPos) - .on('resize.xdsoft',setPos); - - if( options.closeOnWithoutClick ) { - $([document.body,window]).on('mousedown.xdsoft',function arguments_callee6() { - datetimepicker.trigger('close.xdsoft'); - $([document.body,window]).off('mousedown.xdsoft',arguments_callee6); - }); - } - } - }) - .on('close.xdsoft', function( event ) { - var onClose = true; - if( options.onClose&&options.onClose.call ) { - onClose=options.onClose.call(datetimepicker,_xdsoft_datetime.currentTime,datetimepicker.data('input')); - } - if( onClose!==false&&!options.opened&&!options.inline ) { - datetimepicker.hide(); - } - event.stopPropagation(); - }) - .data('input',input); - - var timer = 0, - timer1 = 0; - - datetimepicker.data('xdsoft_datetime',_xdsoft_datetime); - datetimepicker.setOptions(options); - - function getCurrentValue(){ - var ct = options.value?options.value:(input&&input.val&&input.val())?input.val():''; - - if( ct && _xdsoft_datetime.isValidDate(ct = Date.parseDate(ct, options.format)) ) { - datetimepicker.data('changed',true); - }else - ct = ''; - - if( !ct && options.startDate!==false ){ - ct = _xdsoft_datetime.strToDateTime(options.startDate); - } - - return ct?ct:0; - } - - _xdsoft_datetime.setCurrentTime( getCurrentValue() ); - - datetimepicker.trigger('afterOpen.xdsoft'); - - input - .data( 'xdsoft_datetimepicker',datetimepicker ) - .on('open.xdsoft focusin.xdsoft mousedown.xdsoft',function(event) { - if( input.is(':disabled')||input.is(':hidden')||!input.is(':visible') ) - return; - clearTimeout(timer); - timer = setTimeout(function() { - if( input.is(':disabled')||input.is(':hidden')||!input.is(':visible') ) - return; - _xdsoft_datetime.setCurrentTime(getCurrentValue()); - - datetimepicker.trigger('open.xdsoft'); - },100); - }) - .on('keydown.xdsoft',function( event ) { - var val = this.value, - key = event.which; - switch(true) { - case !!~([ENTER].indexOf(key)): - var elementSelector = $("input:visible,textarea:visible"); - datetimepicker.trigger('close.xdsoft'); - elementSelector.eq(elementSelector.index(this) + 1).focus(); - return false; - case !!~[TAB].indexOf(key): - datetimepicker.trigger('close.xdsoft'); - return true; - } - }); - }, - destroyDateTimePicker = function( input ) { - var datetimepicker = input.data('xdsoft_datetimepicker'); - if( datetimepicker ) { - datetimepicker.data('xdsoft_datetime',null); - datetimepicker.remove(); - input - .data( 'xdsoft_datetimepicker',null ) - .off( 'open.xdsoft focusin.xdsoft focusout.xdsoft mousedown.xdsoft blur.xdsoft keydown.xdsoft' ); - $(window).off('resize.xdsoft'); - $([window,document.body]).off('mousedown.xdsoft'); - input.unmousewheel&&input.unmousewheel(); - } - }; - $(document) - .off('keydown.xdsoftctrl keyup.xdsoftctrl') - .on('keydown.xdsoftctrl',function(e) { - if ( e.keyCode == CTRLKEY ) - ctrlDown = true; - }) - .on('keyup.xdsoftctrl',function(e) { - if ( e.keyCode == CTRLKEY ) - ctrlDown = false; - }); - return this.each(function() { - var datetimepicker; - if( datetimepicker = $(this).data('xdsoft_datetimepicker') ) { - if( $.type(opt) === 'string' ) { - switch(opt) { - case 'show': - $(this).select().focus(); - datetimepicker.trigger( 'open.xdsoft' ); - break; - case 'hide': - datetimepicker.trigger('close.xdsoft'); - break; - case 'destroy': - destroyDateTimePicker($(this)); - break; - case 'reset': - this.value = this.defaultValue; - if(!this.value || !datetimepicker.data('xdsoft_datetime').isValidDate(Date.parseDate(this.value, options.format))) - datetimepicker.data('changed',false); - datetimepicker.data('xdsoft_datetime').setCurrentTime(this.value); - break; - } - }else{ - datetimepicker - .setOptions(opt); - } - return 0; - }else - if( ($.type(opt) !== 'string') ){ - if( !options.lazyInit||options.open||options.inline ){ - createDateTimePicker($(this)); - }else - lazyInit($(this)); - } - }); - }; -})( jQuery ); - -//http://www.xaprb.com/blog/2005/12/12/javascript-closures-for-runtime-efficiency/ -/* - * Copyright (C) 2004 Baron Schwartz - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published by the - * Free Software Foundation, version 2.1. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more - * details. - */ -Date.parseFunctions={count:0};Date.parseRegexes=[];Date.formatFunctions={count:0};Date.prototype.dateFormat=function(b){if(b=="unixtime"){return parseInt(this.getTime()/1000);}if(Date.formatFunctions[b]==null){Date.createNewFormat(b);}var a=Date.formatFunctions[b];return this[a]();};Date.createNewFormat=function(format){var funcName="format"+Date.formatFunctions.count++;Date.formatFunctions[format]=funcName;var code="Date.prototype."+funcName+" = function() {return ";var special=false;var ch="";for(var i=0;i 0) {";var regex="";var special=false;var ch="";for(var i=0;i 0 && z > 0){\nvar doyDate = new Date(y,0);\ndoyDate.setDate(z);\nm = doyDate.getMonth();\nd = doyDate.getDate();\n}";code+="if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n{return new Date(y, m, d, h, i, s);}\nelse if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n{return new Date(y, m, d, h, i);}\nelse if (y > 0 && m >= 0 && d > 0 && h >= 0)\n{return new Date(y, m, d, h);}\nelse if (y > 0 && m >= 0 && d > 0)\n{return new Date(y, m, d);}\nelse if (y > 0 && m >= 0)\n{return new Date(y, m);}\nelse if (y > 0)\n{return new Date(y);}\n}return null;}";Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$");eval(code);};Date.formatCodeToRegex=function(b,a){switch(b){case"D":return{g:0,c:null,s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"};case"j":case"d":return{g:1,c:"d = parseInt(results["+a+"], 10);\n",s:"(\\d{1,2})"};case"l":return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"};case"S":return{g:0,c:null,s:"(?:st|nd|rd|th)"};case"w":return{g:0,c:null,s:"\\d"};case"z":return{g:1,c:"z = parseInt(results["+a+"], 10);\n",s:"(\\d{1,3})"};case"W":return{g:0,c:null,s:"(?:\\d{2})"};case"F":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+a+"].substring(0, 3)], 10);\n",s:"("+Date.monthNames.join("|")+")"};case"M":return{g:1,c:"m = parseInt(Date.monthNumbers[results["+a+"]], 10);\n",s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"};case"n":case"m":return{g:1,c:"m = parseInt(results["+a+"], 10) - 1;\n",s:"(\\d{1,2})"};case"t":return{g:0,c:null,s:"\\d{1,2}"};case"L":return{g:0,c:null,s:"(?:1|0)"};case"Y":return{g:1,c:"y = parseInt(results["+a+"], 10);\n",s:"(\\d{4})"};case"y":return{g:1,c:"var ty = parseInt(results["+a+"], 10);\ny = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"};case"a":return{g:1,c:"if (results["+a+"] == 'am') {\nif (h == 12) { h = 0; }\n} else { if (h < 12) { h += 12; }}",s:"(am|pm)"};case"A":return{g:1,c:"if (results["+a+"] == 'AM') {\nif (h == 12) { h = 0; }\n} else { if (h < 12) { h += 12; }}",s:"(AM|PM)"};case"g":case"G":case"h":case"H":return{g:1,c:"h = parseInt(results["+a+"], 10);\n",s:"(\\d{1,2})"};case"i":return{g:1,c:"i = parseInt(results["+a+"], 10);\n",s:"(\\d{2})"};case"s":return{g:1,c:"s = parseInt(results["+a+"], 10);\n",s:"(\\d{2})"};case"O":return{g:0,c:null,s:"[+-]\\d{4}"};case"T":return{g:0,c:null,s:"[A-Z]{3}"};case"Z":return{g:0,c:null,s:"[+-]\\d{1,5}"};default:return{g:0,c:null,s:String.escape(b)};}};Date.prototype.getTimezone=function(){return this.toString().replace(/^.*? ([A-Z]{3}) [0-9]{4}.*$/,"$1").replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/,"$1$2$3");};Date.prototype.getGMTOffset=function(){return(this.getTimezoneOffset()>0?"-":"+")+String.leftPad(Math.floor(Math.abs(this.getTimezoneOffset())/60),2,"0")+String.leftPad(Math.abs(this.getTimezoneOffset())%60,2,"0");};Date.prototype.getDayOfYear=function(){var a=0;Date.daysInMonth[1]=this.isLeapYear()?29:28;for(var b=0;b=9?['wheel']:['mousewheel','DomMouseScroll','MozMousePixelScroll'];var lowestDelta,lowestDeltaXY;if($.event.fixHooks) {for(var i=toFix.length;i;) {$.event.fixHooks[toFix[--i]]=$.event.mouseHooks}}$.event.special.mousewheel={setup:function() {if(this.addEventListener) {for(var i=toBind.length;i;) {this.addEventListener(toBind[--i],handler,false)}}else{this.onmousewheel=handler}},teardown:function() {if(this.removeEventListener) {for(var i=toBind.length;i;) {this.removeEventListener(toBind[--i],handler,false)}}else{this.onmousewheel=null}}};$.fn.extend({mousewheel:function(fn) {return fn?this.bind("mousewheel",fn):this.trigger("mousewheel")},unmousewheel:function(fn) {return this.unbind("mousewheel",fn)}});function handler(event) {var orgEvent=event||window.event,args=[].slice.call(arguments,1),delta=0,deltaX=0,deltaY=0,absDelta=0,absDeltaXY=0,fn;event=$.event.fix(orgEvent);event.type="mousewheel";if(orgEvent.wheelDelta) {delta=orgEvent.wheelDelta}if(orgEvent.detail) {delta=orgEvent.detail*-1}if(orgEvent.deltaY) {deltaY=orgEvent.deltaY*-1;delta=deltaY}if(orgEvent.deltaX) {deltaX=orgEvent.deltaX;delta=deltaX*-1}if(orgEvent.wheelDeltaY!==undefined) {deltaY=orgEvent.wheelDeltaY}if(orgEvent.wheelDeltaX!==undefined) {deltaX=orgEvent.wheelDeltaX*-1}absDelta=Math.abs(delta);if(!lowestDelta||absDelta0?'floor':'ceil';delta=Math[fn](delta/lowestDelta);deltaX=Math[fn](deltaX/lowestDeltaXY);deltaY=Math[fn](deltaY/lowestDeltaXY);args.unshift(event,delta,deltaX,deltaY);return($.event.dispatch||$.event.handle).apply(this,args)}})); diff --git a/public_html/js/kolab_admin.js b/public_html/js/kolab_admin.js index 1701a8e..0454ce4 100644 --- a/public_html/js/kolab_admin.js +++ b/public_html/js/kolab_admin.js @@ -1,3649 +1,3498 @@ /* +--------------------------------------------------------------------------+ | This file is part of the Kolab Web Admin Panel | | | - | Copyright (C) 2011-2014, Kolab Systems AG | + | Copyright (C) 2011-2019, Kolab Systems AG | | | | This program is free software: you can redistribute it and/or modify | | it under the terms of the GNU Affero General Public License as published | | by the Free Software Foundation, either version 3 of the License, or | | (at your option) any later version. | | | | This program is distributed in the hope that it will be useful, | | but WITHOUT ANY WARRANTY; without even the implied warranty of | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | GNU Affero General Public License for more details. | | | | You should have received a copy of the GNU Affero General Public License | | along with this program. If not, see | +--------------------------------------------------------------------------+ | Author: Aleksander Machniak | +--------------------------------------------------------------------------+ */ function kolab_admin() { var self = this; this.env = {}; this.translations = {}; this.request_timeout = 300; this.message_time = 3000; this.events = {}; + this.modals = []; this.attr_default_rx = /^(text|select|imap_acl)/; // set jQuery ajax options $.ajaxSetup({ cache: false, error: function(request, status, err) { self.http_error(request, status, err); }, beforeSend: function(xmlhttp) { xmlhttp.setRequestHeader('X-Session-Token', self.env.token); } }); /*********************************************************/ /********* basic utilities *********/ /*********************************************************/ // set environment variable(s) this.set_env = function(p, value) { if (p != null && typeof p === 'object' && !value) for (var n in p) this.env[n] = p[n]; else this.env[p] = value; }; // add a localized label(s) to the client environment this.tdef = function(p, value) { if (typeof p == 'string') this.translations[p] = value; else if (typeof p == 'object') $.extend(this.translations, p); }; // return a localized string this.t = function(label) { if (this.translations[label]) return this.translations[label]; else return label; }; // print a message into browser console this.log = function(msg) { if (window.console && console.log) console.log(msg); }; // execute a specific command on the web client this.command = function(command, props, obj) { if (obj && obj.blur) obj.blur(); if (this.busy) return false; this.set_busy(true, 'loading'); var ret = undefined, func = command.replace(/[^a-z]/g, '_'), task = command.replace(/\.[a-z-_]+$/g, ''); if (this[func] && typeof this[func] === 'function') { ret = this[func](props); } else { this.http_post(command, props); } // update menu state $('li', $('#navigation')).removeClass('active'); $('li.'+task, ('#navigation')).addClass('active'); if (ret === false) this.set_busy(false); return ret === false ? false : obj ? false : true; }; this.set_busy = function(a, message) { if (a && message) { var msg = this.t(message); if (msg == message) msg = 'Loading...'; this.display_message(msg, 'loading'); } else if (!a) { this.hide_message('loading'); } this.busy = a; // if (this.gui_objects.editform) // this.lock_form(this.gui_objects.editform, a); // clear pending timer if (this.request_timer) clearTimeout(this.request_timer); // set timer for requests if (a && this.env.request_timeout) this.request_timer = window.setTimeout(function() { self.request_timed_out(); }, this.request_timeout * 1000); }; // called when a request timed out this.request_timed_out = function() { this.set_busy(false); this.display_message('Request timed out!', 'error'); }; // Add variable to GET string, replace old value if exists this.add_url = function(url, name, value) { value = urlencode(value); if (/(\?.*)$/.test(url)) { var urldata = RegExp.$1, datax = RegExp('((\\?|&)'+RegExp.escape(name)+'=[^&]*)'); if (datax.test(urldata)) urldata = urldata.replace(datax, RegExp.$2 + name + '=' + value); else urldata += '&' + name + '=' + value return url.replace(/(\?.*)$/, urldata); } else return url + '?' + name + '=' + value; }; this.trigger_event = function(event, data) { if (this.events[event]) for (var i in this.events[event]) this.events[event][i](data); }; this.add_event_listener = function(event, func) { if (!this.events[event]) this.events[event] = []; this.events[event].push(func); }; /*********************************************************/ /********* GUI functionality *********/ /*********************************************************/ // write to the document/window title this.set_pagetitle = function(title) { if (title && document.title) document.title = title; }; // display a system message (types: loading, notice, error) this.display_message = function(msg, type, timeout) { var obj; if (!type) type = 'notice'; if (msg) msg = this.t(msg); if (type == 'loading') { timeout = this.request_timeout * 1000; if (!msg) msg = this.t('loading'); } else if (!timeout) timeout = this.message_time * (type == 'error' || type == 'warning' ? 2 : 1); obj = $('
    '); if (type != 'loading') { - msg = '
    ' + msg + '
    '; + msg = '
    ' + msg + '
    '; obj.addClass(type).click(function() { return self.hide_message(); }); } if (timeout > 0) window.setTimeout(function() { self.hide_message(type, type != 'loading'); }, timeout); if (type == 'loading') this.hide_message(type); obj.attr('id', type == 'loading' ? 'loading' : 'message') .appendTo('body').html(msg).show(); }; // make a message to disapear this.hide_message = function(type, fade) { if (type == 'loading') $('#loading').remove(); else $('#message').fadeOut('normal', function() { $(this).remove(); }); }; this.set_watermark = function(id) { if (this.env.watermark) $('#'+id).html(this.env.watermark); } // modal dialog popup this.modal_dialog = function(content, buttons, opts) { - var settings = {btns: {}}, - body = $(''), - head, foot, footer = []; + var btns = [], + dialog = $(''), + body = dialog.find('.modal-content'); // title bar if (opts && opts.title) - $('') - .append($('').text(opts.title)) + $('') + .append($('