mirror of
https://github.com/LemmyNet/lemmy.git
synced 2024-11-25 23:43:18 +00:00
Merge branch 'MatteoGgl-master' into dev
This commit is contained in:
commit
b78175a91f
3
README.md
vendored
3
README.md
vendored
|
@ -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).
|
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
|
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
|
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
|
es | 99% | replies,mentions
|
||||||
fr | 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
|
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
|
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
|
sv | 99% | replies,mentions
|
||||||
|
|
2
ui/src/i18next.ts
vendored
2
ui/src/i18next.ts
vendored
|
@ -9,6 +9,7 @@ import { sv } from './translations/sv';
|
||||||
import { ru } from './translations/ru';
|
import { ru } from './translations/ru';
|
||||||
import { zh } from './translations/zh';
|
import { zh } from './translations/zh';
|
||||||
import { nl } from './translations/nl';
|
import { nl } from './translations/nl';
|
||||||
|
import { it } from './translations/it';
|
||||||
|
|
||||||
// https://github.com/nimbusec-oss/inferno-i18next/blob/master/tests/T.test.js#L66
|
// https://github.com/nimbusec-oss/inferno-i18next/blob/master/tests/T.test.js#L66
|
||||||
const resources = {
|
const resources = {
|
||||||
|
@ -21,6 +22,7 @@ const resources = {
|
||||||
sv,
|
sv,
|
||||||
ru,
|
ru,
|
||||||
nl,
|
nl,
|
||||||
|
it,
|
||||||
};
|
};
|
||||||
|
|
||||||
function format(value: any, format: any, lng: any) {
|
function format(value: any, format: any, lng: any) {
|
||||||
|
|
191
ui/src/translations/it.ts
vendored
Normal file
191
ui/src/translations/it.ts
vendored
Normal 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
3
ui/src/utils.ts
vendored
|
@ -6,6 +6,7 @@ import 'moment/locale/fr';
|
||||||
import 'moment/locale/sv';
|
import 'moment/locale/sv';
|
||||||
import 'moment/locale/ru';
|
import 'moment/locale/ru';
|
||||||
import 'moment/locale/nl';
|
import 'moment/locale/nl';
|
||||||
|
import 'moment/locale/it';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
UserOperation,
|
UserOperation,
|
||||||
|
@ -263,6 +264,8 @@ export function getMomentLanguage(): string {
|
||||||
lang = 'eo';
|
lang = 'eo';
|
||||||
} else if (lang.startsWith('nl')) {
|
} else if (lang.startsWith('nl')) {
|
||||||
lang = 'nl';
|
lang = 'nl';
|
||||||
|
} else if (lang.startsWith('it')) {
|
||||||
|
lang = 'it';
|
||||||
} else {
|
} else {
|
||||||
lang = 'en';
|
lang = 'en';
|
||||||
}
|
}
|
||||||
|
|
18
ui/translation_report.ts
vendored
18
ui/translation_report.ts
vendored
|
@ -7,16 +7,18 @@ import { fr } from './src/translations/fr';
|
||||||
import { sv } from './src/translations/sv';
|
import { sv } from './src/translations/sv';
|
||||||
import { ru } from './src/translations/ru';
|
import { ru } from './src/translations/ru';
|
||||||
import { nl } from './src/translations/nl';
|
import { nl } from './src/translations/nl';
|
||||||
|
import { it } from './src/translations/it';
|
||||||
|
|
||||||
let files = [
|
let files = [
|
||||||
{t: de, n: 'de'},
|
{t: de, n: 'de'},
|
||||||
{t: eo, n: 'eo'},
|
{t: eo, n: 'eo'},
|
||||||
{t: es, n: 'es'},
|
{t: es, n: 'es'},
|
||||||
{t: fr, n: 'fr'},
|
{t: fr, n: 'fr'},
|
||||||
{t: nl, n: 'nl'},
|
{t: it, n: 'it'},
|
||||||
{t: ru, n: 'ru'},
|
{t: nl, n: 'nl'},
|
||||||
{t: sv, n: 'sv'},
|
{t: ru, n: 'ru'},
|
||||||
{t: zh, n: 'zh'},
|
{t: sv, n: 'sv'},
|
||||||
|
{t: zh, n: 'zh'},
|
||||||
];
|
];
|
||||||
let masterKeys = Object.keys(en.translation);
|
let masterKeys = Object.keys(en.translation);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue