我正在编写一个包,以方便进口巴西社会经济微观数据集(人口普查,PNAD等)。 我预见到这个包的两个不同用户组:
巴西的用户,他们可能会对文档感到更放心 葡萄牙语。可能在某种程度上可以理解英语,但是a 外语可能会让包装感觉更少 “人体工程学”。
更广泛的国际用户社区,英语 文件可能是一个必要条件。
是否可以以文档“双语”(英语和葡萄牙语)的方式编写包,并且向用户显示的语言将取决于他们的国家/语言设置?
另外,
在roxygen2文档框架中可行吗?
我意识到,通过使包装更加复杂和难以维护,使包装更加用户友好是一种权衡。从以前的经验来看这种权衡的一般评论也是受欢迎的。
编辑:根据评论的建议,我交叉发布了r-package-devel mailling list。 HERE,然后按照底部的答案。 Duncan Murdoch发布了一个有趣的答案,涵盖了@Brandons回答(贝娄)的一些内容,但也包括了我认为有用的另外两个建议:
有一种语言的包,但不同的插图 语言。我会遵循这个建议。
必须使用软件包的版本,比方说1.1和1.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编码 - 我找不到简单的解决方案。 (如果您发现这个偏离主题,请随时删除)