3

I recently updated my MiKTeX including biblatex (v3.11) and now I am getting strange results when using a custom language file, e.g. given the example below: Package biblatex Warning: Bibliography string 'volume' untranslated

The result looks like

enter image description here

This has worked perfectly before and it still works when removing the line \DeclareLanguageMapping{ngerman}{ngerman-myveryown} from the bbx file.

I am not aware of an internal biblatex change causing this behaviour. Therefore I seek for your expertise.

\begin{filecontents}{myveryown.bbx}
\ProvidesFile{myveryown.bbx}[2018/04/24 v1.0 biblatex bibliography style]
\RequireBibliographyStyle{authortitle}
\DeclareLanguageMapping{ngerman}{ngerman-myveryown}
\end{filecontents}
\begin{filecontents}{ngerman-myveryown.lbx}
\ProvidesFile{ngerman-myveryown.lbx}[2018/04/24 v1.0 biblatex localization]
\InheritBibliographyExtras{ngerman}
\DeclareBibliographyStrings{%
   byeditor = {{herausgegeben von}{hgg\adddotspace v\adddot}},
}
\end{filecontents}
\begin{filecontents}{abibfile.bib}
@book{akey,
address = {Zürich and Wiesbaden},
edition = {My very own edition},
title = {A very long title},
volume = {1},
publisher = {My publisher},
author = {Author, An},
year = {1999},
}
\end{filecontents}
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[bibstyle=myveryown]{biblatex}
\addbibresource{abibfile.bib}
\begin{document}
Test\nocite{*}
\printbibliography
\end{document}
2

Your .lbx should inherit its strings from ngerman as well

\ProvidesFile{ngerman-myveryown.lbx}[2018/04/24 v1.0 biblatex localization]
\InheritBibliographyExtras{ngerman}
\DeclareBibliographyStrings{%
   inherit  = {ngerman},
   byeditor = {{herausgegeben von}{hgg\adddotspace v\adddot}},
}

The loading and internal handling of .lbx files was overhauled in version 3.11 (see the Release notes in the Wiki, CHANGES.md and the pull request that implemented this on GitHub). What you are seeing seems to be a side-effect of those changes. As far as documented behaviour goes, the version without inherit = {ngerman}, should never have worked in the first place, and I'm surprised it did. In particular, §4.11.8 Custom Localization Modules, p. 249 of the biblatex documentation states

Alternative lbx files must ensure that the localisation module is complete. They should do so by inheriting data from the corresponding standard module. If the language american is mapped to american-mla.lbx, biblatex will not load american.lbx unless this module is requested explicitly. In the above example, inheriting ‘strings’ and ‘extras’ will cause biblatex to load american.lbx. before applying the modifications in american-mla.lbx.

| improve this answer | |
  • Thank you very much. The old versions certainly worked. I saw the inherit line in the documentation (it is even printed in blue) for the lbx file, but did not realize, that I it. Sorry for not seeing that. – Martin Apr 24 '18 at 12:50
  • @Martin I thought so, otherwise you would have noticed the problem earlier. There were some weird edge cases with the old behaviour that could mean that this worked even though it should not have worked. It's a bit annoying that we broke things that worked before, but since this was always documented behaviour I hope we can get away with it. – moewe Apr 24 '18 at 12:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.