# Mehrzeiliger Text in Ressourcebundle (properties-Datei)



## AKST (20. Februar 2005)

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:

```
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ß


----------



## Thomas Darimont (20. Februar 2005)

Hallo!

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

Folgendes funktioniert bei mir:

```
* 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

```
#Sun Feb 20 18:34:15 CET 2005
a=Hallo\nWelt\!
```

Ausgabe:

```
Hallo
Welt!
```

HTH,
Gruß Tom


----------



## AKST (20. Februar 2005)

Hallo Tom, 

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

In der struts-config steht dann: 

```
<exception key="userRegistration.Exception" 
                   type="java.lang.NumberFormatException"
                   path="/WEB-INF/Pages/userRegistrationError.jsp">
        </exception>
```

In meiner properties-Datei steht:

```
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ß


----------



## Thomas Darimont (21. Februar 2005)

Hallo!

Ich denke ich habs jetzt:

PropertiesTest_DE_de.properties:

```
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

```
* 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:

```
There was a problem!
The value for age is not a number!
AAAA
```

HTH,
Gruß Tom


----------



## AKST (21. Februar 2005)

Sehr schön.


----------

