【问题标题】:Bilingual (English and Portuguese) documentation in an R packageR 包中的双语(英语和葡萄牙语)文档
【发布时间】:2023-03-03 10:33:01
【问题描述】:

我正在编写一个包来促进导入巴西社会经济微观数据集(人口普查、PNAD 等)。 我预见到该软件包有两组不同的用户:

  • 巴西的用户,他们可能会对 葡萄牙语。大概能在一定程度上听懂英语,但是一个 外语可能会使包装感觉不那么好 “符合人体工程学”。

  • 更广泛的国际用户社区,来自他们的英语 文件可能是必要条件。

是否可以以文档为“双语”(英语和葡萄牙语)的方式编写包,并且向用户显示的语言取决于他们的国家/语言设置?

还有,

这在 roxygen2 文档框架内可行吗?

我意识到,通过双语和增加的复杂性和维护难度来使包更加用户友好是一个权衡。也欢迎从以前的经验中权衡这种折衷的一般 cmet。

编辑:按照评论的建议,我交叉发布了 r-package-devel 邮件列表。 HERE,然后按照底部的答案进行操作。邓肯·默多克(Duncan Murdoch)发布了一个有趣的答案,涵盖了@Brandons 答案(如下)所涵盖的一些内容,但还包括我认为有用的另外两个建议:

  • 有一种语言的包,但不同的小插曲 语言。我会遵循这个建议。

  • 必须有包的版本,比如 1.1 和 1.2,各一个 语言

【问题讨论】:

  • 如果您在这里没有得到有用的答案,这可能是在r-package-devel 邮件列表中提出的一个好问题...
  • @BenBolker 你是对的,这里几天没有答案,所以我在邮件列表上发布了(见上面的编辑)。几个小时后,已经有了答案。传统知识
  • 好问题。我觉得在 SO 上提供它对其他人也是有益的,因此,如果您希望根据您在邮件列表中收到的回复来收集答案,那就太好了。
  • R Consortium 也资助了这个项目:4dpiecharts.com/2016/03/23/rl10n-let-r-speak-your-language

标签: r documentation package roxygen2


【解决方案1】:

根据Ropensci没有将包文档翻译成非英语语言的标准机制。他们将internationalization/localization的典型流程描述如下:

创建非英文文档需要手动创建 补充 .Rd 文件或包小插曲。

提供的包 非英语文档应DESCRIPTION 文件.

还有更多关于Language 字段的信息:

“语言”字段可用于指示包是否 文档不是英文的:这应该是一个 逗号分隔的列表 标准(非私人使用或祖父)IETF 语言标签为 当前由 RFC 5646 (https://www.rfc-editor.org/rfc/rfc5646, 另见https://en.wikipedia.org/wiki/IETF_language_tag),即使用 本质上是 2 个字母 ISO 639-1 的语言子标签 (https://en.wikipedia.org/wiki/ISO_639-1) 或 3 个字母的 ISO 639-3 (https://en.wikipedia.org/wiki/ISO_639-3) 语言代码。

如果您的包包含非 ASCII 文本,特别是如果它打算在多个语言环境中使用,则需要小心。可以标记DESCRIPTION文件和.Rd文件中使用的编码。

关于编码...

首先,请仔细考虑您是否真的需要非 ASCII 文本。许多 R 的用户将只能在他们的本机中正确查看文本 语言组(例如西欧、东欧、简体 中文)和 ASCII.72。其他字符可能根本无法渲染, 渲染不正确,或导致您的 R 代码出错。 对于.Rd 文档,标记编码并包括 ASCII 音译可能会做一个合理的工作。 通常支持的字符比以前更宽 大约在 2000 年左右,但非拉丁字母(希腊语、俄语、格鲁吉亚语……) 仍然经常有问题,那些有双宽字符的 (中文、日文、韩文)经常需要专业的字体来渲染 正确。

在相关的说明中,R确实提供了对 "errors and warnings" in different languages 的支持 - “有机制可以翻译 R 级和 C 级错误和警告消息. 只有在 R 编译时支持 NLS 时才可用(由配置选项 --enable-nls 请求,默认值)。"

【讨论】:

    【解决方案2】:

    除了双语文档,请允许我发表以下评论:鉴于您的两个“目标”组,可能会假设您的一些用户将运行非英语操作系统(通常是葡萄牙语的 Windows)。在导入时间序列数据(或事实上的任何日期条目)时,由于不同的“日期”格式(英语与非英语),您在导入英语时可能会得到不同的“结果”(即错误解释的日期条目) /非英语机器。我对这些问题有一些经验(我经常使用基于捷克语的操作系统)并且 - 除了临时编码 - 我找不到简单的解决方案。 (如果你发现这个离题,请随时删除)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-22
      • 1970-01-01
      • 2019-05-26
      • 2016-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多