Merge branch 'MatteoGgl-master' into dev

This commit is contained in:
Dessalines 2019-10-21 12:55:22 -07:00
commit 072b17fda5
5 changed files with 208 additions and 9 deletions

3
README.md vendored
View file

@ -198,7 +198,7 @@ Lemmy is free, open-source software, meaning no advertising, monetizing, or vent
If you'd like to add translations, take a look a look at the [English translation file](ui/src/translations/en.ts).
- Languages supported: English (`en`), Chinese (`zh`), Dutch (`nl`), Esperanto (`eo`), French (`fr`), Spanish (`es`), Swedish (`sv`), German (`de`), Russian (`ru`).
- Languages supported: English (`en`), Chinese (`zh`), Dutch (`nl`), Esperanto (`eo`), French (`fr`), Spanish (`es`), Swedish (`sv`), German (`de`), Russian (`ru`), Italian (`it`).
lang | done | missing
--- | --- | ---
@ -206,6 +206,7 @@ de | 81% | cross_posts,cross_post,users,number_of_communities,preview,upload_ima
eo | 90% | number_of_communities,preview,upload_image,formatting_help,view_source,sticky,unsticky,stickied,delete_account,delete_account_confirm,banned,creator,number_online,replies,mentions,theme,are_you_sure,yes,no
es | 99% | replies,mentions
fr | 99% | replies,mentions
it | 100% |
nl | 92% | preview,upload_image,formatting_help,view_source,sticky,unsticky,stickied,delete_account,delete_account_confirm,banned,creator,number_online,replies,mentions,theme
ru | 86% | cross_posts,cross_post,number_of_communities,preview,upload_image,formatting_help,view_source,sticky,unsticky,stickied,delete_account,delete_account_confirm,banned,creator,number_online,replies,mentions,recent_comments,theme,monero,by,to,transfer_community,transfer_site,are_you_sure,yes,no
sv | 99% | replies,mentions

2
ui/src/i18next.ts vendored
View file

