(I'm not 100% sure of the following, but I need to run.)
.trans requires one or more paired arguments that together describe the desired translation.
Translation of one pair whose key is one line
P6 maps the Nth character of a string of a key pair to the Nth character of a string of value pairs.
So .trans: "ab" => "12" maps "a" to "1" and "b" to "2" .
Translation of one pair whose key is a list of strings
P6 maps the Nth line of the key list of the pair to the Nth line of the list of values ββof the pair.
Thus .trans: ("ab", "bc") => ("12", "13") maps "ab" to "12" and "bc" to "13" .
Pair List Translation
The translation of one pair occurs in one form or another described above, depending on whether the key contains one line or a list of them.
Translation of the list of pairs simply repeats the process for each pair, making either the Nth character or the Nth string matching in accordance with this pairing key.
how .trans works with conflicting keys
Given a list of pairs, P6 first tries first, and if that doesn't match, then the second pair, etc.
I need to study what lezmat now thinks and what she had in mind when she said the following in her earlier answer about .trans :
I think you misunderstood what .trans does. You specify the range of characters that you want to change to other characters. You do NOT specify a string to be changed to another string.
I think the sentence you quoted from the document is a bit ambiguous:
When using a list of keys and values, substrings can also be replaced.
This means that the (single) .key pair passed in .trans stores a list of strings, not one line, and also for one single .value attribute.