summaryrefslogtreecommitdiffstats
path: root/core/l10n/pt_PT.json
diff options
context:
space:
mode:
authorJenkins for ownCloud <owncloud-bot@tmit.eu>2015-06-16 01:55:41 -0400
committerJenkins for ownCloud <owncloud-bot@tmit.eu>2015-06-16 01:55:41 -0400
commit0a5d73b8747fdffa23f364db90fd25955ae14b46 (patch)
treee77b4fec273da4dcc09988d165109febc263446e /core/l10n/pt_PT.json
parente9d11a65e0747f241fe5488797bbed4c84d6025a (diff)
downloadnextcloud-server-0a5d73b8747fdffa23f364db90fd25955ae14b46.tar.gz
nextcloud-server-0a5d73b8747fdffa23f364db90fd25955ae14b46.zip
[tx-robot] updated from transifex
Diffstat (limited to 'core/l10n/pt_PT.json')
-rw-r--r--core/l10n/pt_PT.json2
1 files changed, 0 insertions, 2 deletions
diff --git a/core/l10n/pt_PT.json b/core/l10n/pt_PT.json
index 0ce57e3890d..60b7e23a27e 100644
--- a/core/l10n/pt_PT.json
+++ b/core/l10n/pt_PT.json
@@ -73,8 +73,6 @@
"No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Nenhuma memória de cache foi configurada. Se possível configure-a de forma a optimizar o desempenho. Mais informações podem ser encontradas na <a href=\"{docLink}\">documentação</a>.",
"Error occurred while checking server setup" : "Ocorreu um erro durante a verificação da configuração do servidor",
"The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "O cabeçalho HTTP \"{header}\" não está configurado para igualar \"{expected}\". Isto é um potencial risco de segurança ou privacidade e recomendamos que o corrija.",
- "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "O cabeçalho HTTP \"Strict-Transport-Security\" não está configurado para um mínimo de \"2,678,400\" segundos. Isto é um potencial risco de segurança e recomendamos que o corrija.",
- "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Está a aceder a este site via HTTP. Recomendamos vivamente que configure o servidor para forçar o uso de HTTPS.",
"Shared" : "Partilhado",
"Shared with {recipients}" : "Partilhado com {recipients}",
"Share" : "Compartilhar",
="n">guint16 def_port, void *data) { gboolean ret = FALSE; const ucl_object_t *cur; ucl_object_iter_t it = NULL; it = ucl_object_iterate_new (in); while ((cur = ucl_object_iterate_safe (it, true)) != NULL) { if (ucl_object_type (cur) == UCL_STRING) { ret = rspamd_upstreams_parse_line (ups, ucl_object_tostring (cur), def_port, data); } } ucl_object_iterate_free (it); return ret; } void rspamd_upstreams_destroy (struct upstream_list *ups) { guint i; struct upstream *up; if (ups != NULL) { g_ptr_array_free (ups->alive, TRUE); for (i = 0; i < ups->ups->len; i ++) { up = g_ptr_array_index (ups->ups, i); up->ls = NULL; REF_RELEASE (up); } g_ptr_array_free (ups->ups, TRUE); rspamd_mutex_free (ups->lock); g_free (ups); } } static void rspamd_upstream_restore_cb (gpointer elt, gpointer ls) { struct upstream *up = (struct upstream *)elt; struct upstream_list *ups = (struct upstream_list *)ls; /* Here the upstreams list is already locked */ RSPAMD_UPSTREAM_LOCK (up->lock); if (rspamd_event_pending (&up->ev, EV_TIMEOUT)) { event_del (&up->ev); } g_ptr_array_add (ups->alive, up); up->active_idx = ups->alive->len - 1; RSPAMD_UPSTREAM_UNLOCK (up->lock); /* For revive event */ REF_RELEASE (up); } static struct upstream* rspamd_upstream_get_random (struct upstream_list *ups) { guint idx = ottery_rand_range (ups->alive->len - 1); return g_ptr_array_index (ups->alive, idx); } static struct upstream* rspamd_upstream_get_round_robin (struct upstream_list *ups, gboolean use_cur) { guint max_weight = 0, min_checked = G_MAXUINT; struct upstream *up, *selected = NULL, *min_checked_sel = NULL; guint i; /* Select upstream with the maximum cur_weight */ RSPAMD_UPSTREAM_LOCK (ups->lock); for (i = 0; i < ups->alive->len; i ++) { up = g_ptr_array_index (ups->alive, i); if (use_cur) { if (up->cur_weight > max_weight) { selected = up; max_weight = up->cur_weight; } } else { if (up->weight > max_weight) { selected = up; max_weight = up->weight; } } if (up->checked * (up->errors + 1) < min_checked) { min_checked_sel = up; min_checked = up->checked; } } if (max_weight == 0) { if (min_checked > G_MAXUINT / 2) { /* Reset all checked counters to avoid overflow */ for (i = 0; i < ups->alive->len; i ++) { up = g_ptr_array_index (ups->alive, i); up->checked = 0; } } selected = min_checked_sel; } if (use_cur && selected) { if (selected->cur_weight > 0) { selected->cur_weight--; } else { selected->cur_weight = selected->weight; } } RSPAMD_UPSTREAM_UNLOCK (ups->lock); return selected; } /* * The key idea of this function is obtained from the following paper: * A Fast, Minimal Memory, Consistent Hash Algorithm * John Lamping, Eric Veach * * http://arxiv.org/abs/1406.2294 */ static guint32 rspamd_consistent_hash (guint64 key, guint32 nbuckets) { gint64 b = -1, j = 0; while (j < nbuckets) { b = j; key *= 2862933555777941757ULL + 1; j = (b + 1) * (double)(1ULL << 31) / (double)((key >> 33) + 1ULL); } return b; } static struct upstream* rspamd_upstream_get_hashed (struct upstream_list *ups, const guint8 *key, guint keylen) { guint64 k; guint32 idx; /* Generate 64 bits input key */ k = rspamd_cryptobox_fast_hash_specific (RSPAMD_CRYPTOBOX_XXHASH64, key, keylen, ups->hash_seed); RSPAMD_UPSTREAM_LOCK (ups->lock); idx = rspamd_consistent_hash (k, ups->alive->len); RSPAMD_UPSTREAM_UNLOCK (ups->lock); return g_ptr_array_index (ups->alive, idx); } static struct upstream* rspamd_upstream_get_common (struct upstream_list *ups, enum rspamd_upstream_rotation default_type, const guchar *key, gsize keylen, gboolean forced) { enum rspamd_upstream_rotation type; struct upstream *up = NULL; RSPAMD_UPSTREAM_LOCK (ups->lock); if (ups->alive->len == 0) { /* We have no upstreams alive */ g_ptr_array_foreach (ups->ups, rspamd_upstream_restore_cb, ups); } RSPAMD_UPSTREAM_UNLOCK (ups->lock); if (!forced) { type = ups->rot_alg != RSPAMD_UPSTREAM_UNDEF ? ups->rot_alg : default_type; } else { type = default_type != RSPAMD_UPSTREAM_UNDEF ? default_type : ups->rot_alg; } if (type == RSPAMD_UPSTREAM_HASHED && (keylen == 0 || key == NULL)) { /* Cannot use hashed rotation when no key is specified, switch to random */ type = RSPAMD_UPSTREAM_RANDOM; } switch (type) { default: case RSPAMD_UPSTREAM_RANDOM: up = rspamd_upstream_get_random (ups); break; case RSPAMD_UPSTREAM_HASHED: up = rspamd_upstream_get_hashed (ups, key, keylen); break; case RSPAMD_UPSTREAM_ROUND_ROBIN: up = rspamd_upstream_get_round_robin (ups, TRUE); break; case RSPAMD_UPSTREAM_MASTER_SLAVE: up = rspamd_upstream_get_round_robin (ups, FALSE); break; case RSPAMD_UPSTREAM_SEQUENTIAL: if (ups->cur_elt >= ups->alive->len) { ups->cur_elt = 0; return NULL; } up = g_ptr_array_index (ups->alive, ups->cur_elt ++); break; } if (up) { up->checked ++; } return up; } struct upstream* rspamd_upstream_get (struct upstream_list *ups, enum rspamd_upstream_rotation default_type, const guchar *key, gsize keylen) { return rspamd_upstream_get_common (ups, default_type, key, keylen, FALSE); } struct upstream* rspamd_upstream_get_forced (struct upstream_list *ups, enum rspamd_upstream_rotation forced_type, const guchar *key, gsize keylen) { return rspamd_upstream_get_common (ups, forced_type, key, keylen, TRUE); } void rspamd_upstream_reresolve (struct upstream_ctx *ctx) { GList *cur; struct upstream *up; cur = ctx->upstreams->head; while (cur) { up = cur->data; REF_RETAIN (up); rspamd_upstream_resolve_addrs (up->ls, up); REF_RELEASE (up); cur = g_list_next (cur); } } gpointer rspamd_upstream_set_data (struct upstream *up, gpointer data) { gpointer prev_data = up->data; up->data = data; return prev_data; } gpointer rspamd_upstream_get_data (struct upstream *up) { return up->data; } void rspamd_upstreams_foreach (struct upstream_list *ups, rspamd_upstream_traverse_func cb, void *ud) { struct upstream *up; guint i; for (i = 0; i < ups->ups->len; i ++) { up = g_ptr_array_index (ups->ups, i); cb (up, i, ud); } } void rspamd_upstreams_set_limits (struct upstream_list *ups, gdouble revive_time, gdouble revive_jitter, gdouble error_time, gdouble dns_timeout, guint max_errors, guint dns_retransmits) { g_assert (ups != NULL); if (!isnan (revive_time)) { ups->limits.revive_time = revive_time; } if (!isnan (revive_jitter)) { ups->limits.revive_jitter = revive_jitter; } if (!isnan (error_time)) { ups->limits.error_time = error_time; } if (!isnan (dns_timeout)) { ups->limits.dns_timeout = dns_timeout; } if (max_errors > 0) { ups->limits.max_errors = max_errors; } if (dns_retransmits > 0) { ups->limits.dns_retransmits = dns_retransmits; } }