biblatex-apa
defines some essential macros in the .lbx
files, so for every language you use in your document you need
\DeclareLanguageMapping{<lang>}{<lang>-apa}
Starting from biblatex
v3.8/biblatex-apa
v7.5 there should be no need for manual \DeclareLanguageMapping
s any more. biblatex-apa
now automatically sets the mappings for all languages with \DeclareLanguageMappingSuffix{-apa}
. Of course this can only work if the file <lang>-apa.lbx
is present.
Unfortunately, there is no russian-apa.lbx
and so the line \DeclareLanguageMapping{russian}{russian-apa}
won't really help, we only get a message that rusian-apa.lbx
was not found and the mapping is ignored.
The best solution is to write russian-apa.lbx
. You can take any of the ...-apa.lbx
s as starting point and translate the file. See What is the most appropriate way to configure biblatex for use with an unsupported language?. Here this would probably involve copying english-apa.lbx
to russian-apa.lbx
, changing the date and ID at the top, translating the contents and modifying the date format to Russian usage.
For a quick fix you can simply add
\DefineBibliographyExtras{russian}{%
\protected\def\mkbibdateapalong#1#2#3{%
\iffieldundef{#1}%
{}%
{\iffieldbibstring{#1}{\biblcstring{\thefield{#1}}}{\thefield{#1}}}%
\iffieldundef{#2}%
{}%
{\iffieldundef{#1}%
{}%
{\addcomma\addspace}%
\mkbibmonth{\thefield{#2}}}%
\iffieldundef{#3}%
{}%
{\ifthenelse{\iffieldundef{#2}\OR\iffieldundef{#1}}%
{}%
{\addspace}%
\stripzeros{\thefield{#3}}}}%
\protected\def\mkbibdateapalongextra#1#2#3{%
\iffieldundef{#1}%
{}%
{\iffieldbibstring{#1}{\biblcstring{\thefield{#1}}}{\thefield{#1}}\printfield{extrayear}}%
\iffieldundef{#2}%
{}%
{\iffieldundef{#1}%
{}%
{\addcomma\addspace}%
\mkbibmonth{\thefield{#2}}}%
\iffieldundef{#3}%
{}%
{\ifthenelse{\iffieldundef{#2}\OR\iffieldundef{#1}}%
{}%
{\addspace}%
\stripzeros{\thefield{#3}}}}%
\protected\def\mkbibdateapalongmdy#1#2#3{%
\iffieldundef{#2}%
{}%
{\mkbibmonth{\thefield{#2}}}%
\iffieldundef{#3}%
{}%
{\addspace}%
\stripzeros{\thefield{#3}}%
\iffieldundef{#1}%
{}%
{\ifthenelse{\iffieldundef{#3}}%
{\ifthenelse{\iffieldundef{#2}}%
{}%
{\addspace}}%
{\addcomma\addspace}%
\iffieldbibstring{#1}{\biblcstring{\thefield{#1}}}{\thefield{#1}}}}}
to your preamble. (Modify it to Russian customs if need be.)