R包中的双语(英语和葡萄牙语)文档

时间:2016-05-18 01:39:41

标签: r documentation package roxygen2

我正在编写一个包,以方便进口巴西社会经济微观数据集(人口普查,PNAD等)。 我预见到这个包的两个不同用户组:

  • 巴西的用户,他们可能会对文档感到更放心 葡萄牙语。可能在某种程度上可以理解英语,但是a 外语可能会让包装感觉更少 “人体工程学”。

  • 更广泛的国际用户社区,英语 文件可能是一个必要条件。

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

另外,

在roxygen2文档框架中可行吗?

我意识到,通过使包装更加复杂和难以维护,使包装更加用户友好是一种权衡。从以前的经验来看这种权衡的一般评论也是受欢迎的。

编辑:根据评论的建议,我交叉发布了r-package-devel mailling list。 HERE,然后按照底部的答案。 Duncan Murdoch发布了一个有趣的答案,涵盖了@Brandons回答(贝娄)的一些内容,但也包括了我认为有用的另外两个建议:

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

  • 必须使用软件包的版本,比方说1.1和1.2,每个版本一个 语言

2 个答案:

答案 0 :(得分:14)

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

  

要创建非英文文档,需要手动创建   补充.Rd文件或包装晕影。

     

供应包裹   非英语文档应该包含一个语言字段   DESCRIPTION档案

有关 public static void main(String[] args) { //For a number to be a multiple, i % number equals 0. MultiplesOfThreeAndFive m = new MultiplesOfThreeAndFive(); for (int i = 1; i < 1000; i++){ System.out.println(m.checkIfMult(i)); if (m.checkIfMult(i) == true){ } } } 字段的更多信息:

  

“语言”字段可用于指示包裹   文档不是英文的:这应该是以逗号分隔的列表   标准(非私人使用或格式化)IETF语言标签 as   目前由RFC 5646(https://tools.ietf.org/html/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提供了支持 - &#34;有机制来转换R级和C级错误,警告信息。只有在使用NLS支持编译R时才可用(由配置选项--enable-nls请求,默认值为。)&#34;

答案 1 :(得分:3)

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