Scopri come configurare l’internazionalizzazione Java, tradurre i file .properties e automatizzare il flusso di lavoro di localizzazione Java.
Come funziona l’internazionalizzazione Java
Il sistema i18n di Java si basa su due elementi:
.propertiesfile che memorizzano le tue stringhe tradotte- La classe
ResourceBundleche carica il file corretto in fase di esecuzione in base al locale dell’utente
Quando la tua app viene eseguita, ResourceBundle controlla il locale dell’utente e carica automaticamente il file corrispondente. Se manca una traduzione, torna al file predefinito in modo che nulla si interrompa.
Richiamare una stringa nel codice è semplice:
ResourceBundle bundle = ResourceBundle.getBundle("messages", Locale.FRENCH);
String greeting = bundle.getString("welcome.message");Questo è l’intero meccanismo. Il resto del lavoro di localizzazione avviene nei file .properties stessi, ed è per questo che strutturarli correttamente è importante.
Configurazione del tuo Resource Bundle
Un resource bundle è un insieme di file .properties che condividono un nome base comune. Il nome base è la parte del nome del file prima del suffisso del locale ed è ciò che ResourceBundle.getBundle() usa per trovare il file corretto in fase di esecuzione.
messages.properties # default (usually English)
messages_fr.properties # French
messages_de.properties # German
messages_es.properties # Spanish
Qui, messages è il nome base. Puoi chiamarlo come vuoi, ma dovrebbe riflettere ciò che il file contiene. Le applicazioni più grandi spesso utilizzano più resource bundle per mantenere le cose organizzate:
src/main/resources/
messages.properties
errors.properties
emails.propertiesJava si aspetta un modello di denominazione specifico: basename_language.properties o basename_language_COUNTRY.properties per varianti regionali.
messages_fr.properties # French
messages_fr_CA.properties # French (Canada)
messages_pt_BR.properties # Portuguese (Brazil)I codici lingua seguono ISO 639-1 e i codici paese seguono ISO 3166-1. Usare il formato sbagliato significa che ResourceBundle non troverà il file in fase di esecuzione.
Strutturazione dei file Java .properties
Ogni riga in un file .properties è una coppia chiave-valore separata da =.
welcome.message = Welcome to our application
error.login.invalid_credentials = Invalid username or password
form.submit.button = SubmitOltre a utilizzare coppie chiave-valore, è importante sapere che il modo in cui scrivi il tuo file sorgente influisce direttamente sulla qualità delle tue traduzioni. Alcune best practice si applicano sempre, indipendentemente dal fatto che tu stia traducendo manualmente o utilizzando uno strumento di traduzione AI come PTC.
1
Usa chiavi chiare e descrittive
Le chiavi dovrebbero rendere ovvio dove e come viene utilizzata una stringa. Questo è importante quando gestisci centinaia di stringhe su più file.
Uso errato delle chiavi:
btn1 = Submit
msg2 = ErrorUso corretto delle chiavi:
form.submit.button = Submit
error.login.invalid_credentials = Invalid username or password2
Usa i placeholder per il contenuto dinamico
Scrivi la frase completa nel tuo file .properties e usa segnaposto numerati per il contenuto variabile invece di concatenare stringhe nel codice.
Errato (nel codice):
"Hello, " + username + "! You have " + count + " new messages."
Corretto (nel file .properties):
dashboard.greeting = Hello, {0}! You have {1} new messages.Molte lingue cambiano l’ordine delle parole e le regole di concordanza, quindi dividere le frasi in frammenti rende impossibile una traduzione corretta.
3
Gestisci la pluralizzazione con ChoiceFormat
Alcune stringhe cambiano a seconda di un valore numerico. Invece di scrivere chiavi separate per singolare e plurale, usa un pattern ChoiceFormat direttamente nel tuo file .properties:
messages.count = {0,choice,0#no messages|1#one message|1<{0} messages}
Java elabora questo pattern in fase di esecuzione e restituisce la forma corretta in base al valore passato.
4
Escape dei caratteri speciali
Caratteri come =, :, # e \ hanno un significato speciale nei file .properties:
=o:separa le chiavi dai valori#o!inizia un commento\introduce sequenze di escape (come\nper la nuova riga)
Se devi usare questi caratteri in una stringa, usa l’escape con una barra rovesciata.
support.link = Visit us at https\://support.example.com5
Salva i file in UTF-8
Salva sempre i file .properties in UTF-8. Senza di esso, i caratteri non ASCII vengono corrotti e le traduzioni diventano illeggibili.
6
Mantieni tutto il testo visibile agli utenti fuori dal tuo codice
Se una stringa è visibile agli utenti, appartiene a un file .properties Le stringhe hardcoded non verranno tradotte e la tua app finirà per mostrare un mix di lingue.
Altre considerazioni sulla localizzazione Java
Non tutto ciò che deve essere localizzato si trova in un file .properties. Date, orari, numeri e valori di valuta vengono formattati nel codice in fase di esecuzione, e farli correttamente è importante tanto quanto le tue stringhe tradotte.
Java fornisce classi integrate per questo:
DateTimeFormatterper la formattazione di data e ora sensibile al localeNumberFormatper numeri, percentuali e valori di valuta
Poiché questa guida si concentra sui file .properties e sulla loro traduzione, non li tratteremo in modo approfondito qui. La documentazione ufficiale di Java per DateTimeFormatter e NumberFormat è un buon punto di partenza.
Traduzione dei file Java .properties
Come mostrano gli esempi sopra, internazionalizzare correttamente un’app Java richiede impegno. Strutturare i resource bundle in modo corretto, gestire i placeholder e la pluralizzazione deve essere tutto a posto prima ancora di iniziare la traduzione. PTC è progettato per occuparsi di tutto da quel punto in poi.
Perché PTC?
PTC è un sistema di traduzione AI progettato per team di sviluppo software. Comprende il tuo prodotto, la tua terminologia e il tuo pubblico. Con PTC ottieni:
- Traduzioni contestuali — PTC legge la struttura dei file e le descrizioni per tradurre le stringhe in modo accurato, non letterale
- Preservazione di placeholder e formati — i tuoi pattern
{0},{1}e le stringheChoiceFormatvengono restituiti intatti - Prezzi a pagamento a consumo — nessun canone mensile e un calcolatore di prezzi per conoscere i costi prima di impegnarti
- Integrazione Git e CI/CD — collega il tuo repository e mantieni le traduzioni sincronizzate automaticamente
- Prova gratuita — 20.000 parole in due lingue, senza carta di credito
Come iniziare
- Iscriviti per una prova gratuita
- Carica il tuo file sorgente
.propertiese imposta i percorsi di destinazione della traduzione - Seleziona le lingue di destinazione
- Aggiungi una breve descrizione della tua applicazione e del suo pubblico
- Scarica i file tradotti dalla scheda File di risorse e aggiungili a
src/main/resources
L’intera configurazione richiede circa 5 minuti. Per una guida completa, consulta la Guida introduttiva.
Un flusso di lavoro di traduzione continua per progetti Java
Tradurre il tuo file .properties una volta è semplice. E per quanto riguarda il mantenimento delle traduzioni aggiornate man mano che la tua applicazione evolve? Ogni volta che aggiungi una nuova stringa, aggiorni il testo esistente o rimuovi una chiave, i tuoi file tradotti devono riflettere quel cambiamento.
Farlo manualmente significa esportare i file, inviarli per la traduzione, aspettare e reintegrarli ogni volta, ed è per questo che la maggior parte dei team alla fine lo automatizza.
PTC offre due modi per automatizzare il processo di traduzione:
Integrazione Git
Collega il tuo repository GitHub, GitLab o Bitbucket a PTC e monitorerà le modifiche al tuo file .properties sorgente. Quando una stringa viene aggiunta o aggiornata, PTC la traduce automaticamente e consegna i file di traduzione aggiornati tramite una pull request. Le tue traduzioni rimangono sincronizzate senza passaggi manuali.
Integrazione CI/CD
Se preferisci mantenere tutto all’interno del tuo processo di build esistente, l’API di PTC ti consente di caricare il tuo file sorgente e recuperare le traduzioni come parte del tuo job CI. Ogni build produce traduzioni aggiornate automaticamente.
Entrambi gli approcci significano che aggiungere una nuova lingua in seguito è solo una modifica di configurazione, non un nuovo processo manuale.

Pronto a localizzare la tua app Java?
I tuoi file .properties sono la base del tuo flusso di lavoro di localizzazione Java. Struttura correttamente, mantieni le tue traduzioni sincronizzate e la tua app può supportare nuove lingue senza rallentare il tuo ciclo di rilascio.
Se non hai ancora provato PTC, la prova gratuita è un buon punto di partenza. 20.000 parole, due lingue, senza carta di credito richiesta.


Traduzione Java con AI
Ottieni traduzioni contestualizzate in pochi minuti
Carica file o automatizza tramite API o integrazione Git