如何更改 biblatex 中翻譯器的縮寫

如何更改 biblatex 中翻譯器的縮寫

我想將 bibltex 中譯者目前的縮寫“Übers. von”更改為“Übersetzt von”。似乎有一個類似的問題,但答案中省略了翻譯部分:Biblatex:避免使用「編輯」或「翻譯者」的縮寫(修改歷史學家書目風格) 輸出 先感謝您!

書目文件:

@book{Hammitzsch.1962,
 editor = {Hammitzsch, Horst},
 year = {1962},
 location = {T\={o}ky\={o}, Wiesbaden},
 publisher = {Otto Harrassowitz},
 addendum = {Deutsche Gesellschaft für Natur- und Völkerkunde Ostasiens; 43},
 title = {Rikkokushi. Die amtlichen Reichsannalen Japans},
 subtitle = {Die Regierungs-annalen Kammu-Tenn\={o}. Shoku Nihongi 36-40 und Nihon-K\={o}ki 1-13},
 translator = {Lewin, Bruno},
 keywords = {primary}
} 

主文件

\documentclass[12pt,a4paper,headings=standardclasses,numbers=noenddot]{scrreprt}
%\usepackage{showframe}
\usepackage[left=2.50cm, right=2.50cm, top=2.50cm, bottom=2.00cm]{geometry}
\usepackage[onehalfspacing]{setspace}
\usepackage[main=ngerman, english]{babel}
\usepackage[babel, german=quotes]{csquotes}
\usepackage[ngerman]{isodate}
\usepackage[ngerman]{datetime}

 \usepackage[
    backend=biber,
    style=authoryear,
    sorting=nyvt, % sort by name, year, volume, title
    maxnames=25, % max author names before abbr
    dashed=false % multiple works of an author
  ]{biblatex}
 \addbibresource{library.bib}

\renewcommand{\mkbibnamefamily}[1]{\textsc{#1}}
\renewcommand{\labelnamepunct}{\addcolon\space}
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}
\renewcommand\postnotedelim{\addcolon\addspace}
\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,unpublished]
  {title}{#1\isdot}

\begin{document}
\nocite{*}
\printbibheading[heading=bibintoc,title={Literaturverzeichnis}]
\printbibliography[heading=subbibliography,keyword={primary},title={Prim{\"a}rquellen}]
\end{document}

答案1

字串全部在<language>.lbx檔案中定義。對於ngerman,您會注意到 this 引用了german.lbx它的大部分字串。您可以查看此文件以查找要更改的字串,然後使用\DefineBibliographyStrings以下命令重新定義它們:

\makeatletter
\DefineBibliographyStrings{ngerman}{%
  bytranslator = {\lbx@lfromlang \"ubersetzt von},
}
\makeatother

完整的 MWE:

\documentclass[12pt,a4paper,headings=standardclasses,numbers=noenddot]{scrreprt}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Hammitzsch.1962,
 editor = {Hammitzsch, Horst},
 year = {1962},
 location = {T\={o}ky\={o}, Wiesbaden},
 publisher = {Otto Harrassowitz},
 addendum = {Deutsche Gesellschaft für Natur- und Völkerkunde Ostasiens; 43},
 title = {Rikkokushi. Die amtlichen Reichsannalen Japans},
 subtitle = {Die Regierungs-annalen Kammu-Tenn\={o}. Shoku Nihongi 36-40 und Nihon-K\={o}ki 1-13},
 translator = {Lewin, Bruno},
 keywords = {primary}
} 
\end{filecontents}

\usepackage[main=ngerman, english]{babel}
\usepackage[babel, german=quotes]{csquotes}

 \usepackage[
    backend=biber,
    style=authoryear,
    sorting=nyvt, % sort by name, year, volume, title
    maxnames=25, % max author names before abbr
    dashed=false % multiple works of an author
  ]{biblatex}
\addbibresource{\jobname.bib}

\renewcommand{\mkbibnamefamily}[1]{\textsc{#1}}
\renewcommand{\labelnamepunct}{\addcolon\space}
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}
\renewcommand\postnotedelim{\addcolon\addspace}
\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,unpublished]
  {title}{#1\isdot}

\makeatletter
\DefineBibliographyStrings{ngerman}{%
  bytranslator = {\lbx@lfromlang \"ubersetzt von},
}
\makeatother

\begin{document}
\nocite{*}
\printbibheading[heading=bibintoc,title={Literaturverzeichnis}]
\printbibliography[heading=subbibliography,keyword={primary},title={Prim{\"a}rquellen}]
\end{document}

輸出

相關內容