If the Cue Sheet isn't clearly UTF-8 (i.e. a BOM is found), then let the user select the desired Codepage.

This commit is contained in:
LoRd_MuldeR 2011-12-10 17:06:31 +01:00
parent 6770f1ec90
commit b633f40e4c
22 changed files with 575 additions and 111 deletions

View File

@ -350,153 +350,183 @@
<context>
<name>CueImportDialog</name>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="77"/>
<location filename="../../src/Dialog_CueImport.cpp" line="80"/>
<source>Import Cue Sheet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="77"/>
<location filename="../../src/Dialog_CueImport.cpp" line="80"/>
<source>The following Cue Sheet will be split and imported into LameXP.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="102"/>
<location filename="../../src/Dialog_CueImport.cpp" line="105"/>
<source>Loading Cue Sheet file, please be patient...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="107"/>
<location filename="../../src/Dialog_CueImport.cpp" line="143"/>
<location filename="../../src/Dialog_CueImport.cpp" line="110"/>
<location filename="../../src/Dialog_CueImport.cpp" line="203"/>
<source>Failed to load the Cue Sheet file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="107"/>
<location filename="../../src/Dialog_CueImport.cpp" line="110"/>
<source>The specified file could not be found!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="108"/>
<location filename="../../src/Dialog_CueImport.cpp" line="144"/>
<location filename="../../src/Dialog_CueImport.cpp" line="327"/>
<location filename="../../src/Dialog_CueImport.cpp" line="331"/>
<location filename="../../src/Dialog_CueImport.cpp" line="111"/>
<location filename="../../src/Dialog_CueImport.cpp" line="204"/>
<location filename="../../src/Dialog_CueImport.cpp" line="389"/>
<location filename="../../src/Dialog_CueImport.cpp" line="393"/>
<source>Cue Sheet Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="125"/>
<location filename="../../src/Dialog_CueImport.cpp" line="131"/>
<source>(System Default)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="145"/>
<source>Select ANSI Codepage for Cue Sheet file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="146"/>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="147"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="185"/>
<source>An unknown error has occured!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="130"/>
<location filename="../../src/Dialog_CueImport.cpp" line="190"/>
<source>The file could not be opened for reading. Make sure you have the required rights!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="133"/>
<location filename="../../src/Dialog_CueImport.cpp" line="193"/>
<source>The provided file does not look like a valid Cue Sheet disc image file!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="136"/>
<location filename="../../src/Dialog_CueImport.cpp" line="196"/>
<source>Could not find any supported audio track in the Cue Sheet image!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="136"/>
<location filename="../../src/Dialog_CueImport.cpp" line="196"/>
<source>Note that LameXP can not handle &quot;binary&quot; Cue Sheet images.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="139"/>
<location filename="../../src/Dialog_CueImport.cpp" line="199"/>
<source>The selected Cue Sheet file contains inconsistent information. Take care!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="173"/>
<location filename="../../src/Dialog_CueImport.cpp" line="177"/>
<location filename="../../src/Dialog_CueImport.cpp" line="219"/>
<source>Unknown Artist</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="220"/>
<source>Unknown Album</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="235"/>
<location filename="../../src/Dialog_CueImport.cpp" line="239"/>
<source>Choose Output Directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="203"/>
<location filename="../../src/Dialog_CueImport.cpp" line="210"/>
<location filename="../../src/Dialog_CueImport.cpp" line="265"/>
<location filename="../../src/Dialog_CueImport.cpp" line="272"/>
<source>LameXP</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="203"/>
<location filename="../../src/Dialog_CueImport.cpp" line="265"/>
<source>Error: The selected output directory could not be created!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="210"/>
<location filename="../../src/Dialog_CueImport.cpp" line="272"/>
<source>Error: The selected output directory is not writable!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="224"/>
<location filename="../../src/Dialog_CueImport.cpp" line="286"/>
<source>Low Diskspace Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="224"/>
<location filename="../../src/Dialog_CueImport.cpp" line="286"/>
<source>There are less than %1 GB of free diskspace available in the selected output directory.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="224"/>
<location filename="../../src/Dialog_CueImport.cpp" line="286"/>
<source>It is highly recommend to free up more diskspace before proceeding with the import!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="294"/>
<location filename="../../src/Dialog_CueImport.cpp" line="356"/>
<source>Analyzing file(s), please wait...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="299"/>
<location filename="../../src/Dialog_CueImport.cpp" line="361"/>
<source>Analysis Failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="299"/>
<location filename="../../src/Dialog_CueImport.cpp" line="361"/>
<source>Warning: The format of some of the input files could not be determined!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="299"/>
<location filename="../../src/Dialog_CueImport.cpp" line="361"/>
<source>Continue Anyway</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="299"/>
<location filename="../../src/Dialog_CueImport.cpp" line="361"/>
<source>Abort</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="322"/>
<location filename="../../src/Dialog_CueImport.cpp" line="384"/>
<source>Splitting file(s), please wait...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="327"/>
<location filename="../../src/Dialog_CueImport.cpp" line="389"/>
<source>Process was aborted by the user after %1 track(s)!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="331"/>
<location filename="../../src/Dialog_CueImport.cpp" line="393"/>
<source>An unexpected error has occured while splitting the Cue Sheet!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="335"/>
<location filename="../../src/Dialog_CueImport.cpp" line="397"/>
<source>Imported %1 track(s) from the Cue Sheet and skipped %2 track(s).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="336"/>
<location filename="../../src/Dialog_CueImport.cpp" line="398"/>
<source>Cue Sheet Completed</source>
<translation type="unfinished"></translation>
</message>
@ -505,37 +535,47 @@
<name>CueSheetImport</name>
<message>
<location filename="../../gui/CueSheetImport.ui" line="14"/>
<location filename="../../gui/CueSheetImport.ui" line="559"/>
<location filename="../../gui/CueSheetImport.ui" line="664"/>
<source>Import Cue Sheet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../gui/CueSheetImport.ui" line="310"/>
<location filename="../../gui/CueSheetImport.ui" line="189"/>
<source>Artist:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../gui/CueSheetImport.ui" line="241"/>
<source>Album:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../gui/CueSheetImport.ui" line="415"/>
<source>Existing Source File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../gui/CueSheetImport.ui" line="438"/>
<location filename="../../gui/CueSheetImport.ui" line="543"/>
<source>Missing Source File (Tracks will be skipped!)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../gui/CueSheetImport.ui" line="465"/>
<location filename="../../gui/CueSheetImport.ui" line="570"/>
<source> Output Directory </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../gui/CueSheetImport.ui" line="489"/>
<location filename="../../gui/CueSheetImport.ui" line="594"/>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../gui/CueSheetImport.ui" line="526"/>
<location filename="../../gui/CueSheetImport.ui" line="631"/>
<source>Load a different Cue Sheet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../gui/CueSheetImport.ui" line="582"/>
<location filename="../../gui/CueSheetImport.ui" line="687"/>
<source>Discard</source>
<translation type="unfinished"></translation>
</message>

