UI: added German and French translations

Thanks to all contributors on Crowdin.

Updates #1874

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
This commit is contained in:
Nicola Murino
2025-03-31 19:05:50 +02:00
parent 06cd07d67a
commit 3cae004e6b
5 changed files with 2309 additions and 31 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -405,7 +405,7 @@
"generate": "Generate new secret key", "generate": "Generate new secret key",
"recovery_codes": "Recovery codes", "recovery_codes": "Recovery codes",
"new_recovery_codes": "New recovery codes", "new_recovery_codes": "New recovery codes",
"recovery_codes_msg1": "Recovery codes are a set of one time use codes that can be used in place of the authentication code to login to the web UI. You can use them if you lose access to your phone to login to your account and disable or regenerate two-factor auth configuration.", "recovery_codes_msg1": "Recovery codes are one-time-use backup codes for logging in when you can't access your authentication app. Use them to access your account and manage two-factor authentication settings if you lose your phone.",
"recovery_codes_msg2": "To keep your account secure, don't share or distribute your recovery codes. We recommend saving them with a secure password manager.", "recovery_codes_msg2": "To keep your account secure, don't share or distribute your recovery codes. We recommend saving them with a secure password manager.",
"recovery_codes_msg3": "If you generate new recovery codes, you automatically invalidate old ones.", "recovery_codes_msg3": "If you generate new recovery codes, you automatically invalidate old ones.",
"info_title": "Learn about two-factor authentication", "info_title": "Learn about two-factor authentication",
@@ -443,7 +443,7 @@
"max_tokens": "Max tokens", "max_tokens": "Max tokens",
"max_tokens_help": "Maximum number of times this share can be accessed. 0 means no limit", "max_tokens_help": "Maximum number of times this share can be accessed. 0 means no limit",
"view_manage": "View and manage shares", "view_manage": "View and manage shares",
"no_share": "No sharing", "no_share": "No shares",
"password_protected": "Password protected.", "password_protected": "Password protected.",
"expiration_date": "Expiration: {{- val, datetime}}. ", "expiration_date": "Expiration: {{- val, datetime}}. ",
"last_use": "Last use: {{- val, datetime}}. ", "last_use": "Last use: {{- val, datetime}}. ",
@@ -1030,7 +1030,7 @@
"fs_types": { "fs_types": {
"rename": "Rename", "rename": "Rename",
"delete": "Delete", "delete": "Delete",
"path_exists": "Paths exis", "path_exists": "Paths exist",
"compress": "Compress", "compress": "Compress",
"copy": "Copy", "copy": "Copy",
"create_dirs": "Create directories" "create_dirs": "Create directories"

File diff suppressed because it is too large Load Diff

View File

@@ -78,22 +78,22 @@
"password": "Password", "password": "Password",
"your_username": "Il tuo nome utente", "your_username": "Il tuo nome utente",
"forgot_password": "Password dimenticata?", "forgot_password": "Password dimenticata?",
"forgot_password_msg": "Inserisci il nome utente del tuo account qui sotto, riceverai un codice di reimpostazione della password via e-mail.", "forgot_password_msg": "Inserisci il nome utente del tuo account qui sotto, riceverai un codice di reimpostazione della password via e-mail",
"send_reset_code": "Invia codice di ripristino", "send_reset_code": "Invia codice di ripristino",
"signin": "Accedi", "signin": "Accedi",
"signin_openid": "Accedi con OpenID", "signin_openid": "Accedi con OpenID",
"signout": "Esci", "signout": "Esci",
"auth_code": "Codice di autenticazione", "auth_code": "Codice di autenticazione",
"two_factor_help": "Apri l'app di autenticazione a due fattori sul tuo dispositivo per visualizzare il tuo codice di autenticazione e verificare la tua identità.", "two_factor_help": "Apri l'app di autenticazione a due fattori sul tuo dispositivo per generare il codice e verificare l'identità",
"two_factor_msg": "Inserisci un codice di ripristino per l'autenticazione a due fattori", "two_factor_msg": "Inserisci un codice di ripristino per l'autenticazione a due fattori",
"recovery_code": "Codice di ripristino", "recovery_code": "Codice di ripristino",
"recovery_code_msg": "Puoi inserire uno dei tuoi codici di ripristino nel caso in cui hai perso l'accesso al tuo dispositivo mobile.", "recovery_code_msg": "Puoi inserire uno dei tuoi codici di ripristino nel caso in cui hai perso l'accesso al tuo dispositivo mobile",
"reset_password": "Reimposta password", "reset_password": "Reimposta password",
"reset_pwd_msg": "Controlla la tua email per il codice di conferma", "reset_pwd_msg": "Controlla la tua e-mail per il codice di conferma",
"reset_submit": "Aggiorna password e accedi", "reset_submit": "Aggiorna password e accedi",
"confirm_code": "Codice di conferma", "confirm_code": "Codice di conferma",
"reset_pwd_forbidden": "Non ti è consentito reimpostare la password", "reset_pwd_forbidden": "Non ti è consentito reimpostare la password",
"reset_pwd_no_email": "Il tuo account non ha un indirizzo email, non è possibile reimpostare la password inviando un codice di verifica via email", "reset_pwd_no_email": "Il tuo account non ha un indirizzo e-mail, non è possibile reimpostare la password inviando un codice di verifica via e-mail",
"reset_pwd_send_email_err": "Errore nell'invio del codice di conferma via e-mail", "reset_pwd_send_email_err": "Errore nell'invio del codice di conferma via e-mail",
"reset_pwd_err_generic": "Errore imprevisto durante la reimpostazione della password", "reset_pwd_err_generic": "Errore imprevisto durante la reimpostazione della password",
"reset_ok_login_error": "La reimpostazione della password è stata completata correttamente ma si è verificato un errore imprevisto durante l'accesso", "reset_ok_login_error": "La reimpostazione della password è stata completata correttamente ma si è verificato un errore imprevisto durante l'accesso",
@@ -165,7 +165,7 @@
"dest_name": "Nome di destinazione", "dest_name": "Nome di destinazione",
"my_profile": "Il mio profilo", "my_profile": "Il mio profilo",
"description": "Descrizione", "description": "Descrizione",
"email": "Email", "email": "E-mail",
"api_key_auth": "Autenticazione mediante chiave API", "api_key_auth": "Autenticazione mediante chiave API",
"api_key_auth_help": "Permetti di impersonarti nelle API REST utilizzando una chiave API", "api_key_auth_help": "Permetti di impersonarti nelle API REST utilizzando una chiave API",
"pub_keys": "Chiavi pubbliche", "pub_keys": "Chiavi pubbliche",
@@ -209,12 +209,12 @@
"role_placeholder": "Seleziona un ruolo", "role_placeholder": "Seleziona un ruolo",
"group_placeholder": "Seleziona un gruppo", "group_placeholder": "Seleziona un gruppo",
"folder_placeholder": "Seleziona una cartella", "folder_placeholder": "Seleziona una cartella",
"blank_default_help": "Lascio vuoto per l'impostazione predefinita", "blank_default_help": "Lasciare vuoto per l'impostazione predefinita",
"skip_tls_verify": "Salta la verifica TLS. Dovrebbe essere usato solo per test", "skip_tls_verify": "Salta la verifica TLS. Dovrebbe essere usato solo per test",
"advanced_settings": "Impostazioni avanzate", "advanced_settings": "Impostazioni avanzate",
"default": "Predefinito", "default": "Predefinito",
"private_key": "Chiave privata", "private_key": "Chiave privata",
"acls": "ACLs", "acls": "ACL",
"quota_limits": "Quota disco e limitazioni di larghezza di banda", "quota_limits": "Quota disco e limitazioni di larghezza di banda",
"expiration": "Scadenza", "expiration": "Scadenza",
"expiration_help": "Scegli una data di scadenza", "expiration_help": "Scegli una data di scadenza",
@@ -302,7 +302,7 @@
"err_validation": "Configurazione del filesystem non valida", "err_validation": "Configurazione del filesystem non valida",
"err_exists": "La destinazione esiste già", "err_exists": "La destinazione esiste già",
"dir_list": { "dir_list": {
"err_generic": "Impossibile ottenere l'elenco della directory", "err_generic": "Non è possibile visualizzare i contenuti della cartella",
"err_403": "$t(fs.dir_list.err_generic). $t(fs.err_403)", "err_403": "$t(fs.dir_list.err_generic). $t(fs.err_403)",
"err_429": "$t(fs.dir_list.err_generic). $t(fs.err_429)", "err_429": "$t(fs.dir_list.err_generic). $t(fs.err_429)",
"err_user": "$t(fs.dir_list.err_generic). $t(general.err_user)" "err_user": "$t(fs.dir_list.err_generic). $t(general.err_user)"
@@ -362,7 +362,7 @@
"err_generic": "Errore caricamento file", "err_generic": "Errore caricamento file",
"err_403": "$t(fs.upload.err_generic). $t(fs.err_403)", "err_403": "$t(fs.upload.err_generic). $t(fs.err_403)",
"err_429": "$t(fs.upload.err_generic). $t(fs.err_429)", "err_429": "$t(fs.upload.err_generic). $t(fs.err_429)",
"err_dir_overwrite": "$t(fs.upload.err_generic). Ci sono cartelle con lo stesso nome dei file: {{- val}}", "err_dir_overwrite": "$t(fs.upload.err_generic). Sono presenti cartelle con lo stesso nome dei file: {{- val}}",
"overwrite_text": "Rilevato conflitto. Vuoi sovrascrivere i seguenti file/cartelle?" "overwrite_text": "Rilevato conflitto. Vuoi sovrascrivere i seguenti file/cartelle?"
}, },
"quota_usage": { "quota_usage": {
@@ -414,7 +414,7 @@
"info3": "FTP non ha un modo standard per supportare l'autenticazione a due fattori, se abiliti il supporto FTP, devi aggiungere il passcode TOTP dopo la password. Ad esempio, se la tua password è \"password\" e il tuo passcode monouso è \"123456\", devi utilizzare \"password123456\" come password.", "info3": "FTP non ha un modo standard per supportare l'autenticazione a due fattori, se abiliti il supporto FTP, devi aggiungere il passcode TOTP dopo la password. Ad esempio, se la tua password è \"password\" e il tuo passcode monouso è \"123456\", devi utilizzare \"password123456\" come password.",
"info4": "WebDAV non è supportato poiché ogni singola richiesta deve essere autenticata e un passcode non può essere riutilizzato.", "info4": "WebDAV non è supportato poiché ogni singola richiesta deve essere autenticata e un passcode non può essere riutilizzato.",
"setup_title": "Configura l'autenticazione a due fattori", "setup_title": "Configura l'autenticazione a due fattori",
"setup_msg": "Utilizza la tua app di autenticazione preferita (ad esempio Microsoft Authenticator, Google Authenticator, Authy, 1Password ecc.) per scansionare il codice QR. Verrà generato un codice di autenticazione da inserire di seguito.", "setup_msg": "Scansiona il codice QR con un'app di autenticazione (es. Google Authenticator, Authy, 1Password). Verrà generato un codice di autenticazione da inserire di seguito.",
"setup_help": "Se hai problemi con l'utilizzo del codice QR, seleziona l'inserimento manuale sulla tua app e inserisci il codice:", "setup_help": "Se hai problemi con l'utilizzo del codice QR, seleziona l'inserimento manuale sulla tua app e inserisci il codice:",
"disable_msg": "Disabilita 2FA", "disable_msg": "Disabilita 2FA",
"disable_confirm": "Vuoi disabilitare l'autenticazione a due fattori per l'utente selezionato? Questa azione è generalmente necessaria solo se l'utente ha perso l'accesso al secondo fattore di autenticazione", "disable_confirm": "Vuoi disabilitare l'autenticazione a due fattori per l'utente selezionato? Questa azione è generalmente necessaria solo se l'utente ha perso l'accesso al secondo fattore di autenticazione",
@@ -437,9 +437,9 @@
"scope_read": "Lettura", "scope_read": "Lettura",
"scope_write": "Scrittura", "scope_write": "Scrittura",
"scope_read_write": "Lettura/Scrittura", "scope_read_write": "Lettura/Scrittura",
"scope_help": "Per gli ambiti \"Scrittura\" e \"Lettura/Scrittura\" devi definire un singolo percorso e deve essere una cartella", "scope_help": "Per gli ambiti \"Scrittura\" e \"Lettura/Scrittura\" è necessario specificare un unico percorso, che deve essere una cartella",
"path_help": "percorso di un file o di una directory, ad esempio /dir o /dir/file.txt", "path_help": "percorso di un file o di una directory, ad esempio /dir o /dir/file.txt",
"password_help": "Se impostata, la condivisione sarà protetta da password", "password_help": "Se specificata, l'accesso alla condivisione richiederà una password",
"max_tokens": "Token massimi", "max_tokens": "Token massimi",
"max_tokens_help": "Numero massimo di volte in cui è possibile accedere a questa condivisione. 0 significa nessun limite", "max_tokens_help": "Numero massimo di volte in cui è possibile accedere a questa condivisione. 0 significa nessun limite",
"view_manage": "Visualizza e gestisci condivisioni", "view_manage": "Visualizza e gestisci condivisioni",
@@ -537,10 +537,10 @@
"virtual_folders_help": "Dimensione quota/numero file -1 significa incluso nella quota utente, 0 illimitato. Non impostare -1 per le cartelle condivise. È possibile utilizzare il suffisso MB/GB/TB. Senza suffisso assumiamo byte", "virtual_folders_help": "Dimensione quota/numero file -1 significa incluso nella quota utente, 0 illimitato. Non impostare -1 per le cartelle condivise. È possibile utilizzare il suffisso MB/GB/TB. Senza suffisso assumiamo byte",
"disconnect": "Disconnettere l'utente dopo l'aggiornamento", "disconnect": "Disconnettere l'utente dopo l'aggiornamento",
"disconnect_help": "In questo modo si obbliga l'utente a effettuare nuovamente il login, se connesso, e quindi ad utilizzare la nuova configurazione", "disconnect_help": "In questo modo si obbliga l'utente a effettuare nuovamente il login, se connesso, e quindi ad utilizzare la nuova configurazione",
"invalid_quota_size": "Quota (dimensione) non valida", "invalid_quota_size": "Quota di spazio (dimensione) non valida",
"expires_in": "Scadenza", "expires_in": "Scadenza",
"expires_in_help": "Scadenza dell'account espressa in numero di giorni dalla creazione. 0 significa nessuna scadenza", "expires_in_help": "Scadenza dell'account espressa in numero di giorni dalla creazione. 0 significa nessuna scadenza",
"additional_emails": "Email aggiuntive", "additional_emails": "E-mail aggiuntive",
"tls_certs": "Certificati TLS", "tls_certs": "Certificati TLS",
"tls_certs_help": "I certificati TLS possono essere utilizzati per l'autenticazione FTP e/o WebDAV", "tls_certs_help": "I certificati TLS possono essere utilizzati per l'autenticazione FTP e/o WebDAV",
"tls_cert_help": "Incolla qui un tuo certificato TLS codificato PEM", "tls_cert_help": "Incolla qui un tuo certificato TLS codificato PEM",
@@ -573,10 +573,10 @@
"template_no_folder": "Nessuna cartella virtuale valida definita. Impossibile completare l'azione richiesta" "template_no_folder": "Nessuna cartella virtuale valida definita. Impossibile completare l'azione richiesta"
}, },
"storage": { "storage": {
"title": "File system", "title": "File System",
"label": "Archiviazione", "label": "Archiviazione",
"local": "Disco locale", "local": "Disco locale",
"s3": "S3 (Compatible)", "s3": "S3 (Compatibile)",
"gcs": "GCS", "gcs": "GCS",
"azblob": "Azure Blob", "azblob": "Azure Blob",
"encrypted": "Disco locale criptato", "encrypted": "Disco locale criptato",
@@ -629,7 +629,7 @@
"container": "Contenitore", "container": "Contenitore",
"account_name": "Nome account", "account_name": "Nome account",
"account_key": "Chiave di accesso", "account_key": "Chiave di accesso",
"sas_url": "SAS URL", "sas_url": "URL SAS",
"sas_url_help": "È possibile utilizzare l'URL SAS al posto del nome account e chiave di accesso", "sas_url_help": "È possibile utilizzare l'URL SAS al posto del nome account e chiave di accesso",
"emulator": "Utilizza emulatore", "emulator": "Utilizza emulatore",
"passphrase": "Passphrase", "passphrase": "Passphrase",
@@ -704,7 +704,7 @@
"denied_login_methods_help": "\"password\" è valido per tutti i protocolli supportati, \"password-over-SSH\" solo per SSH/SFTP/SCP", "denied_login_methods_help": "\"password\" è valido per tutti i protocolli supportati, \"password-over-SSH\" solo per SSH/SFTP/SCP",
"web_client_options": "Client Web/REST API", "web_client_options": "Client Web/REST API",
"max_upload_size": "Dimensione massima upload", "max_upload_size": "Dimensione massima upload",
"max_upload_size_help": "Dimensione massima per l'upload di un singolo file. 0 significa nessun limite. È possibile utilizzare il suffisso MB/GB/TB", "max_upload_size_help": "Dimensione massima (in MB/GB/TB) per un singolo file. 0 = nessun limite",
"max_upload_size_invalid": "Dimensione massima upload file non valida", "max_upload_size_invalid": "Dimensione massima upload file non valida",
"upload_bandwidth": "Banda upload (KB/s)", "upload_bandwidth": "Banda upload (KB/s)",
"download_bandwidth": "Banda download (KB/s)", "download_bandwidth": "Banda download (KB/s)",
@@ -740,7 +740,7 @@
"admin": { "admin": {
"role_permissions": "Un amministratore di ruolo non può avere il permesso \"*\"", "role_permissions": "Un amministratore di ruolo non può avere il permesso \"*\"",
"view_manage": "Visualizza e gestisci amministratori", "view_manage": "Visualizza e gestisci amministratori",
"self_delete": "Non puoi eliminare te stesso", "self_delete": "Impossibile eliminare il proprio account",
"self_permissions": "Non puoi cambiare i tuoi permessi", "self_permissions": "Non puoi cambiare i tuoi permessi",
"self_disable": "Non puoi disabilitare te stesso", "self_disable": "Non puoi disabilitare te stesso",
"self_role": "Non puoi aggiungere/modificare il tuo ruolo", "self_role": "Non puoi aggiungere/modificare il tuo ruolo",
@@ -852,7 +852,7 @@
"generic_error": "Impossibile ottenere certificati TLS, controlla i log del server per maggiori dettagli", "generic_error": "Impossibile ottenere certificati TLS, controlla i log del server per maggiori dettagli",
"help": "Da questa sezione puoi richiedere certificati TLS gratuiti per i tuoi servizi SFTPGo utilizzando il protocollo ACME e la tipologia di challenge HTTP-01. Devi creare una voce DNS sotto un dominio personalizzato di tua proprietà che si risolve nel tuo indirizzo IP pubblico SFTPGo e la porta 80 deve essere raggiungibile pubblicamente. Qui è possibile impostare le opzioni di configurazione per i casi d'uso più comuni e le configurazioni a nodo singolo, per le configurazioni avanzate fare riferimento alla documentazione SFTPGo. Per applicare le modifiche è necessario il riavvio del servizio", "help": "Da questa sezione puoi richiedere certificati TLS gratuiti per i tuoi servizi SFTPGo utilizzando il protocollo ACME e la tipologia di challenge HTTP-01. Devi creare una voce DNS sotto un dominio personalizzato di tua proprietà che si risolve nel tuo indirizzo IP pubblico SFTPGo e la porta 80 deve essere raggiungibile pubblicamente. Qui è possibile impostare le opzioni di configurazione per i casi d'uso più comuni e le configurazioni a nodo singolo, per le configurazioni avanzate fare riferimento alla documentazione SFTPGo. Per applicare le modifiche è necessario il riavvio del servizio",
"domain_help": "È possibile specificare più domini separati da virgole o spazi. Saranno inclusi nello stesso certificato", "domain_help": "È possibile specificare più domini separati da virgole o spazi. Saranno inclusi nello stesso certificato",
"email_help": "Email utilizzata per la registrazione e il contatto di recupero", "email_help": "E-mail utilizzata per la registrazione e il contatto di recupero",
"port_help": "Se diverso da 80 è necessario configurare un proxy inverso", "port_help": "Se diverso da 80 è necessario configurare un proxy inverso",
"protocols_help": "Utilizzare i certificati ottenuti per i protocolli specificati" "protocols_help": "Utilizzare i certificati ottenuti per i protocolli specificati"
}, },
@@ -868,13 +868,13 @@
"debug": "Log a livello debug", "debug": "Log a livello debug",
"domain_help": "Dominio HELO. Lascia vuoto per utilizzare il nome host del server", "domain_help": "Dominio HELO. Lascia vuoto per utilizzare il nome host del server",
"test_recipient": "Indirizzo a cui inviare e-mail di test", "test_recipient": "Indirizzo a cui inviare e-mail di test",
"oauth2_provider": "OAuth2 provider", "oauth2_provider": "Provider OAuth2",
"oauth2_provider_help": "URI a cui reindirizzare dopo l'autenticazione dell'utente", "oauth2_provider_help": "URI a cui reindirizzare dopo l'autenticazione dell'utente",
"oauth2_tenant": "OAuth2 Tenant", "oauth2_tenant": "Tenant OAuth2",
"oauth2_tenant_help": "Azure tenant. Valori tipici sono \"common\", \"organizations\", \"consumers\" or l'ID del tenant", "oauth2_tenant_help": "Azure tenant. Valori tipici sono \"common\", \"organizations\", \"consumers\" or l'ID del tenant",
"oauth2_client_id": "OAuth2 Client ID", "oauth2_client_id": "OAuth2 Client ID",
"oauth2_client_secret": "OAuth2 Client Secret", "oauth2_client_secret": "Segreto Client OAuth2",
"oauth2_token": "OAuth2 Token", "oauth2_token": "Token OAuth2",
"recipient_required": "Specifica un destinatario per inviare un'e-mail di prova", "recipient_required": "Specifica un destinatario per inviare un'e-mail di prova",
"test_error": "Impossibile inviare e-mail di prova, controlla i log del server per maggiori dettagli", "test_error": "Impossibile inviare e-mail di prova, controlla i log del server per maggiori dettagli",
"test_ok": "Non si sono verificati errori durante l'invio dell'e-mail di prova. Controlla la tua casella di posta per essere sicuro", "test_ok": "Non si sono verificati errori durante l'invio dell'e-mail di prova. Controlla la tua casella di posta per essere sicuro",
@@ -965,7 +965,7 @@
"archive_name_required": "Il nome dell'archivio compresso è obbligatorio", "archive_name_required": "Il nome dell'archivio compresso è obbligatorio",
"idp_template_required": "Un modello di utenti o amministratori è obbligatorio", "idp_template_required": "Un modello di utenti o amministratori è obbligatorio",
"threshold": "Soglia", "threshold": "Soglia",
"threshold_help": "Verrà generata una notifica email per gli utenti la cui password scade tra un numero di giorni inferiore o uguale a questa soglia", "threshold_help": "Verrà generata una notifica e-mail per gli utenti la cui password scade tra un numero di giorni inferiore o uguale a questa soglia",
"disable_threshold": "Soglia disabilitazione", "disable_threshold": "Soglia disabilitazione",
"disable_threshold_help": "Inattività in giorni, dall'ultimo login o dalla creazione prima della disabilitazione degli utenti", "disable_threshold_help": "Inattività in giorni, dall'ultimo login o dalla creazione prima della disabilitazione degli utenti",
"delete_threshold": "Soglia eliminazione", "delete_threshold": "Soglia eliminazione",
@@ -1013,7 +1013,7 @@
"update_mod_times": "Aggiorna timestamp", "update_mod_times": "Aggiorna timestamp",
"types": { "types": {
"http": "HTTP", "http": "HTTP",
"email": "Email", "email": "E-mail",
"backup": "Backup", "backup": "Backup",
"user_quota_reset": "Ricalcolo quota utente", "user_quota_reset": "Ricalcolo quota utente",
"folder_quota_reset": "Ricalcolo quota cartella virtuale", "folder_quota_reset": "Ricalcolo quota cartella virtuale",

View File

@@ -178,6 +178,10 @@ explicit grant from the SFTPGo Team (support@sftpgo.com).
lngs.en = { nativeName: 'English' }; lngs.en = { nativeName: 'English' };
//{{- else if eq . "it" }} //{{- else if eq . "it" }}
lngs.it = { nativeName: 'Italiano' }; lngs.it = { nativeName: 'Italiano' };
//{{- else if eq . "de" }}
lngs.de = { nativeName: 'Deutsch' };
//{{- else if eq . "fr" }}
lngs.fr = { nativeName: 'Français' };
//{{- end}} //{{- end}}
//{{- end}} //{{- end}}
if (Object.keys(lngs).length == 0){ if (Object.keys(lngs).length == 0){