Mehrzeiliger Text in Ressourcebundle (properties-Datei)

AKST

Erfahrenes Mitglied
Hallo Leute,

ich habe eine properties-Datei für Texte die ich in verschiedenen Sprachen ausgeben möchte. alles funktioniert gut. Blos wie kann ich mehrzeilige Texte einem Schlüssel zuweisen?

Wenn ich folgenden Eintrag drin habe:
Code:
text1=Hallo das ist ein Text zur Veranschaulichung.
Das ist nur ein Test.

Dann wird nur : "Hallo das ist ein Text zur Veranschaulichung." angezeigt. Der Rest("Das ist nur ein Test.") in der zweiten Zeile wird nicht beachtet. Wie kann ich den gesamten Text anzeigen?

Gruß
 
Hallo!

Versuchs mal damit, dass du die Escape Sequenz \n Statt eines "nativen" zeilenumbruch (\n\r) einfügst.

Folgendes funktioniert bei mir:
Code:
 * created on 20.02.2005@18:04:06
 */
package de.tutorials;

import java.io.FileOutputStream;
import java.net.URL;
import java.util.Properties;
import java.util.ResourceBundle;

/**
 * @author Administrator
 * 
 */
public class PropertiesTest {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {

        URL url = PropertiesTest.class
                .getResource("PropertiesTest_DE_de.properties");

        String str = "Hallo\nWelt!";

        Properties props = new Properties();

        props.put("a", str);

        props.store(new FileOutputStream(url.toURI().getPath()), null);

        props = new Properties(); //Nur zur Demonstration, dass nun "a" nicht mehr im
        //Properties Instanz enthalten ist.
        
        props.load(url.openStream());

        ResourceBundle rb = ResourceBundle
                .getBundle("de.tutorials.PropertiesTest");

        System.out.println(rb.getString("a"));

    }

}

PropertiesTest_DE_de.properties
Code:
#Sun Feb 20 18:34:15 CET 2005
a=Hallo\nWelt\!

Ausgabe:
Code:
Hallo
Welt!

HTH,
Gruß Tom
 
Zuletzt bearbeitet:
Hallo Tom,

ich lese die wörter aus der properties-Datei in Struts mit "<html:errors />" aus.

In der struts-config steht dann:
Code:
        <exception key="userRegistration.Exception" 
                   type="java.lang.NumberFormatException"
                   path="/WEB-INF/Pages/userRegistrationError.jsp">
        </exception>

In meiner properties-Datei steht:
Code:
userRegistration.Exception=There was a problem!\n
The value for age is not a number!

Mir geht es eben darum, dass ich in der properties-Datei nicht alles in eine Zeile schreiben muss, wenn ich mal sehr lange Texte habe. Bei mir geht das so nicht. Eine extra Klasse wollte ich eigentlich nicht schreiben, sondern die Funktionalität von Struts nutzen.

Gruß
 
Zuletzt bearbeitet:
Hallo!

Ich denke ich habs jetzt:

PropertiesTest_DE_de.properties:
Code:
userRegistration.Exception=There was a problem!\n\
 The value for age is not a number!\n\
 AAAA

Der Schlüssel zum Erfolg ist ein Abschließender Backslash (\) am Ende der vorangehenden Zeile und ein anführendes Leerzeichen bei den folgenden Zeilen ...

PropertiesTest
Code:
 * created on 20.02.2005@18:04:06
 */
package de.tutorials;

import java.io.FileOutputStream;
import java.net.URL;
import java.util.Properties;
import java.util.ResourceBundle;

/**
 * @author Administrator
 * 
 */
public class PropertiesTest {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {

        URL url = PropertiesTest.class
                .getResource("PropertiesTest_DE_de.properties");

        Properties props = new Properties();
        
        props.load(url.openStream());

        ResourceBundle rb = ResourceBundle
                .getBundle("de.tutorials.PropertiesTest");

        System.out.println(rb.getString("userRegistration.Exception"));

    }

}

Ausgabe:
Code:
There was a problem!
The value for age is not a number!
AAAA

HTH,
Gruß Tom
 

Neue Beiträge

Zurück