如何在.pot文件中排除DBGrid.Column.FieldName

Dui*_*ola 6 delphi gettext delphi-6

我用Delphi 6创建了一个应用程序.之后,我提取了一个包含要翻译的所有字符串的.pot文件.问题是有些字符串不必翻译,如果翻译会产生问题.

其中一个是TDBGrid.Columns [x] .FiedlName

我试着将这些行放入ggexclude.cfg文件中,但它们不起作用.

# exclude all occurences of the specified class
# and property in all DFM files in or below the
# path where "ggexclude.cfg" is in
[exclude-form-class-property]
TDBGrid......FieldName
TDBGrid.....FieldName
TDBGrid....FieldName
TDBGrid...FieldName
TDBGrid..FieldName
TDBGrid.FieldName
item.FieldName

TDBGrid.Columns.FieldName
TDBGrid.Columns.TDBGridColumns
TDBGrid.Columns.TDBGridColumns.FieldName
TDBGrid.Columns.Item.FieldName

TColumn.FieldName
TDBGridColumns.FieldName

FieldName

*.FieldName
Run Code Online (Sandbox Code Playgroud)

我认为问题是在.dfm文件中,解析器不理解它们是TColumn对象的一部分

  inherited DBGTable: TDBGrid
    Height = 309
    DataSource = DMUsers.DSUser
    Columns = <
      item
        Expanded = False
        FieldName = 'USER'
        Visible = True
      end
      item
        Expanded = False
        FieldName = 'CODE'
        Width = 31
        Visible = True
      end
      item
        Expanded = False
        FieldName = 'NAME'
        Width = 244
        Visible = True
      end>
  end
Run Code Online (Sandbox Code Playgroud)

有人有工作吗?

我不相信自动ignore.pot,因为有一些字符串导致错误的可能性.

War*_* P 1

你也许应该尝试跑步

 msgmkignore filenamethatcontainsextrajunk.po -o autogenignore.po
Run Code Online (Sandbox Code Playgroud)

然后打开 autogenignore.po 并找到它声明所有排除的字段名的特殊方式(这就是 msgmkignore 的工作)。每次自动生成时,您都必须查看自动生成的排除规则。您似乎正在尝试手动生成所有排除规则。在我看来,您最好采用自动生成的包含内容并手动检查它们以排除所有数据库字段名称和列名称。

正如您在问题中所述,您显然不能将“忽略”的整个工作交给 msgmkignore 工具,但您可以使用您的大脑加上此工具,并将这些结果结合起来。