View File

@ -385,6 +385,30 @@
<source>Process was aborted by the user after %1 track(s)!</source>
<translation>Der Vorgang wurde vom Benutzter nach %1 Track(s) abgebrochen!</translation>
</message>
<message>
<source>(System Default)</source>
<translation>(Systemstandard)</translation>
</message>
<message>
<source>Select ANSI Codepage for Cue Sheet file:</source>
<translation>ANSI Codepage fürCuesheet Datei auswählen:</translation>
</message>
<message>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
<source>Cancel</source>
<translation>Abbrechen</translation>
</message>
<message>
<source>Unknown Artist</source>
<translation>Unbekannter Künstler</translation>
</message>
<message>
<source>Unknown Album</source>
<translation>Unbekanntes Album</translation>
</message>
</context>
<context>
<name>CueSheetImport</name>
@ -416,6 +440,14 @@
<source>Load a different Cue Sheet</source>
<translation>Ein anderes Cuesheet laden</translation>
</message>
<message>
<source>Artist:</source>
<translation>Künstler:</translation>
</message>
<message>
<source>Album:</source>
<translation>Album:</translation>
</message>
</context>
<context>
<name>CueSheetModel</name>

View File

@ -385,6 +385,30 @@
<source>Process was aborted by the user after %1 track(s)!</source>
<translation>¡El proceso fue cancelado tras %1 pista(s)!</translation>
</message>
<message>
<source>(System Default)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select ANSI Codepage for Cue Sheet file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished">Aceptar</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished">Cancelar</translation>
</message>
<message>
<source>Unknown Artist</source>
<translation type="unfinished">Artista desconocido</translation>
</message>
<message>
<source>Unknown Album</source>
<translation type="unfinished">Álbum desconocido</translation>
</message>
</context>
<context>
<name>CueSheetImport</name>
@ -416,6 +440,14 @@
<source>Load a different Cue Sheet</source>
<translation>Cargar otro Cue sheet</translation>
</message>
<message>
<source>Artist:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Album:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CueSheetModel</name>

