Co to jest format pliku QM?
Pliki .qm są powiązane z Qt Linguist, narzędziem programistycznym do tłumaczeń opracowanym przez The Qt Company (pierwotnie Trolltech).
Pliki z rozszerzeniem .qm przechowują tekst źródłowy i jego skompilowane tłumaczenie na język docelowy. Pliki .qm przechowują dane w formacie binarnym, co zapewnia szybki dostęp do danych i ich wyszukiwanie w czasie wykonywania programu. Są one używane do dystrybucji tłumaczeń aplikacji na języki lokalne na platformach Windows, macOS, Linux, Android, iOS oraz innych obsługiwanych przez Qt.
.qm jest skompilowanym, ładowanym w czasie rzeczywistym odpowiednikiem edytowalnego przez człowieka pliku .TS (Translation Source). Proces pracy wygląda następująco: programiści i tłumacze pracują w pliku XML .ts, a następnie narzędzie wiersza poleceń lrelease kompiluje go do kompaktowego pliku binarnego .qm, który aplikacja ładuje podczas uruchamiania za pomocą klasy QTranslator w Qt.
Qt Linguist pozwala użytkownikom tworzyć tłumaczenia i lokalizacje aplikacji. Ponieważ .qm jest skompilowanym plikiem binarnym, a nie zwykłym plikiem tekstowym, nie jest możliwe bezpośrednie odczytanie jego zawartości - nawet za pomocą samego Qt Linguist. Plik zaczyna się od stałej 16-bajtowej liczby magicznej (magic number), po której następują otagowane bloki danych (Hashes, Messages, Contexts, NumerusRules, Dependencies), które umożliwiają szybkie wyszukiwanie ciągów znaków w czasie wykonywania.
Aby otworzyć plik .qm w Qt Linguist, konieczne jest najpierw przekonwertowanie go z powrotem na .ts. Istnieje wiele narzędzi umożliwiających taką konwersję; większość z nich to narzędzia wiersza poleceń, w tym lconvert (część pakietu narzędzi Qt). Wynikowy plik .ts można otworzyć bezpośrednio w Qt Linguist. Pliki .ts są edytowalne - użytkownik może przetłumaczyć tekst, a następnie przekonwertować plik z powrotem na .qm za pomocą lrelease. Proces ten pozwala użytkownikom generować i dystrybuować pakiety językowe dla aplikacji.
Bezpieczeństwo
RYZYKO: LOWPlik .qm to pasywne dane tłumaczeniowe ładowane przez QTranslator w Qt i nie wykonuje żadnego kodu. Jest bezpieczny. Jedyną praktyczną przestrogą jest edycja niewłaściwego pliku: zmiany muszą być wprowadzane w źródle .ts i ponownie kompilowane, ponieważ ręczna edycja binarnego pliku .qm spowoduje jego uszkodzenie.
Szczegóły formatu
w pigułce- Metadane QuickTime / inne - Sporadycznie spotykane w przypadku niepowiązanych danych narzędziowych; dominującym znaczeniem jest skompilowane tłumaczenie Qt.
Programy otwierające pliki QM
Szczegóły techniczne
specyfikacja| Deweloper | The Qt Company (pierwotnie Trolltech / Nokia / Digia) |
| Typ formatu | Skompilowany binarny katalog tłumaczeń |
| Typ MIME | application/x-qm (również application/octet-stream) |
| Sygnatura pliku (magic bytes) | 16-bajtowy nagłówek pod offsetem 0: 3C B8 64 18 CA EF 9C 95 CD 21 1C BF 60 A1 BD DD |
| Kolejność bajtów | Big-endian |
| Struktura wewnętrzna | Bloki tag/długość/wartość: Hashes, Messages, Contexts, NumerusRules, Dependencies |
| Kodowanie znaków | UTF-16 lub UTF-8 dla każdego ciągu |
| Kompresja | Brak - ciągi znaków przechowywane w postaci niezmienionej; reguły liczby mnogiej (numerus) kodowane kompaktowo |
| Typowy rozmiar pliku | 5 KB - 2 MB, zależnie od liczby przetłumaczonych fraz |
| Format źródłowy | .ts (Translation Source, XML) - edytowalny przez człowieka odpowiednik kompilowany przez lrelease |
| Narzędzie kompilacji | lrelease (narzędzie wiersza poleceń Qt, część pakietu Qt tools) |
| Narzędzie konwersji zwrotnej | lconvert (narzędzie wiersza poleceń Qt) - konwertuje .qm z powrotem do .ts lub innych formatów |
| Ładowanie w czasie wykonywania | Klasa QTranslator w frameworku Qt |
| Wyszukiwanie ciągów | O(1) poprzez tablicę mieszającą (hash table) dla każdej wiadomości osadzoną w pliku |
| Obsługiwane platformy | Windows, macOS, Linux, Android, iOS, systemy wbudowane Qt |
| Wydano | 1990s (Qt internationalization framework) |
| Najnowsza wersja | Tied to the Qt release stream (Qt 6.x in 2026); QM binary layout stable |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | doc.qt.io |
Konwersje QM
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki QM.