Java i18n: utilizzare uno di accesso ResourceBundle per ogni pacchetto, o uno per tutto il progetto?

StackOverflow https://stackoverflow.com/questions/2067336

Domanda

Io non so nulla di internazionalizzazione.

Ho un progetto con diversi pacchetti. Sto usando wizard di Eclipse built-in "esternalizzazione Strings" per estrarre le costanti di stringa in mie classi di un file di proprietà e sostituire quelle corde con le chiamate a una funzione di accesso statica. Così, invece di

System.out.println("Hello, world!");

io alla fine con

System.out.println(Messages.getString("MyKey"));

ed un Messages classe di utilità in ogni confezione (che fornisce un metodo getString statico per ottenere la stringa desiderata da un ResourceBundle [in questo caso un file .properties]). E 'meglio avere una classe Messages in ogni confezione, o di avere una singola classe Messages per l'intero progetto?

È stato utile?

Soluzione

Sono a favore di un file di localizzazione globale. Avrete chiavi duplicate ( "OK", "Cancel"), che richiederebbe la duplicazione o la nidificazione, e l'interfacciamento con l'esterno la gente di localizzazione è più facile se le risorse sono consolidati.

Altri suggerimenti

vorrei mantenere uno-per-package. In questo modo la manutenzione / refactoring / unit test è molto più facile.

Inoltre, non ci sono dipendenze globali su un singolo file.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top