Need more unpaired parenthesis checks

I have noticed that you can spot the unpaired parenthesis but not if parenthesis are completely missing. It would be very useful to be able to spot the missing parenthesis (both, opening and closing) if they are present in the source but not in the target.

Also, as we often put in parenthesis in target some text that in the source is between tags, it would be useful to have a check to ensure that text inside the parenthesis is identical to the source text between tags.

Is it possible to include these 2 features?

You can set up a check for parentheses:

S: (
T: -(

And activate PowerSearch.

About your second question… When do you say “identical” what are you thinking of?

The standard QA check Unpaired Symbol is tuned to produce few false positives.

For certain kinds of translations, such as enclosing in parenthesis the source text, that follow special style guide conventions, we recommend using checklists instead.

For example, in your case, you could add checklists items like these:

Source: "(" ")"
Target: -"(" -")"
Search Mode: Simple
Powersearch: On

Finds all segments that have both an open and close parenthesis in source and do not have both an open and close parenthesis in target.

Also, the following search:

Source: "\<tag\>([^\<]+)=1\</tag\>"
Target: -"\(@1\)"
Search Mode: Regular Expressions
Powersearch: On

where “tag” should be replaced by your tag text, will show all segments that have a certain source text enclosed in tags that does not appear in target enclosed in parentheses.

Also, if your segments contain more than one pair of parenthesis, you can use this check:

^[^\(]*\)|\([^\)]*\(|\)[^\(]*\)|\([^\)]*$

However, the first term of this search takes forever in 2.9, so if you are using that version make sure to store it in a variable like this (this trick speeds up many searches in 2.9 for some reason):

^([^\(]*)=1\)|\([^\)]*\(|\)[^\(]*\)|\([^\)]*$

It is designed for segments with multiple pairs of parenthesis, such as the following example, but also works for segments with just one pair:

Click on Exportar (Export or Importar (Import)

As a rule, when using regular expressions in Xbench, I would suggest searching first a character or a string that does not contain regex syntax.

For instance, in ^[^\(]*\)|\([^\)]*\(|\)[^\(]*\)|\([^\)]*$, you start searching any character different from (, that does appear 0 or more times at the beginning of the string.

This search takes more than 70 seconds in a project with more than 100,000 segments in Xbench 3.0.

If you use the following one, it just takes 12 second:

"\)" "^[^\(]*\)|\([^\)]*\(|\)[^\(]*\)|\([^\)]*$"

Press Ctrl+P to run a Powersearch.