There are two reasons for filtering strings:
- for upload, to filter out sensitive strings and strings that you don’t want to translate
- for format conversions, to filter out strings that you don’t want to be included in the converted file; e.q., you may want to remove platform-specific texts
Filtering keys 🔗
Strings are always filtered based on rules for their keys.
You can define filtering rules using keySeparator
, includeKeys
and excludeKeys
. For upload, define it directly in the upload
section. For format conversions, define it separately for each of actions
.
Filtering example:
{
"keySeparator": ".",
"includeKeys": ["REGEX:key_.*", "MATCH:my_key"],
"excludeKeys": ["REGEX:private_.*"]
}
Structured keys and keySeparator
🔗
To match structured keys like in the example below, you can define keySeparator
. The default value is .
, but you can change it to any string.
{
"level1": {
"level2": {
"key": "Text"
}
}
}
For example, with "keySeparator": "->"
the structured key from file above would be encoded as: level1->level2->key
.
Filtering rules 🔗
Both includeKeys
and excludeKeys
is a list of strings; list of filtering rules. The format of each of the rules is OPERATION:parameter
.
Available operations:
Operation | Description |
---|---|
MATCH:value |
The rule is valid only if the key exactly matches value . |
MATCH-CI:value |
The same as MATCH:value but this is case-insensitive variant. |
CONTAIN:value |
The rule is valid only if the key contains value . |
CONTAIN-CI:value |
The same as CONTAIN:value but this is case-insensitive variant. |
PREFIX:value |
The rule is valid only if the key starts with value . |
PREFIX-CI:value |
The same as PREFIX:value but this is case-insensitive variant. |
SUFFIX:value |
The rule is valid only if the key ends with value . |
SUFFIX-CI:value |
The same as SUFFIX:value but this is case-insensitive variant. |
REGEX:expression |
The rule is valid if the key matches the regular expression defined by expression . |
Invalid rules are skipped.
Filtering priority 🔗
If includeKeys
is empty or missing, all texts except for those excluded by excludeKeys
are processed.
If includeKeys
is not empty, only explicitly included texts are processed.
Rules in excludeKeys
have higher priority than those in includeKeys
. It means that if the same text matches a rule both in includeKeys
and excludeKeys
, it is not processed.
Format specific keys 🔗
For some formats, such as XLIFF, INI, etc., the key may carry also additional information about internal file structure.
Be sure to use the correct expression for filtering - e.q., CONTAIN
filter instead of the exact match.
Also, consult the list of phrases in Localazy for the key overview.