Skip to content

对于超大的段落(para),sgml中的注释和译文离得比较远 #276

@ChenHuajun

Description

@ChenHuajun

问题

个别sgml注释和译文离得很远,比如client-auth.sgml中下面的这段:

client-auth.sgml(当前):

<!--==========================orignal english content==========================
  <para>
   A record can have one of the seven formats
...(这里省掉几百行)
    <varlistentry>
     <term><replaceable>auth-options</replaceable></term>
     <listitem>
      <para>
       After the <replaceable>auth-method</replaceable> field, there can be field(s) of
       the form <replaceable>name</replaceable><literal>=</literal><replaceable>value</replaceable> that
       specify options for the authentication method. Details about which
       options are available for which authentication methods appear below.
      </para>

      <para>
       In addition to the method-specific options listed below, there is one
       method-independent authentication option <literal>clientcert</literal>, which
       can be specified in any <literal>hostssl</literal> record.  When set
       to <literal>1</literal>, this option requires the client to present a valid
       (trusted) SSL certificate, in addition to the other requirements of the
       authentication method.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
____________________________________________________________________________-->
  <para>
   记录可以是下面七种格式之一:
...(这里省掉几百行)
    <varlistentry>
     <term><replaceable>auth-options</replaceable></term>
     <listitem>
      <para>
       在<replaceable>auth-method</replaceable>域的后面,可以是形如<replaceable>name</replaceable><literal>=</literal><replaceable>value</replaceable>的域,它们指定认证方法的选项。关于哪些认证方法可以用哪些选项的细节请见下文。
      </para>
      
      <para>
       除了下文列出的与方法相关的选项之外,还有一个与方法无关的认证选项<literal>clientcert</literal>,它可以在任何<literal>hostssl</literal>记录中指定。当被设置为<literal>1</literal>时,这个选项要求客户端在认证方法的其他要求之外出示一个有效的(可信的)SSL 证书。
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>

这不方便人工对比译文和原始译文。下面的形式更符合我们的预期

client-auth.sgml(期望):

<!--==========================orignal english content==========================
  <para>
   A record can have one of the seven formats
____________________________________________________________________________-->
  <para>
   记录可以是下面七种格式之一:
...
    <varlistentry>
     <term><replaceable>auth-options</replaceable></term>
     <listitem>
<!--==========================orignal english content==========================
      <para>
       After the <replaceable>auth-method</replaceable> field, there can be field(s) of
       the form <replaceable>name</replaceable><literal>=</literal><replaceable>value</replaceable> that
       specify options for the authentication method. Details about which
       options are available for which authentication methods appear below.
      </para>
____________________________________________________________________________-->
      <para>
       在<replaceable>auth-method</replaceable>域的后面,可以是形如<replaceable>name</replaceable><literal>=</literal><replaceable>value</replaceable>的域,它们指定认证方法的选项。关于哪些认证方法可以用哪些选项的细节请见下文。
      </para>
      
<!--==========================orignal english content==========================
      <para>
       In addition to the method-specific options listed below, there is one
       method-independent authentication option <literal>clientcert</literal>, which
       can be specified in any <literal>hostssl</literal> record.  When set
       to <literal>1</literal>, this option requires the client to present a valid
       (trusted) SSL certificate, in addition to the other requirements of the
       authentication method.
      </para>
____________________________________________________________________________-->
      <para>
       除了下文列出的与方法相关的选项之外,还有一个与方法无关的认证选项<literal>clientcert</literal>,它可以在任何<literal>hostssl</literal>记录中指定。当被设置为<literal>1</literal>时,这个选项要求客户端在认证方法的其他要求之外出示一个有效的(可信的)SSL 证书。
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>

原因

目前很多英文原文注释是通过脚本自动加入的。脚本加注释有一个重要的原则,只对完整的tag加注释。client-auth.sgml之所以被这样加,是因为这个sgml里出现了嵌套的para,所以脚本只在最外层的para上加注释,只能怪这个最外层的para太长了,有200多行,所以看上去有点奇怪。

<para>
xxxx
  <para>yyyy</para>
</para>

注释脚本处理规则请参考
https://github.com/postgres-cn/pgdoc-cn/wiki/translating_rule

处理建议

可以人工进行调整。但是不建议这么做,因为以后注释可能会被自动脚本重新覆盖掉。文档发布前计划用注释工具做一次全文档的注释删除再添加,目的主要是检查中文文档和英文原始文档在段落上是否一致,另外也可以避免人工添加的注释有遗漏。

另外一种解决办法是优化注释脚本,但是这个问题确实难以处理。而且,毕竟这种情况只是少数,所以暂时保留当前自动化注释脚本的风格。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions