alt
+ click/enter
per escludere le etichette`
issues.filter_label_no_select=Tutte le etichette
issues.filter_label_select_no_label=Nessuna etichetta
issues.filter_milestone=Traguardo
issues.filter_project=Progetto
issues.filter_project_none=Nessun progetto
issues.filter_assignee=Assegnatario
issues.filter_assginee_no_select=Tutte le assegnazioni
issues.filter_assginee_no_assignee=Nessun assegnatario
issues.filter_poster=Autore
issues.filter_poster_no_select=Tutti gli autori
issues.filter_type=Tipo
issues.filter_type.all_issues=Tutti i problemi
issues.filter_type.assigned_to_you=Assegnati a te
issues.filter_type.created_by_you=Creati da te
issues.filter_type.mentioning_you=Che ti riguardano
issues.filter_type.review_requested=Richiesta revisione
issues.filter_sort=Ordina
issues.filter_sort.latest=Più recenti
issues.filter_sort.oldest=Più vecchi
issues.filter_sort.recentupdate=Aggiornati di recente
issues.filter_sort.leastupdate=Aggiornati tempo fa
issues.filter_sort.mostcomment=I più commentati
issues.filter_sort.leastcomment=I meno commentati
issues.filter_sort.nearduedate=Data di scadenza più vicina
issues.filter_sort.farduedate=Data di scadenza più lontana
issues.filter_sort.moststars=Più favoriti
issues.filter_sort.feweststars=Meno favoriti
issues.filter_sort.mostforks=Maggior numero di fork
issues.filter_sort.fewestforks=Minor numero di fork
issues.keyword_search_unavailable=Attualmente la ricerca per parola chiave non è disponibile. Contatta l'amministratore del sito.
issues.action_open=Aperto
issues.action_close=Chiuso
issues.action_label=Etichetta
issues.action_milestone=Pietra Miliare
issues.action_milestone_no_select=Nessuna pietra miliare
issues.action_assignee=Assegnatario
issues.action_assignee_no_select=Nessun assegnatario
issues.opened_by=aperto %[1]s da %[3]s
pulls.merged_by=di %[3]s è stato fuso %[1]s
pulls.merged_by_fake=di %[2]s è stato fuso %[1]s
issues.closed_by=di %[3]s è stato chiuso %[1]s
issues.opened_by_fake=aperto %[1]s da %[2]s
issues.closed_by_fake=di %[2]s è stato chiuso %[1]s
issues.previous=Pagina precedente
issues.next=Pagina successiva
issues.open_title=Aperto
issues.closed_title=Chiuso
issues.draft_title=Bozza
issues.num_comments=%d commenti
issues.commented_at=`%s ha commentato`
issues.delete_comment_confirm=Sei sicuro/a di voler eliminare questo commento?
issues.context.copy_link=Copia link
issues.context.quote_reply=Quota risposta
issues.context.reference_issue=Fai riferimento in un nuovo problema
issues.context.edit=Modifica
issues.context.delete=Elimina
issues.no_content=Non ci sono ancora contenuti.
issues.close_comment_issue=Commenta e Chiudi
issues.reopen_issue=Riapri
issues.reopen_comment_issue=Commenta e Riapri
issues.create_comment=Commento
issues.closed_at=`chiuso questo probleam %[2]s`
issues.reopened_at=`riaperto questo problema %[2]s`
issues.commit_ref_at=`ha fatto riferimento a questa issue dal commit %[2]s`
issues.ref_issue_from=`ha fatto riferimento a questo problema %[4]s %[2]s`
issues.ref_pull_from=`ha fatto riferimento a questa pull request %[4]s %[2]s`
issues.ref_closing_from=`ha fatto riferimento ad una pull request %[4]s che chiuderà questo problema %[2]s`
issues.ref_reopening_from=`ha fatto riferimento ad una pull request %[4]s che riaprirà questo problema %[2]s`
issues.ref_closed_from=`chiuso questo problema %[4]s %[2]s`
issues.ref_reopened_from=`riaperto questo problema %[4]s %[2]s`
issues.ref_from=`da %[1]s`
issues.poster=Autore
issues.collaborator=Collaboratori
issues.owner=Proprietario
issues.re_request_review=Revisione ri-richiesta
issues.is_stale=Ci sono stati cambiamenti a questa PR da questa revisione
issues.remove_request_review=Elimina richiesta revisione
issues.remove_request_review_block=Impossibile rimuovere la richiesta di revisione
issues.dismiss_review=Respingi Recensione
issues.dismiss_review_warning=Sei sicuro di voler respingere questa recensione?
issues.sign_in_require_desc=Effettua l'accesso per partecipare alla conversazione.
issues.edit=Modifica
issues.cancel=Annulla
issues.save=Salva
issues.label_title=Nome etichetta
issues.label_description=Descrizione etichetta
issues.label_color=Colore etichetta
issues.label_count=%d etichette
issues.label_open_issues=%d problemi aperti
issues.label_edit=Modifica
issues.label_delete=Elimina
issues.label_modify=Modifica Etichetta
issues.label_deletion=Elimina Etichetta
issues.label_deletion_desc=Eliminare un'etichetta la rimuove da tutte le issue. Continuare?
issues.label_deletion_success=L'etichetta è stata eliminata.
issues.label.filter_sort.alphabetically=In ordine alfabetico
issues.label.filter_sort.reverse_alphabetically=In ordine alfabetico inverso
issues.label.filter_sort.by_size=Dimensione più piccola
issues.label.filter_sort.reverse_by_size=Dimensione più grande
issues.num_participants=%d Partecipanti
issues.attachment.open_tab=`Clicca per vedere "%s" in una nuova scheda`
issues.attachment.download=`Clicca qui per scaricare "%s"`
issues.subscribe=Iscriviti
issues.unsubscribe=Annulla iscrizione
issues.lock=Blocca conversazione
issues.unlock=Sblocca conversazione
issues.lock.unknown_reason=Impossibile bloccare un problema con un motivo sconosciuto.
issues.lock_duplicate=Un issue non può essere bloccato due volte.
issues.unlock_error=Impossibile sbloccare un problema che non è bloccato.
issues.lock_with_reason=ha bloccato come %s e limitato la conversazione ai collaboratori %s
issues.lock_no_reason=ha bloccato e limitato la conversazione ai collaboratori %s
issues.unlock_comment=ha sbloccato questa conversazione %s
issues.lock_confirm=Blocca
issues.unlock_confirm=Sblocca
issues.lock.notice_1=- Altri utenti non possono aggiungere nuovi commenti a questo problema.
issues.lock.notice_2=- Tu e altri collaboratori con accesso a questo repository potete ancora lasciare commenti che altri possono vedere.
issues.lock.notice_3=- Puoi sempre sbloccare questo problema in futuro.
issues.unlock.notice_1=- Tutti potranno commentare nuovamente questo problema.
issues.unlock.notice_2=- Puoi sempre chiudere nuovamente questo problema in futuro.
issues.lock.reason=Motivo per il blocco
issues.lock.title=Blocca la conversazione su questa issue.
issues.unlock.title=Sblocca la conversazione su questa issue.
issues.comment_on_locked=Non puoi commentare un problema bloccato.
issues.delete=Elimina
issues.delete.title=Eliminare questo problema?
issues.delete.text=Vuoi davvero eliminare questo problema? (Questo rimuoverà permanentemente tutti i contenuti. Considera invece di chiuderlo, se vuoi tenerlo archiviato)
issues.tracker=Cronografo
issues.start_tracking_short=Avvia timer
issues.start_tracking=Avvia cronografo
issues.start_tracking_history=ha iniziato a lavorare %s
issues.tracker_auto_close=Il timer verrà interrotto automaticamente una volta che il problema verrá chiuso
issues.tracking_already_started=`Hai già avviato il monitoraggio del tempo su un altro problema!`
issues.stop_tracking=Ferma timer
issues.stop_tracking_history=`ha smesso di funzionare %s`
issues.cancel_tracking=Scarta
issues.cancel_tracking_history=`ha cancellato il cronografo %s`
issues.add_time=Aggiungi Tempo manualmente
issues.del_time=Elimina questo registro di tempo
issues.add_time_short=Aggiungi tempo
issues.add_time_cancel=Annulla
issues.add_time_history=`aggiunto tempo trascorso %s`
issues.del_time_history=`tempo trascorso eliminato %s`
issues.add_time_hours=Ore
issues.add_time_minutes=Minuti
issues.add_time_sum_to_small=Non è stato inserito alcun tempo.
issues.time_spent_total=Tempo totale trascorso
issues.time_spent_from_all_authors=`Totale tempo trascorso: %s`
issues.due_date=Data di scadenza
issues.invalid_due_date_format=Il formato della data di scadenza deve essere 'yyyy-mm-dd'.
issues.error_modifying_due_date=Impossibile modificare la data di scadenza.
issues.error_removing_due_date=Impossibile rimuovere la data di scadenza.
issues.push_commit_1=aggiunto %d commit %s
issues.push_commits_n=aggiunto %d commit %s
issues.force_push_codes=`force-pushed %[1]s from %[2]s
to %[4]s
%[6]s`
issues.force_push_compare=Confronta
issues.due_date_form=yyyy-mm-dd
issues.due_date_form_add=Aggiungi data di scadenza
issues.due_date_form_edit=Modifica
issues.due_date_form_remove=Rimuovi
issues.due_date_not_writer=E' necessario l'accesso di scrittura del repository per aggiornare la data di una sua issue.
issues.due_date_not_set=Nessuna data di scadenza impostata.
issues.due_date_added=la data di scadenza %s è stata aggiunta %s
issues.due_date_modified=ha modificato la data di scadenza da %[2]s a %[1]s %[3]s s
issues.due_date_remove=rimossa la data di scadenza %s %s
issues.due_date_overdue=Scaduto
issues.due_date_invalid=La data di scadenza non è valida o fuori intervallo. Si prega di utilizzare il formato 'aaaa-mm-dd'.
issues.dependency.title=Dipendenze
issues.dependency.issue_no_dependencies=Nessuna dipendenza impostata.
issues.dependency.pr_no_dependencies=Nessuna dipendenza impostata.
issues.dependency.add=Aggiungi dipendenza…
issues.dependency.cancel=Annulla
issues.dependency.remove=Rimuovi
issues.dependency.remove_info=Rimuovi questa dipendenza
issues.dependency.added_dependency=`ha aggiunto una nuova dipendenza %s`
issues.dependency.removed_dependency=`ha rimosso una dipendenza %s`
issues.dependency.pr_closing_blockedby=La chiusura di questa pull request è bloccata dai seguenti problemi
issues.dependency.issue_closing_blockedby=La chiusura di questo problema è bloccata dai seguenti problemi
issues.dependency.issue_close_blocks=Questo problema impedisce la chiusura dei seguenti problemi
issues.dependency.pr_close_blocks=Questa richiesta di pull impedisce la chiusura dei seguenti problemi
issues.dependency.issue_close_blocked=Devi chiudere tutte le anomalie che bloiccano questo problema prima di chiudelo.
issues.dependency.pr_close_blocked=Chiudere tutte le anomalie che bloccano la richiesta di pull prima di effettaure il merge.
issues.dependency.blocks_short=Blocchi
issues.dependency.blocked_by_short=Dipende da
issues.dependency.remove_header=Rimuovi Dipendenza
issues.dependency.issue_remove_text=Questo rimuoverà la dipendenza da questa issue. Continuare?
issues.dependency.pr_remove_text=Questo rimuoverà la dipendenza da questa pull request. Continuare?
issues.dependency.setting=Abilita le dipendenze per problemi e Pull Requests
issues.dependency.add_error_same_issue=Non si può fare dipendere un problema da se stesso.
issues.dependency.add_error_dep_issue_not_exist=Il problema dipendente non esiste.
issues.dependency.add_error_dep_not_exist=La dipendenza non esiste.
issues.dependency.add_error_dep_exists=La dipendenza esiste già.
issues.dependency.add_error_cannot_create_circular=Non puoi creare una dipendenza con due problemi che si bloccano a vicenda.
issues.dependency.add_error_dep_not_same_repo=Entrambi i problemi devono essere nello stesso repository.
issues.review.self.approval=Non puoi approvare la tua pull request.
issues.review.self.rejection=Non puoi richiedere modifiche sulla tua pull request.
issues.review.approve=hanno approvato queste modifiche %s
issues.review.comment=revisionato %s
issues.review.dismissed=recensione %s di %s respinta
issues.review.dismissed_label=Respinta
issues.review.left_comment=lascia un commento
issues.review.content.empty=Devi lasciare un commento che indichi la modifica richiesta.
issues.review.reject=richieste modifiche %s
issues.review.wait=è stato richiesto per la revisione %s
issues.review.add_review_request=recensione richiesta da %s %s
issues.review.remove_review_request=ha rimosso la richiesta di revisione per %s %s
issues.review.remove_review_request_self=ha rifiutato di rivedere %s
issues.review.pending=In sospeso
issues.review.review=Revisiona
issues.review.reviewers=Revisori
issues.review.outdated=Scaduto
issues.review.show_outdated=Visualizza obsoleti
issues.review.hide_outdated=Nascondere obsoleti
issues.review.show_resolved=Mostra risolti
issues.review.hide_resolved=Nascondi risolte
issues.review.resolve_conversation=Risolvi la conversazione
issues.review.un_resolve_conversation=Segnala la conversazione come non risolta
issues.review.resolved_by=ha contrassegnato questa conversazione come risolta
issues.assignee.error=Non tutte le assegnazioni sono state aggiunte a causa di un errore imprevisto.
issues.reference_issue.body=Corpo
issues.content_history.deleted=eliminato
issues.content_history.edited=modificato
issues.content_history.created=creato
issues.content_history.delete_from_history=Elimina dalla cronologia
issues.content_history.delete_from_history_confirm=Eliminare dalla cronologia?
issues.content_history.options=Opzioni
issues.reference_link=Riferimento: %s
compare.compare_base=base
compare.compare_head=confronta
pulls.desc=Attiva pull request e revisioni di codice.
pulls.new=Nuova Pull Request
pulls.view=Visualizza Pull Request
pulls.compare_changes=Nuova Pull Request
pulls.allow_edits_from_maintainers=Consenti modifiche dai manutentori
pulls.allow_edits_from_maintainers_desc=Gli utenti con accesso in scrittura al ramo base possono anche inviare a questo ramo
pulls.allow_edits_from_maintainers_err=Aggiornamento non riuscito
pulls.compare_changes_desc=Selezione il branch su cui eseguire il merge e il branch da cui eseguire il pull.
pulls.has_viewed_file=Visualizzato
pulls.has_changed_since_last_review=Modificato dalla tua ultima recensione
pulls.viewed_files_label=%[1]d / %[2]d file visti
pulls.compare_base=unisci a
pulls.compare_compare=esegui un pull da
pulls.switch_comparison_type=Cambia tipo di confronto
pulls.switch_head_and_base=Testa e base di commutazione
pulls.filter_branch=Filtra branch
pulls.no_results=Nessun risultato trovato.
pulls.nothing_to_compare=Questi rami sono uguali. Non c'è alcuna necessità di creare una pull request.
pulls.nothing_to_compare_and_allow_empty_pr=Questi rami sono uguali. Questa PR sarà vuota.
pulls.has_pull_request=`Una pull request tra questi rami esiste già: %[2]s#%[3]d`
pulls.create=Crea Pull Request
pulls.title_desc=vorrebbe unire %[1]d commit da %[2]s
a %[3]s
pulls.merged_title_desc=ha unito %[1]d commit da %[2]s
a %[3]s
%[4]s
pulls.change_target_branch_at=`cambiato il branch di destinazione da %s a %s %s`
pulls.tab_conversation=Conversazione
pulls.tab_commits=Commit
pulls.tab_files=File modificati
pulls.reopen_to_merge=Riapri questa pull request per effettuare l'unione.
pulls.cant_reopen_deleted_branch=Questa pull request non può essere riaperta perché il branch è stato eliminato.
pulls.merged=Unito
pulls.manually_merged=Unito manualmente
pulls.is_closed=La pull request è stata chiusa.
pulls.title_wip_desc=`Inizia il titolo con %s per evitare che la pull request venga unita accidentalmente.`
pulls.cannot_merge_work_in_progress=Questa pull request è contrassegnata come un lavoro in corso.
pulls.still_in_progress=Ancora in corso?
pulls.add_prefix=Aggiungi prefisso %s
pulls.remove_prefix=Rimuovi il prefisso %s
pulls.data_broken=Questa pull request è rovinata a causa di informazioni mancanti del fork.
pulls.files_conflicted=Questa pull request ha modifiche in conflitto con il branch di destinazione.
pulls.is_checking=Verifica dei conflitti di merge in corso. Riprova tra qualche istante.
pulls.is_ancestor=Questo ramo è già incluso nel ramo di destinazione. Non c'è nulla da unire.
pulls.is_empty=Le modifiche di questo ramo sono già nel ramo di destinazione. Questo sarà un commit vuoto.
pulls.required_status_check_failed=Alcuni controlli richiesti non hanno avuto successo.
pulls.required_status_check_missing=Mancano alcuni controlli richiesti.
pulls.required_status_check_administrator=Come amministratore, puoi ancora unire questa pull request.
pulls.blocked_by_approvals=La richiesta Pull non ha abbastanza approvazioni. %d di %d approvazioni concesse.
pulls.blocked_by_rejection=Questa Pull Request ha delle modifiche richieste da un revisore.
pulls.blocked_by_official_review_requests=Questa richiesta Pull ha richieste di recensione ufficiale.
pulls.blocked_by_outdated_branch=Questa Pull Request è bloccata perché obsoleta.
pulls.blocked_by_changed_protected_files_1=Questa richiesta Pull è bloccata perché modifica un file protetto:
pulls.blocked_by_changed_protected_files_n=Questa richiesta Pull è bloccata perché modifica file protetti:
pulls.can_auto_merge_desc=La pull request può essere unita automaticamente.
pulls.cannot_auto_merge_desc=Questa pull request non può essere unita automaticamente a causa di conflitti.
pulls.cannot_auto_merge_helper=Unire manualmente per risolvere i conflitti.
pulls.num_conflicting_files_1=%d file in conflitto
pulls.num_conflicting_files_n=%d files in conflitto
pulls.approve_count_1=%d approvazione
pulls.approve_count_n=%d approvazioni
pulls.reject_count_1=%d richiesta di cambiamento
pulls.reject_count_n=%d richieste di cambiamento
pulls.waiting_count_1=%d in attesa di revisione
pulls.waiting_count_n=%d in attesa di revisione
pulls.wrong_commit_id=l'id del commit deve essere un id del commit nel branch di destinazione
pulls.no_merge_desc=Questa pull request non può essere unita perché tutte le opzioni di merge del repository sono disattivate.
pulls.no_merge_helper=Attiva le opzioni di merge nelle impostazioni del repository o unisci la pull request manualmente.
pulls.no_merge_wip=Questa pull request non può essere unita perché è contrassegnata come un lavoro in corso.
pulls.no_merge_not_ready=Questa pull request non è pronta per il merge, controlla lo stato della revisione e i controlli di stato.
pulls.no_merge_access=Non sei autorizzato ad effettuare il merge su questa pull request.
pulls.merge_pull_request=Crea commit unito
pulls.rebase_merge_pull_request=Ricostruisci poi manda avanti
pulls.rebase_merge_commit_pull_request=Ricostruisci quindi crea commit unito
pulls.squash_merge_pull_request=Crea commit mescolato
pulls.merge_manually=Unito manualmente
pulls.merge_commit_id=L'ID del commit di merge
pulls.require_signed_wont_sign=Il branch richiede commit firmati ma questo merge non verrà firmato
pulls.invalid_merge_option=Non puoi utilizzare questa opzione di merge per questa pull request.
pulls.merge_conflict=Unione non riuscita: C'è stato un conflitto durante l'operazione. Suggerimento: Prova una strategia diversa
pulls.merge_conflict_summary=Messaggio d'errore
pulls.rebase_conflict=Merge non riuscito: c'è stato un conflitto durante il rebase dell'commit: %[1]s. Suggerimento: Prova una strategia diversa
pulls.rebase_conflict_summary=Messaggio d'Errore
pulls.unrelated_histories=Unione fallita: gli Head del ramo da unire e la base non condividono una storia cronologica in comune. Suggerimento: prova una strategia diversa
pulls.merge_out_of_date=Unione fallita: Durante la generazione del merge, la base è stata aggiornata. Suggerimento: Riprova.
pulls.head_out_of_date=Unione non riuscita: durante la generazione della fusione, la testa è stata aggiornata. Suggerimento: Riprova.
pulls.push_rejected=Unisci non riuscito: il push è stato rifiutato. Rivedi gli Hooks Git per questo repository.
pulls.push_rejected_summary=Messaggio Di Rifiuto Completo
pulls.push_rejected_no_message=Unione non riuscita: il push è stato rifiutato ma non c'è stato un messaggio remoto.{index}
.
settings.tracker_url_format_desc=Usa i segnaposto {user}
, {repo}
e {index}
per il nome utente, il nome del repository e l'indice delle issue.
settings.enable_timetracker=Abilita il cronografo
settings.allow_only_contributors_to_track_time=Consenti soltanto ai contributori di utilizzare il cronografo
settings.pulls_desc=Abilita le pull request del repository
settings.pulls.ignore_whitespace=Ignora gli spazi bianchi per evitare conflitti
settings.pulls.enable_autodetect_manual_merge=Abilita il rilevamento automatico della fusione manuale (Nota: in alcuni casi speciali possono verificarsi errori)
settings.pulls.allow_rebase_update=Abilita l'aggiornamento del ramo pull request per rebase
settings.pulls.default_delete_branch_after_merge=Elimina il ramo pull request dopo la fusione per impostazione predefinita
settings.packages_desc=Abilita Il Registro Dei Pacchetti Repository
settings.projects_desc=Abilita Progetti Repository
settings.admin_settings=Impostazioni amministratore
settings.admin_enable_health_check=Abilita verifica dell'integrità del repository (git fsck)
settings.admin_code_indexer=Indicizzatore del codice
settings.admin_stats_indexer=Indicizzatore di statistiche del codice
settings.admin_indexer_commit_sha=Hash SHA dell'ultimo commit indicizzato
settings.admin_indexer_unindexed=Non indicizzato
settings.reindex_button=Aggiungi alla coda di re-indicizzazione
settings.reindex_requested=Re-indicizzazione richiesta
settings.admin_enable_close_issues_via_commit_in_any_branch=Chiudi un issue tramite un commit eseguito in un branch non predefinito
settings.danger_zone=Zona Pericolosa
settings.new_owner_has_same_repo=Il nuovo proprietario ha già un repository con lo stesso nome. Per favore scegli un altro nome.
settings.convert=Converti in un repository regolare
settings.convert_desc=È possibile convertire questo mirror in un repository regolare. Questa operazione non può essere annullata.
settings.convert_notices_1=- Questa operazione convertirà questo mirror in una repository regolare e non potrà essere annullata.
settings.convert_confirm=Converti Repository
settings.convert_succeed=Il mirror è stato convertito in un repository regolare.
settings.convert_fork=Converti in un repository regolare
settings.convert_fork_desc=Puoi convertire questo fork in un normale repository. Questo non può essere annullato.
settings.convert_fork_notices_1=Questa operazione convertirà il fork in un normale repository e non può essere annullata.
settings.convert_fork_confirm=Converti Repository
settings.convert_fork_succeed=Il fork è stato convertito in un repository regolare.
settings.transfer=Trasferisci proprietà
settings.transfer.rejected=Il trasferimento del repository è stato rifiutato.
settings.transfer.success=Il trasferimento del repository è andato a buon fine.
settings.transfer_abort=Annulla trasferimento
settings.transfer_abort_invalid=Non è possibile annullare un trasferimento di repository non esistente.
settings.transfer_abort_success=Il trasferimento del repository a %s è stato annullato con successo.
settings.transfer_desc=Trasferisci questo repository a un altro utente o a un'organizzazione nella quale hai diritti d'amministratore.
settings.transfer_form_title=Inserisci il nome del repository come conferma:
settings.transfer_in_progress=Al momento c'è un trasferimento in corso. Si prega di annullarlo se si desidera trasferire questo repository a un altro utente.
settings.transfer_notices_1=-Si perderà l'accesso al repository se lo si trasferisce ad un utente singolo.
settings.transfer_notices_2=-Si manterrà l'accesso al repository se si trasferisce in un'organizzazione che possiedi (o condividi con qualcun'altro).
settings.transfer_notices_3=- Se il repository è privato e viene trasferito a un singolo utente, questa azione si assicura che l'utente abbia almeno i permessi di lettura (e le modifiche se necessario).
settings.transfer_owner=Nuovo Proprietario
settings.transfer_perform=Esegui trasferimento
settings.transfer_started=`Questo repository è stato contrassegnato per il trasferimento e attende conferma da "%s"`
settings.transfer_succeed=Il repository è stato trasferito.
settings.signing_settings=Impostazioni Verifica Firma
settings.trust_model=Modello di Fiducia per la Firma
settings.trust_model.default=Modello Di Fiducia Predefinito
settings.trust_model.default.desc=Usa il modello di trust del repository predefinito per questa installazione.
settings.trust_model.collaborator=Collaboratore
settings.trust_model.collaborator.long=Collaboratore: Firme di fiducia da parte dei collaboratori
settings.trust_model.collaborator.desc=Le firme valide da parte dei collaboratori di questo repository saranno contrassegnate con "trusted" (sia che corrispondano al committer o meno). Altrimenti, le firme valide saranno contrassegnate con "untrusted" se la firma corrisponde al committer e "unmatched" se non.
settings.trust_model.committer=Committer
settings.trust_model.committer.long=Committer: firme affidabili che corrispondono ai committer (questo corrisponde a GitHub e costringerà i commit firmati di Gitea ad avere Gitea come committer)
settings.trust_model.collaboratorcommitter=Collaboratore+Committer
settings.trust_model.collaboratorcommitter.long=Collaboratore+Committer: Firme di fiducia da parte dei collaboratori che corrispondono al committer
settings.trust_model.collaboratorcommitter.desc=Le firme valide da parte dei collaboratori di questa repository saranno contrassegnate "fidate" se corrispondono al committer. Altrimenti le firme saranno contrassegnate con "untrusted" se la firma corrisponde al committer non corrisponde. Questo costringerà Gitea a essere contrassegnato come committer su impegni firmati con l'effettivo committer contrassegnato come Co-Authored-By: e Co-Committed-By: nel commit. La chiave Gitea predefinita deve corrispondere a un utente nel database.
settings.wiki_delete=Elimina dati Wiki
settings.wiki_delete_desc=L'eliminazione dei dati della wiki del repository è permanente e non può essere annullata.
settings.wiki_delete_notices_1=-Questa operazione eliminerà permanentemente e disabiliterà la wiki repository per %s.
settings.confirm_wiki_delete=Elimina dati Wiki
settings.wiki_deletion_success=I dati della repository wiki sono stati eliminati.
settings.delete=Elimina questo repository
settings.delete_desc=L'eliminazione di un repository è un'operazione permanente e non può essere annullata.
settings.delete_notices_1=-Questa operazione NON PUÒ essere annullata.
settings.delete_notices_2=-Questa operazione eliminerà definitivamente il repository %s inclusi codice, issue, commenti, dati wiki e impostazioni collaboratore.
settings.delete_notices_fork_1=-I fork di questo repository diventeranno indipendenti dopo la cancellazione.
settings.deletion_success=Il repository è stato eliminato.
settings.update_settings_success=Le impostazioni del repository sono state aggiornate.
settings.confirm_delete=Elimina repository
settings.add_collaborator=Aggiungi collaboratore
settings.add_collaborator_success=Il collaboratore è stato aggiunto.
settings.add_collaborator_inactive_user=Non posso aggiungere un utente inattivo come collaboratore.
settings.add_collaborator_duplicate=Il collaboratore è già stato aggiunto a questo repository.
settings.delete_collaborator=Rimuovi
settings.collaborator_deletion=Rimuovi collaboratore
settings.collaborator_deletion_desc=Rimuovere un collaboratore revocherà l'accesso a questo repository. Continuare?
settings.remove_collaborator_success=Il collaboratore è stato rimosso.
settings.search_user_placeholder=Ricerca utente…
settings.org_not_allowed_to_be_collaborator=Le organizzazioni non possono essere aggiunte come un collaboratore.
settings.change_team_access_not_allowed=La modifica dell'accesso al team per il repository è stato limitato al solo proprietario dell'organizzazione
settings.team_not_in_organization=Il team non è nella stessa organizzazione del repository
settings.teams=Gruppi
settings.add_team=Aggiungi Squadra
settings.add_team_duplicate=Il team ha già il repository
settings.add_team_success=Il team ha ora accesso al repository.
settings.search_team=Cerca Squadra…
settings.change_team_permission_tip=Il permesso del team è impostato sulla pagina delle impostazioni del team e non può essere modificato per repository
settings.delete_team_tip=Questo team ha accesso a tutte le repository e non può essere rimosso
settings.remove_team_success=L'accesso del team al repository è stato rimosso.
settings.add_webhook=Aggiungi Webhook
settings.add_webhook.invalid_channel_name=Il canale Webhook non può essere vuoto e contenere solo un # carattere.
settings.hooks_desc=I Webhook effettuano automaticamente richieste HTTP POST ad un server quando si verificano determinati eventi Gitea. Per saperne di più leggi la guida ai webhooks.
settings.webhook_deletion=Rimuovi Webhook
settings.webhook_deletion_desc=Rimuovere un webhook rimuove le sue impostazioni e la sua cronologia di consegna. Continuare?
settings.webhook_deletion_success=Il webhook è stato rimosso.
settings.webhook.test_delivery=Test di consegna
settings.webhook.test_delivery_desc=Prova questo webhook con un evento falso.
settings.webhook.request=Richiesta
settings.webhook.response=Risposta
settings.webhook.headers=Intestazioni
settings.webhook.payload=Contenuto
settings.webhook.body=Corpo
settings.webhook.replay.description=Riproduci questo webhook.
settings.webhook.delivery.success=Un evento è stato aggiunto alla coda di consegna. Potrebbe volerci qualche secondo prima che venga visualizzato nella cronologia delle consegne.
settings.githooks_desc=Git Hooks è alimentato da Git stesso. È possibile modificare i file hook qui sotto per impostare operazioni personalizzate.
settings.githook_edit_desc=Se l'hook è inattivo, sarà presentato un contenuto esempio. Lasciando il contenuto vuoto disattiverai questo hook.
settings.githook_name=Nome hook
settings.githook_content=Contenuto hook
settings.update_githook=Aggiorna Hook
settings.add_webhook_desc=Gitea invierà richieste POST
con un tipo di contenuto specifico all'URL di destinazione. Per saperne di più leggi la guida ai webhook.
settings.payload_url=URL di destinazione
settings.http_method=Metodo HTTP
settings.content_type=Tipo di contenuto POST
settings.secret=Segreto
settings.slack_username=Nome utente
settings.slack_icon_url=URL icona
settings.slack_color=Colore
settings.discord_username=Nome utente
settings.discord_icon_url=URL icona
settings.event_desc=Attivato su:
settings.event_push_only=Pusha eventi
settings.event_send_everything=Tutti gli eventi
settings.event_choose=Eventi personalizzati…
settings.event_header_repository=Eventi del repository
settings.event_create=Crea
settings.event_create_desc=Branch o tag creato.
settings.event_delete=Elimina
settings.event_delete_desc=Branch o tag eliminati.
settings.event_fork=Fork
settings.event_fork_desc=Repository forkato.
settings.event_wiki=Wiki
settings.event_release=Release
settings.event_release_desc=Release pubblicata, aggiornata o rimossa in una repository.
settings.event_push=Push
settings.event_push_desc=Git push in un repository.
settings.event_repository=Repository
settings.event_repository_desc=Repository creato o eliminato.
settings.event_header_issue=Eventi dei Problemi
settings.event_issues=Issues
settings.event_issues_desc=Issue aperto, chiuso, riaperto o modificato.
settings.event_issue_assign=Issue Assegnato
settings.event_issue_assign_desc=Issue assegnata o non assegnata.
settings.event_issue_label=Issue etichettato
settings.event_issue_label_desc=Etichette dei Problemi aggiornate o cancellate.
settings.event_issue_milestone=Obiettivo Raggiunto
settings.event_issue_milestone_desc=Obiettivo raggiunto o abbandonato.
settings.event_issue_comment=Commento Issue
settings.event_issue_comment_desc=Commento issue creato, modificato o rimosso.
settings.event_header_pull_request=Eventi di Pull Request
settings.event_pull_request=Pull Request
settings.event_pull_request_desc=Pull request aperta, chiusa, riaperta o modificata.
settings.event_pull_request_assign=Pull Request assegnata
settings.event_pull_request_assign_desc=Pull request assegnata o non assegnata.
settings.event_pull_request_label=Pull Request etichettata
settings.event_pull_request_label_desc=Etichette Pull request aggiornate o cancellate.
settings.event_pull_request_milestone=Pull Request raggiunta
settings.event_pull_request_milestone_desc=Pull request raggiunto o abbandonato.
settings.event_pull_request_comment=Commento su questa richiesta di pull
settings.event_pull_request_comment_desc=Commento della Pull request creato, modificato o cancellato.
settings.event_pull_request_review=Pull Request Revisionata
settings.event_pull_request_review_desc=Pull request approvata, respinta o recensione commento.
settings.event_pull_request_sync=Richiesta Pull Sincronizzata
settings.event_pull_request_sync_desc=Pull request sincronizzata.
settings.event_package=Pacchetto
settings.event_package_desc=Pacchetto creato o eliminato in un repository.
settings.branch_filter=Filtro branch
settings.branch_filter_desc=Whitelist dei rami per gli eventi di spinta, creazione dei rami e cancellazione dei rami, specificati come modello globo. Se vuoto o *
, gli eventi per tutti i rami sono segnalati. Vedi la documentazione github.com/gobwas/glob per la sintassi. Esempi: master
, {master,release*}
.
settings.active=Attivo
settings.active_helper=Le informazioni sugli eventi innescati saranno inviate a questo URL del webhook.
settings.add_hook_success=Il webhook è stato aggiunto.
settings.update_webhook=Aggiorna Webhook
settings.update_hook_success=Il webhook è stato aggiornato.
settings.delete_webhook=Rimuovi Webhook
settings.recent_deliveries=Recenti Deliveries
settings.hook_type=Tipo di Hook
settings.slack_token=Gettone
settings.slack_domain=Dominio
settings.slack_channel=Canale
settings.add_web_hook_desc=Integra %s nel tuo repository.
settings.web_hook_name_gitea=Gitea
settings.web_hook_name_gogs=Gogs
settings.web_hook_name_slack=Slack
settings.web_hook_name_discord=Discord
settings.web_hook_name_dingtalk=DingTalk
settings.web_hook_name_telegram=Telegram
settings.web_hook_name_matrix=Matrix
settings.web_hook_name_msteams=Microsoft Teams
settings.web_hook_name_feishu_or_larksuite=Feishu / Lark Suite
settings.web_hook_name_feishu=Feishu
settings.web_hook_name_larksuite=Lark Suite
settings.web_hook_name_wechatwork=WeCom (Wechat Work)
settings.web_hook_name_packagist=Packagist
settings.packagist_username=Nome utente Packagist
settings.packagist_api_token=API token
settings.packagist_package_url=Url pacchetto pacchetti
settings.deploy_keys=Dispiega Chiavi
settings.add_deploy_key=Aggiungi Deploy Key
settings.deploy_key_desc=Le deploy key possiedono l'accesso solamente alla lettura di un repository.
settings.is_writable=Abilita accesso scrittura
settings.is_writable_info=Permetti a questa deploy key di pushare nella repository.
settings.no_deploy_keys=Non sono ancora presenti deploy key.
settings.title=Titolo
settings.deploy_key_content=Contenuto
settings.key_been_used=Una deploy key con contenuto identico è già in uso.
settings.key_name_used=Esiste già una deploy key con questo nome.
settings.deploy_key_deletion=Rimuovi deploy key
settings.deploy_key_deletion_desc=Rimuovere una chiave di distribuzione ne revocherà l'accesso a questo repository. Continuare?
settings.deploy_key_deletion_success=La chiave di distribuzione è stata rimossa.
settings.branches=Branches
settings.protected_branch=Protezione branch
settings.protected_branch_can_push=Consentire push?
settings.protected_branch_can_push_yes=Puoi pushare
settings.protected_branch_can_push_no=Non puoi pushare
settings.branch_protection=Protezione branch per il branch '%s'
settings.protect_this_branch=Attiva protezione branch
settings.protect_this_branch_desc=Impedisce l'eliminazione e limita il merge di Git effettuando il push e l'unione verso questo ramo.
settings.protect_disable_push=Disabilita push
settings.protect_disable_push_desc=Nessun push sarà consentito in questo ramo.
settings.protect_enable_push=Abilita push
settings.protect_enable_push_desc=Chiunque con accesso in scrittura sarà autorizzato a pushare su questo ramo (ma non forzare il push).
settings.protect_whitelist_committers=Lista bianch push ristretti
settings.protect_whitelist_committers_desc=Solo gli utenti o i team nella whitelist potranno pushare su questo ramo (ma non forzare il push).
settings.protect_whitelist_deploy_keys=Chiavi di deploy in whitelist con permessi di scrittura per il push.
settings.protect_whitelist_users=Utenti nella whitelist per pushare:
settings.protect_whitelist_search_users=Cerca utenti…
settings.protect_whitelist_teams=Team nella whitelist per pushare:
settings.protect_whitelist_search_teams=Ricerca team…
settings.protect_merge_whitelist_committers=Attiva la whitelist per i merge
settings.protect_merge_whitelist_committers_desc=Consentire soltanto agli utenti o ai team in whitelist il permesso di unire le pull request di questo branch.
settings.protect_merge_whitelist_users=Utenti nella whitelist per il merging:
settings.protect_merge_whitelist_teams=Team nella whitelist per il merging:
settings.protect_check_status_contexts=Abilita Controllo Stato
settings.protect_check_status_contexts_desc=Richiedi il superamento di controlli di stato prima dell'unione di due rami. Scegliere quali controlli di stato devono passare prima che i rami possano essere uniti in un ramo che corrisponde a questa regola. Se abilitato, i commit devono prima essere inviati a un altro ramo, quindi uniti o pushati direttamente a un ramo che corrisponde a questa regola dopo aver superato i controlli di stato. Se non viene selezionato alcuna regola, l'ultimo commit avrá successo indipendentemente dal contesto.
settings.protect_check_status_contexts_list=Controlli di stato trovati nell'ultima settimana per questo repository
settings.protect_required_approvals=Approvazioni richieste:
settings.protect_required_approvals_desc=Permetti solo di unire la richiesta pull con abbastanza recensioni positive.
settings.protect_approvals_whitelist_enabled=Limita le approvazioni agli utenti o ai team nella whitelist
settings.protect_approvals_whitelist_enabled_desc=Solo le recensioni di utenti o team nella whitelist saranno contate alle approvazioni richieste. Senza approvazione nella whitelist, le recensioni di chiunque abbia i permessi di scrittura nella repository verrá contato nelle approvazioni richieste.
settings.protect_approvals_whitelist_users=Utenti autorizzati:
settings.protect_approvals_whitelist_teams=Team nella whitelist per le revisioni:
settings.dismiss_stale_approvals=Ignora impostazione vecchie
settings.dismiss_stale_approvals_desc=Quando i nuovi commit che cambiano il contenuto della pull request vengono pushati nel branch, le vecchie approvazioni verranno eliminate.
settings.require_signed_commits=Richiede commit firmati
settings.require_signed_commits_desc=Rifiuta i push a questo ramo se non sono firmati o verificabili.
settings.add_protected_branch=Attiva protezione
settings.delete_protected_branch=Disattiva protezione
settings.protected_branch_deletion=Disattiva protezione branch
settings.protected_branch_deletion_desc=Disattivare la protezione branch permette agli utenti con permesso di scrittura di pushare sul branch. Continuare?
settings.block_rejected_reviews=Blocca il merge di revisioni rifiutate
settings.block_rejected_reviews_desc=Il merge non sarà possibile quando sono richiesti cambiamenti da revisori, anche se ci sono sufficienti approvazioni.
settings.block_on_official_review_requests=Blocca il merge sulle richieste ufficiali di revisione
settings.block_on_official_review_requests_desc=Il merge non sarà possibile quando sono richiesti cambiamenti da revisori, anche se ci sono sufficienti approvazioni.
settings.block_outdated_branch=Blocca il merge se la pull request è obsoleta
settings.block_outdated_branch_desc=Il merging non sarà possibile quando il ramo testa è dietro il ramo base.
settings.default_branch_desc=Seleziona un branch del repository predefinito per le pull request ed i commit di codice:
settings.default_merge_style_desc=Modalità di merge predefinita per le richieste di pull:
settings.choose_branch=Scegli un branch…
settings.no_protected_branch=Non ci sono branch protetti.
settings.edit_protected_branch=Modifica
settings.protected_branch_required_approvals_min=Le autorizzazioni richieste non possono essere negative.
settings.tags=Etichette
settings.tags.protection=Protezione Etichetta
settings.tags.protection.pattern=Sequenza Etichetta
settings.tags.protection.allowed=Consentito
settings.tags.protection.allowed.users=Utenti ammessi
settings.tags.protection.allowed.teams=Squadre ammesse
settings.tags.protection.allowed.noone=Nessuno
settings.tags.protection.create=Proteggi Etichetta
settings.tags.protection.none=Non ci sono etichette protette.
settings.tags.protection.pattern.description=È possibile utilizzare un singolo nome o un modello globo o un'espressione regolare per abbinare più tag. Leggi di più nella guida per i tag protetti.
settings.bot_token=Token del Bot
settings.chat_id=ID chat
settings.matrix.homeserver_url=URL Homeserver
settings.matrix.room_id=ID della stanza
settings.matrix.message_type=Tipo di messaggio
settings.archive.button=Archivia Repo
settings.archive.header=Archivia questo Repo
settings.archive.text=L'archiviazione del repository lo renderà completamente di sola lettura. Sarà nascosto nel cruscotto, non potranno essere fatti commit e non potranno essere creati issue o pull requests.
settings.archive.success=Il repo è stato archiviato con successo.
settings.archive.error=Si è verificato un errore durante il tentativo di archiviare il repo. Vedi il log per maggiori dettagli.
settings.archive.error_ismirror=Non puoi archiviare un mirror repo.
settings.archive.branchsettings_unavailable=Le impostazioni dei branch non sono disponibili se il repo è archiviato.
settings.archive.tagsettings_unavailable=Le impostazioni delle etichette non sono disponibili se il repo è archiviato.
settings.unarchive.button=Non archiviare Repo
settings.unarchive.header=Non archiviare questo Repo
settings.unarchive.text=Dis-Archiviare la repository ripristinerà la sua capacità di ricevere commit e push, così come la creazione di nuovi problemi e richieste di pull.
settings.unarchive.success=Il repo è stato aggiornato con successo.
settings.unarchive.error=Si è verificato un errore durante il tentativo di disarchiviazione della repository. Consulta il log per maggiori dettagli.
settings.update_avatar_success=L'avatar del repository è stato aggiornato.
settings.lfs=LFS
settings.lfs_filelist=File LFS memorizzati in questa repository
settings.lfs_no_lfs_files=Nessun file LFS salvato in questa repository
settings.lfs_findcommits=Cerca commit
settings.lfs_lfs_file_no_commits=Nessun commit trovato per questo file LFS
settings.lfs_noattribute=Questo percorso non ha l'attributo bloccabile nel ramo predefinito
settings.lfs_delete=Elimina file LFS con OID %s
settings.lfs_delete_warning=Eliminare un file LFS può causare errori tipo 'oggetto non esiste' al checkout. Sei sicuro?
settings.lfs_findpointerfiles=Trova files puntatori
settings.lfs_locks=Blocca
settings.lfs_invalid_locking_path=Percorso non valido: %s
settings.lfs_invalid_lock_directory=Impossibile bloccare la cartella: %s
settings.lfs_lock_already_exists=Il blocco esiste già: %s
settings.lfs_lock=Blocca
settings.lfs_lock_path=Percorso file da bloccare...
settings.lfs_locks_no_locks=Nessun blocco
settings.lfs_lock_file_no_exist=Il file bloccato non esiste nel ramo predefinito
settings.lfs_force_unlock=Sblocco forzato
settings.lfs_pointers.found=Trovati %d puntatori blob - %d associati, %d non associati (%d mancanti dalla memoria)
settings.lfs_pointers.sha=SHA Blob
settings.lfs_pointers.oid=OID
settings.lfs_pointers.inRepo=Nel repo
settings.lfs_pointers.exists=Esiste nel negozio
settings.lfs_pointers.accessible=Accessibile all'utente
settings.lfs_pointers.associateAccessible=Associa %d OID accessibili
settings.rename_branch_failed_exist=Impossibile rinominare il ramo perché il ramo di destinazione %s esiste.
settings.rename_branch_failed_not_exist=Impossibile rinominare il ramo %s perché non esiste.
settings.rename_branch_success=Il ramo %s è stato rinominato con successo in %s.
settings.rename_branch_from=vecchio nome del ramo
settings.rename_branch_to=nuovo nome del ramo
settings.rename_branch=Rinomina ramo
diff.browse_source=Sfoglia il codice sorgente
diff.parent=parent
diff.commit=commit
diff.git-notes=Note
diff.data_not_available=Dati Diff non disponibili
diff.options_button=Opzioni Diff
diff.show_diff_stats=Mostra statistiche
diff.download_patch=Scarica il file Patch
diff.download_diff=Scarica il file Diff
diff.show_split_view=Visualizzazione separata
diff.show_unified_view=Visualizzazione unificata
diff.whitespace_button=Spazi bianchi
diff.whitespace_show_everything=Visualizza tutti i cambiamenti
diff.whitespace_ignore_all_whitespace=Ignora spazi bianchi quando confronti le linee
diff.whitespace_ignore_amount_changes=Ignora cambiamenti di quantità di spazi bianchi
diff.whitespace_ignore_at_eol=Ignora cambiamenti di spazi bianchi alla fine delle linee
diff.stats_desc=%d ha cambiato i file con %d aggiunte e %d eliminazioni
diff.stats_desc_file=%d modifiche: %d aggiunte e %d cancellazioni
diff.bin=BIN
diff.bin_not_shown=File binario non mostrato.
diff.view_file=Vedi File
diff.file_before=Prima
diff.file_after=Dopo
diff.file_image_width=Larghezza
diff.file_image_height=Altezza
diff.file_byte_size=Dimensione
diff.file_suppressed=File diff soppresso perché troppo grande
diff.file_suppressed_line_too_long=File diff soppresso perché una o più righe sono troppo lunghe
diff.too_many_files=Alcuni file non sono stati mostrati perché troppi file sono cambiati in questo diff
diff.show_more=Mostra Altro
diff.load=Carica Diff
diff.generated=generato
diff.vendored=esterno
diff.comment.placeholder=Lascia un commento
diff.comment.markdown_info=Lo stile con markdown è supportato.
diff.comment.add_single_comment=Aggiungi un commento singolo
diff.comment.add_review_comment=Aggiungi commento
diff.comment.start_review=Inizio revisione
diff.comment.reply=Rispondi
diff.review=Revisiona
diff.review.header=Invia revisione
diff.review.placeholder=Revisione commento
diff.review.comment=Commentare
diff.review.approve=Approva
diff.review.self_reject=Gli autori di Pull request non possono richiedere modifiche sulla loro pull request
diff.review.reject=Richiedi cambiamenti
diff.review.self_approve=Gli autori di Pull request non possono approvare la loro pull request
diff.committed_by=committato da
diff.protected=Protetto
diff.image.side_by_side=A fianco
diff.image.swipe=Scorri
diff.image.overlay=Sovrapposta
diff.has_escaped=Questa riga ha caratteri Unicode nascosti
releases.desc=Tenere traccia di versioni e download del progetto.
release.releases=Rilasci
release.detail=Dettagli rilascio
release.tags=Etichette
release.new_release=Nuovo Rilascio
release.draft=Bozza
release.prerelease=Pre-Rilascio
release.stable=Stabile
release.compare=Confronta
release.edit=modifica
release.ahead.commits=%d commit
release.ahead.target=a %s da questa uscita
release.source_code=Codice Sorgente
release.new_subheader=Le release organizzano le versioni del progetto.
release.edit_subheader=Le release organizzano le versioni del progetto.
release.tag_name=Nome tag
release.target=Obbiettivo
release.tag_helper=Scegli un tag esistente o crea un nuovo tag.
release.prerelease_desc=Contrassegna come pre-release
release.prerelease_helper=Contrassegna questa release come inadatta per l'uso di produzione.
release.cancel=Annulla
release.publish=Pubblica Rilascio
release.save_draft=Salva Bozza
release.edit_release=Aggiorna release
release.delete_release=Elimina release
release.delete_tag=Elimina Etichetta
release.deletion=Elimina release
release.deletion_desc=L'eliminazione di una release lo rimuove solo da Gitea. Il tag Git, i contenuti del repository e la cronologia rimangono invariati. Continuare?
release.deletion_success=La release è stata eliminata.
release.deletion_tag_desc=Eliminerà questo tag dal repository. I contenuti del repository e la cronologia rimangono invariati. Continuare?
release.deletion_tag_success=L'etichetta è stata eliminata.
release.tag_name_already_exist=Una release con questo nome tag esiste già.
release.tag_name_invalid=Il nome tag non è valido.
release.tag_name_protected=Il nome dell'etichetta è protetto.
release.tag_already_exist=Questo nome tag esiste già.
release.downloads=Download
release.download_count=Scarica: %s
release.add_tag_msg=Utilizzare il titolo e il contenuto del rilascio come messaggio di tag.
release.add_tag=Crea Solo Branch
branch.name=Nome branch
branch.search=Cerca branch
branch.delete_head=Elimina
branch.delete_html=Elimina branch
branch.delete_desc=L'eliminazione di un branch è definitiva. È un'operazione che NON PUÒ essere annullata. Continuare?
branch.create_branch=Crea branch %s
branch.deleted_by=Eliminato da %s
branch.included_desc=Questo ramo fa parte del ramo predefinito
branch.included=Incluso
branch.create_new_branch=Crea un ramo dal ramo:
branch.confirm_create_branch=Crea ramo
branch.confirm_rename_branch=Rinomina ramo
branch.create_branch_operation=Crea ramo
branch.new_branch=Crea nuovo ramo
branch.renamed=Il ramo %s è stato rinominato in %s.
tag.create_tag=Crea branch %s
tag.create_tag_operation=Crea etichetta
tag.confirm_create_tag=Crea etichetta
topic.manage_topics=Gestisci argomenti
topic.done=Fatto
topic.count_prompt=Non puoi selezionare più di 25 argomenti
topic.format_prompt=Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
find_file.go_to_file=Vai al file
find_file.no_matching=Nessun file corrispondente trovato
error.csv.too_large=Impossibile visualizzare questo file perché è troppo grande.
error.csv.unexpected=Impossibile visualizzare questo file perché contiene un carattere inatteso alla riga %d e alla colonna %d.
error.csv.invalid_field_count=Impossibile visualizzare questo file perché ha un numero errato di campi alla riga %d.
[org]
org_name_holder=Nome dell'Organizzazione
org_full_name_holder=Nome completo dell'organizzazione
org_name_helper=I nomi delle organizzazioni devono essere brevi e semplici da ricordare.
create_org=Crea Organizzazione
repo_updated=Aggiornato
members=Membri
teams=Team
lower_members=membri
lower_repositories=repository
create_new_team=Nuovo Team
create_team=Crea Team
org_desc=Descrizione
team_name=Nome Team
team_desc=Descrizione
team_name_helper=I nomi dei team devono essere brevi e semplici da ricordare.
team_desc_helper=Descrivi lo scopo o il ruolo del team.
team_access_desc=Accesso al repository
team_permission_desc=Autorizzazione
team_unit_desc=Consentire l'accesso a sezioni di Repository
team_unit_disabled=(Disabilitato)
form.create_org_not_allowed=Non disponi dell'autorizzazione per creare un organizzazione.
settings=Impostazioni
settings.options=Organizzazione
settings.full_name=Nome Completo
settings.website=Sito Web
settings.location=Residenza
settings.permission=Autorizzazioni
settings.repoadminchangeteam=L'amministratore del repository può aggiungere e rimuovere l'accesso per i team
settings.visibility=Visibilità
settings.visibility.public=Pubblico
settings.visibility.limited_shortname=Limitato
settings.visibility.private=Privato (Visibile solo ai membri dell'organizzazione)
settings.visibility.private_shortname=Privato
settings.update_settings=Aggiorna Impostazioni
settings.update_setting_success=Le impostazioni dell'organizzazione sono state aggiornate.
settings.change_orgname_prompt=Nota: cambiare il nome dell'organizzazione cambia anche il relativo URL.
settings.change_orgname_redirect_prompt=Il vecchio nome reindirizzerà fino a quando non sarà richiesto.
settings.update_avatar_success=L'avatar dell'organizzazione è stato aggiornato.
settings.delete=Elimina organizzazione
settings.delete_account=Elimina questa organizzazione
settings.delete_prompt=L'organizzazione verrà rimossa definitivamente. Questa operazione NON PUÒ essere annullata!
settings.confirm_delete_account=Conferma Eliminazione
settings.delete_org_title=Elimina organizzazione
settings.delete_org_desc=Questa organizzazione verrà eliminata definitivamente. Continuare?
settings.hooks_desc=Aggiungi i webhooks che verranno attivati per tutti i repository sotto questa organizzazione.
settings.labels_desc=Aggiungi i webhooks che verranno attivati per tutti i repository sotto questa organizzazione.
members.membership_visibility=Visibilità appartenenza:
members.public=Visibile
members.public_helper=nascondi
members.private=Nascosto
members.private_helper=rendi visibile
members.member_role=Ruolo del membro:
members.owner=Proprietario
members.member=Membro
members.remove=Rimuovi
members.remove.detail=Rimuovere %[1]s dalla %[2]s?
members.leave=Abbandona
members.leave.detail=Lasciare %s?
members.invite_desc=Aggiungi un nuovo membro a %s:
members.invite_now=Invita ora
teams.join=Iscriviti
teams.leave=Abbandona
teams.leave.detail=Lasciare %s?
teams.can_create_org_repo=Crea repository
teams.can_create_org_repo_helper=I membri possono creare nuovi repository nell'organizzazione. Il creatore otterrà l'accesso di amministratore alla nuova repository.
teams.none_access=Nessun Accesso
teams.none_access_helper=I membri non possono visualizzare o fare altre azioni su questa unità.
teams.general_access=Accesso Generale
teams.general_access_helper=I permessi dei membri saranno decisi dalla seguente tabella dei permessi.
teams.read_access=Lettura
teams.read_access_helper=I membri possono visualizzare e clonare i repository del team.
teams.write_access=Scrittura
teams.write_access_helper=I membri possono leggere e pushare sui repository del team.
teams.admin_access=Accesso amministratore
teams.admin_access_helper=I membri possono pullare e pushare sulle repository del team e anche aggiungere collaboratori.
teams.no_desc=Questo team non ha alcuna descrizione
teams.settings=Impostazioni
teams.owners_permission_desc=I proprietari hanno pieno accesso a tutti i repository e hanno diritti di amministratore nell'organizzazione.
teams.members=Membri del Team
teams.update_settings=Aggiorna Impostazioni
teams.delete_team=Elimina team
teams.add_team_member=Aggiungi un Membro al Team
teams.delete_team_title=Elimina team
teams.delete_team_desc=Eliminare un team revocherà l'accesso al repository da parte dei suoi membri. Continuare?
teams.delete_team_success=Il team è stato eliminato.
teams.read_permission_desc=Questo team concede l'accesso di lettura: i membri possono visualizzare e clonare i repository del team.
teams.write_permission_desc=Questo team concede l'accesso di Scrittura: i membri possono leggere da e pushare sui repository del team.
teams.admin_permission_desc=Questo team concede l'accesso di Amministratore: i membri possono leggere da, pushare su e aggiungere collaboratori ai repository del team.
teams.create_repo_permission_desc=Inoltre, questo team concede il permesso di Creare repository: i membri possono creare nuove repository nell'organizzazione.
teams.repositories=Repository di Squadra
teams.search_repo_placeholder=Ricerca repository…
teams.remove_all_repos_title=Rimuovi tutti i repository del team
teams.remove_all_repos_desc=Questo rimuoverà tutte le repository dal team.
teams.add_all_repos_title=Aggiungi tutti i repository
teams.add_all_repos_desc=Questo aggiungerà tutte le repository dell'organizzazione al team.
teams.add_duplicate_users=L'utente è già un membro della squadra.
teams.repos.none=Nessun repository potrebbe essere acceduto dal team.
teams.members.none=Nessun utente su questo team.
teams.specific_repositories=Repository specifiche
teams.specific_repositories_helper=I membri avranno accesso solo alle repository aggiunte esplicitamente al team. Selezionando questo non si rimuoveranno automaticamente le repository già aggiunte con tutte le repository.
teams.all_repositories=Tutte le repository
teams.all_repositories_helper=Il team ha accesso a tutti i repository. Selezionando questo aggiungerà tutti le repository esistenti al team.
teams.all_repositories_read_permission_desc=Questo team concede permessi lettura l'accesso a tutte le repository: i membri possono visualizzare e clonare i repository.
teams.all_repositories_write_permission_desc=Questo team concede permessi di scrittura accesso a tutte le repository: i membri possono leggere e pushare le repository.
teams.all_repositories_admin_permission_desc=Questo team concede a Amministratore l'accesso a tutte le repository: i membri possono leggere, pushare e aggiungere collaboratori alle repository.
[admin]
dashboard=Pannello di Controllo
users=Account utenti
organizations=Organizzazioni
repositories=Repository
hooks=Webhooks
authentication=Fonti di autenticazione
emails=Email Utente
config=Configurazione
notices=Avvisi di sistema
monitor=Monitoraggio
first_page=Prima
last_page=Ultima
total=Totale: %d
dashboard.statistic=Riepilogo
dashboard.operations=Operazioni di manutenzione
dashboard.system_status=Stato del sistema
dashboard.operation_name=Nome Operazione
dashboard.operation_switch=Cambia
dashboard.operation_run=Esegui
dashboard.clean_unbind_oauth=Elimina connessione OAuth slegate
dashboard.clean_unbind_oauth_success=Tutte le connessione OAuth slegate sono state eliminate.
dashboard.task.started=Compito iniziato: %[1]s
dashboard.task.process=Compito: %[1]s
dashboard.task.cancelled=Compito: %[1]s annullato: %[3]s
dashboard.task.error=Errore in Attività: %[1]s: %[3]s
dashboard.task.finished=Compito: %[1]s iniziato da %[2]s ha finito
dashboard.task.unknown=Attività sconosciuta: %[1]s
dashboard.cron.started=Cron Avviato: %[1]s
dashboard.cron.process=Cron: %[1]s
dashboard.cron.cancelled=Cron: %s cancellato: %[3]s
dashboard.cron.error=Errore in Cron: %s: %[3]s
dashboard.cron.finished=Cron: %[1]s ha finito
dashboard.delete_inactive_accounts=Elimina tutti gli account non attivati
dashboard.delete_inactive_accounts.started=Attività di eliminazione degli account non attivati iniziata.
dashboard.delete_repo_archives=Elimina tutti gli archivi dei repository (ZIP, TAR.GZ, etc..)
dashboard.delete_repo_archives.started=Attività di eliminazione degli archivi del repository iniziata.
dashboard.delete_missing_repos=Elimina tutti i repository mancanti dei loro file Git
dashboard.delete_missing_repos.started=Elimina tutti i repository mancanti dei loro file Git.
dashboard.delete_generated_repository_avatars=Elimina gli avatar generati nelle repository
dashboard.update_mirrors=Aggiorna Mirror
dashboard.repo_health_check=Controlla integrità di tutti i repository
dashboard.check_repo_stats=Controlla tutte le statistiche del repository
dashboard.archive_cleanup=Elimina vecchi archivi del repository
dashboard.deleted_branches_cleanup=Pulisci branch eliminati
dashboard.update_migration_poster_id=Aggiorna gli ID del poster di migrazione
dashboard.git_gc_repos=Esegui la garbage collection su tutti i repository
dashboard.resync_all_sshkeys=Aggiornare il file '.ssh/authorized_keys' con le chiavi SSH Gitea.
dashboard.resync_all_sshkeys.desc=(Non necessario per il server SSH integrato.)
dashboard.resync_all_sshprincipals=Aggiornare il file '.ssh/authorized_keys' con le chiavi SSH Gitea.
dashboard.resync_all_sshprincipals.desc=(Non necessario per il server SSH integrato.)
dashboard.resync_all_hooks=Sincronizza nuovamente gli hook di pre-ricezione, di aggiornamento e di post-ricezione di tutti i repository.
dashboard.reinit_missing_repos=Reinizializza tutti i repository Git mancanti per i quali esistono cambiamenti registrati esistenti
dashboard.sync_external_users=Sincronizza dati utente esterno
dashboard.cleanup_hook_task_table=Pulisci tabella hook_task
dashboard.cleanup_packages=Pulizia pacchetti scaduti
dashboard.server_uptime=Tempo in Attività del Server
dashboard.current_goroutine=Goroutine Correnti
dashboard.current_memory_usage=Utilizzo di Memoria Corrente
dashboard.total_memory_allocated=Memoria Allocata Totale
dashboard.memory_obtained=Memoria Ottenuta
dashboard.pointer_lookup_times=Ricerche del Puntatore
dashboard.memory_allocate_times=Allocazioni di memoria
dashboard.memory_free_times=Rilasci di memoria
dashboard.current_heap_usage=Utilizzo Heap Corrente
dashboard.heap_memory_obtained=Memoria Heap Ottenuta
dashboard.heap_memory_idle=Memoria Heap Inattiva
dashboard.heap_memory_in_use=Memoria Heap In Uso
dashboard.heap_memory_released=Memoria Heap Rilasciata
dashboard.heap_objects=Oggetti dell'Heap
dashboard.bootstrap_stack_usage=Utilizzo Pila di Bootstrap
dashboard.stack_memory_obtained=Memoria Stack Ottenuta
dashboard.mspan_structures_usage=Utilizzo Strutture MSpan
dashboard.mspan_structures_obtained=Strutture MSpan Ottenute
dashboard.mcache_structures_usage=Utilizzo di Strutture MCache
dashboard.mcache_structures_obtained=Strutture MCache Ottenute
dashboard.profiling_bucket_hash_table_obtained=Tabella di Hash del Bucket Ottenuta
dashboard.gc_metadata_obtained=Metadata della GC ottenuta
dashboard.other_system_allocation_obtained=Altre Allocazioni di Sistema Ottenute
dashboard.next_gc_recycle=Prossimo Riciclaggio GC
dashboard.last_gc_time=Dall'Ultimo GC
dashboard.total_gc_time=Pausa Totale della GC
dashboard.total_gc_pause=Pausa Totale della GC
dashboard.last_gc_pause=Ultima pausa della GC
dashboard.gc_times=Esecuzioni GC
dashboard.delete_old_actions=Elimina tutte le vecchie azioni dal database
dashboard.delete_old_actions.started=Elimina tutte le vecchie azioni dal database iniziate.
dashboard.update_checker=Controllore dell'aggiornamento
dashboard.delete_old_system_notices=Elimina tutte le vecchie notifiche di sistema dal database
users.user_manage_panel=Gestione account utente
users.new_account=Crea account utente
users.name=Nome utente
users.full_name=Nome Completo
users.activated=Attivato
users.admin=Amministratore
users.restricted=Limitato
users.2fa=2FA
users.repos=Repo
users.created=Creato
users.last_login=Ultimo accesso
users.never_login=Mai effettuato l'accesso
users.send_register_notify=Invia notifica di registrazione utente
users.edit=Modifica
users.auth_source=Fonte di autenticazione
users.local=Locale
users.auth_login_name=Nome utente per l'autenticazione
users.password_helper=Lascia la password vuota per non modificarla.
users.update_profile_success=L'account utente è stato aggiornato.
users.edit_account=Modifica account utente
users.max_repo_creation=Numero massimo di repository
users.max_repo_creation_desc=(Inserire -1 per utilizzare il limite predefinito globale.)
users.is_activated=Account utente attivato
users.prohibit_login=Disattiva login
users.is_admin=È amministratore
users.is_restricted=È limitato
users.allow_git_hook=Può creare Git Hook
users.allow_git_hook_tooltip=Git Hooks sono eseguiti come l'utente OS che esegue Gitea e avrà lo stesso livello di accesso host. Di conseguenza, gli utenti con questo speciale privilegio Git Hook possono accedere e modificare tutti i repository Gitea e il database utilizzato da Gitea. Di conseguenza sono anche in grado di ottenere privilegi di amministratore Gitea.
users.allow_import_local=Può importare repository locali
users.allow_create_organization=Può creare organizzazioni
users.update_profile=Aggiorna account utente
users.delete_account=Elimina account utente
users.cannot_delete_self=Non puoi eliminare te stesso
users.still_own_repo=Questo utente possiede ancora una o più repository. Eliminare o trasferire questi repository prima di continuare.
users.still_has_org=Questo utente è membro di un'organizzazione. Rimuovi l'utente da tutte le organizzazioni prima di proseguire.
users.purge=Elimina Utente
users.purge_help=Eliminare forzatamente l'utente e tutti i depositi, le organizzazioni e i pacchetti di proprietà dell'utente. Tutti i commenti verranno eliminati troppo.
users.deletion_success=L'account utente è stato eliminato.
users.reset_2fa=Resetta 2FA
users.list_status_filter.menu_text=Filtro
users.list_status_filter.reset=Ripristina
users.list_status_filter.is_active=Attivo
users.list_status_filter.not_active=Inattivo
users.list_status_filter.is_admin=Amministratore
users.list_status_filter.not_admin=Non Amministratore
users.list_status_filter.is_restricted=Limitato
users.list_status_filter.not_restricted=Non Limitato
users.list_status_filter.is_prohibit_login=Divieto Di Login
users.list_status_filter.not_prohibit_login=Consenti Login
users.list_status_filter.is_2fa_enabled=2FA Abilitato
users.list_status_filter.not_2fa_enabled=2FA Disabilitato
emails.email_manage_panel=Gestione delle Email Utente
emails.primary=Primario
emails.activated=Attivato
emails.filter_sort.email=Email
emails.filter_sort.email_reverse=Email (inverso)
emails.filter_sort.name=Nome Utente
emails.filter_sort.name_reverse=Nome utente (inverso)
emails.updated=Email aggiornata
emails.not_updated=Impossibile aggiornare l'indirizzo email richiesto: %v
emails.duplicate_active=Questo indirizzo email risulta già attivo per un altro utente.
emails.change_email_header=Aggiorna proprietà email
emails.change_email_text=Sei sicuro di voler aggiornare questo indirizzo email?
orgs.org_manage_panel=Gestione Organizzazione
orgs.name=Nome
orgs.teams=Team
orgs.members=Membri
orgs.new_orga=Nuova Organizzazione
repos.repo_manage_panel=Gestione Repository
repos.unadopted=Depositi Non Adottati
repos.unadopted.no_more=Nessun repository non adottato trovato
repos.owner=Proprietario
repos.name=Nome
repos.private=Privati
repos.watches=Segue
repos.stars=Voti
repos.forks=Fork
repos.issues=Problemi
repos.size=Dimensione
packages.package_manage_panel=Gestione Pacchetti
packages.total_size=Dimensione totale: %s
packages.owner=Proprietario
packages.creator=Creatore
packages.name=Nome
packages.version=Versione
packages.type=Tipo
packages.repository=Repository
packages.size=Dimensione
packages.published=Pubblicata
defaulthooks=Webhook predefiniti
defaulthooks.desc=I Webhooks effettuano automaticamente richieste HTTP POST ad un server quando si verificano determinati eventi Gitea. I Webhooks definiti qui sono predefiniti e verranno copiati in tutti i nuovi repository. Per saperne di più leggi la guida ai webhooks.
defaulthooks.add_webhook=Aggiungi Webhook predefinito
defaulthooks.update_webhook=Aggiorna Webhook predefinito
systemhooks=Webhooks di Sistema
systemhooks.desc=I Webhooks effettuano automaticamente richieste HTTP POST ad un server quando si verificano determinati eventi Gitea. I Webhooks definiti qui agiranno su tutti i repository del sistema, quindi considera le eventuali implicazioni sulle performance che potrebbero avere. Per saperne di più leggi la guida ai webhooks.
systemhooks.add_webhook=Aggiungi Webhook di Sistema
systemhooks.update_webhook=Aggiorna Webhook di Sistema
auths.auth_manage_panel=Gestione fonti di autenticazione
auths.new=Aggiungi fonte di autenticazione
auths.name=Nome
auths.type=Tipo
auths.enabled=Attivo
auths.syncenabled=Abilita sincronizzazione utenti
auths.updated=Aggiornato
auths.auth_type=Tipo di autenticazione
auths.auth_name=Nome di autenticazione
auths.security_protocol=Protocollo di sicurezza
auths.domain=Dominio
auths.host=Host
auths.port=Porta
auths.bind_dn=Binda DN
auths.bind_password=Binda Password
auths.user_base=Base ricerca utente
auths.user_dn=DN dell'utente
auths.attribute_username=Attributo nome utente
auths.attribute_username_placeholder=Lasciare vuoto per utilizzare il nome utente inserito in Gitea.
auths.attribute_name=Attributo nome
auths.attribute_surname=Attributo cognome
auths.attribute_mail=Attributo email
auths.attribute_ssh_public_key=Attributo chiave SSH pubblica
auths.attribute_avatar=Attributo Avatar
auths.attributes_in_bind=Estrai Attributi dal Contesto Bind DN
auths.allow_deactivate_all=Consenti un risultato di ricerca vuoto per disattivare tutti gli utenti
auths.use_paged_search=Utilizza ricerca per pagina
auths.search_page_size=Dimensioni pagina
auths.filter=Fitro utente
auths.admin_filter=Filtro Amministratore
auths.restricted_filter=Filtro riservato
auths.restricted_filter_helper=Lasciare vuoto per non impostare alcun utente come limitato. Utilizzare un asterisco ('*') per impostare tutti gli utenti che non corrispondono al filtro amministratore.
auths.verify_group_membership=Verifica l'appartenenza al gruppo in LDAP (lascia vuoto il filtro per saltare)
auths.group_search_base=Ricerca Gruppo Base DN
auths.group_attribute_list_users=Gruppo Attributo Contenente Elenco Utenti
auths.user_attribute_in_group=Attributo Utente Elencato nel Gruppo
auths.map_group_to_team=Mappa i gruppi LDAP alle squadre dell'organizzazione (lasciare vuoto il campo per saltare)
auths.map_group_to_team_removal=Rimuovi gli utenti dai team sincronizzati se l'utente non appartiene al gruppo LDAP corrispondente
auths.enable_ldap_groups=Abilita gruppi LDAP
auths.ms_ad_sa=Attributi di ricerca AD MS
auths.smtp_auth=Tipo di autenticazione SMTP
auths.smtphost=Host SMTP
auths.smtpport=Porta SMTP
auths.allowed_domains=Domini consentiti
auths.allowed_domains_helper=Lasciare vuoto per ammettere tutti i domini. Separare più domini con una virgola (',').
auths.skip_tls_verify=Salta verifica TLS
auths.force_smtps=Forza SMTPS
auths.force_smtps_helper=SMTPS è sempre utilizzato sulla porta 465. Impostalo per forzare SMTPS su altre porte. (Otherwise STARTTLS sarà utilizzato su altre porte se è supportato dall'host.)
auths.helo_hostname=HELO nome dell'host
auths.helo_hostname_helper=Nome host inviato con HELO. Lasciare vuoto per inviare il nome host corrente.
auths.disable_helo=Disattiva HELO
auths.pam_service_name=Nome del Servizio PAM
auths.pam_email_domain=Dominio Email PAM (opzionale)
auths.oauth2_provider=OAuth2 Provider
auths.oauth2_icon_url=URL icona
auths.oauth2_clientID=ID Client (Chiave)
auths.oauth2_clientSecret=Segreto del client
auths.openIdConnectAutoDiscoveryURL=OpenID Connect Auto Discovery URL
auths.oauth2_use_custom_url=Utilizzare URL personalizzati anziché URL predefiniti
auths.oauth2_tokenURL=URL token
auths.oauth2_authURL=Autorizza URL
auths.oauth2_profileURL=URL profilo
auths.oauth2_emailURL=URL email
auths.skip_local_two_fa=Salta 2FA locale
auths.skip_local_two_fa_helper=Lasciare l'azzeramento significa che gli utenti locali con il set 2FA dovranno ancora passare 2FA per accedere
auths.oauth2_tenant=Comproprietà
auths.oauth2_scopes=Ambiti Aggiuntivi
auths.oauth2_required_claim_name=Nome Richiesto
auths.oauth2_required_claim_name_helper=Imposta questo nome per limitare il login da questa fonte agli utenti con un reclamo con questo nome
auths.oauth2_required_claim_value=Valore Richiesto
auths.oauth2_required_claim_value_helper=Imposta questo valore per limitare il login da questa fonte agli utenti con un reclamo con questo nome e valore
auths.oauth2_group_claim_name=Riscatta nome che fornisce nomi di gruppo per questa fonte (facoltativo)
auths.oauth2_admin_group=Valore del reclamo di gruppo per gli utenti amministratori. (Opzionale - richiede il nome della richiesta sopra)
auths.oauth2_restricted_group=Valore di reclamo di gruppo per utenti ristretti. (Facoltativo - richiede il nome di reclamo sopra)
auths.enable_auto_register=Abilitare Registrazione Automatica
auths.sspi_auto_create_users=Crea automaticamente gli utenti
auths.sspi_auto_create_users_helper=Permetti al metodo di autenticazione SSPI di creare automaticamente nuovi account per gli utenti che accedono per la prima volta
auths.sspi_auto_activate_users=Attiva automaticamente gli utenti
auths.sspi_auto_activate_users_helper=Consenti al metodo di autenticazione SSPI di attivare automaticamente i nuovi utenti
auths.sspi_strip_domain_names=Rimuovi nomi dominio dai nomi utente
auths.sspi_strip_domain_names_helper=Se selezionato, i nomi di dominio verranno rimossi dai nomi di accesso (es. "DOMAIN\user" e "user@example.org" entrambi diventeranno solo "user").
auths.sspi_separator_replacement=Separatore da utilizzare al posto di \, / e @
auths.sspi_separator_replacement_helper=Il carattere da utilizzare per sostituire i separatori dei nomi di logon di livello inferiore (es. il \ in "DOMAIN\user") e i nomi dell'utente principale (es. il @ in "user@example.org").
auths.sspi_default_language=Lingua predefinita dell'utente
auths.sspi_default_language_helper=Lingua predefinita per gli utenti creati automaticamente dal metodo di autenticazione SSPI. Lascia vuoto se preferisci che la lingua venga rilevata automaticamente.
auths.tips=Consigli
auths.tips.oauth2.general=Autenticazione OAuth2
auths.tips.oauth2.general.tip=Quando si registra una nuova autenticazione OAuth2, l'URL di callback/reindirizzamento deve essere:%[1]s
a [3]s
create_issue=`ha aperto il problema %[3]s#%[2]s`
close_issue=`ha chiuso il problema %[3]s#%[2]s`
reopen_issue=`ha riaperto il problema %[3]s#%[2]s`
create_pull_request=`ha creato la pull request %[3]s#%[2]s`
close_pull_request=`ha chiuso la pull request %[3]s#%[2]s`
reopen_pull_request=`ha riaperto la pull request %[3]s#%[2]s`
comment_issue=`ha commentato sul problema %[3]s#%[2]s`
comment_pull=`ha commentato su pull request %[3]s#%[2]s`
merge_pull_request=`ha unito il pull request %[3]s#%[2]s`
transfer_repo=repository %s
trasferito in %s
push_tag=ha inviato il tag %[3]s su %[4]s
delete_tag=tag eliminato %[2]s da %[3]s
delete_branch=branch eliminato %[2]s da %[3]s
compare_branch=Confronta
compare_commits=Confronta %d commits
compare_commits_general=Confronta commit
mirror_sync_push=ha sincronizzato i commit a %[3]s di %[4]s dal mirror
mirror_sync_create=ha sincronizzato un nuovo riferimento %[3]s su %[4]s dal mirror
mirror_sync_delete=riferimento sincronizzato ed eliminato %[2]s
a %[3]s dal mirror
approve_pull_request=`ha approvato %[3]s#%[2]s`
reject_pull_request=`ha suggerito modifiche per %[3]s#%[2]s`
publish_release=`ha rilasciato "%[4]s" su %[3]s`
review_dismissed=`respinta la recensione da %[4]s per %[3]s#%[2]s`
review_dismissed_reason=Motivo:
create_branch=ha creato il ramo %[3]s in %[4]s
starred_repo=ha salvato come preferito %[2]s
watched_repo=ha iniziato a guardare %[2]s
[tool]
now=ora
future=futuro
1s=1 secondo
1m=1 minuto
1h=1 ora
1d=1 giorno
1w=1 settimana
1mon=1 mese
1y=1 anno
seconds=%d secondi
minutes=%d minuti
hours=%d ore
days=%d giorni
weeks=%d settimane
months=%d mesi
years=%d anni
raw_seconds=secondi
raw_minutes=minuti
[dropzone]
default_message=Trascina i file o clicca qui per caricare.
invalid_input_type=Non è possibile caricare file di questo tipo.
file_too_big=La dimensione del file ({{filesize}} MB) supera la dimensione massima ({{maxFilesize}} MB).
remove_file=Rimuovi file
[notification]
notifications=Notifiche
unread=Non lette
read=Lette
no_unread=Nessuna notifica da leggere.
no_read=Nessuna notifica letta.
pin=Appunta notifica
mark_as_read=Segna come letto
mark_as_unread=Segna come non letto
mark_all_as_read=Segna tutti come letti
[gpg]
default_key=Firmato con la chiave predefinita
error.extract_sign=Impossibile ricavare la firma
error.generate_hash=Impossibile generare hash del commit
error.no_committer_account=Nessun account collegato all'indirizzo email del committer
error.no_gpg_keys_found=Non sono state trovate chiavi note per questa firma nel database
error.not_signed_commit=Commit non firmato
error.failed_retrieval_gpg_keys=Impossibile recuperare le chiavi associate all'account del committer
error.probable_bad_signature=ATTENZIONE! Anche se esiste una chiave con questo ID nel database, essa non verifica questo commit! Questo commit è SOSPETTO.
error.probable_bad_default_signature=ATTENZIONE! Anche se la chiave predefinita ha questo ID essa non verifica questo commit! Questo commit è SOSPETTO.
[units]
unit=Unità
error.no_unit_allowed_repo=Non possiedi il permesso di accedere ad alcuna sezione di questo repository.
error.unit_not_allowed=Non possiedi il permesso di accedere a questa sezione di repository.
[packages]
title=Pacchetti
desc=Gestisci pacchetti repository.
empty=Non ci sono ancora pacchetti.
empty.repo=Hai caricato un pacchetto, ma non è mostrato qui? Vai alle impostazioni del pacchetto e collegalo a questo repo.
filter.type=Tipo
filter.type.all=Tutti
filter.no_result=Il filtro non ha prodotto risultati.
filter.container.tagged=Etichettato
filter.container.untagged=Nont etichettato
published_by=Pubblicato %[1]s di %[3]s
published_by_in=Pubblicato %[1]s di %[3]s in %[5]s
installation=Installazione
about=Informazioni su questo pacchetto
requirements=Requisiti
dependencies=Dipendenze
keywords=Parole Chiave
details=Dettagli
details.author=Autore
details.project_site=Sito Del Progetto
details.license=Licenza
assets=Asset
versions=Versioni
versions.view_all=Vedi tutti
dependency.id=ID
dependency.version=Versione
alpine.install=Per installare il pacchetto, eseguire il seguente comando:
alpine.repository.branches=Branches
alpine.repository.repositories=Repository
chef.install=Per installare il pacchetto, eseguire il seguente comando:
composer.registry=Imposta questo registro nel tuo file ~/.composer/config.json
:
composer.install=Per installare il pacchetto utilizzando Composer, eseguire il seguente comando:
composer.documentation=Per ulteriori informazioni sul registro dei compositori, consultare la documentazione.
composer.dependencies=Dipendenze
composer.dependencies.development=Dipendenze Di Sviluppo
conan.details.repository=Repository
conan.registry=Configura questo registro dalla riga di comando:
conan.install=Per installare il pacchetto usando Conan, eseguire il seguente comando:
conan.documentation=Per ulteriori informazioni sul registro di Conan, consultare la documentazione.
container.details.type=Tipo Immagine
container.details.platform=Piattaforma
container.pull=Tirare l'immagine dalla riga di comando:
container.documentation=Per ulteriori informazioni sul registro Container, vedere la documentazione.
container.multi_arch=OS / Arch
container.layers=Livelli Immagine
container.labels=Etichette
container.labels.key=Chiave
container.labels.value=Valore
cran.install=Per installare il pacchetto, eseguire il seguente comando:
debian.registry=Configura questo registro dalla riga di comando:
debian.install=Per installare il pacchetto, eseguire il seguente comando:
generic.download=Scarica il pacchetto dalla riga di comando:
generic.documentation=Per ulteriori informazioni sul registro generico, consultare la documentazione.
helm.registry=Configura questo registro dalla riga di comando:
helm.install=Per installare il pacchetto, eseguire il seguente comando:
helm.documentation=Per ulteriori informazioni sul registro Helm, consultare la documentazione.
maven.registry=Configura questo registro nel file pom.xml
del tuo progetto:
maven.install=Per utilizzare il pacchetto includere i seguenti nel bloc<?php
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
* @copyright Copyright (c) 2016, Lukas Reschke <lukas@statuscode.ch>
*
* @author Arthur Schiwon <blizzz@arthur-schiwon.de>
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
* @author Daniel Kesselberg <mail@danielkesselberg.de>
* @author Joas Schilling <coding@schilljs.com>
* @author John Molakvoæ <skjnldsv@protonmail.com>
* @author Julius Härtl <jus@bitgrid.net>
* @author Lukas Reschke <lukas@statuscode.ch>
* @author Morris Jobke <hey@morrisjobke.de>
* @author Roeland Jago Douma <roeland@famdouma.nl>
* @author Thomas Müller <thomas.mueller@tmit.eu>
*
* @license AGPL-3.0
*
* This code is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* 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, version 3,
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
namespace OCA\Settings\Controller;
use OC\App\AppStore\Bundles\BundleFetcher;
use OC\App\AppStore\Fetcher\AppFetcher;
use OC\App\AppStore\Fetcher\CategoryFetcher;
use OC\App\AppStore\Version\VersionParser;
use OC\App\DependencyAnalyzer;
use OC\App\Platform;
use OC\Installer;
use OC_App;
use OCP\App\IAppManager;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\ContentSecurityPolicy;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\IConfig;
use OCP\IL10N;
use OCP\INavigationManager;
use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\L10N\IFactory;
use Psr\Log\LoggerInterface;
class AppSettingsController extends Controller {
/** @var \OCP\IL10N */
private $l10n;
/** @var IConfig */
private $config;
/** @var INavigationManager */
private $navigationManager;
/** @var IAppManager */
private $appManager;
/** @var CategoryFetcher */
private $categoryFetcher;
/** @var AppFetcher */
private $appFetcher;
/** @var IFactory */
private $l10nFactory;
/** @var BundleFetcher */
private $bundleFetcher;
/** @var Installer */
private $installer;
/** @var IURLGenerator */
private $urlGenerator;
/** @var LoggerInterface */
private $logger;
/** @var array */
private $allApps = [];
/**
* @param string $appName
* @param IRequest $request
* @param IL10N $l10n
* @param IConfig $config
* @param INavigationManager $navigationManager
* @param IAppManager $appManager
* @param CategoryFetcher $categoryFetcher
* @param AppFetcher $appFetcher
* @param IFactory $l10nFactory
* @param BundleFetcher $bundleFetcher
* @param Installer $installer
* @param IURLGenerator $urlGenerator
* @param LoggerInterface $logger
*/
public function __construct(string $appName,
IRequest $request,
IL10N $l10n,
IConfig $config,
INavigationManager $navigationManager,
IAppManager $appManager,
CategoryFetcher $categoryFetcher,
AppFetcher $appFetcher,
IFactory $l10nFactory,
BundleFetcher $bundleFetcher,
Installer $installer,
IURLGenerator $urlGenerator,
LoggerInterface $logger) {
parent::__construct($appName, $request);
$this->l10n = $l10n;
$this->config = $config;
$this->navigationManager = $navigationManager;
$this->appManager = $appManager;
$this->categoryFetcher = $categoryFetcher;
$this->appFetcher = $appFetcher;
$this->l10nFactory = $l10nFactory;
$this->bundleFetcher = $bundleFetcher;
$this->installer = $installer;
$this->urlGenerator = $urlGenerator;
$this->logger = $logger;
}
/**
* @NoCSRFRequired
*
* @return TemplateResponse
*/
public function viewApps(): TemplateResponse {
$params = [];
$params['appstoreEnabled'] = $this->config->getSystemValueBool('appstoreenabled', true);
$params['updateCount'] = count($this->getAppsWithUpdates());
$params['developerDocumentation'] = $this->urlGenerator->linkToDocs('developer-manual');
$params['bundles'] = $this->getBundles();
$this->navigationManager->setActiveEntry('core_apps');
$templateResponse = new TemplateResponse('settings', 'settings-vue', ['serverData' => $params]);
$policy = new ContentSecurityPolicy();
$policy->addAllowedImageDomain('https://usercontent.apps.nextcloud.com');
$templateResponse->setContentSecurityPolicy($policy);
return $templateResponse;
}
private function getAppsWithUpdates() {
$appClass = new \OC_App();
$apps = $appClass->listAllApps();
foreach ($apps as $key => $app) {
$newVersion = $this->installer->isUpdateAvailable($app['id']);
if ($newVersion === false) {
unset($apps[$key]);
}
}
return $apps;
}
private function getBundles() {
$result = [];
$bundles = $this->bundleFetcher->getBundles();
foreach ($bundles as $bundle) {
$result[] = [
'name' => $bundle->getName(),
'id' => $bundle->getIdentifier(),
'appIdentifiers' => $bundle->getAppIdentifiers()
];
}
return $result;
}
/**
* Get all available categories
*
* @return JSONResponse
*/
public function listCategories(): JSONResponse {
return new JSONResponse($this->getAllCategories());
}
private function getAllCategories() {
$currentLanguage = substr($this->l10nFactory->findLanguage(), 0, 2);
$formattedCategories = [];
$categories = $this->categoryFetcher->get();
foreach ($categories as $category) {
$formattedCategories[] = [
'id' => $category['id'],
'ident' => $category['id'],
'displayName' => isset($category['translations'][$currentLanguage]['name']) ? $category['translations'][$currentLanguage]['name'] : $category['translations']['en']['name'],
];
}
return $formattedCategories;
}
private function fetchApps() {
$appClass = new \OC_App();
$apps = $appClass->listAllApps();
foreach ($apps as $app) {
$app['installed'] = true;
$this->allApps[$app['id']] = $app;
}
$apps = $this->getAppsForCategory('');
$supportedApps = $appClass->getSupportedApps();
foreach ($apps as $app) {
$app['appstore'] = true;
if (!array_key_exists($app['id'], $this->allApps)) {
$this->allApps[$app['id']] = $app;
} else {
$this->allApps[$app['id']] = array_merge($app, $this->allApps[$app['id']]);
}
if (in_array($app['id'], $supportedApps)) {
$this->allApps[$app['id']]['level'] = \OC_App::supportedApp;
}
}
// add bundle information
$bundles = $this->bundleFetcher->getBundles();
foreach ($bundles as $bundle) {
foreach ($bundle->getAppIdentifiers() as $identifier) {
foreach ($this->allApps as &$app) {
if ($app['id'] === $identifier) {
$app['bundleIds'][] = $bundle->getIdentifier();
continue;
}
}
}
}
}
private function getAllApps() {
return $this->allApps;
}
/**
* Get all available apps in a category
*
* @return JSONResponse
* @throws \Exception
*/
public function listApps(): JSONResponse {
$this->fetchApps();
$apps = $this->getAllApps();
$dependencyAnalyzer = new DependencyAnalyzer(new Platform($this->config), $this->l10n);
$ignoreMaxApps = $this->config->getSystemValue('app_install_overwrite', []);
if (!is_array($ignoreMaxApps)) {
$this->logger->warning('The value given for app_install_overwrite is not an array. Ignoring...');
$ignoreMaxApps = [];
}
// Extend existing app details
$apps = array_map(function (array $appData) use ($dependencyAnalyzer, $ignoreMaxApps) {
if (isset($appData['appstoreData'])) {
$appstoreData = $appData['appstoreData'];
$appData['screenshot'] = isset($appstoreData['screenshots'][0]['url']) ? 'https://usercontent.apps.nextcloud.com/' . base64_encode($appstoreData['screenshots'][0]['url']) : '';
$appData['category'] = $appstoreData['categories'];
$appData['releases'] = $appstoreData['releases'];
}
$newVersion = $this->installer->isUpdateAvailable($appData['id']);
if ($newVersion) {
$appData['update'] = $newVersion;
}
// fix groups to be an array
$groups = [];
if (is_string($appData['groups'])) {
$groups = json_decode($appData['groups']);
}
$appData['groups'] = $groups;
$appData['canUnInstall'] = !$appData['active'] && $appData['removable'];
// fix licence vs license
if (isset($appData['license']) && !isset($appData['licence'])) {
$appData['licence'] = $appData['license'];
}
$ignoreMax = in_array($appData['id'], $ignoreMaxApps);
// analyse dependencies
$missing = $dependencyAnalyzer->analyze($appData, $ignoreMax);
$appData['canInstall'] = empty($missing);
$appData['missingDependencies'] = $missing;
$appData['missingMinOwnCloudVersion'] = !isset($appData['dependencies']['nextcloud']['@attributes']['min-version']);
$appData['missingMaxOwnCloudVersion'] = !isset($appData['dependencies']['nextcloud']['@attributes']['max-version']);
$appData['isCompatible'] = $dependencyAnalyzer->isMarkedCompatible($appData);
return $appData;
}, $apps);
usort($apps, [$this, 'sortApps']);
return new JSONResponse(['apps' => $apps, 'status' => 'success']);
}
/**
* Get all apps for a category from the app store
*
* @param string $requestedCategory
* @return array
* @throws \Exception
*/
private function getAppsForCategory($requestedCategory = ''): array {
$versionParser = new VersionParser();
$formattedApps = [];
$apps = $this->appFetcher->get();
foreach ($apps as $app) {
// Skip all apps not in the requested category
if ($requestedCategory !== '') {
$isInCategory = false;
foreach ($app['categories'] as $category) {
if ($category === $requestedCategory) {
$isInCategory = true;
}
}
if (!$isInCategory) {
continue;
}
}
if (!isset($app['releases'][0]['rawPlatformVersionSpec'])) {
continue;
}
$nextCloudVersion = $versionParser->getVersion($app['releases'][0]['rawPlatformVersionSpec']);
$nextCloudVersionDependencies = [];
if ($nextCloudVersion->getMinimumVersion() !== '') {
$nextCloudVersionDependencies['nextcloud']['@attributes']['min-version'] = $nextCloudVersion->getMinimumVersion();
}
if ($nextCloudVersion->getMaximumVersion() !== '') {
$nextCloudVersionDependencies['nextcloud']['@attributes']['max-version'] = $nextCloudVersion->getMaximumVersion();
}
$phpVersion = $versionParser->getVersion($app['releases'][0]['rawPhpVersionSpec']);
$existsLocally = \OC_App::getAppPath($app['id']) !== false;
$phpDependencies = [];
if ($phpVersion->getMinimumVersion() !== '') {
$phpDependencies['php']['@attributes']['min-version'] = $phpVersion->getMinimumVersion();
}
if ($phpVersion->getMaximumVersion() !== '') {
$phpDependencies['php']['@attributes']['max-version'] = $phpVersion->getMaximumVersion();
}
if (isset($app['releases'][0]['minIntSize'])) {
$phpDependencies['php']['@attributes']['min-int-size'] = $app['releases'][0]['minIntSize'];
}
$authors = '';
foreach ($app['authors'] as $key => $author) {
$authors .= $author['name'];
if ($key !== count($app['authors']) - 1) {
$authors .= ', ';
}
}
$currentLanguage = substr(\OC::$server->getL10NFactory()->findLanguage(), 0, 2);
$enabledValue = $this->config->getAppValue($app['id'], 'enabled', 'no');
$groups = null;
if ($enabledValue !== 'no' && $enabledValue !== 'yes') {
$groups = $enabledValue;
}
$currentVersion = '';
if ($this->appManager->isInstalled($app['id'])) {
$currentVersion = $this->appManager->getAppVersion($app['id']);
} else {
$currentLanguage = $app['releases'][0]['version'];
}
$formattedApps[] = [
'id' => $app['id'],
'name' => isset($app['translations'][$currentLanguage]['name']) ? $app['translations'][$currentLanguage]['name'] : $app['translations']['en']['name'],
'description' => isset($app['translations'][$currentLanguage]['description']) ? $app['translations'][$currentLanguage]['description'] : $app['translations']['en']['description'],
'summary' => isset($app['translations'][$currentLanguage]['summary']) ? $app['translations'][$currentLanguage]['summary'] : $app['translations']['en']['summary'],
'license' => $app['releases'][0]['licenses'],
'author' => $authors,
'shipped' => false,
'version' => $currentVersion,
'default_enable' => '',
'types' => [],
'documentation' => [
'admin' => $app['adminDocs'],
'user' => $app['userDocs'],
'developer' => $app['developerDocs']
],
'website' => $app['website'],
'bugs' => $app['issueTracker'],
'detailpage' => $app['website'],
'dependencies' => array_merge(
$nextCloudVersionDependencies,
$phpDependencies
),
'level' => ($app['isFeatured'] === true) ? 200 : 100,
'missingMaxOwnCloudVersion' => false,
'missingMinOwnCloudVersion' => false,
'canInstall' => true,
'screenshot' => isset($app['screenshots'][0]['url']) ? 'https://usercontent.apps.nextcloud.com/'.base64_encode($app['screenshots'][0]['url']) : '',
'score' => $app['ratingOverall'],
'ratingNumOverall' => $app['ratingNumOverall'],
'ratingNumThresholdReached' => $app['ratingNumOverall'] > 5,
'removable' => $existsLocally,
'active' => $this->appManager->isEnabledForUser($app['id']),
'needsDownload' => !$existsLocally,
'groups' => $groups,
'fromAppStore' => true,
'appstoreData' => $app,
];
}
return $formattedApps;
}
/**
* @PasswordConfirmationRequired
*
* @param string $appId
* @param array $groups
* @return JSONResponse
*/
public function enableApp(string $appId, array $groups = []): JSONResponse {
return $this->enableApps([$appId], $groups);
}
/**
* Enable one or more apps
*
* apps will be enabled for specific groups only if $groups is defined
*
* @PasswordConfirmationRequired
* @param array $appIds
* @param array $groups
* @return JSONResponse
*/
public function enableApps(array $appIds, array $groups = []): JSONResponse {
try {
$updateRequired = false;
foreach ($appIds as $appId) {
$appId = OC_App::cleanAppId($appId);
// Check if app is already downloaded
/** @var Installer $installer */
$installer = \OC::$server->query(Installer::class);
$isDownloaded = $installer->isDownloaded($appId);
if (!$isDownloaded) {
$installer->downloadApp($appId);
}
$installer->installApp($appId);
if (count($groups) > 0) {
$this->appManager->enableAppForGroups($appId, $this->getGroupList($groups));
} else {
$this->appManager->enableApp($appId);
}
if (\OC_App::shouldUpgrade($appId)) {
$updateRequired = true;
}
}
return new JSONResponse(['data' => ['update_required' => $updateRequired]]);
} catch (\Exception $e) {
$this->logger->error('could not enable apps', ['exception' => $e]);
return new JSONResponse(['data' => ['message' => $e->getMessage()]], Http::STATUS_INTERNAL_SERVER_ERROR);
}
}
private function getGroupList(array $groups) {
$groupManager = \OC::$server->getGroupManager();
$groupsList = [];
foreach ($groups as $group) {
$groupItem = $groupManager->get($group);
if ($groupItem instanceof \OCP\IGroup) {
$groupsList[] = $groupManager->get($group);
}
}
return $groupsList;
}
/**
* @PasswordConfirmationRequired
*
* @param string $appId
* @return JSONResponse
*/
public function disableApp(string $appId): JSONResponse {
return $this->disableApps([$appId]);
}
/**
* @PasswordConfirmationRequired
*
* @param array $appIds
* @return JSONResponse
*/
public function disableApps(array $appIds): JSONResponse {
try {
foreach ($appIds as $appId) {
$appId = OC_App::cleanAppId($appId);
$this->appManager->disableApp($appId);
}
return new JSONResponse([]);
} catch (\Exception $e) {
$this->logger->error('could not disable app', ['exception' => $e]);
return new JSONResponse(['data' => ['message' => $e->getMessage()]], Http::STATUS_INTERNAL_SERVER_ERROR);
}
}
/**
* @PasswordConfirmationRequired
*
* @param string $appId
* @return JSONResponse
*/
public function uninstallApp(string $appId): JSONResponse {
$appId = OC_App::cleanAppId($appId);
$result = $this->installer->removeApp($appId);
if ($result !== false) {
$this->appManager->clearAppsCache();
return new JSONResponse(['data' => ['appid' => $appId]]);
}
return new JSONResponse(['data' => ['message' => $this->l10n->t('Could not remove app.')]], Http::STATUS_INTERNAL_SERVER_ERROR);
}
/**
* @param string $appId
* @return JSONResponse
*/
public function updateApp(string $appId): JSONResponse {
$appId = OC_App::cleanAppId($appId);
$this->config->setSystemValue('maintenance', true);
try {
$result = $this->installer->updateAppstoreApp($appId);
$this->config->setSystemValue('maintenance', false);
} catch (\Exception $ex) {
$this->config->setSystemValue('maintenance', false);
return new JSONResponse(['data' => ['message' => $ex->getMessage()]], Http::STATUS_INTERNAL_SERVER_ERROR);
}
if ($result !== false) {
return new JSONResponse(['data' => ['appid' => $appId]]);
}
return new JSONResponse(['data' => ['message' => $this->l10n->t('Could not update app.')]], Http::STATUS_INTERNAL_SERVER_ERROR);
}
private function sortApps($a, $b) {
$a = (string)$a['name'];
$b = (string)$b['name'];
if ($a === $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
public function force(string $appId): JSONResponse {
$appId = OC_App::cleanAppId($appId);
$this->appManager->ignoreNextcloudRequirementForApp($appId);
return new JSONResponse();
}
}