View File

@ -389,6 +389,30 @@
<source>Process was aborted by the user after %1 track(s)!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>(System Default)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select ANSI Codepage for Cue Sheet file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished">OK</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished">Annuler</translation>
</message>
<message>
<source>Unknown Artist</source>
<translation type="unfinished">Artiste inconnu</translation>
</message>
<message>
<source>Unknown Album</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CueSheetImport</name>
@ -420,6 +444,14 @@
<source>Load a different Cue Sheet</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Artist:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Album:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CueSheetModel</name>

View File

@ -385,6 +385,30 @@
<source>Process was aborted by the user after %1 track(s)!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>(System Default)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select ANSI Codepage for Cue Sheet file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished">Cancella</translation>
</message>
<message>
<source>Unknown Artist</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unknown Album</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CueSheetImport</name>
@ -416,6 +440,14 @@
<source>Load a different Cue Sheet</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Artist:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Album:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CueSheetModel</name>

View File

@ -385,6 +385,30 @@
<source>Process was aborted by the user after %1 track(s)!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>(System Default)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select ANSI Codepage for Cue Sheet file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unknown Artist</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unknown Album</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CueSheetImport</name>
@ -416,6 +440,14 @@
<source>Load a different Cue Sheet</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Artist:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Album:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CueSheetModel</name>

View File

@ -350,153 +350,183 @@
<context>
<name>CueImportDialog</name>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="77"/>
<location filename="../../src/Dialog_CueImport.cpp" line="80"/>
<source>Import Cue Sheet</source>
<translation type="unfinished">Importuj Cue Sheet</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="77"/>
<location filename="../../src/Dialog_CueImport.cpp" line="80"/>
<source>The following Cue Sheet will be split and imported into LameXP.</source>
<translation type="unfinished">Dany plik Cue Sheet będzie podzielony i zaimortowany do LameXP.</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="102"/>
<location filename="../../src/Dialog_CueImport.cpp" line="105"/>
<source>Loading Cue Sheet file, please be patient...</source>
<translation type="unfinished">Ładowanie pliku Cue Sheet, prosze być cierpliwy...</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="107"/>
<location filename="../../src/Dialog_CueImport.cpp" line="143"/>
<location filename="../../src/Dialog_CueImport.cpp" line="110"/>
<location filename="../../src/Dialog_CueImport.cpp" line="203"/>
<source>Failed to load the Cue Sheet file:</source>
<translation type="unfinished">Ładowanie pliku Cue Sheet zakończone niepowodzeniem:</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="107"/>
<location filename="../../src/Dialog_CueImport.cpp" line="110"/>
<source>The specified file could not be found!</source>
<translation type="unfinished">Podany plik nie może być odnaleziony!</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="108"/>
<location filename="../../src/Dialog_CueImport.cpp" line="144"/>
<location filename="../../src/Dialog_CueImport.cpp" line="327"/>
<location filename="../../src/Dialog_CueImport.cpp" line="331"/>
<location filename="../../src/Dialog_CueImport.cpp" line="111"/>
<location filename="../../src/Dialog_CueImport.cpp" line="204"/>
<location filename="../../src/Dialog_CueImport.cpp" line="389"/>
<location filename="../../src/Dialog_CueImport.cpp" line="393"/>
<source>Cue Sheet Error</source>
<translation type="unfinished">Błąd pliku Cue Sheet</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="125"/>
<location filename="../../src/Dialog_CueImport.cpp" line="131"/>
<source>(System Default)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="145"/>
<source>Select ANSI Codepage for Cue Sheet file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="146"/>
<source>OK</source>
<translation type="unfinished">OK</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="147"/>
<source>Cancel</source>
<translation type="unfinished">Anuluj</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="185"/>
<source>An unknown error has occured!</source>
<translation type="unfinished">Wystąpił nieokreśłony błąd!</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="130"/>
<location filename="../../src/Dialog_CueImport.cpp" line="190"/>
<source>The file could not be opened for reading. Make sure you have the required rights!</source>
<translation type="unfinished">Plik nie mógł zostać odczytany. Upewnij się że masz prawo odczytu!</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="133"/>
<location filename="../../src/Dialog_CueImport.cpp" line="193"/>
<source>The provided file does not look like a valid Cue Sheet disc image file!</source>
<translation type="unfinished">Dany plik nie wydaje się prawidłowym plikiem obrazu Cue Sheet!</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="136"/>
<location filename="../../src/Dialog_CueImport.cpp" line="196"/>
<source>Could not find any supported audio track in the Cue Sheet image!</source>
<translation type="unfinished">Nie znaleziono wspieranego formatu dźwięku w żadnej ze ścieżek obrazu Cue Sheet!</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="136"/>
<location filename="../../src/Dialog_CueImport.cpp" line="196"/>
<source>Note that LameXP can not handle &quot;binary&quot; Cue Sheet images.</source>
<translation type="unfinished">LameXP nie radzi sobie z formatem &quot;binarnym&quot; obrazu Cue Sheet.</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="139"/>
<location filename="../../src/Dialog_CueImport.cpp" line="199"/>
<source>The selected Cue Sheet file contains inconsistent information. Take care!</source>
<translation type="unfinished">Wybrany plik Cue Sheet zawiera niespójne informacje. Prosze zachować ostrożność!</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="173"/>
<location filename="../../src/Dialog_CueImport.cpp" line="177"/>
<location filename="../../src/Dialog_CueImport.cpp" line="219"/>
<source>Unknown Artist</source>
<translation type="unfinished">Nieznany Artysta</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="220"/>
<source>Unknown Album</source>
<translation type="unfinished">Nieznany Album</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="235"/>
<location filename="../../src/Dialog_CueImport.cpp" line="239"/>
<source>Choose Output Directory</source>
<translation type="unfinished">Wybierz folder wyjściowy</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="203"/>
<location filename="../../src/Dialog_CueImport.cpp" line="210"/>
<location filename="../../src/Dialog_CueImport.cpp" line="265"/>
<location filename="../../src/Dialog_CueImport.cpp" line="272"/>
<source>LameXP</source>
<translation type="unfinished">LameXP</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="203"/>
<location filename="../../src/Dialog_CueImport.cpp" line="265"/>
<source>Error: The selected output directory could not be created!</source>
<translation type="unfinished">Błąd: Wybrana lokalizacja wyjściowa nie może zostać utworzona!</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="210"/>
<location filename="../../src/Dialog_CueImport.cpp" line="272"/>
<source>Error: The selected output directory is not writable!</source>
<translation type="unfinished">Błąd: Nie można zapisać w wybranej lokalizacji wyjściowej!</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="224"/>
<location filename="../../src/Dialog_CueImport.cpp" line="286"/>
<source>Low Diskspace Warning</source>
<translation type="unfinished">Ostrzeżenie o małej ilości miejsca na dysku</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="224"/>
<location filename="../../src/Dialog_CueImport.cpp" line="286"/>
<source>There are less than %1 GB of free diskspace available in the selected output directory.</source>
<translation type="unfinished">Jest mniej niż %1 GB wolnego miejsca w wybranej lokalizacji wyjściowej.</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="224"/>
<location filename="../../src/Dialog_CueImport.cpp" line="286"/>
<source>It is highly recommend to free up more diskspace before proceeding with the import!</source>
<translation type="unfinished">Jest wysoce zalecane zwolnić miejsce na dysku zanim zaczniesz importować!</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="294"/>
<location filename="../../src/Dialog_CueImport.cpp" line="356"/>
<source>Analyzing file(s), please wait...</source>
<translation type="unfinished">Analizowanie pliku/ów, prosze czekać...</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="299"/>
<location filename="../../src/Dialog_CueImport.cpp" line="361"/>
<source>Analysis Failed</source>
<translation type="unfinished">Analiza zakończona niepowodzeniem</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="299"/>
<location filename="../../src/Dialog_CueImport.cpp" line="361"/>
<source>Warning: The format of some of the input files could not be determined!</source>
<translation type="unfinished">Ostrzeżenie: Nie można rozpoznać formatu kilku plików wejściowych!</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="299"/>
<location filename="../../src/Dialog_CueImport.cpp" line="361"/>
<source>Continue Anyway</source>
<translation type="unfinished">Kontynuuj pomimo to</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="299"/>
<location filename="../../src/Dialog_CueImport.cpp" line="361"/>
<source>Abort</source>
<translation type="unfinished">Przerwij</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="322"/>
<location filename="../../src/Dialog_CueImport.cpp" line="384"/>
<source>Splitting file(s), please wait...</source>
<translation type="unfinished">Dzielenie pliku/ów, prosze czekać...</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="327"/>
<location filename="../../src/Dialog_CueImport.cpp" line="389"/>
<source>Process was aborted by the user after %1 track(s)!</source>
<translation type="unfinished">Proces został przerwany przez użytkownika po imporcie %1 ścieżek!</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="331"/>
<location filename="../../src/Dialog_CueImport.cpp" line="393"/>
<source>An unexpected error has occured while splitting the Cue Sheet!</source>
<translation type="unfinished">Wystąpił nieoczekiwany błąd podczas podziału pliku Cue Sheet!</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="335"/>
<location filename="../../src/Dialog_CueImport.cpp" line="397"/>
<source>Imported %1 track(s) from the Cue Sheet and skipped %2 track(s).</source>
<translation type="unfinished">Zaimportowano %1 ścieżek i opuszczono %2 ścieżek z pliku Cue Sheet.</translation>
</message>
<message>
<location filename="../../src/Dialog_CueImport.cpp" line="336"/>
<location filename="../../src/Dialog_CueImport.cpp" line="398"/>
<source>Cue Sheet Completed</source>
<translation type="unfinished">Stworzono plik Cue Sheet</translation>
</message>
@ -505,37 +535,47 @@
<name>CueSheetImport</name>
<message>
<location filename="../../gui/CueSheetImport.ui" line="14"/>
<location filename="../../gui/CueSheetImport.ui" line="559"/>
<location filename="../../gui/CueSheetImport.ui" line="664"/>
<source>Import Cue Sheet</source>
<translation type="unfinished">Importuj plik Cue Sheet</translation>
</message>
<message>
<location filename="../../gui/CueSheetImport.ui" line="310"/>
<location filename="../../gui/CueSheetImport.ui" line="189"/>
<source>Artist:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../gui/CueSheetImport.ui" line="241"/>
<source>Album:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../gui/CueSheetImport.ui" line="415"/>
<source>Existing Source File</source>
<translation type="unfinished">Istniejący plik źródłowy</translation>
</message>
<message>
<location filename="../../gui/CueSheetImport.ui" line="438"/>
<location filename="../../gui/CueSheetImport.ui" line="543"/>
<source>Missing Source File (Tracks will be skipped!)</source>
<translation type="unfinished">Brakujące pliki źródłowe (Ścieżki zostaną pominięte!)</translation>
</message>
<message>
<location filename="../../gui/CueSheetImport.ui" line="465"/>
<location filename="../../gui/CueSheetImport.ui" line="570"/>
<source> Output Directory </source>
<translation type="unfinished">Folder wyjściowy</translation>
</message>
<message>
<location filename="../../gui/CueSheetImport.ui" line="489"/>
<location filename="../../gui/CueSheetImport.ui" line="594"/>
<source>Browse...</source>
<translation type="unfinished">Wybierz...</translation>
</message>
<message>
<location filename="../../gui/CueSheetImport.ui" line="526"/>
<location filename="../../gui/CueSheetImport.ui" line="631"/>
<source>Load a different Cue Sheet</source>
<translation type="unfinished">Załaduj inny plik Cue Sheet</translation>
</message>
<message>
<location filename="../../gui/CueSheetImport.ui" line="582"/>
<location filename="../../gui/CueSheetImport.ui" line="687"/>
<source>Discard</source>
<translation type="unfinished">Wyjdź</translation>
</message>

View File

@ -387,6 +387,30 @@
<source>Process was aborted by the user after %1 track(s)!</source>
<translation type="unfinished">Процесс отменён пользователем после %1 трэк(ов)!</translation>
</message>
<message>
<source>(System Default)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select ANSI Codepage for Cue Sheet file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished">ОК</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished">Отмена</translation>
</message>
<message>
<source>Unknown Artist</source>
<translation type="unfinished">Неизвестный Артист</translation>
</message>
<message>
<source>Unknown Album</source>
<translation type="unfinished">Неизвестный Альбом</translation>
</message>
</context>
<context>
<name>CueSheetImport</name>
@ -418,6 +442,14 @@
<source>Load a different Cue Sheet</source>
<translation type="unfinished">Загрузить другой Cue плэйлист</translation>
</message>
<message>
<source>Artist:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Album:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CueSheetModel</name>

View File

@ -386,6 +386,30 @@
<source>Cue Sheet Completed</source>
<translation>Обробку списку Cue завершено</translation>
</message>
<message>
<source>(System Default)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select ANSI Codepage for Cue Sheet file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OK</source>
<translation type="unfinished">Ок</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished">Відмінити</translation>
</message>
<message>
<source>Unknown Artist</source>
<translation type="unfinished">Невідомий виконавець</translation>
</message>
<message>
<source>Unknown Album</source>
<translation type="unfinished">Невідомий альбом</translation>
</message>
</context>
<context>
<name>CueSheetImport</name>
@ -417,6 +441,14 @@
<source>Load a different Cue Sheet</source>
<translation>Обрати інший список CUE</translation>
</message>
<message>
<source>Artist:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Album:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CueSheetModel</name>

