对于这种支持,我们面临两种主要问题。
指南
据我所知,APA 实际上并未提供任何关于 L10N 的官方说明。因此有人可能会争论在 APA 格式中支持日语到底意味着什么。
技术问题
大多数软件包,即使是那些对 L10N 有某种支持的软件包,也都是以英语或印欧语系语言为中心,最多只使用拉丁语脚本。因此,如果不实际编写另一个软件包,就很难添加对日语等语言的支持(例如,日语倾向于使用后置词而不是前置词,这是一种 SOV 语言),而这最终会与许多其他软件包不兼容,即使我们认为花费的时间和精力是值得的。
可能的解决方案
一个好的解决方案但任务繁重的是重新设计 的 L10N 流程biblatex
,提供更多高级灵活性以支持不同的语言。但我认为这不太可能,因此,与此同时,一些非黑客式的方法来更改每个 bib 条目的样式(例如lnagid
)以及添加手动条目的能力将省去很多麻烦。
具体案例
支持的第一步显然是复制一些语言.lbx
和-apa.lbx
文件并翻译一些字符串。这将导致我们这样做(这里是一个示例tex
文件):
这里有很多问题,首先,“から”是一个后置词,与“from”不同,应该放在 URL 后面(如果按照指南来看,这可能听起来很奇怪)。其次,日期完全错误,需要重新排序,并且需要为所有 3 个条目添加后缀,如“2019年9月11日”。其他问题可能包括不使用日语括号(以及几乎所有标点符号),这会导致点的间距错误,名称后面会添加点,这在日语中并不常见(尽管我对它们的典型样式没有太多信息)。
在研究了一些问题并浏览了 的biblatex-apa
资料后,我通过添加以下内容成功地解决了第一个问题:
\AtEveryBibitem{%
\iffieldequalstr{langid}{japanese}
{\renewbibmacro*{url+urldate}{%
\ifthenelse{\iffieldundef{url}\OR\NOT\iffieldundef{doi}}
{}
{\iffieldundef{urlyear}
{}
{\printtext{\bibstring{retrieved}}%
\addspace
\printurldate
\setunit{\addcomma\addspace}}
\iffieldundef{url}{}{\printfield{url}\bibstring{from}\adddot %
\renewcommand*{\finentrypunct}{\relax}}}}} % if true
{\renewbibmacro*{url+urldate}{%
\ifthenelse{\iffieldundef{url}\OR\NOT\iffieldundef{doi}}
{}
{\iffieldundef{urlyear}
{}
{\printtext{\bibstring{retrieved}}%
\addspace
\printurldate
\setunit{\urldatecomma}%
\bibstring{from}%
\setunit{\addspace}}%
\iffieldundef{url}{}{\printfield{url}\renewcommand*{\finentrypunct}{\relax}}}}} % if false
}
这将给我们(我是否需要在每个非 jp 条目上重新定义它?):
但是日期(最大的问题)和其余问题仍然存在,所有这些都只是为了考虑单个用例。