Locale::Po4a::TeX(3pm) | Po4a 工具 | Locale::Po4a::TeX(3pm) |
Locale::Po4a::TeX - 将 TeX 文档和衍生品从/转换为 PO 文件
Po4a (PO For Anything) 项目的目标是在文档等不需要翻译的领域使用 gettext 工具简化翻译(更有趣的是,简化翻译的维护)。
Locale::Po4a::TeX 是一个帮助将 TeX 文档翻译成其他 [人类] 语言的模块。它还可以用作构建基于 TeX 文档的模块的基础。
用户可能应该使用 LaTeX 模块,它继承自 TeX 模块并包含常见 LaTeX 命令的定义。
此模块可直接用于处理通用 TeX 文档。这将把您的文档拆分成更小的块 (段落、逐字块,甚至更小的块,如标题或索引)。
有一些选项(将在下一节中介绍)可以自定义此行为。如果这不适合您的文档格式,我们鼓励您编写自己的派生模块,以描述您的格式的详细信息。有关流程描述,请参阅下面的 WRITING DERIVATIVE MODULES 小节。
该模块还可以通过 TeX 文件中以 "% po4a:" 开头的行进行定制。此过程在 INLINE CUSTOMIZATION 一节中介绍。
以下是此模块的特定选项:
请注意,逐字和 no_wrap 环境之间存在差异。在逐字逐句的块中没有命令和注释分析。
如果此环境尚未注册,则 po4a 将考虑此环境不会接受任何参数。
如果此环境尚未注册,则 po4a 将考虑此环境不会接受任何参数。
使用这些选项可以替代已定义命令的默认行为。
TeX 模块可以使用以 % po4a: 开头的行进行自定义。这些行被解释为解析器的命令。可以识别以下命令:
您可以在 command1 之前加上
注意:在这种情况下,您不必指定哪些参数是可翻译的,但 po4a 必须知道参数的类型和数量。
参数是一组 []
(表示可选的。 参数) 或
{} (指示强制参数)。
您可以在这些方括号之间加一个下划线
(_) 来表示。
必须翻译该参数。例如:
% po4a: command *chapter [_]{_}
这表明章节命令有两个参数:可选的。
(简称)
和强制性的,都必须翻译。
如果要指定 href
命令有两个必需参数,
您不想转换 URL
(第一个参数),并且您。
我不希望此命令与其段落
(允许。
翻译器移动句子中的链接),您可以使用:
% po4a: command -href {}{_}
在这种情况下,仅当段落仅由此 href 命令组成时,才使用指示必须翻译哪些参数的信息。
至于命令,i<env> 前面可以有一个加号 (+),表示 \begin 命令必须使用其所有参数进行转换。
正则表达式由引号分隔。它不应该创建任何反向引用。如果需要组,应使用 (?:)。它可能还需要一些逃脱。
例如,LaTeX 模块使用 "(?:&|\\\\)" 正则表达式分别翻译表的每个单元格(行用 '\\' 分隔,单元格用 '&' 分隔)。
环境的概念扩展为 PO 文件中显示的类型。这可用于拆分 title 命令的第一个强制参数中的 "\\\\"。在本例中,环境是 title{#1}。
如果此环境尚未注册,则 po4a 将考虑此环境不会接受任何参数。
段落注释作为此段落第一个翻译字符串的 PO 注释插入。
如果在 %translate_buffer_env 中为当前环境定义了函数,则此函数将用于转换缓冲区,而不是 translate_buffer()。
除了文件包含部分,它是从翻译提取器的读取中剪切并粘贴的。
有关更多详细信息,请参阅 INLINE CUSTOMIZATION 部分。
命令和环境函数接受以下参数(除了 $self 对象之外):
前 3 个参数由 get_leading_command 或 get_trailing_command 提取。
命令和环境函数返回命令及其参数和新环境的转换。
当找到 \begin 命令时,将调用环境函数。它们由 \begin 命令及其参数调用。
TeX 模块只提出一个命令函数和一个环境函数:generic_command 和 generic_environment。
generic_command
使用由指定的信息。
register_generic_command
或通过将定义添加到 TeX
文件:
% po4a: command command1 parameters
generic_environment 使用 register_generic_environment
或通过向 TeX
文件添加定义:
% po4a: environment env parameters
这两个函数将仅转换指定为可翻译的参数(带 '_')。generic_environment 将把环境的名称附加到环境堆栈中,而 generic_command 将在命令的名称后面加上参数的标识符(如 {#7} 或 [#2])。
此模块需要更多测试。
它在一本书上进行了测试,并使用 Python 文档进行了测试。
源代码中的各个点都被标记为 FIXME。
Locale::Po4a::LaTeX(3pm), Locale::Po4a::TransTractor(3pm), po4a(7)
Nicolas François <nicolas.francois@centraliens.net>
版权所有 © 2004, 2005 Nicolas FRANÇOIS <nicolas.francois@centraliens.net>.
此程序是自由软件;您可以根据 GPL 条款重新分发和/或修改它(请参阅复制文件)。
2023-01-03 | Po4a 工具 |