summaryrefslogtreecommitdiffstats
path: root/l10n/gl/files.po
diff options
context:
space:
mode:
Diffstat (limited to 'l10n/gl/files.po')
-rw-r--r--l10n/gl/files.po10
1 files changed, 7 insertions, 3 deletions
diff --git a/l10n/gl/files.po b/l10n/gl/files.po
index d42c63821bc..9413551a21a 100644
--- a/l10n/gl/files.po
+++ b/l10n/gl/files.po
@@ -9,15 +9,15 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-08-31 02:02+0200\n"
-"PO-Revision-Date: 2012-08-31 00:03+0000\n"
+"POT-Creation-Date: 2012-09-05 02:01+0200\n"
+"PO-Revision-Date: 2012-09-05 00:02+0000\n"
"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
"Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: gl\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ajax/upload.php:20
msgid "There is no error, the file uploaded with success"
@@ -166,6 +166,10 @@ msgstr "0 significa ilimitado"
msgid "Maximum input size for ZIP files"
msgstr "Tamaño máximo de descarga para os ZIP"
+#: templates/admin.php:14
+msgid "Save"
+msgstr ""
+
#: templates/index.php:7
msgid "New"
msgstr "Novo"
lt; 0) { break; } if (u_isalpha (uc)) { sc = ublock_getCode (uc); if (sc <= UBLOCK_COMBINING_DIACRITICAL_MARKS || sc == UBLOCK_LATIN_EXTENDED_ADDITIONAL) { /* * Assume all latin, IPA, diacritic and space modifiers * characters as basic latin */ sc = UBLOCK_BASIC_LATIN; } if (sc != UBLOCK_BASIC_LATIN && u_isupper (uc)) { if (ncap) { (*ncap) ++; } } if (state == got_digit) { /* Penalize digit -> alpha translations */ if (!is_url && sc != UBLOCK_BASIC_LATIN && prev_state != start_process) { badness += 0.25; } } else if (state == got_alpha) { /* Check script */ if (same_script_count > 0) { if (sc != UBLOCK_BASIC_LATIN && last_is_latin) { if (rspamd_can_alias_latin (uc)) { badness += 1.0 / (gdouble)same_script_count; } last_is_latin = 0; same_script_count = 1; } else { same_script_count ++; } } else { last_is_latin = sc == UBLOCK_BASIC_LATIN; same_script_count = 1; } } prev_state = state; state = got_alpha; } else if (u_isdigit (uc)) { if (state != got_digit) { prev_state = state; } state = got_digit; same_script_count = 0; } else { /* We don't care about unknown characters here */ if (state != got_unknown) { prev_state = state; } state = got_unknown; same_script_count = 0; } nsym ++; } /* Try to avoid FP for long words */ if (nsym > chartable_module_ctx->max_word_len) { badness = 0; } else { if (badness > 4.0) { badness = 4.0; } } msg_debug_chartable ("word %*s, badness: %.2f", (gint)w->normalized.len, w->normalized.begin, badness); return badness; } static gdouble rspamd_chartable_process_word_ascii (struct rspamd_task *task, rspamd_stat_token_t *w, gboolean is_url, struct chartable_ctx *chartable_module_ctx) { const guchar *p, *end; gdouble badness = 0.0; enum { ascii = 1, non_ascii } sc, last_sc; gint same_script_count = 0, seen_alpha = FALSE; enum { start_process = 0, got_alpha, got_digit, got_unknown, } state = start_process; p = w->normalized.begin; end = p + w->normalized.len; last_sc = 0; if (w->normalized.len > chartable_module_ctx->max_word_len) { return 0.0; } /* We assume that w is normalized */ while (p < end) { if (g_ascii_isalpha (*p) || *p > 0x7f) { if (state == got_digit) { /* Penalize digit -> alpha translations */ if (seen_alpha && !is_url && !g_ascii_isxdigit (*p)) { badness += 0.25; } } else if (state == got_alpha) { /* Check script */ sc = (*p > 0x7f) ? ascii : non_ascii; if (same_script_count > 0) { if (sc != last_sc) { badness += 1.0 / (gdouble)same_script_count; last_sc = sc; same_script_count = 1; } else { same_script_count ++; } } else { last_sc = sc; same_script_count = 1; } } seen_alpha = TRUE; state = got_alpha; } else if (g_ascii_isdigit (*p)) { state = got_digit; same_script_count = 0; } else { /* We don't care about unknown characters here */ state = got_unknown; same_script_count = 0; } p ++; } if (badness > 4.0) { badness = 4.0; } msg_debug_chartable ("word %*s, badness: %.2f", (gint)w->normalized.len, w->normalized.begin, badness); return badness; } static void rspamd_chartable_process_part (struct rspamd_task *task, struct rspamd_mime_text_part *part, struct chartable_ctx *chartable_module_ctx) { rspamd_stat_token_t *w; guint i, ncap = 0; gdouble cur_score = 0.0; if (part == NULL || part->utf_words == NULL || part->utf_words->len == 0) { return; } for (i = 0; i < part->utf_words->len; i++) { w = &g_array_index (part->utf_words, rspamd_stat_token_t, i); if ((w->flags & RSPAMD_STAT_TOKEN_FLAG_TEXT)) { if (w->flags & RSPAMD_STAT_TOKEN_FLAG_UTF) { cur_score += rspamd_chartable_process_word_utf (task, w, FALSE, &ncap, chartable_module_ctx); } else { cur_score += rspamd_chartable_process_word_ascii (task, w, FALSE, chartable_module_ctx); } } } /* * TODO: perhaps, we should do this analysis somewhere else and get * something like: <SYM_SC><SYM_SC><SYM_SC> representing classes for all * symbols in the text */ part->capital_letters += ncap; cur_score /= (gdouble)part->nwords; if (cur_score > 2.0) { cur_score = 2.0; } if (cur_score > chartable_module_ctx->threshold) { rspamd_task_insert_result (task, chartable_module_ctx->symbol, cur_score, NULL); } } static void chartable_symbol_callback (struct rspamd_task *task, struct rspamd_symcache_item *item, void *unused) { guint i; struct rspamd_mime_text_part *part; struct chartable_ctx *chartable_module_ctx = chartable_get_context (task->cfg); PTR_ARRAY_FOREACH (MESSAGE_FIELD (task, text_parts), i, part) { rspamd_chartable_process_part (task, part, chartable_module_ctx); } if (task->meta_words != NULL) { rspamd_stat_token_t *w; gdouble cur_score = 0; gsize arlen = task->meta_words->len; for (i = 0; i < arlen; i++) { w = &g_array_index (task->meta_words, rspamd_stat_token_t, i); cur_score += rspamd_chartable_process_word_utf (task, w, FALSE, NULL, chartable_module_ctx); } cur_score /= (gdouble)arlen; if (cur_score > 2.0) { cur_score = 2.0; } if (cur_score > chartable_module_ctx->threshold) { rspamd_task_insert_result (task, chartable_module_ctx->symbol, cur_score, "subject"); } } rspamd_symcache_finalize_item (task, item); } static void chartable_url_symbol_callback (struct rspamd_task *task, struct rspamd_symcache_item *item, void *unused) { /* XXX: TODO: unbreak module once URLs unicode project is over */ #if 0 struct rspamd_url *u; GHashTableIter it; gpointer k, v; rspamd_stat_token_t w; gdouble cur_score = 0.0; struct chartable_ctx *chartable_module_ctx = chartable_get_context (task->cfg); g_hash_table_iter_init (&it, task->urls); while (g_hash_table_iter_next (&it, &k, &v)) { u = v; if (cur_score > 2.0) { cur_score = 2.0; break; } if (u->hostlen > 0) { w.stemmed.begin = u->host; w.stemmed.len = u->hostlen; if (g_utf8_validate (w.stemmed.begin, w.stemmed.len, NULL)) { cur_score += rspamd_chartable_process_word_utf (task, &w, TRUE, NULL, chartable_module_ctx); } else { cur_score += rspamd_chartable_process_word_ascii (task, &w, TRUE, chartable_module_ctx); } } } g_hash_table_iter_init (&it, task->emails); while (g_hash_table_iter_next (&it, &k, &v)) { u = v; if (cur_score > 2.0) { cur_score = 2.0; break; } if (u->hostlen > 0) { w.stemmed.begin = u->host; w.stemmed.len = u->hostlen; if (g_utf8_validate (w.stemmed.begin, w.stemmed.len, NULL)) { cur_score += rspamd_chartable_process_word_utf (task, &w, TRUE, NULL, chartable_module_ctx); } else { cur_score += rspamd_chartable_process_word_ascii (task, &w, TRUE, chartable_module_ctx); } } } if (cur_score > chartable_module_ctx->threshold) { rspamd_task_insert_result (task, chartable_module_ctx->symbol, cur_score, NULL); } #endif rspamd_symcache_finalize_item (task, item); }