Übersetzen Sie Standorte in der Bibliographie abhängig von der Dokument-/Babel-Sprache

Übersetzen Sie Standorte in der Bibliographie abhängig von der Dokument-/Babel-Sprache

Ich schreibe häufig Texte auf Deutsch und Englisch und verwende JabRef, um meine Referenzen zu organisieren. Da ich viele Konferenzbeiträge zitiere, ist es oft ziemlich nervig, die Sprache der Stellen immer entsprechend der Dokumentsprache ändern zu müssen. Daher habe ich mich gefragt, ob ich biblatex eine Art Wörterbuch zur Verfügung stellen könnte, damit ich meine Datenbank nicht jedes Mal anpassen muss.

Beispielsweise möchte ich in der Präambel Folgendes definieren:

Munich = München
Germany = Deutschland

falls das Dokument oder die Babel-Sprache ist ngerman.

Ist das möglich?


MWE

\documentclass[ngerman]{article}

\usepackage[ngerman]{babel}

\begin{filecontents}{bla.bib}
    @inproceedings{Orwell1984,
        author  = "George Orwell",
        title   = "1984",
        year    = "1948",
        booktitle = "Books about big brothers",
        location = "Munich, Germany",
    }
\end{filecontents}

\RequirePackage[backend=biber,style=ieee-alphabetic]{biblatex}

\addbibresource{bla.bib}
\begin{document}
    \cite{Orwell1984}. \\
    \printbibliography 
\end{document}

Antwort1

Sie können biblatexdie Bibstrings von verwenden, um bestimmte Ausdrücke zu übersetzen. Die Frage ist, was eine gute Schnittstelle wäre. Wenn Sie beliebige Begriffe in einem Feld kombinieren möchten, müssen Sie etwas wie das Folgende tun (was sich etwas klobig anfühlt).

\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber,style=ieee-alphabetic]{biblatex}

\NewBibliographyString{munich,germany}
\DefineBibliographyStrings{german}{
  munich  = {München},
  germany = {Deutschland},
}

\begin{filecontents}{\jobname.bib}
@inproceedings{Orwell1984,
  author    = {George Orwell},
  title     = {1984},
  year      = {1948},
  booktitle = {Books about big brothers},
  location  = {\bibstring{munich}, \bibstring{germany}},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
  \autocite{Orwell1984}
  \printbibliography 
\end{document}

G. Orwell, „1984“, in Bücher über große Brüder, München, Deutschland, 1948.


Wenn Sie damit einverstanden sind, nur eine Zeichenfolge pro Feld zu verwenden, können Sie die Dinge ein wenig schöner gestalten

\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber,style=ieee-alphabetic]{biblatex}

\NewBibliographyString{de-munich}
\DefineBibliographyStrings{german}{
  de-munich  = {München},
}
\DefineBibliographyStrings{english}{
  de-munich  = {Munich, Germany},
}

\DeclareListFormat{location}{%
  \usebibmacro{list:delim}{#1}%
  \ifbibstring{#1}{\bibstring{#1}}{#1}\isdot
  \usebibmacro{list:andothers}}

\begin{filecontents}{\jobname.bib}
@inproceedings{Orwell1984,
  author    = {George Orwell},
  title     = {1984},
  year      = {1948},
  booktitle = {Books about big brothers},
  location  = {de-munich},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
  \autocite{Orwell1984}
  \printbibliography 
\end{document}

G. Orwell, „1984“, in Bücher über große Brüder, München, 1948.


Eine eher BibTeX-artige Lösung verwendet @strings. Sie können Zeichenfolgen für jeden Standort in verschiedenen .bibDateien definieren (eine für jede Sprache) und dann die .bibDatei für die Sprache auswählen, die Sie in Ihrem Dokument benötigen.

\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber,style=ieee-alphabetic]{biblatex}


\begin{filecontents}{locationstrings-german.bib}
@string{de:munich = "München"}
\end{filecontents}
\begin{filecontents}{locationstrings-english.bib}
@string{de:munich = "Munich, Germany"}
\end{filecontents}
% select the bib file for the language you want
\addbibresource{locationstrings-german.bib}

\begin{filecontents}{\jobname.bib}
@inproceedings{Orwell1984,
  author    = {George Orwell},
  title     = {1984},
  year      = {1948},
  booktitle = {Books about big brothers},
  location  = de:munich,
}
\end{filecontents}
\addbibresource{\jobname.bib}


\begin{document}
  \autocite{Orwell1984}
  \printbibliography 
\end{document}

G. Orwell, „1984“, in Bücher über große Brüder, München, 1948.


biblatexInteressant könnte auch die noch sehr experimentelle Multiscript-Version von sein:https://github.com/plk/biblatex/issues/416

Antwort2

\documentclass[ngerman]{article}

\usepackage[ngerman]{babel}

\begin{filecontents}{german-strings.bib}
    @string{muenchen={München}}
    @string{germany={Deutschland}}
\end{filecontents}


\begin{filecontents}[overwrite]{bla.bib}
    @inproceedings{Orwell1984,
        author  = "George Orwell",
        title   = "1984",
        year    = "1948",
        booktitle = "Books about big brothers",
        location = muenchen # ", " # germany
    }
\end{filecontents}

\RequirePackage[backend=biber,style=ieee-alphabetic]{biblatex}

\addbibresource{german-strings.bib}
\addbibresource{bla.bib}
\begin{document}
    \cite{Orwell1984}. \\
    \printbibliography
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen