Hvad er QM-filformatet?
.qm-filer er associeret med Qt Linguist, et værktøj til oversættelsessoftware udviklet af The Qt Company (oprindeligt Trolltech).
Filer med filendelsen .qm gemmer kildetekst og dens kompilerede oversættelse til et målsprog. .qm-filer gemmer data i binært format for hurtig dataadgang og opslag under kørsel (runtime). De bruges til at distribuere applikationsoversættelser til lokale sprog på tværs af Windows, macOS, Linux, Android, iOS og andre Qt-understøttede platforme.
.qm er den kompilerede modpart til den menneskeligt redigerbare .TS (Translation Source) fil, som indlæses under kørsel. Arbejdsgangen er: udviklere og oversættere arbejder i .ts XML-filen, hvorefter kommandolinjeværktøjet lrelease kompilerer den til en kompakt .qm binær fil, som applikationen indlæser ved opstart via Qts QTranslator-klasse.
Qt Linguist giver brugere mulighed for at oprette applikationsoversættelser og lokaliseringer. Da .qm er en kompileret binær fil og ikke en almindelig tekstfil, er det ikke muligt at læse dens indhold direkte - ikke engang med Qt Linguist selv. Filen begynder med et fast 16-byte «magic number», efterfulgt af taggede datablokke (Hashes, Messages, Contexts, NumerusRules, Dependencies), der muliggør hurtig strengopslag under kørsel.
For at åbne en .qm-fil med Qt Linguist er det nødvendigt at konvertere den tilbage til .ts først. Der findes mange værktøjer, der tillader en sådan konvertering; de fleste af dem er kommandolinjeværktøjer, herunder lconvert (en del af Qt-værktøjspakken). Den resulterende .ts-fil kan åbnes direkte med Qt Linguist. .ts-filer kan redigeres - en bruger kan oversætte teksten og derefter konvertere filen tilbage til .qm ved hjælp af lrelease. Denne proces giver brugerne mulighed for at generere og distribuere sprogpakker til applikationer.
Sikkerhed og tryghed
RISIKO: LOWEn .qm er passive oversættelsesdata indlæst af Qts QTranslator og udfører ingen kode. Den er sikker. Den eneste praktiske forsigtighed er at undgå at redigere den forkerte fil: ændringer skal foretages i .ts-kilden og rekompileres, da manuel redigering af den binære .qm vil ødelægge den.
Formatdetaljer
kort fortalt- QuickTime metadata / diverse - Ses lejlighedsvis til urelaterede værktøjsdata; den dominerende betydning er den kompilerede Qt-oversættelse.
Programmer der åbner QM-filer
Tekniske detaljer
dyb specifikation| Udvikler | The Qt Company (oprindeligt Trolltech / Nokia / Digia) |
| Format-type | Kompileret binært oversættelseskatalog |
| MIME-type | application/x-qm (også application/octet-stream) |
| Filsignatur (magic bytes) | 16-byte header ved offset 0: 3C B8 64 18 CA EF 9C 95 CD 21 1C BF 60 A1 BD DD |
| Byterækkefølge | Big-endian |
| Intern struktur | Tag/længde/værdi-blokke: Hashes, Messages, Contexts, NumerusRules, Dependencies |
| Strengkodning | UTF-16 eller UTF-8 per streng |
| Komprimering | Ingen - strenge gemmes som de er; flertalsregler (numerus) er kodet kompakt |
| Typisk filstørrelse | 5 KB - 2 MB, afhængigt af antallet af oversatte strenge |
| Kildeformat | .ts (Translation Source, XML) - den menneskeligt redigerbare modpart kompileret af lrelease |
| Kompileringsværktøj | lrelease (Qt-kommandolinjeværktøj, en del af Qt-værktøjspakken) |
| Værktøj til omvendt konvertering | lconvert (Qt-kommandolinjeværktøj) - konverterer .qm tilbage til .ts eller andre formater |
| Runtime-indlæser | QTranslator-klassen i Qt-frameworket |
| Strengopslag | O(1) via hash-tabel per besked indlejret i filen |
| Understøttede platforme | Windows, macOS, Linux, Android, iOS, indlejrede Qt-mål |
| Udgivet | 1990s (Qt internationalization framework) |
| Seneste version | Tied to the Qt release stream (Qt 6.x in 2026); QM binary layout stable |
| Åben standard | Ja · royaltyfri |
| Specifikation | doc.qt.io |
QM-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om QM-filer.