@ -9,6 +9,7 @@ import { sv } from './translations/sv';
import { ru } from './translations/ru';
import { zh } from './translations/zh';
import { nl } from './translations/nl';
import { it } from './translations/it';
// https://github.com/nimbusec-oss/inferno-i18next/blob/master/tests/T.test.js#L66
const resources = {
@ -21,6 +22,7 @@ const resources = {
sv,
ru,
nl,
it,
};
function format(value: any, format: any, lng: any) {

191
ui/src/translations/it.ts vendored Normal file
View file

@ -0,0 +1,191 @@
export const it = {
translation: {
post: 'post',
remove_post: 'Rimuovi Post',
no_posts: 'Nessun Post.',
create_a_post: 'Crea un post',
create_post: 'Crea Post',
number_of_posts: '{{count}} Posts',
posts: 'Posts',
related_posts: 'Questi post potrebbero essere correlati',
cross_posts: 'Questo link è stato postato anche in:',
cross_post: 'cross-post',
comments: 'Commenti',
number_of_comments: '{{count}} Commenti',
remove_comment: 'Rimuovi Commento',
communities: 'Comunità',
users: 'Utenti',
create_a_community: 'Crea una Comunità',
create_community: 'Crea Comunità',
remove_community: 'Rimuovi Comunità',
subscribed_to_communities: 'Iscritto alle <1>comunità</1>',
trending_communities: '<1>Comunità</1> in crescita',
list_of_communities: 'Lista di comunità',
number_of_communities: '{{count}} Comunità',
community_reqs: 'minuscole, trattini bassi e nessuno spazio.',
edit: 'modifica',
reply: 'rispondi',
cancel: 'Annulla',
preview: 'Anteprima',
upload_image: 'carica immagine',
formatting_help: 'aiuto formattazione',
view_source: 'visualizza sorgente',
unlock: 'sblocca',
lock: 'blocca',
sticky: 'evidenzia',
unsticky: 'rimuovi evidenza',
link: 'link',
mod: 'moderatore',
mods: 'moderatori',
moderates: 'Moderatore di',
settings: 'Impostazioni',
remove_as_mod: 'rimuovi come moderatore',
appoint_as_mod: 'nomina come moderatore',
modlog: 'Registro di moderazione',
admin: 'amministratore',
admins: 'amministratori',
remove_as_admin: 'rimuovi come amministratore',
appoint_as_admin: 'nomina come amministratore',
remove: 'rimuovi',
removed: 'rimosso',
locked: 'bloccato',
stickied: 'evidenziato',
reason: 'Ragione',
mark_as_read: 'segna come letto',
mark_as_unread: 'segna come non letto',
delete: 'cancella',
deleted: 'cancellato',
delete_account: 'Cancella Account',
delete_account_confirm: 'Attenzione: stai per cancellare permanentemente tutti i tuoi dati. Sei sicuro?',
restore: 'ripristina',
ban: 'ban',
ban_from_site: 'banna dal sito',
unban: 'rimuovi ban',
unban_from_site: 'rimuove il ban dal sito',
banned: 'bannato',
save: 'salva',
unsave: 'rimuovi',
create: 'crea',
creator: 'autore',
username: 'Username',
email_or_username: 'Email o Username',
number_of_users: '{{count}} Utenti',
number_of_subscribers: '{{count}} Iscritti',
number_of_points: '{{count}} Punti',
number_online: '{{count}} Utenti Online',
name: 'Nome',
title: 'Titolo',
category: 'Categoria',
subscribers: 'Iscritti',
both: 'Entrambi',
saved: 'Salvato',
unsubscribe: 'Disiscriviti',
subscribe: 'Iscriviti',
subscribed: 'Iscritto',
prev: 'Precedente',
next: 'Prossima',
sidebar: 'Barra laterale',
sort_type: 'Ordina per',
hot: 'Popolari',
new: 'Nuovi',
top_day: 'Migliori della giornata',
week: 'Settimana',
month: 'Mese',
year: 'Anno',
all: 'Tutti',
top: 'Migliori',
api: 'API',
inbox: 'Posta in arrivo',
inbox_for: 'Posta di <1>{{user}}</1>',
mark_all_as_read: 'segna tutti come letti',
type: 'Tipo',
unread: 'Non letti',
replies: 'Risposte',
mentions: 'Menzioni',
reply_sent: 'Risposta inviata',
search: 'Cerca',
overview: 'Panoramica',
view: 'Visualizza',
logout: 'Logout',
login_sign_up: 'Login / Iscriviti',
login: 'Login',
sign_up: 'Iscriviti',
notifications_error: 'Le notifiche desktop non sono supportate sul tuo browser. Prova Firefox o Chrome.',
unread_messages: 'Messaggi Non Letti',
password: 'Password',
verify_password: 'Verifica Password',
email: 'Email',
optional: 'Opzionale',
expires: 'Scade',
url: 'URL',
body: 'Contenuto',
copy_suggested_title: 'copia titolo suggerito: {{title}}',
community: 'Comunità',
expand_here: 'Visualizza qui',
subscribe_to_communities: 'Iscriviti ad una <1>comunità</1>.',
chat: 'Chat',
recent_comments: 'Commenti Recenti',
no_results: 'Nessun risultato.',
setup: 'Setup',
lemmy_instance_setup: 'Setup dell\'istanza di Lemmy',
setup_admin: 'Imposta Amministratore del Sito',
your_site: 'il tuo sito',
modified: 'modificato',
nsfw: 'NSFW',
show_nsfw: 'Mostra contenuto NSFW',
theme: 'Tema',
sponsors: 'Sponsors',
sponsors_of_lemmy: 'Sponsors di Lemmy',
sponsor_message: 'Lemmy è un software gratuito e <1>open-source</1>, il che significa nessuna pubblicità, monetizzazione o investitori esterni, per sempre. Le tue donazioni supportano direttamente lo sviluppo full-time del progetto. Si ringraziano le seguenti persone:',
support_on_patreon: 'Supporta su Patreon',
general_sponsors: 'I "General Sponsors" sono quelli che hanno investito dai 10$ ai 39$ su Lemmy.',
crypto: 'Crypto',
bitcoin: 'Bitcoin',
ethereum: 'Ethereum',
monero: 'Monero',
code: 'Code',
joined: 'Iscritto da',
by: 'di',
to: 'su',
transfer_community: 'trasferisci comunità',
transfer_site: 'trasferisci sito',
are_you_sure: 'sei sicuro?',
yes: 'si',
no: 'no',
powered_by: 'Powered by',
landing_0: 'Lemmy è un <1>aggregatore di link</1> / alternativa a reddit, creato per integrarsi con il <2>fediverse</2>. <3></3>È self-hosted, i commenti sono aggiornati in tempo reale ed è molto piccolo (<4>~80kB</4>). La Federazione con la rete ActivityPub sarà implementata nel futuro. <5></5>Questa versione è una <6>beta molto giovane</6> e molte funzionalità sono incomplete o mancanti. <7></7>Suggerisci nuove funzionalità o segnala errori a <8>questa pagina.</8><9></9>Sviluppato con <10>Rust</10>, <11>Actix</11>, <12>Inferno</12>, <13>Typescript</13>.',
not_logged_in: 'Non hai effettuato l\'accesso.',
community_ban: 'Sei stato bannato da questa comunità.',
site_ban: 'Sei stato bannato dal sito',
couldnt_create_comment: 'Impossibile creare il commento.',
couldnt_like_comment: 'Impossibile mettere \'Mi piace\' al commento.',
couldnt_update_comment: 'Impossibile aggiornare il commento.',
couldnt_save_comment: 'Impossibile salvare il commento.',
no_comment_edit_allowed: 'Non sei autorizzato a modificare il commento.',
no_post_edit_allowed: 'Non sei autorizzato a modificare il post.',
no_community_edit_allowed: 'Non sei autorizzato a modificare la comunità.',
couldnt_find_community: 'Impossibile trovare la comunità.',
couldnt_update_community: 'Impossibile aggiornare la comunità.',
community_already_exists: 'La comunità esiste già.',
community_moderator_already_exists: 'Questo utente è già moderatore della comunità.',
community_follower_already_exists: 'Questo utente è già moderatore della comunità.',
community_user_already_banned: 'L\'utente della comunità è già stato bannato.',
couldnt_create_post: 'Impossibile creare il post.',
couldnt_like_post: 'Impossibile mettere \'Mi piace\' post.',
couldnt_find_post: 'Impossibile trovare il post.',
couldnt_get_posts: 'Impossibile recuperare i post',
couldnt_update_post: 'Impossibile aggiornare il post',
couldnt_save_post: 'Impossibile salvare il post.',
no_slurs: 'Niente offese.',
not_an_admin: 'Non un amministratore.',
site_already_exists: 'Il sito esiste già.',
couldnt_update_site: 'Impossibile aggiornare il sito.',
couldnt_find_that_username_or_email: 'L\'username o la email non sono stati trovati.',
password_incorrect: 'Password non corretta.',
passwords_dont_match: 'Le password non corrispondono.',
admin_already_created: 'Spiacente, esiste già un amministratore.',
user_already_exists: 'L\'utente esiste già.',
couldnt_update_user: 'Impossibile aggiornare l\'utente.',
system_err_login: 'Si è verificato un errore. Prova ad effettuare nuovamente il login.',
},
}

3
ui/src/utils.ts vendored
View file

@ -6,6 +6,7 @@ import 'moment/locale/fr';
import 'moment/locale/sv';
import 'moment/locale/ru';
import 'moment/locale/nl';
import 'moment/locale/it';
import {
UserOperation,
@ -263,6 +264,8 @@ export function getMomentLanguage(): string {
lang = 'eo';
} else if (lang.startsWith('nl')) {
lang = 'nl';
} else if (lang.startsWith('it')) {
lang = 'it';
} else {
lang = 'en';
}

View file

@ -7,16 +7,18 @@ import { fr } from './src/translations/fr';
import { sv } from './src/translations/sv';
import { ru } from './src/translations/ru';
import { nl } from './src/translations/nl';
import { it } from './src/translations/it';
let files = [
{t: de, n: 'de'},
{t: eo, n: 'eo'},
{t: es, n: 'es'},
{t: fr, n: 'fr'},
{t: nl, n: 'nl'},
{t: ru, n: 'ru'},
{t: sv, n: 'sv'},
{t: zh, n: 'zh'},
{t: de, n: 'de'},
{t: eo, n: 'eo'},
{t: es, n: 'es'},
{t: fr, n: 'fr'},
{t: it, n: 'it'},
{t: nl, n: 'nl'},
{t: ru, n: 'ru'},
{t: sv, n: 'sv'},
{t: zh, n: 'zh'},
];
let masterKeys = Object.keys(en.translation);