3.27. Sprachinformation (Language)

Überblick

PDF-Dokumente können für Sehbehinderte durch Screenreader-Programme vorgelesen werden. Dazu ist es hilfreich, wenn das Dokument Auskunft über seine Sprache geben kann.

Diese Methoden stehen für Tests der Sprache zur Verfügung:

// Tests for PDF language:

.hasLanguageInfo(..) 
.hasNoLanguageInfo()

Beispiele

Das folgende Beispiel testet, ob das Dokument die Kennung für die englische Sprache in Großbritannien enthält:

@Test
public void hasLocale_CaseInsensitive() throws Exception {
  String filename = "documentUnderTest.pdf";

  AssertThat.document(filename)  
            .hasLanguageInfo("en-gb")  1
  ;
  AssertThat.document(filename)
            .hasLanguageInfo("en_GB")  2
  ;
}

1

PDF-typische Schreibweise

2

Java-typische Schreibweise

Die Zeichenkette für die Sprachbezeichnung kann in beliebiger Groß-/Kleinschreibung angegeben werden. Unterstrich und Bindestrich werden ebenfalls gleichbehandelt.

Es kann auch java.util.Locale direkt verwendet werden:

@Test
public void hasLocale_LocaleInstance_GERMANY() throws Exception {
  String filename = "documentUnderTest.pdf";

  AssertThat.document(filename)
            .hasLanguageInfo(Locale.GERMANY)
  ;
}
@Test
public void hasLocale_LocaleInstance_GERMAN() throws Exception {
  String filename = "documentUnderTest.pdf";

  AssertThat.document(filename)
            .hasLanguageInfo(Locale.GERMAN)
  ;
}

Ein PDF-Dokument mit der internen Länderkennung "en_GB" liefert einen grünen Test, wenn es auf Locale.en getestet wird. Dagegen gilt ein Test als fehlerhaft, wenn ein Dokument mit der internen Länderkennung "en" auf Locale.UK getestet wird.

Ein PDF-Dokument, das keine Länderkennung haben soll, kann ebenfalls daraufhin getestet werden:

@Test
public void hasNoLanguageInfo() throws Exception {
  String filename = "documentUnderTest.pdf";

  AssertThat.document(filename)
            .hasNoLanguageInfo()
  ;
}