当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R checkPoFiles 检查翻译文件中格式字符串不一致的情况


R语言 checkPoFiles 位于 tools 包(package)。

说明

这些函数将英语消息中嵌入的格式与翻译后的字符串进行比较,以检查一致性。 checkPoFile 检查一个文件,而 checkPoFiles 检查指定语言的所有文件。

用法

checkPoFile(f, strictPlural = FALSE)
checkPoFiles(language, dir = ".")

参数

f

给出单个文件路径的字符串。

strictPlural

是否严格比较单数和复数形式的格式。

language

给出语言代码的字符串。

dir

要在其中检查文件的目录的路径。

细节

部分R的国际化取决于‘中消息的翻译.po’文件。在这些文件中,一条“英语”消息取自R来源之后是另一种语言的翻译。其中许多消息是 C 或R sprintf及相关函数。在这些情况下,翻译必须提供兼容的格式,否则在显示消息时将会生成错误。

C 和 C 之间的兼容性规则不同R在几个方面。 C 支持多种不支持的转换R,即c,u,p,n。在C语言中是允许的sprintf()函数的参数多于格式字符串所需的参数,但在R计数必须完全匹配。R要求参数类型匹配,而 C 会显示,无论它是否有意义。

这些函数对测试的影响如下。接受 C 中允许的附加格式,并报告参数类型或计数的所有差异。因此,一些报告的差异并不是错误。

如果strictPlural参数是TRUE,那么参数列表必须在消息的单数和复数形式之间完全一致;如果FALSE,那么翻译只需要匹配两种形式中的一种或另一种。什么时候checkPoFiles调用checkPoFile, 这strictPlural参数设置为TRUE对于名称开头为“的文件R-', 并FALSE否则。

在‘中标记为‘fuzzy’的项目.po' 文件不会被处理(因为它们被消息编译器忽略)。

如果发现差异,则检查翻译后的字符串是否有不同的百分号(例如,宽百分号 "\uFF05" )。此类符号不会被识别为格式说明符,并且很可能是错误。

这两个函数都返回 S3 类 "check_po_files" 的对象。为此类定义了 print 方法来显示差异报告。

例子

## Not run: 
checkPoFiles("de", "/path/to/R/src/directory")

## End(Not run)

作者

Duncan Murdoch

参考

See the GNU gettext manual for the ‘.po’ file format:
https://www.gnu.org/software/gettext/manual/gettext.html.

也可以看看

update_pkg_po() 调用 checkPoFile()xgettextsprintf

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Check Translation Files for Inconsistent Format Strings。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。