To understand this new concept, it's first necessary to forget that we talk about a TM, because it is not a TM as we meet it in Workbench for example.
In Workbench, a TM is a database where segments of a specific language pair are stored. The language pair is set at the creation of the TM. If you need to store other language pair, you have to create new TMs.
This concept has been used again for the local TMs in Studio. One language pair, one file.
Now let us imagine, we have a translation project with many target languages. The TMs we want to use are specific for our customer. Their names are almost the same, actually only the target language code is different.
"customer en-fr", "customer en-de", "customer en-it"... SDL decided to group such TMs in a new "object", a kind of TM collection. A server TM is a TM collection.
In our server TM called "customer", we can set as many target languages as we want. When creating a project for our "customer", we just have to select our "customer" server TM. Because you already entered the source and target languages, Studio knows which TM in the collection is to be used and can generate analysis and pretranslations.
Now, how do I have to set TMs in a new project?
When creating a new project, you have the possibility to enter the translation memories (TMs) to use in 2 different ways.
The first way is through the default view. You are in menu "All language pairs/ Translation Memory and Automated Translation" ("1", left pane) and you can add your TMs with the "Add" button (right pane). The TMs can be server TMs or local TMs. You can enter many TMs for a same language pair.
What will happen?
For each target language, the program first filters which TMs have the relevant language pair. Then, he performs the analysis and/or the pretranslation using ALL relevant TMs. In case 2 different 100% matches have been found in 2 different TMs, the segment won't be translated if you keep "1" as "multiple translations penalty" (menu "Penalties", left pane, see screenshot). You'll have to choose between them in the editor.
There is 2 reasons to get the TMs in field "2".
1. The first one is the official documented reason (just press Help to get more information): you use a server TM in which e.g. 4 language pairs have been set but for one of them, you prefer to use a local TM (from another customer for instance) INSTEAD.
In this case, you have to select the language pair in the menu on the left ("2"). Under "Translation Memory and Automated Translation", tick the box "Use different translation providers for this language pair", and select all the TMs you want to use. If you return to "All language pairs", you'll see your specific TMs in field "2" (see screenshot). Only this/these TM(s) will be used for the analysis/pretranslation for the corresponding language.
2. The second reason is a problem of package size:
If you enter 4 local TMs for each language pairs in "1" and wish a TM copy in the translator packages (package options, see screenshot), all 4 TMs will be added in each package.
With big TMs, you'll get a very big package and all the associated difficulties. Maybe SDL will change this in one of the next update.