### The Problem

Using native Qt translation files (TS, `*.ts`) for exchanging with Transifex platform limits means to provide context
to translators to the only category:

| C++ source code                               | TS XML element                                 | Transifex metadata
|-----------------------------------------------|------------------------------------------------|:------------------:
| Class Name                                    | `<name>`ClassName`</name>`                     | Context
| `disambiguation` parameter of `tr()` function | `<comment>`Short comment`</comment>`           | N/A
| [Translator Comments](https://doc.qt.io/qt-5/i18n-source-translation.html#translator-comments) `//: ...` | `<extracomment>`Nice comment.`</extracomment>` | N/A

More details:
- https://docs.transifex.com/formats/introduction
- https://docs.transifex.com/formats/qt-ts
- https://doc.qt.io/qt-5/linguist-ts-file-format.html

### The Solution

[XLIFF](https://en.wikipedia.org/wiki/XLIFF) file format is supported by Transifex much better.

And Qt provides us with a stand-alone conversion tool `lconvert`.

```sh
$ lconvert -o bitcoin_es.xlf -i bitcoin_en.ts
```

Now more context options are available:

| TS XML element                                 | XLIFF XML element                               | Transifex metadata
|------------------------------------------------|-------------------------------------------------|:------------------:
| `<name>`ClassName`</name>`                     | `<group resname="ClassName">`...`</group>`      | yes
| `<comment>`Short comment`</comment>`           | `<context>`Short comment`</context>`            | yes
| `<extracomment>`Nice comment.`</extracomment>` | `<note from="developer">`Nice comment.`</note>` | yes

More details:
- https://docs.transifex.com/formats/xliff
- https://code.qt.io/cgit/qt/qttools.git/tree/src/linguist/lconvert/lconvert.pro?h=5.12.10

---

Looking for Concept (N)ACKs.
ui->exportButton->setIcon(platformStyle->SingleColorIcon(":/icons/export"));
    }
    switch(mode)
    {
    case ForSelection:
        switch(tab)
        {
        case SendingTab: setWindowTitle(tr("Choose the address to send coins to")); break;
        case ReceivingTab: setWindowTitle(tr("Choose the address to receive coins with")); break;
        }
        connect(ui->tableView, &QTableView::doubleClicked, this, &QDialog::accept);
        ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
        ui->tableView->setFocus();
        ui->closeButton->setText(tr("C&hoose"));
        ui->exportButton->hide();
        break;
    case ForEditing:
        switch(tab)
        {
        case SendingTab: setWindowTitle(tr("Sending addresses")); break;
        case ReceivingTab: setWindowTitle(tr("Receiving addresses")); break;
        }
        break;
    }
    switch(tab)
    {
    case SendingTab:
        ui->labelExplanation->setText(tr("These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins."));
        ui->deleteAddress->setVisible(true);
        ui->newAddress->setVisible(true);