Localization von Java Enums

Iam_Fiction

Mitglied
Hi, wie kann ich denn Enums die ich in meinem Programm verwende lokalisieren? Java bietet ja mit den Klassen Locale und ResourceBundle etc schon eine geeignete Klassensammlung für die Internationalisierung, jedoch wie kann ich damit auch Enums lokalisieren? Oder befinde ich mich mit der Idee auf einem Holzweg und sollte Abstand von dem Gedanken nehmen, da man Enums nicht lokalisiert sondern dies anders umsetzt? Wenn ja wie?

Zudem werden ja bei dem von Sun angestrebten Konzept meist die Internationalisierung in mehrere logische ResourceBundles geteilt. Gibt es einen guten Ansatz der diese anschließend wieder zu einer lang File zusammenpackt oder ähnliches, um eine einfachere Verbreitbarkeit der Locales zu gewährleisten?

Gruß Stefan
 
Zuletzt bearbeitet:
Im Endeffekt benutzen ResourceBundles ja nur Strings als Schlüssel. Im Standardfall ist die toString() Representation eines Enums einfach sein Name. Wenn du die Enums also als Schlüssel im Propertiesfile anlegst sollte das tun.

Gruß
Ollie
 
Hallo,

schau mal hier:
Java:
/**
 * 
 */
package de.tutorials;

import java.util.ResourceBundle;

/**
 * @author Thomas.Darimont
 */
public class EnumTranslationExample {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ResourceBundle bundle = ResourceBundle.getBundle(Colors.class.getName());
		System.out.println(bundle.getString(Colors.RED.name()));
	}
	
	enum Colors{
		RED,GREEN,BLUE;
	}
}

EnumTranslationExample$Colors_de_DE.properties:
Code:
RED=rot
BLUE=blau
GREEN=grün

Gruß Tom
 
Zurück