Kann ich in meiner .bib-Datei einen verkürzten „Sprachen“-Eintrag (Sprachcode) verwenden?

Kann ich in meiner .bib-Datei einen verkürzten „Sprachen“-Eintrag (Sprachcode) verwenden?

Ich verwende BiblaTeXund habe eine Frage: Wie ich in fast allen Quellentypen in meiner .bibDatei sehe, kann ich den Eintrag verwenden language.

Allerdings ist alles, was ich dort eingebe, literarisch in meinen Referenzen aufgeführt. Kann ich also nicht z. B. auch eine ISO-639-1 oder eine andereISO-Code?

Z.B:

@online{SOTexBibLangIso,
    author = {Stackoverflow Tex Community},
    title = {Can I use a shortened "language" entry (language code) in my .bib file?},
    url = {https://tex.stackexchange.com/questions/294703/can-i-use-a-shortened-language-entry-language-code-in-my-bib-file},
    language = {en},
    urldate = {2016-02-18},
}

Antwort1

biblatexunterscheidet zwei Sprachfelder: (1) languageund (2) langid.biblatexDokumentation, S. 20,

[Das languageFeld enthält die] Sprache(n) des Werks. Sprachen können wörtlich oder als Lokalisierungsschlüssel angegeben werden. Wenn Lokalisierungsschlüssel verwendet werden, langkann das Präfix weggelassen werden.

Auf Seite 25 finden Sie

[ langid] Die Sprachkennung des Bibliographieeintrags. [...] Die Kennung muss ein den babel/ polyglossia-Paketen bekannter Sprachname sein. Diese Information kann verwendet werden, um Trennmuster zu ändern und Zeichenfolgen in der Bibliographie zu lokalisieren. Beachten Sie, dass bei den Sprachnamen zwischen Groß- und Kleinschreibung unterschieden wird.

Das languageFeld ist also das, was in der Bibliographie als Sprache des Werks gedruckt wird, während intern für das Sprachumschaltverhalten von langidverwendet wird (es kann verwendet werden, um die Silbentrennung in der Bibliographie umzuschalten, sodass Wörter richtig getrennt werden, oder es kann auch die sprachabhängigen Zeichenfolgen ändern; dies wird mit der Option gesteuert). Beachten Sie, dass die Informationen standardmäßig nicht gedruckt werden, wenn die dort angegebene Sprache mit der Hauptsprache des Dokuments übereinstimmt; dies wird mit den Optionen und gesteuert .biblatexautolanglanguageclearlang\DeclareRedundantLanguages

Sie könnten zum Beispiel haben

@online{elk,
  author   = {Anne Elk},
  title    = {Über die Anatomie der Donnerechse},
  url      = {http://www.example.edu/~elk/bronto.pdf},
  date     = {2016-01-01},
  language = {german},
  langid   = {ngerman},
}

für einen deutschen Text ( languageist german, langgermanwäre auch OK) nach den neuen Rechtschreibregeln ( langidist ngerman).


Das langidFeld kann nur mit Sprachkennungen arbeiten, die babel/ bekannt sind polyglossia, aber laut PLKs Kommentar oben kann Biber auch mit BCP47-Sprachcodes umgehen und sie ihren jeweiligen Gegenstücken zuordnen. Tatsächlich akzeptiert Biber gerne unsinnige Eingaben wie langid = {flobbel}, aber das führt zu Problemen mit babeloder polyglossia, wenn Sie etwas anderes als verwenden autolang=noneund das Sprachpaket versucht, die unbekannte Sprache zu laden flobbel.


Das languageFeld akzeptiert alle Eingaben, aber Sprachkennungen, die biblatexbekannt sind, werden anders behandelt, sie werden übersetzt. Um etwas genauer zu sein, funktioniert dies für Sprachen, die in der aktuell verwendeten .lbxDatei als definiert sind lang<language>. Sie können sie als <language>oder angeben lang<language>. Wenn der Bibstring nicht in der definiert ist , wird .lbxder Inhalt des Felds unverändert gedruckt.languageDie unterstützten Sprachen können Sie english.lbxhier sehen.,für Niederländisch ist die Liste hier). Sie können den Sprachenbezeichner entweder mit langoder ohne Präfix angeben langgreekund greekerhalten die gleichen Ergebnisse. Wenn Sie

language = {english},

In einem niederländischen Dokument erhalten Sie die Ausgabe „Engels“, und wenn die Dokumentsprache Englisch ist, erhalten wir „English“.

Die Zeichenfolge ensteht nicht auf der Liste der erkannten Sprachenkennungen und wird unverändert ausgedruckt.

Sie können emulieren, was Biber mit dem langidFeld macht, indem Sie eine Sourcemap verwenden

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldsource=language,
            match=\regexp{\Aen\Z},
            replace=\regexp{english}]
      \step[fieldsource=language,
            match=\regexp{\Ade\Z},
            replace=\regexp{german}]
    }
  }
}

verwandte Informationen