Wat is het QM-bestandsformaat?
.qm-bestanden zijn gekoppeld aan Qt Linguist, een vertaalsoftwaretool ontwikkeld door The Qt Company (oorspronkelijk Trolltech).
Bestanden met een .qm-extensie slaan brontekst en de gecompileerde vertaling naar een doeltaal op. .qm-bestanden slaan gegevens op in binair formaat voor snelle gegevenstoegang en opzoekacties tijdens runtime. Ze worden gebruikt voor het distribueren van applicatievertalingen naar lokale talen op Windows, macOS, Linux, Android, iOS en andere door Qt ondersteunde platforms.
.qm is de gecompileerde, tijdens runtime geladen tegenhanger van het door mensen bewerkbare .TS (Translation Source) bestand. De workflow is: ontwikkelaars en vertalers werken in het .ts XML-bestand, waarna de lrelease command-line tool dit compileert naar een compact .qm binair bestand dat de applicatie bij het opstarten laadt via de QTranslator-klasse van Qt.
Qt Linguist stelt gebruikers in staat om applicatievertalingen en lokalisaties te maken. Omdat .qm een gecompileerd binair bestand is en geen plat tekstbestand, is het niet mogelijk om de inhoud rechtstreeks te lezen - zelfs niet met Qt Linguist zelf. Het bestand begint met een vast 16-byte „magic number”, gevolgd door getagde datablokken (Hashes, Messages, Contexts, NumerusRules, Dependencies) die snelle string-opzoekacties tijdens runtime mogelijk maken.
Om een .qm-bestand te openen met Qt Linguist, is het noodzakelijk om het eerst terug te converteren naar .ts. Er zijn veel tools die een dergelijke conversie mogelijk maken; de meeste daarvan zijn command-line hulpprogramma's, waaronder lconvert (onderdeel van de Qt-tools bundel). Het resulterende .ts-bestand kan rechtstreeks worden geopend met Qt Linguist. .ts-bestanden zijn bewerkbaar - een gebruiker kan de tekst vertalen en het bestand vervolgens terug converteren naar .qm met behulp van lrelease. Dit proces stelt gebruikers in staat om taalpakketten voor applicaties te genereren en te distribueren.
Beveiliging & veiligheid
RISICO: LOWEen .qm is passieve vertaaldata geladen door Qt's QTranslator en voert geen code uit. Het is veilig. De enige praktische waarschuwing is het bewerken van het verkeerde bestand: wijzigingen moeten worden aangebracht in de .ts-bron en opnieuw worden gecompileerd, aangezien het handmatig bewerken van de binaire .qm het bestand zal beschadigen.
Formaatdetails
in een notendop- QuickTime metadata / diversen - Af en toe gezien voor niet-gerelateerde toolgegevens; de dominante betekenis is de gecompileerde Qt-vertaling.
Programma's die QM-bestanden openen
Technische details
diepe specificaties| Ontwikkelaar | The Qt Company (oorspronkelijk Trolltech / Nokia / Digia) |
| Formaat type | Gecompileerde binaire vertaalcatalogus |
| MIME-type | application/x-qm (ook application/octet-stream) |
| Bestandssignatuur (magic bytes) | 16-byte header op offset 0: 3C B8 64 18 CA EF 9C 95 CD 21 1C BF 60 A1 BD DD |
| Byte-volgorde | Big-endian |
| Interne structuur | Tag/lengte/waarde-blokken: Hashes, Messages, Contexts, NumerusRules, Dependencies |
| String-codering | UTF-16 of UTF-8 per string |
| Compressie | Geen - strings worden ongewijzigd opgeslagen; meervoudsregels (numerus) zijn compact gecodeerd |
| Typische bestandsgrootte | 5 KB - 2 MB, afhankelijk van het aantal vertaalde strings |
| Bronformaat | .ts (Translation Source, XML) - de door mensen bewerkbare tegenhanger gecompileerd door lrelease |
| Compilatie-tool | lrelease (Qt command-line tool, onderdeel van de Qt-tools bundel) |
| Tool voor omgekeerde conversie | lconvert (Qt command-line tool) - converteert .qm terug naar .ts of andere formaten |
| Runtime loader | QTranslator-klasse in het Qt-framework |
| String opzoeken | O(1) via een per-bericht hashtabel ingebed in het bestand |
| Ondersteunde platforms | Windows, macOS, Linux, Android, iOS, embedded Qt-targets |
| Uitgebracht | 1990s (Qt internationalization framework) |
| Laatste versie | Tied to the Qt release stream (Qt 6.x in 2026); QM binary layout stable |
| Open standaard | Ja · royaltyvrij |
| Specificatie | doc.qt.io |
QM conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over QM-bestanden.