View File

@ -175,6 +175,111 @@
<property name="spacing">
<number>2</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<widget class="QLabel" name="label_4">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Artist:</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>5</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="labelArtist">
<property name="text">
<string notr="true">N/A</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_9">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>16</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_6">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Album:</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>5</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="labelAlbum">
<property name="text">
<string notr="true">N/A</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QTreeView" name="treeView">
<property name="alternatingRowColors">

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -29,8 +29,8 @@
#define VER_LAMEXP_MINOR_HI 0
#define VER_LAMEXP_MINOR_LO 4
#define VER_LAMEXP_TYPE Alpha
#define VER_LAMEXP_PATCH 7
#define VER_LAMEXP_BUILD 804
#define VER_LAMEXP_PATCH 8
#define VER_LAMEXP_BUILD 806
///////////////////////////////////////////////////////////////////////////////
// Tool versions (minimum expected versions!)

View File

@ -36,8 +36,11 @@
#include <QFileDialog>
#include <QProgressDialog>
#include <QMenu>
#include <QTextCodec>
#include <QInputDialog>
#define SET_FONT_BOLD(WIDGET,BOLD) { QFont _font = WIDGET->font(); _font.setBold(BOLD); WIDGET->setFont(_font); }
#define EXPAND(STR) QString(STR).leftJustified(96, ' ')
////////////////////////////////////////////////////////////
// Constructor & Destructor
@ -111,6 +114,63 @@ int CueImportDialog::exec(void)
return CueSheetModel::ErrorIOFailure;
}
//----------------------//
QTextCodec *codec = NULL;
QFile cueFile(cueFileInfo.canonicalFilePath());
cueFile.open(QIODevice::ReadOnly);
QByteArray bomCheck = cueFile.isOpen() ? cueFile.peek(128) : QByteArray();
if((!bomCheck.isEmpty()) && bomCheck.contains("\xef\xbb\xbf"))
{
codec = QTextCodec::codecForName("UTF-8");
}
else
{
const QString systemDefault = tr("(System Default)");
QStringList codecList; codecList << systemDefault;
QList<QByteArray> availableCodecs = QTextCodec::availableCodecs();
while(!availableCodecs.isEmpty())
{
QByteArray current = availableCodecs.takeFirst();
if(!(current.startsWith("system") || current.startsWith("System")))
{
codecList << QString::fromLatin1(current.constData(), current.size());
}
}
QInputDialog *input = new QInputDialog(progress);
input->setLabelText(EXPAND(tr("Select ANSI Codepage for Cue Sheet file:")));
input->setOkButtonText(tr("OK"));
input->setCancelButtonText(tr("Cancel"));
input->setTextEchoMode(QLineEdit::Normal);
input->setComboBoxItems(codecList);
if(input->exec() > 0)
{
qDebug("User-selected codec is: %s", input->textValue().toLatin1().constData());
if(input->textValue().compare(systemDefault, Qt::CaseInsensitive))
{
qDebug("Going to use a user-selected codec!");
codec = QTextCodec::codecForName(input->textValue().toLatin1().constData());
}
}
if(!codec)
{
qDebug("Going to use the system's default codec!");
codec = QTextCodec::codecForName("System");
}
LAMEXP_DELETE(input);
}
bomCheck.clear();
//----------------------//
m_outputDir = QString("%1/%2").arg(cueFileInfo.canonicalPath(), cueFileInfo.completeBaseName());
for(int n = 2; QDir(m_outputDir).exists(); n++)
{
@ -119,7 +179,7 @@ int CueImportDialog::exec(void)
setWindowTitle(QString("%1: %2").arg(windowTitle().split(":", QString::SkipEmptyParts).first().trimmed(), cueFileInfo.fileName()));
int iResult = m_model->loadCueSheet(m_cueFileName, QApplication::instance());
int iResult = m_model->loadCueSheet(m_cueFileName, QApplication::instance(), codec);
if(iResult != CueSheetModel::ErrorSuccess)
{
QString errorMsg = tr("An unknown error has occured!");
@ -156,6 +216,8 @@ void CueImportDialog::modelChanged(void)
{
treeView->expandAll();
editOutputDir->setText(QDir::toNativeSeparators(m_outputDir));
labelArtist->setText(m_model->getAlbumPerformer().isEmpty() ? tr("Unknown Artist") : m_model->getAlbumPerformer());
labelAlbum->setText(m_model->getAlbumTitle().isEmpty() ? tr("Unknown Album") : m_model->getAlbumTitle());
}
void CueImportDialog::browseButtonClicked(void)

View File

@ -527,9 +527,10 @@ unsigned int CueSheetModel::getAlbumYear(void)
// Cue Sheet Parser
////////////////////////////////////////////////////////////
int CueSheetModel::loadCueSheet(const QString &cueFileName, QCoreApplication *application)
int CueSheetModel::loadCueSheet(const QString &cueFileName, QCoreApplication *application, QTextCodec *forceCodec)
{
QMutexLocker lock(&m_mutex);
const QTextCodec *codec = (forceCodec != NULL) ? forceCodec : QTextCodec::codecForName("System");
QFile cueFile(cueFileName);
if(!cueFile.open(QIODevice::ReadOnly))
@ -540,16 +541,17 @@ int CueSheetModel::loadCueSheet(const QString &cueFileName, QCoreApplication *ap
clearData();
beginResetModel();
int iResult = parseCueFile(cueFile, QDir(QFileInfo(cueFile).canonicalPath()), application);
int iResult = parseCueFile(cueFile, QDir(QFileInfo(cueFile).canonicalPath()), application, codec);
endResetModel();
return iResult;
}
int CueSheetModel::parseCueFile(QFile &cueFile, const QDir &baseDir, QCoreApplication *application)
int CueSheetModel::parseCueFile(QFile &cueFile, const QDir &baseDir, QCoreApplication *application, const QTextCodec *codec)
{
cueFile.seek(0);
qDebug("\n[Cue Sheet Import]");
bool bForceLatin1 = false;
//Reject very large files, as parsing might take until forever
if(cueFile.size() >= 10485760i64)
@ -558,28 +560,18 @@ int CueSheetModel::parseCueFile(QFile &cueFile, const QDir &baseDir, QCoreApplic
return 2;
}
//Get system local Codec
const QTextCodec *codec = QTextCodec::codecForName("System");
//Check for UTF-8 BOM in order to guess encoding
bool bUTF8 = false, bForceLatin1 = false;
QByteArray bomCheck = cueFile.peek(128);
bUTF8 = (!bomCheck.isEmpty()) && bomCheck.contains("\xef\xbb\xbf");
qDebug("Encoding is %s.", (bUTF8 ? "UTF-8" : "Local 8-Bit"));
bomCheck.clear();
//Test selected Codepage for decoding errors
if(!bUTF8)
{
qDebug("Character encoding is: %s.", codec->name().constData());
const QString replacementSymbol = QString(QChar(QChar::ReplacementCharacter));
QByteArray data = cueFile.peek(1048576);
if((!data.isEmpty()) && codec->toUnicode(data.constData(), data.size()).contains(replacementSymbol))
QByteArray testData = cueFile.peek(1048576);
if((!testData.isEmpty()) && codec->toUnicode(testData.constData(), testData.size()).contains(replacementSymbol))
{
qWarning("Decoding error using local 8-Bit codepage. Enforcing Latin-1.");
qWarning("Decoding error using local codepage. Enforcing Latin-1.");
bForceLatin1 = true;
}
}
testData.clear();
//Create regular expressions
QRegExp rxFile("^FILE\\s+(\"[^\"]+\"|\\S+)\\s+(\\w+)$", Qt::CaseInsensitive);
QRegExp rxTrack("^TRACK\\s+(\\d+)\\s(\\w+)$", Qt::CaseInsensitive);
QRegExp rxIndex("^INDEX\\s+(\\d+)\\s+([0-9:]+)$", Qt::CaseInsensitive);
@ -615,7 +607,7 @@ int CueSheetModel::parseCueFile(QFile &cueFile, const QDir &baseDir, QCoreApplic
break;
}
QString line = (bUTF8 ? QString::fromUtf8(lineData.constData(), lineData.size()) : (bForceLatin1 ? QString::fromLatin1(lineData.constData(), lineData.size()) : codec->toUnicode(lineData.constData(), lineData.size()))).trimmed();
QString line = (bForceLatin1 ? QString::fromLatin1(lineData.constData(), lineData.size()) : codec->toUnicode(lineData.constData(), lineData.size())).trimmed();
/* --- FILE --- */
if(rxFile.indexIn(line) >= 0)

View File

@ -28,6 +28,7 @@
class CueSheetFile;
class QApplication;
class QDir;
class QTextCodec;
class CueSheetModel : public QAbstractItemModel
{
@ -73,10 +74,10 @@ public:
unsigned int getAlbumYear(void);
//Cue Sheet functions
int loadCueSheet(const QString &cueFile, QCoreApplication *application = NULL);
int loadCueSheet(const QString &cueFile, QCoreApplication *application = NULL, QTextCodec *forceCodec= NULL);
private:
int parseCueFile(QFile &cueFile, const QDir &baseDir, QCoreApplication *application);
int parseCueFile(QFile &cueFile, const QDir &baseDir, QCoreApplication *application, const QTextCodec *codec);
double parseTimeIndex(const QString &index);
QString indexToString(const double index) const;