From 612f744afe1872e4bdf010eae9ade835c4f1f4a1 Mon Sep 17 00:00:00 2001 From: lordmulder Date: Mon, 19 Dec 2011 15:48:50 +0100 Subject: [PATCH 1/4] Added 'Traditional Chinese' (Taiwanese) translation by 456Vv <123@456vv.com>. --- etc/Translation/Blank.ts | 326 ++-- etc/Translation/LameXP_PL.ts | 326 ++-- etc/Translation/LameXP_TW.ts | 2351 +++++++++++++++++++++++++++++ etc/Translation/LameXP_ZH.ts | 10 +- res/Flags.qrc | 1 + res/Localization.qrc | 2 + res/flags/{cn.png => zh.png} | Bin res/localization/LameXP_DE.qm.txt | 2 +- res/localization/LameXP_ES.qm.txt | 2 +- res/localization/LameXP_FR.qm.txt | 2 +- res/localization/LameXP_IT.qm.txt | 2 +- res/localization/LameXP_KR.qm.txt | 2 +- res/localization/LameXP_PL.qm.txt | 2 +- res/localization/LameXP_RU.qm.txt | 2 +- res/localization/LameXP_TW.qm | Bin 0 -> 50784 bytes res/localization/LameXP_TW.qm.txt | 1 + res/localization/LameXP_UK.qm.txt | 2 +- res/localization/LameXP_ZH.qm | Bin 51066 -> 50784 bytes res/localization/LameXP_ZH.qm.txt | 2 +- src/Dialog_About.cpp | 3 +- src/Global.cpp | 12 +- src/Global.h | 3 +- src/Model_Settings.cpp | 10 +- src/Thread_Initialization.cpp | 9 +- 24 files changed, 2722 insertions(+), 350 deletions(-) create mode 100644 etc/Translation/LameXP_TW.ts rename res/flags/{cn.png => zh.png} (100%) create mode 100644 res/localization/LameXP_TW.qm create mode 100644 res/localization/LameXP_TW.qm.txt diff --git a/etc/Translation/Blank.ts b/etc/Translation/Blank.ts index 256ef1ea..0ee855d7 100644 --- a/etc/Translation/Blank.ts +++ b/etc/Translation/Blank.ts @@ -1407,9 +1407,9 @@ - - - + + + Check for Updates @@ -1450,13 +1450,13 @@ - + Disable Update Reminder - + Disable Sound Effects @@ -1542,7 +1542,7 @@ - + Access Denied @@ -1642,604 +1642,604 @@ - + License Declined - + You have declined the license. Consequently the application will exit now! - + Goodbye! - + LameXP - Expired - + This demo (pre-release) version of LameXP has expired at %1. - + LameXP is free software and release versions won't expire. - - + + Exit Program - + It seems that a bogus anti-virus software is slowing down the startup of LameXP. - + Please refer to the %1 document for details and solutions! - + Slow Startup - - - - - - + + + + + + Discard - - + + Don't Show Again - + Urgent Update - + Your version of LameXP is more than a year old. Time for an update! - - + + Ignore - + Skipping update check this time, please be patient... - - - + + + Update Reminder - + Your last update check was more than 14 days ago. Check for updates now? - + Your did not check for LameXP updates yet. Check for updates now? - + Postpone - + LameXP detected that your version of the Nero AAC encoder is outdated! - + The current version available is %1 (or later), but you still have version %2 installed. - + n/a - + You can download the latest version of the Nero AAC encoder from the Nero website at: - + (Hint: Please ignore the name of the downloaded ZIP file and check the included 'changelog.txt' instead!) - + AAC Encoder Outdated - + The Nero AAC encoder could not be found. AAC encoding support will be disabled. - + Please put 'neroAacEnc.exe', 'neroAacDec.exe' and 'neroAacTag.exe' into the LameXP directory! - + Your LameXP directory is located here: - + You can download the Nero AAC encoder for free from the official Nero website at: - + AAC Support Disabled - - - + + + LameXP - + You must add at least one file to the list before proceeding! - + Not Found - + Your currently selected TEMP folder does not exist anymore: - + Restore Default - + Cancel - + There are less than %1 GB of free diskspace available on your system's TEMP folder. - + It is highly recommend to free up more diskspace before proceeding with the encode! - + Your TEMP folder is located at: - + Low Diskspace Warning - + Abort Encoding Process - + Clean Disk Now - + Low Diskspace - + You are proceeding with low diskspace. Problems might occur! - + Sorry, an unsupported encoder has been chosen! - + Cannot write to the selected output directory. - + Please choose a different directory! - + Load Translation - + Translation Files - + Do you really want to disable the update reminder? - - - - - - - + + + + + + + Yes - - - - - - - + + + + + + + No - + The update reminder has been disabled. - + Please remember to check for updates at regular intervals! - + The update reminder has been re-enabled. - + Do you really want to disable all sound effects? - - + + Sound Effects - + All sound effects have been disabled. - + The sound effects have been re-enabled. - - - + + + Nero AAC Notifications - + Do you really want to disable all Nero AAC Encoder notifications? - + All Nero AAC Encoder notifications have been disabled. - + The Nero AAC Encoder notifications have been re-enabled. - - - + + + Slow Startup Notifications - + Do you really want to disable the slow startup notifications? - + The slow startup notifications have been disabled. - + The slow startup notifications have been re-enabled. - - + + Open Cue Sheet - - + + Cue Sheet File - - - + + + Beta Updates - + Do you really want LameXP to check for Beta (pre-release) updates? - + LameXP will check for Beta (pre-release) updates from now on. - + Check Now - + LameXP will <i>not</i> check for Beta (pre-release) updates from now on. - - - + + + Hibernate Computer - + Do you really want the computer to be hibernated on shutdown? - + LameXP will hibernate the computer on shutdown from now on. - + LameXP will <i>not</i> hibernate the computer on shutdown from now on. - - + + Shell Integration - + Do you really want to disable the LameXP shell integration? - + The LameXP shell integration has been disabled. - + The LameXP shell integration has been re-enabled. - - + + Add file(s) - - + + Add Folder - - + + New Folder - + Enter the name of the new folder: - + Failed to create folder - + The new folder could not be created: - + Drive is read-only or insufficient access rights! - - - - + + + + Quality Level %1 - - - + + + Compression %1 - - - + + + Uncompressed - + Best Quality (Very Slow) - + High Quality (Recommended) - + Average Quality (Default) - + Low Quality (Fast) - + Poor Quality (Very Fast) - + File name without extension - + Track number with leading zero - + Track title - + Artist name - + Album name - + Year with (at least) four digits - + Comment - + Characters forbidden in file names: - + Rename Macros - + %1 Instance(s) - + Cannot write to the selected directory. Please choose another directory! - + Already Running - + LameXP is already running, please use the running instance! diff --git a/etc/Translation/LameXP_PL.ts b/etc/Translation/LameXP_PL.ts index e3704ee2..c493c322 100644 --- a/etc/Translation/LameXP_PL.ts +++ b/etc/Translation/LameXP_PL.ts @@ -1407,9 +1407,9 @@ - - - + + + Check for Updates Sprawdź aktualizacje @@ -1450,13 +1450,13 @@ - + Disable Update Reminder Wyłącz przypominanie o aktualizacji - + Disable Sound Effects Wyłącz efekty dźwiękowe @@ -1542,7 +1542,7 @@ - + Access Denied Dostęp zablokowany @@ -1637,193 +1637,193 @@ Zapamiętaj wybrany folder - + License Declined Licencja odrzucona - + You have declined the license. Consequently the application will exit now! Odrzuciłeś licencję. W takim razie program zostanie teraz zamknięty! - + Goodbye! Naraska! - + LameXP - Expired LameXP - Termin wygasł - + This demo (pre-release) version of LameXP has expired at %1. Ta wersja demo (beta) LameXP wygasła %1. - + LameXP is free software and release versions won't expire. LameXP jest darmowym oprogramowaniem i pełna wersja nie wygasa. - - + + Exit Program Wyjdź z programu - + It seems that a bogus anti-virus software is slowing down the startup of LameXP. - + Please refer to the %1 document for details and solutions! Prosze sprawdzić dokument %1 w celu dalszych szcegółów i rozwiązań! - + Slow Startup Powolny start - - - - - - + + + + + + Discard Zamknij - - + + Don't Show Again Nie pokazuj ponownie - + Urgent Update Ważna aktualizacja - + Your version of LameXP is more than a year old. Time for an update! Twoja wersja LameXP jest starsza niż rok! Czas na aktualizację! - - - + + + Update Reminder Powiadomienie aktualizacji - + Your last update check was more than 14 days ago. Check for updates now? Ostatnie sprawdzenie aktualizacji było ponad 14 dni temu. Sprawdzić teraz aktualizacje? - + Your did not check for LameXP updates yet. Check for updates now? Nie sprawdzałeś jeszcze aktualizacji LameXP. Sprawdzić teraz aktualizacje? - + Postpone Przełóż - + LameXP detected that your version of the Nero AAC encoder is outdated! LameXP wykrył że Twoja wersja kodera Nero AAC jest nieaktualna! - + The current version available is %1 (or later), but you still have version %2 installed. Wersją dostępną obecnie jest %1, Twoja wersja to %2. - + n/a n/d - + You can download the latest version of the Nero AAC encoder from the Nero website at: Możesz pobrać najnowszą wersję kodera Nero AAC ze strony Nero: - + AAC Encoder Outdated Koder AAC jest nieaktualny - + The Nero AAC encoder could not be found. AAC encoding support will be disabled. Nie można odnaleźć kodera Nero AAC. Kompresja formatu AAC zostanie wyłączona. - + Please put 'neroAacEnc.exe', 'neroAacDec.exe' and 'neroAacTag.exe' into the LameXP directory! Prosze skopiować 'neroAacEnc.exe', 'neroAacDec.exe', oraz 'neroAacTag.exe' do folderu LameXP! - + Your LameXP directory is located here: Folder aplikacji LameXP znajduje się tutaj: - + You can download the Nero AAC encoder for free from the official Nero website at: Możesz pobrać koder Nero AAC za darmo z oficjalnej strony Nero: - + AAC Support Disabled Wsparcie dla AAC wyłączone - - - + + + LameXP LameXP - + You must add at least one file to the list before proceeding! Powinienieś dodać przynajmniej jeden plik do listy aby zacząć działać! - + Not Found Nie znaleziono - + Your currently selected TEMP folder does not exist anymore: Wybrany przez Ciebie folder tymczasowy TEMP już nie istnieje: - + Restore Default Przywróć domyślne - + Cancel Anuluj - + Low Diskspace Warning Ostrzeżenie o małej ilości miejsca na dysku - + There are less than %1 GB of free diskspace available on your system's TEMP folder. Jest mniej niż %1 GB dostępnego miejsca w systemowym folderze TEMP. @@ -1833,413 +1833,413 @@ - + (Hint: Please ignore the name of the downloaded ZIP file and check the included 'changelog.txt' instead!) - + It is highly recommend to free up more diskspace before proceeding with the encode! Jest wysoce zalecane zwolnić miejsce na dysku zanim zaczniesz kompresję! - + Your TEMP folder is located at: Twój folder TEMP znajduję się: - + Abort Encoding Process Przerwij proces kompresji - + Clean Disk Now Wykonaj oczyszczanie dysku - - + + Ignore Ignoruj - + Skipping update check this time, please be patient... - + Low Diskspace Mało miejsca na dysku - + You are proceeding with low diskspace. Problems might occur! Chcesz zacząć działać z małą ilością miejsca na dysku. Mogą wystąpić problemy! - + Sorry, an unsupported encoder has been chosen! Został wybrany koder, który nie jest wspierany! - + Cannot write to the selected output directory. Nie można zapisać do wybranej lokalizacji. - + Please choose a different directory! Prosze wybrać inną lokalizację! - + Load Translation Zaladuj plik językowy - + Translation Files Pliki językowe - + Do you really want to disable the update reminder? Czy na pewno chcesz wyłączyć przypominanie o aktualizacjach? - - - - - - - + + + + + + + Yes Tak - - - - - - - + + + + + + + No Nie - + The update reminder has been disabled. Przypominanie o aktualizacjach wyłączone. - + Please remember to check for updates at regular intervals! Prosze pamiętać o okresowym sprawdzaniu aktualizacji! - + The update reminder has been re-enabled. Przypominanie o aktualizacjach ponownie włączone. - + Do you really want to disable all sound effects? Czy na pewno chcesz wyłączyć wszystkie dźwiękowe? - - + + Sound Effects Efekty dźwiękowe - + All sound effects have been disabled. Wszystkie efekty dźwiękowe zostały wyłączone. - + The sound effects have been re-enabled. Efekty dźwiękowe zostały ponownie włączone. - - - + + + Nero AAC Notifications Powiadomienia Nero AAC - + Do you really want to disable all Nero AAC Encoder notifications? Czy na pewno chcesz wyłączyć wszystkie powiadomienia Nero AAC? - + All Nero AAC Encoder notifications have been disabled. Wszystkie powiadomienia kodera Nero AAC zostały wyłączone. - + The Nero AAC Encoder notifications have been re-enabled. Powiadomienia Nero AAC zostały ponownie włączone. - - - + + + Slow Startup Notifications Powiadomienia o powolnym starcie - + Do you really want to disable the slow startup notifications? Czy na pewno chcesz wyłączyć powiadomienia o powolnym starcie? - + The slow startup notifications have been disabled. Powiadomienia o powolnym starcie zostały wyłączone. - + The slow startup notifications have been re-enabled. Powiadomienia o powolnym starcie zostały ponownie włączone. - - + + Open Cue Sheet Otwórz plik Cue Sheet - - + + Cue Sheet File Plik Cue Sheet - - - + + + Beta Updates Aktualizacje Beta - + Do you really want LameXP to check for Beta (pre-release) updates? Czy na pewno chcesz aby LameXP sprawdzał aktualizacje Beta? - + LameXP will check for Beta (pre-release) updates from now on. Od teraz LameXP będzie sprawdzał aktualizacje Beta. - + Check Now Sprawdź teraz - + LameXP will <i>not</i> check for Beta (pre-release) updates from now on. LameXP od teraz <i>nie będzie</i> sprawdzał aktualizacji Beta. - - - + + + Hibernate Computer - + Do you really want the computer to be hibernated on shutdown? - + LameXP will hibernate the computer on shutdown from now on. - + LameXP will <i>not</i> hibernate the computer on shutdown from now on. - - + + Shell Integration Integracja z systemem - + Do you really want to disable the LameXP shell integration? Czy na pewno chcesz wyłączyć integrację LameXP z systemem? - + The LameXP shell integration has been disabled. Integracja LameXP z systemem zostałą wyłączona. - + The LameXP shell integration has been re-enabled. Integracja LameXP z systemem została ponownie włączona. - - + + Add file(s) Dodaj plik(i) - - + + Add Folder Dodaj folder - - + + New Folder Nowy folder - + Enter the name of the new folder: Wprowadź nazwę nowego folderu: - + Failed to create folder Utworzenie folderu zakończone niepowodzeniem - + The new folder could not be created: Nowy folder nie mógł zostać stworzony: - + Drive is read-only or insufficient access rights! Dysk tylko do odczytu lub brak praw dostępu! - - - - + + + + Quality Level %1 Poziom jakości %1 - - - + + + Compression %1 Kompresja %1 - - - + + + Uncompressed Nieskompresowany - + Best Quality (Very Slow) Najlepsza jakość (Bardzo wolno) - + High Quality (Recommended) Wysoka jakość (Zalecane) - + Average Quality (Default) Średnia jakość (Domyślnie) - + Low Quality (Fast) Niska jakość (Szybko) - + Poor Quality (Very Fast) Najniższa jakość (Bardzo szybko) - + File name without extension Nazwa pliku bez rozszerzenia - + Track number with leading zero Numer ścieżki z zerem na początku - + Track title Nazwa ścieżki - + Artist name Nazwa Artysty - + Album name Nazwa Albumu - + Year with (at least) four digits Rok z (przynajmniej) czterema cyframi - + Comment Komentarz - + Characters forbidden in file names: Zabronione znaki w nazwach plików: - + Rename Macros Zmień nazwy makr - + %1 Instance(s) %1 wątek/ki - + Cannot write to the selected directory. Please choose another directory! Nie można zapisać do wybranej lokalizacji. Prosze wybierz inną lokalizację! - + Already Running Już działa - + LameXP is already running, please use the running instance! LameXP już działa, przejdź do działającego programu! diff --git a/etc/Translation/LameXP_TW.ts b/etc/Translation/LameXP_TW.ts new file mode 100644 index 00000000..235a40c2 --- /dev/null +++ b/etc/Translation/LameXP_TW.ts @@ -0,0 +1,2351 @@ + + + + + AboutDialog + + Please visit %1 for news and updates! + 請訪問到%1新的更新 + + + Note: LameXP is free software. Do <b>not</b> pay money to obtain or use LameXP! If some third-party website tries to make you pay for downloading LameXP, you should <b>not</b> respond to the offer !!! + 注:LameXP是免費軟件。<b>不用</b>付錢獲取或使用LameXP!如果某些第三方網站嘗試讓你付出代價下載LameXP,你應該<b>不</b>接受報價! + + + Special thanks go out to "John33" from %1 for his continuous support. + 特別感謝"John33"從%1為他的持續支持。 + + + About LameXP + 關于 LameXP + + + Show License Text + 顯示許可證文本 + + + Accept License + 接受許可證 + + + Decline License + 減少許可證 + + + 3rd Party S/W + 第三方 S/W + + + Contributors + 貢獻者 + + + About Qt4 + 關于 Qt4 + + + Discard + 放棄 + + + The following people have contributed to LameXP: + 以下人士有貢獻 LameXP: + + + Translators: + 翻譯員: + + + If you are willing to contribute a LameXP translation, feel free to contact us! + 如果你愿意貢獻 LameXP 翻譯,隨時與我們聯系 ! + + + About Contributors + 關于貢獻者 + + + The following third-party software is used in LameXP: + 在 LameXP 中使用了下列第三方軟件: + + + Released under the terms of the GNU Lesser General Public License. + GNU 較小的通用公共許可的條款下發布。 + + + Completely open and patent-free audio encoding technology. + 完全開放的無專利的音頻編碼技術。 + + + Freeware state-of-the-art HE-AAC encoder with 2-Pass support. + 免費軟件先進的他 AAC 編碼器二次編碼的支持。 + + + Available from vendor web-site as free download: + 可從供應商網站上免費下載: + + + Open and patent-free lossless audio compression technology. + 打開和專利自由無損音頻壓縮技術。 + + + By Mark James, released under the Creative Commons 'by' License. + By Mark James,在知識共享的許可證發布。 + + + About Third-party Software + 關于第三方軟件 + + + n/a + n/d + + + Freely available source code, simple SDK and non-restrictive licensing. + 免費提供源代碼,簡單的SDK和非限制性許可。 + + + Completely open audio compression format. + 完全開放的音頻壓縮格式。 + + + Released under the terms of the GNU General Public License. + 以下發布的GNU通用公共許可證的條款。 + + + LameXP - Audio Encoder Front-end + LameXP - 前端音頻編碼器 + + + LAME - OpenSource mp3 Encoder + LameXP - 開源的MP3編碼器 + + + OggEnc - Ogg Vorbis Encoder + OggEnc - Ogg Vorbis編碼器 + + + FLAC - Free Lossless Audio Codec + FLAC - 免費的無損音頻編解碼器 + + + mpg123 - Fast Console MPEG Audio Player/Decoder + mpg123 - 播放控制臺/ MPEG音頻解碼 + + + FAAD - OpenSource MPEG-4 and MPEG-2 AAC Decoder + FAAD - MPEG- 4解碼器和MPEG- 2 AAC開源 + + + AC3Filter Tools - AC3/DTS Decoder + AC3Filter Tools - AC3/DTS解碼器 + + + WavPack - Hybrid Lossless Compression + WavPack - 無損壓縮混合 + + + Monkey's Audio - Lossless Audio Compressor + 孫悟空(Monkey's) 音頻 - 無損音頻壓縮 + + + The True Audio - Lossless Audio Codec + 真正的音頻-無損音頻編解碼器 + + + MediaInfo - Media File Analysis Tool + MediaInfo-媒體文件分析工具 + + + SoX - Sound eXchange + SoX 聲音交換 + + + GnuPG - The GNU Privacy Guard + GnuPG - GNU 隱私 + + + Silk Icons - Over 700 icons in PNG format + 絲綢圖標 - 超過 700 圖標 PNG 格式 + + + Nero AAC Reference MPEG-4 Encoder + Nero AAC 參考 MPEG-4 編碼器 + + + Musepack - Living Audio Compression + Musepack - 生活音頻壓縮 + + + Shorten - Lossless Audio Compressor + Shorten - 無損音頻壓縮 + + + Speex - Free Codec For Free Speech + Speex - 免費自由的編解碼器 + + + Open Source patent-free audio format designed for speech. + 開源專利免費的音頻格式設計的演講。 + + + GNU Wget - Software for retrieving files using HTTP + GNU Wget - 軟件通過HTTP下載文件 + + + Note: This demo (pre-release) version of LameXP will expire at %1. Still %2 days left. + 注:這是一個演示版本LameXP將屆滿%1。剩余%2天。 + + + Aften - A/52 audio encoder + Aften - A/52 音頻編碼器 + + + ALAC Decoder + ALAC 解碼器 + + + Copyright (c) 2004 David Hammerton. Contributions by Cody Brocious. + 版權所有 (c) 2004 David Hammerton。科迪 Brocious 的貢獻。 + + + Copyright (c) 2011 LoRd_MuldeR <mulder2@gmx.de>. Some rights reserved. + 版權所有 (c) 2011 LoRd_MuldeR <mulder2@gmx.de>。保留某些權利。 + + + By Jory Stone <jcsston@toughguy.net> and LoRd_MuldeR <mulder2@gmx.de>. + By Jory Stone <jcsston@toughguy.net> and LoRd_MuldeR <mulder2@gmx.de>. + + + wma2wav - Dump WMA files to Wave Audio + wma2wav - WMA到WAV轉換器 + + + avs2wav - Avisynth to Wave Audio converter + avs2wav - Avisynth到WAV音頻轉換器 + + + LameXP as a whole is copyrighted by LoRd_MuldeR. The copyright of third-party software used in LameXP belongs to the individual authors. + + + + + AudioFileModel + + Profile + 配置文件 + + + Channels + 聲道 + + + Samplerate + 采樣率 + + + Bitdepth + 位深度 + + + Type + 類型 + + + Version + 版本 + + + Bitrate + 比特率 + + + Constant + 不變 + + + Variable + 可變 + + + + CueImportDialog + + Import Cue Sheet + 導入提示表 + + + The following Cue Sheet will be split and imported into LameXP. + 下面的提示表將拆分,并導入到 LameXP。 + + + Loading Cue Sheet file, please be patient... + 加載提示表文件,請保持耐心... + + + An unknown error has occured! + 出現了一個未知的錯誤 ! + + + Failed to load the Cue Sheet file: + 未能加載提示表文件: + + + Cue Sheet Error + 錯誤的提示表 + + + The specified file could not be found! + 找不到指定的文件 ! + + + The file could not be opened for reading. Make sure you have the required rights! + 無法打開文件進行讀取。確保您具有所需的權限 ! + + + The provided file does not look like a valid Cue Sheet disc image file! + 提供的文件看上去不像是有效的提示表光盤映像文件 ! + + + Could not find any supported audio track in the Cue Sheet image! + 提示表映像中找不到任何受支持的音頻軌道 ! + + + Note that LameXP can not handle "binary" Cue Sheet images. + 請注意,LameXP 不能處理"二進制"提示表映像。 + + + The selected Cue Sheet file contains inconsistent information. Take care! + 當心!所選的提示表文件包含不一致的信息。 + + + Choose Output Directory + 選擇輸出目錄 + + + LameXP + LameXP + + + Error: The selected output directory is not writable! + 錯誤: 所選的輸出目錄不是可寫的 ! + + + Low Diskspace Warning + 低磁盤空間警告 + + + There are less than %1 GB of free diskspace available in the selected output directory. + 還有 %1GB 的可用磁盤空間小于所選的輸出目錄中可用。 + + + It is highly recommend to free up more diskspace before proceeding with the import! + 它是以釋放更多磁盤空間進行導入之前強烈推薦 ! + + + Analyzing file(s), please wait... + 分析文件,請稍候... + + + Splitting file(s), please wait... + 掃描文件夾文件請稍候... + + + Error: The selected output directory could not be created! + 錯誤: 無法創建所選的輸出目錄 ! + + + An unexpected error has occured while splitting the Cue Sheet! + 掃描提示工作表時出現了意外的錯誤 ! + + + Imported %1 track(s) from the Cue Sheet and skipped %2 track(s). + 導入 %1 從提示表軌道,并跳過 %2 軌道。 + + + Cue Sheet Completed + 完成提示表 + + + Analysis Failed + 分析失敗 + + + Warning: The format of some of the input files could not be determined! + 警告: 有些輸入文件格式無法確定 ! + + + Continue Anyway + 繼續 + + + Abort + 中止 + + + Process was aborted by the user after %1 track(s)! + 用戶終止了 %1 個軌道進程 ! + + + (System Default) + + + + Select ANSI Codepage for Cue Sheet file: + + + + OK + 確定 + + + Cancel + 取消 + + + Unknown Artist + + + + Unknown Album + 未知專輯 + + + + CueSheetImport + + Import Cue Sheet + 導入提示表 + + + Output Directory + 輸出目錄 + + + Browse... + 瀏覽... + + + Discard + 放棄 + + + Existing Source File + 現有源文件 + + + Missing Source File (Tracks will be skipped!) + 缺少源文件(軌道將跳轉 !) + + + Load a different Cue Sheet + 加載不同的提示頁面 + + + Artist: + + + + Album: + + + + + CueSheetModel + + No. + + + + File / Track + 文件 / 軌道 + + + Index + 索引 + + + File %1 + 文件 %1 + + + Track %1 + 軌道 %1 + + + Unknown Artist + 未知的藝術家 + + + Unknown Title + 未知的標題 + + + Duration + 持續時間 + + + + DecoderRegistry + + All supported types + 所有受支持的類型 + + + All files + 所有文件 + + + Playlists + 播放列表 + + + + DiskObserverThread + + Low diskspace on drive '%1' detected (only %2 MB are free), problems can occur! + 低驅動器%1磁盤空間檢測(只有%2MB的是可用的),可能會發生問題! + + + + DropBox + + LameXP - DropBox + LameXP - 投放箱 + + + LameXP DropBox + LameXP 投放箱 + + + You can add files to LameXP via Drag&amp;Drop here! + 您可以將文件拖放添加到 LameXP,拖放到此處 ! + + + (Right-click to close the DropBox) + (用鼠標右鍵單擊關閉投放箱) + + + + FileListModel + + Title + 標題 + + + Full Path + 完整路徑 + + + + LogViewDialog + + Log View + 日志顯示 + + + Discard + 放棄 + + + Save to File... + 保存到文件... + + + Copy to Clipboard + 復制到剪貼板 + + + Log File + 日志文件 + + + The log file shows detailed information about the selected job. + 日志文件顯示有關所選項目的詳細信息。 + + + + MainWindow + + LameXP - Audio Encoder Front-end + LameXP - 前端音頻編碼器 + + + Source Files + 源文件 + + + Add File(s) + 增加文件 + + + Remove + 移除 + + + Clear + 清除 + + + Show Details + 顯示詳細 + + + Output Directory + 輸出目錄 + + + Goto Home Folder + 保存到桌面文件夾 + + + Goto Music Folder + 保存到音樂文件夾 + + + Goto Desktop Folder + 保存到桌面文件夾 + + + Make New Folder + 使用新文件夾 + + + Save output files to the same location where the input file is located + 輸出文件,保存在同一個地方輸入文件的位置 + + + Prepend relative source file path to output file + 源文件路徑內部前置相對輸出文件 + + + Meta Data + Meta 數據 + + + Meta Information + 元信息 + + + Edit + 編輯 + + + Note: Meta information you enter here will <u>supersede</u> data from the source! + 注:元信息你進入這里將會<u> 取代 </u>數據,從源頭上中的! + + + Reset + 重置 + + + Options + 選項 + + + Automatically generate playlist file (.m3u) + 播放列表文件自動生成 (.m3u) + + + Write meta information to encoded files + 元信息編碼文件寫 + + + Compression + 壓縮 + + + Encoder / Format + 編碼器/格式 + + + Lame MP3 + Lame MP3 + + + Ogg Vorbis + Ogg Vorbis + + + Wave (PCM) + Wav (PCM) + + + FLAC + FLAC + + + Rate Control Method + 率控制方法 + + + Quality-based (VBR) + 質量(VBR) + + + Average Bitrate (ABR) + 平均比特率(ABR) + + + Constant Bitrate (CBR) + 不變的比特率(CBR) + + + Quality / Bitrate + 質量/比特率 + + + Minimum + 最低 + + + Maximum + 最高 + + + Advanced Options + 高級選項 + + + Encode Now! + 開始編碼! + + + About... + 關于... + + + Exit Program + 退出程序 + + + File + 文件 + + + ? + 其它 + + + View + 視圖 + + + Style + 樣式 + + + Language + 語言 + + + Tools + 工具 + + + Configuration + 配置 + + + Quit + 退出 + + + Open File(s)... + 打開文件(s)... + + + Visit Official Web-Site + 請訪問官方網站 + + + Check for Updates + 檢查更新 + + + Open Folder... + 打開文件夾... + + + Clear All + 全部清除 + + + Plastique + 平淡 + + + Cleanlooks + 干凈外觀 + + + Windows Vista ("Aero") + Windows Vista ("Aero") + + + Windows Classic + Windows 經典 + + + Windows XP ("Luna") + Windows XP ("Luna") + + + Disable Update Reminder + 禁用更新提醒 + + + Disable Sound Effects + 禁用聲音效果 + + + Install WMA Decoder + 安裝 WMA 解碼器 + + + Disable Nero AAC Notifications + 禁用 Nero AAC 通知 + + + Show DropBox + 顯示投放箱 + + + From File... + 從文件... + + + Adding file(s), please wait... + 添加文件,請稍等... + + + Access Denied + 訪問被拒絕 + + + %1 file(s) have been rejected, because read access was not granted! + %1 文件都被拒絕,因為讀訪問權限不允許! + + + This usually means the file is locked by another process. + 通常這意味著該文件由另一個進程鎖定。 + + + Files Rejected + 文件被拒絕 + + + %1 file(s) have been rejected, because the file format could not be recognized! + %1 文件被拒絕,因為文件格式分辨不出! + + + This usually means the file is damaged or the file format is not supported. + 通常,這意味著他們都已損壞,或不受支持的格式。 + + + You can drop in audio files here! + 你可以把音頻文件拖放到這里 ! + + + Open File in External Application + 用外部應用程序中打開文件 + + + Browse File Location + 瀏覽文件的位置 + + + Browse Selected Folder + 瀏覽選定的文件夾 + + + License Declined + 拒絕許可 + + + You have declined the license. Consequently the application will exit now! + 您已拒絕許可。因此該應用程序將立即退出 ! + + + Goodbye! + 再見 + + + LameXP - Expired + LameXP - 過期 + + + This demo (pre-release) version of LameXP has expired at %1. + 此預發行的演示版本 LameXP 已在 %1 過期。 + + + LameXP is free software and release versions won't expire. + LameXP 是一個免費的軟件和版本不會過期。 + + + Exit Program + 退出程序 + + + Urgent Update + 緊急更新 + + + Your version of LameXP is more than a year old. Time for an update! + 您的版本的 LameXP 超過一年的更新時間 ! + + + Update Reminder + 更新提醒 + + + Your last update check was more than 14 days ago. Check for updates now? + 您上次更新檢查了超過 14 天。立即檢查更新嗎? + + + Your did not check for LameXP updates yet. Check for updates now? + 您沒有檢查 LameXP 是否有新版本。立即檢查更新嗎? + + + Postpone + 推遲 + + + LameXP detected that your version of the Nero AAC encoder is outdated! + LameXP 檢測到您的版本的 Nero AAC 編碼器已經過時了 ! + + + The current version available is %1 (or later), but you still have version %2 installed. + 可用的新版本是 %1 (或更高版本),但你仍有版本安裝 %2。 + + + You can download the latest version of the Nero AAC encoder from the Nero website at: + 您可以從 Nero 網址下載最新版本的 Nero AAC 編碼器 + + + AAC Encoder Outdated + 過時的 AAC 編碼器 + + + The Nero AAC encoder could not be found. AAC encoding support will be disabled. + 找不到 Nero AAC 編碼器。可能 AAC 編碼器被禁用。 + + + Please put 'neroAacEnc.exe', 'neroAacDec.exe' and 'neroAacTag.exe' into the LameXP directory! + 請到把 'neroAacEnc.exe', 'neroAacDec.exe' 和 'neroAacTag.exe' 放入 LameXP 目錄! + + + Your LameXP directory is located here: + 您的 LameXP 目錄位于此處 + + + You can download the Nero AAC encoder for free from the official Nero website at: + 您可以從 Nero 官方網站上免費下載 Nero AAC 編碼器 + + + AAC Support Disabled + AAC 支持被禁用 + + + LameXP + LameXP + + + You must add at least one file to the list before proceeding! + 您必須在繼續之前列表中添加至少一個文件 ! + + + Low Diskspace Warning + 低磁盤空間警告 + + + There are less than %1 GB of free diskspace available on your system's TEMP folder. + %1 GB 的可用磁盤空間小于上有您的系統 TEMP 文件夾。 + + + It is highly recommend to free up more diskspace before proceeding with the encode! + 進行編碼之前強烈推薦釋放更多磁盤空間 ! + + + Your TEMP folder is located at: + 您的 TEMP 文件夾位于 + + + Abort Encoding Process + 中止編碼過程 + + + Clean Disk Now + 現在清理磁盤 + + + Ignore + 忽略 + + + Low Diskspace + 低磁盤空間 + + + You are proceeding with low diskspace. Problems might occur! + 正在進行處于低的磁盤空間,可能會出現問題 ! + + + Sorry, an unsupported encoder has been chosen! + 對不起,選擇了一個不受支持的編碼器 ! + + + Cannot write to the selected output directory. + 無法寫入所選的輸出目錄。 + + + Please choose a different directory! + 請選擇一個不同的目錄 ! + + + Add file(s) + 添加文件(s) + + + Load Translation + 加載翻譯 + + + Translation Files + 翻譯文件 + + + New Folder + 新文件夾 + + + Enter the name of the new folder: + 輸入新文件夾的名稱 + + + Failed to create folder + 未能創建文件夾 + + + The new folder could not be created: + 無法創建新的文件夾: + + + Drive is read-only or insufficient access rights! + 驅動器是只讀的或沒有足夠的訪問權限 ! + + + Already Running + 已在運行 + + + LameXP is already running, please use the running instance! + LameXP 已在運行,請使用當前運行的實例 ! + + + Quality Level %1 + 質量級別 %1 + + + Compression %1 + 壓縮 %1 + + + Uncompressed + 未壓縮 + + + Do you really want to disable the update reminder? + 確實要禁用更新提醒嗎? + + + Yes + + + + No + + + + The update reminder has been disabled. + 更新提醒已被禁用。 + + + Please remember to check for updates at regular intervals! + 請記住檢查間隔定期更新! + + + The update reminder has been re-enabled. + 更新提醒已重新啟用。 + + + Do you really want to disable all sound effects? + 確實要禁用所有聲音效果嗎? + + + Sound Effects + 聲音效果 + + + All sound effects have been disabled. + 已禁用所有的聲音效果。 + + + The sound effects have been re-enabled. + 聲音效果已經重新啟用。 + + + Nero AAC Notifications + Nero AAC 通知 + + + Do you really want to disable all Nero AAC Encoder notifications? + 確實要禁用所有 Nero AAC 編碼器通知嗎? + + + All Nero AAC Encoder notifications have been disabled. + 已禁用所有 Nero AAC 編碼器通知。 + + + The Nero AAC Encoder notifications have been re-enabled. + Nero AAC 編碼器通知已重新啟用。 + + + Cancel + 取消 + + + n/a + n/a + + + LAME Algorithm Quality + LAME算法質量 + + + Faster Processing + 更快的處理 + + + Better quality + 更好的質量 + + + Best Quality (Very Slow) + 最好的質量(很慢) + + + High Quality (Recommended) + 高質量(推薦) + + + Average Quality (Default) + 平均質量 (默認值) + + + Low Quality (Fast) + 低質量 (快速) + + + Poor Quality (Very Fast) + 質量差(非常快) + + + Bitrate Management (LAME and OggEnc2) + 比特率管理 (LAME 和 OggEnc2) + + + Enable Bitrate Management + 啟用管理比特率 + + + Minimum (kbps): + 最低 (kbps): + + + Maximum (kbps): + 最高 (kbps): + + + Channel Mode / Sampling Rate + 聲道 / 采樣率 + + + Auto Select (Default) + 自動選擇 (默認值) + + + Joint Stereo + 聯合立體聲 + + + Forced Joint Stereo + 強制聯合立體聲 + + + Simple + 簡單 + + + Dual Mono + 雙聲道 + + + Mono + 單聲道 + + + MP3 Channel Mode: + MP3 通道模式: + + + 16.000 + 16.000 + + + 22.050 + 22.050 + + + 24.000 + 24.000 + + + 32.000 + 32.000 + + + 44.100 + 44.100 + + + 48.000 + 48.000 + + + Sampling Rate (Hz): + 采樣率 (Hz): + + + Enable 2-Pass Processing (ABR Mode) + 啟用第二次處理 (ABR 模式) + + + Select AAC Profile: + 選擇 AAC 配置文件: + + + Enforce LC-AAC + 強制 LC AAC + + + Enforce HE-AAC (AAC + SBR) + 強制 HE-AAC (AAC + SBR) + + + Auto Select (Recommended) + 自動選擇(推薦) + + + Enforce HE-AAC v2 (AAC + SBR + PS) + 強制 HE-AAC v2 (AAC + SBR + PS) + + + Volume Normalization + 音量標準化 + + + Enable Normalization Filter + 啟用標準化過濾器 + + + Peak Volume (dB): + 峰值音量(dB): + + + Reset Advanced Options + 復位高級選項 + + + Encode! + 編碼 + + + Tone Adjustment + 音調調整 + + + Adjust Treble (dB): + 調整高音(dB): + + + Adjust Bass (dB): + 調整低音(dB): + + + Disable Shell Integration + 禁用外殼(shell)程序集成 + + + Shell Integration + 外殼(shell)程序集成 + + + Do you really want to disable the LameXP shell integration? + 確實要禁用 LameXP 外殼(shell)程序集成嗎? + + + The LameXP shell integration has been disabled. + LameXP 外殼(shell)程序集成已被禁用。 + + + The LameXP shell integration has been re-enabled. + LameXP 外殼(shell)程序集成已重新啟用。 + + + Custom Encoder Parameters + 編碼器的自定義參數 + + + OggEnc2: + OggEnc2: + + + FLAC: + FLAC: + + + Warning: Custom parameters won't be checked at all. Use them at your own risk !!! + 警告: 自定義參數將不會被檢查過。使用它們需要您自擔風險!!! + + + Multi-Threading + 多線程處理 + + + Choose the number of parallel instances based on the number of CPU cores (Recommended) + 選擇基于 CPU 核心 (推薦) 的數量,并行實例的數量。 + + + Fewer Instances + 更少的實例 + + + More Instances + 更多實例 + + + %1 Instance(s) + %1 個實例 + + + Temp Directory + 臨時目錄 + + + Browse... + 瀏覽... + + + Store temporary files in your system's default TEMP directory (Recommended) + 將臨時文件存儲在您的系統默認的 TEMP 目錄 (推薦) + + + Not Found + 找不到 + + + Your currently selected TEMP folder does not exist anymore: + 您目前選定的 TEMP 文件夾不再存在: + + + Restore Default + 還原默認設置 + + + Cannot write to the selected directory. Please choose another directory! + 無法寫入所選目錄。請選擇另一個目錄 ! + + + %1 file(s) have been rejected, because they are dummy CDDA files! + %1 個文件已被拒絕,因為它們是虛擬的 CDDA 文件 ! + + + We recommend using %1 for that purpose. + 我們建議為此目的使用 %1。 + + + Sorry, LameXP cannot extract audio tracks from an Audio-CD at present. + 對不起,LameXP 目前無法從音頻 CD 提取音頻軌道。 + + + Frequently Asked Questions + 常問的問題 + + + Changelog + 更改日志 + + + Translator's Guide + 翻譯指南 + + + Help && Support + 幫助 && 支持 + + + Open Folder Recursively... + 打開文件夾以遞歸方式... + + + Scanning folder(s) for files, please wait... + 掃描文件的文件夾中,請稍候... + + + Add Folder + 添加文件夾 + + + Check for Beta Updates + 檢查測試版更新 + + + Beta Updates + 試用版更新 + + + Do you really want LameXP to check for Beta (pre-release) updates? + 是否確實要檢查 LameXP 測試版更新? + + + LameXP will check for Beta (pre-release) updates from now on. + LameXP 將檢查現在的測試版更新。 + + + Check Now + 現在檢查 + + + Discard + 放棄 + + + LameXP will <i>not</i> check for Beta (pre-release) updates from now on. + LameXP 將 <i> 從今以后 </i> 不檢查測試版更新。 + + + Aften A/52 + Aften A/52 + + + Lame MP3: + Lame MP3: + + + Aften A/52: + Aften A/52: + + + Aften A/52 Options + Aften A/52 選項 + + + Film Light + 膠卷淺色 + + + Film Standard + 膠卷標準 + + + Music Light + 音樂淺色 + + + Music Standard + 音樂標準 + + + Speech + 語音 + + + None (Default) + 無 (默認) + + + Auto Select + 自動選擇 + + + 1+1 (Ch1,Ch2) + 1+1 (Ch1,Ch2) + + + 1/0 (C) + 1/0 (C) + + + 2/0 (L,R) + 2/0 (L,R) + + + 3/0 (L,R,C) + 3/0 (L,R,C) + + + 2/1 (L,R,S) + 2/1 (L,R,S) + + + 3/1 (L,R,C,S) + 3/1 (L,R,C,S) + + + 2/2 (L,R,SL,SR) + 2/2 (L,R,SL,SR) + + + 3/2 (L,R,C,SL,SR) + 3/2 (L,R,C,SL,SR) + + + Audio Coding Mode: + 音頻編碼模式: + + + Dynamic Range Compression: + 動態范圍壓縮: + + + Fast Bit Allocation (Less Accurate) + 快速的分配位 (不太準確) + + + Exponent Search Size: + 指數搜索大小 + + + Don't Show Again + 不要再顯示 + + + Import Cue Sheet + 導入提示表 + + + Open Cue Sheet + 打開提示表 + + + Cue Sheet File + 提示表文件 + + + CDDA Files + CDDA 文件 + + + Cue Sheet + 提示表 + + + %1 file(s) have been rejected, because they appear to be Cue Sheet images! + %1 個文件已被拒絕,因為他們似乎是提示表映像文件! + + + Please use LameXP's Cue Sheet wizard for importing Cue Sheet files. + 導入CUE文件文件,請使用LameXP的提示表向導。 + + + It seems that a bogus anti-virus software is slowing down the startup of LameXP. + 好像一個防病毒軟件正在放緩的 LameXP 的啟動。 + + + Please refer to the %1 document for details and solutions! + 請參閱有關詳細信息和解決方案的 %1 文件 ! + + + Slow Startup + 啟動速度慢 + + + Disable Slow Startup Notifications + 禁用緩慢啟動通知 + + + Slow Startup Notifications + 開戶啟動緩慢通知 + + + Do you really want to disable the slow startup notifications? + 確實要禁用的啟動速度慢的通知嗎? + + + The slow startup notifications have been disabled. + 已禁用的啟動速度慢的通知。 + + + The slow startup notifications have been re-enabled. + 啟動速度慢的通知已重新啟用。 + + + Rename Output Files + 重命名輸出文件 + + + Rename Output Files + 重命名輸出文件 + + + Track number with leading zero + 軌道數字前有零 + + + Track title + 軌道標題 + + + Artist name + 藝術家姓名 + + + Album name + 專輯名稱 + + + Year with (at least) four digits + 年至少是四位數 + + + Comment + 評論 + + + Rename Macros + 重命名宏 + + + You can enter custom parameters here! + 您可以輸入自定義參數在這里! + + + Enter the pattern to rename the output files here! + 輸入模式重命名輸出文件! + + + <a href="reset">Reset</a> &nbsp; <a href="#">Show List of Macros</a> + <a href="reset">復位</a> &nbsp; <a href="#">顯示宏的名單</a> + + + File name without extension + 不帶擴展名的文件名稱 + + + Rename Pattern: + 重命名模式: + + + Example File Name: + 示例文件名稱: + + + Characters forbidden in file names: + 禁止在文件名稱中的字符: + + + Enforce Stereo Downmix of Surround (Multi-Channel) Sources + 強制環繞立體聲縮混(多通道)來源 + + + Bookmark Current Output Folder + 收藏當前輸出文件夾 + + + MPEG-4 AAC + MPEG-4 AAC + + + AAC Encoder-Options + AAC 編碼器-選項 + + + MPEG-4 AAC: + MPEG-4 AAC: + + + Warning: Audio quality will be very poor. Please do <u>not</u> complain about audio quality! + 警告: 音頻質量會很差。請<u>不要</u>抱怨音頻質量差! + + + Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed! + 警告: 處理速度會很慢。請<u>不要</u>抱怨處理速度慢! + + + Peak Level + 峰值水平 + + + RMS Level + RMS 水平 + + + None + + + + Equalization Mode: + 均衡模式: + + + DEMO VERSION + 演示版 + + + Hibernate Computer On Shutdown + 休眠計算機關機 + + + Hibernate Computer + 計算機休眠 + + + Do you really want the computer to be hibernated on shutdown? + 你真的要電腦休眠關機? + + + LameXP will hibernate the computer on shutdown from now on. + LameXP 將從現在的休眠的計算機關機。 + + + LameXP will <i>not</i> hibernate the computer on shutdown from now on. + LameXP 從今以后 <i>不會<\/i> 休眠的計算機關機。 + + + (Hint: Please ignore the name of the downloaded ZIP file and check the included 'changelog.txt' instead!) + (提示: 請忽略下載的 ZIP 文件的名稱,而是檢查包括 'changelog.txt'!) + + + Skipping update check this time, please be patient... + + + + + MetaInfo + + Meta Information + Meta 信息 + + + Edit + 編輯 + + + Close + 關閉 + + + Artwork + 原圖 + + + + MetaInfoDialog + + Meta Information + Meta 信息 + + + The following meta information have been extracted from the original file. + 已從原始文件提取了以下的 Meta 信息。 + + + Load Artwork From File + 從文件加載的原圖 + + + Clear Artwork + 清除原圖 + + + Load Artwork + 加載原圖 + + + Artwork Error + 原圖錯誤 + + + Sorry, failed to load artwork from selected file! + 對不起,無法從所選的文件加載原圖! + + + Edit this Information + 編輯此信息 + + + Copy everything to Meta Info tab + 將所有內容復制到 Meta 信息選項卡 + + + Clear all Meta Info + 清除所有的 Meta 信息 + + + Meta Information: %1 + + + + + MetaInfoModel + + Full Path + 完整路徑 + + + Format + 格式 + + + Container + 容器 + + + Compression + 壓縮 + + + Duration + 持續時間 + + + Title + 標題 + + + Artist + 藝術家 + + + Album + 專輯 + + + Genre + 風格 + + + Year + + + + Position + 位置 + + + Generate from list position + 從列表的位置中生成 + + + Comment + 評論 + + + Property + 屬性 + + + Value + + + + Unspecified + 未指定 + + + Edit Title + 編輯標題 + + + Please enter the title for this file: + 請輸入此文件的標題 + + + The title must not be empty. Generating title from file name! + 標題不能為空。從文件的名稱生成標題 ! + + + Edit Artist + 編輯藝術家 + + + Please enter the artist for this file: + 請輸入此文件的藝術家 + + + Edit Album + 編輯專輯 + + + Please enter the album for this file: + 請輸入此文件的專輯: + + + Edit Genre + 編輯風格 + + + Please enter the genre for this file: + 請輸入此文件風格 + + + Edit Year + 編輯年份 + + + Please enter the year for this file: + 請輸入此文件的年份 + + + Edit Position + 編輯位置 + + + Please enter the position (track no.) for this file: + 請輸入此文件的位置 (軌道號) + + + Unspecified (copy from source file) + 未指定 (復制源代碼文件的副本) + + + Edit Comment + 編輯注釋 + + + Please enter the comment for this file: + 請輸入此文件的注釋: + + + Encoded with LameXP + 編碼與LameXP + + + Not editable + 不可編輯 + + + Sorry, this property of the source file cannot be edited! + 對不起,不能編輯此屬性的源文件 ! + + + OK + 確定 + + + Cancel + 取消 + + + Not Specified + 未指定 + + + Unknown + 未知 + + + + ProcessThread + + Starting... + 正在啟動... + + + Not found! + 找不到! + + + The format of this file is NOT supported: + 此文件的格式不受支持: + + + Container Format: + 容器格式: + + + Audio Format: + 音頻格式: + + + Unsupported! + 不受支持! + + + Done. + 完成 + + + Aborted! + 中止! + + + Failed! + 失敗! + + + Encoding + 編碼 + + + Filtering + 過濾 + + + Decoding + 解碼 + + + The source audio file could not be found: + 找不到源音頻文件: + + + The source audio file could not be opened for reading: + 無法打開源音頻文件進行讀取: + + + The target output directory doesn't exist and could NOT be created: + 目標輸出目錄不存在,無法創建: + + + The target output directory is NOT writable: + 目標輸出目錄不是可寫: + + + Unknown File Name + 未知文件名稱 + + + Unknown Title + 未知標題 + + + Unknown Artist + 未知藝術家 + + + Unknown Album + 未知專輯 + + + Unknown Comment + 未知評論 + + + + ProcessingDialog + + LameXP - Processing + LameXP - 處理 + + + Initializing, please wait... + 正在初始化,請稍候... + + + Abort + 中止 + + + Close + 關閉 + + + Show details for selected job + 顯示選定的項目的詳細信息 + + + Encoding Files + 文件編碼 + + + Your files are being encoded, please be patient... + 正在為您的文件編碼,請耐心等待... + + + Encoding files, please wait... + 正在編碼文件,請稍候... + + + Aborted! Waiting for running jobs to terminate... + 中止! 正在等待運行項目終止... + + + Encoding: %1 files of %2 completed so far, please wait... + 編碼:到目前為止,已完成的 %2/%1 ,請稍候... + + + Creating the playlist file, please wait... + 創建播放列表文件,請稍候... + + + Process was aborted by the user after %1 file(s)! + 進程被用戶終止了 %1 個文件 ! + + + LameXP - Aborted + LameXP - 中止 + + + Process was aborted by the user. + 進程被用戶終止。 + + + Error: %1 of %2 files failed. Double-click failed items for detailed information! + 錯誤: %1 的 %2 文件失敗。雙擊失敗的項目的詳細信息 ! + + + LameXP - Error + LameXP - 錯誤 + + + At least one file has failed! + 至少一個文件失敗 ! + + + All files completed successfully. + 已成功完成的所有文件。 + + + LameXP - Done + LameXP - 完成了 + + + Playlist creation failed + 播放列表創建失敗 + + + The playlist file could not be created: + 無法創建播放列表文件: + + + Process was aborted prematurely by the user! + 用戶提前中止了進程 ! + + + Multi-threading enabled: Running %1 instances in parallel! + 多線程啟用: 以并行方式運行 %1 實例 ! + + + Browse Output File Location + 瀏覽輸出文件的位置 + + + Shutdown the computer as soon as all files have been converted + 所有文件都轉換后自動關閉計算機 + + + Warning: Computer will shutdown in %1 seconds... + 警告:計算機將在 %1 秒關機... + + + Cancel Shutdown + 取消關機 + + + CPU Usage (Overall) + + + + Physical RAM Usage + + + + Free Disk Space (Temp Folder) + + + + Process finished after %1. + + + + hour(s) + + + + minute(s) + + + + second(s) + + + + millisecond(s) + + + + + ProgressModel + + Job + 項目 + + + Status + 狀態 + + + + QApplication + + Executable '%1' doesn't support Windows compatibility mode. + 可執行文件'%1'不支持 Windows 兼容性模式。 + + + Executable '%1' requires Qt v%2, but found Qt v%3. + 可執行文件'%1'需要 Qt v2%,但發現 Qt v%3。 + + + Executable '%1' requires Windows 2000 or later. + 可執行文件 '%1' 需要 Windows 2000 或更高版本。 + + + Executable '%1' was built for Qt '%2', but found Qt '%3'. + + + + + ShellIntegration + + Audio File supported by LameXP + LameXP支持的音頻文件 + + + Convert this file with LameXP v%1 + 轉換此文件與LameXP v%1 + + + + SplashScreen + + LameXP is launching... + LameXP 正在啟動... + + + + UpdateDialog + + LameXP Update Manager + LameXP 更新管理器 + + + Please wait... + 請稍候。。。 + + + Latest version available: + 最新版本: + + + Currently installed version: + 安裝當前的版本: + + + Retry + 重試 + + + Show Log + 顯示日志 + + + Download && Install + 下載 && 安裝 + + + Close + 關閉 + + + Build + 生成 + + + Unknown + 未知 + + + Testing your internet connection, please wait... + 測試您的 Internet 連接,請稍候... + + + Network connectivity test has failed! + 網絡連接測試失敗 ! + + + Please make sure your internet connection is working properly and try again. + 請確保您的網絡連接正常工作,然后再試。 + + + Checking for new updates online, please wait... + 在線更新檢查新的版本,請稍候... + + + Failed to fetch update information from server! + 無法從服務器獲取更新信息 ! + + + Sorry, the update server might be busy at this time. Plase try again later. + 抱歉,更新服務器可能在這一次忙。請稍后再試。 + + + More information available at: + 在可用的詳細信息: + + + A new version of LameXP is available! + 發現一個可用的新版本 LameXP ! + + + We highly recommend all users to install this update as soon as possible. + 我們強烈建議所有的用戶,要盡快安裝此更新。 + + + No new updates available at this time. + 這個時候沒有發現新的可用更新。 + + + Your version of LameXP is still up-to-date. Please check for updates regularly! + 您的 LameXP 版本是仍然最新的。請定期檢查更新 ! + + + Your version appears to be newer than the latest release. + 您的版本似乎是比最新的版本新。 + + + This usually indicates your are currently using a pre-release version of LameXP. + 這通常表示您當前正在使用的 LameXP 預發布版。 + + + Update is being downloaded, please be patient... + 正在下載更新,請耐心等待... + + + Update ready to install. Applicaion will quit... + 準備好安裝更新。應用程序將退出... + + + Update failed. Please try again or download manually! + 更新失敗。請再試一次或手動下載 ! + + + It appears that the computer currently is offline! + 看來,目前的計算機處于脫機狀態! + + + Please make sure your computer is connected to the internet and try again. + 請確保您的計算機連接到 Internet,然后重試。 + + + diff --git a/etc/Translation/LameXP_ZH.ts b/etc/Translation/LameXP_ZH.ts index 5978e568..cff33322 100644 --- a/etc/Translation/LameXP_ZH.ts +++ b/etc/Translation/LameXP_ZH.ts @@ -111,10 +111,6 @@ Released under the terms of the GNU General Public License. 以下发布的GNU通用公共许可证的条款。 - - LameXP as a whole is copyrighted by LoRd_MuldeR. The copyright of third-party software used in LameXP belongs to the individual authors. - LameXP作为一个整体的版权归LoRd_MuldeR。在LameXP使用第三方软件著作权属于作者本人。 - LameXP - Audio Encoder Front-end LameXP - 前端音频编码器 @@ -227,6 +223,10 @@ avs2wav - Avisynth to Wave Audio converter avs2wav - Avisynth到WAV音频转换器 + + LameXP as a whole is copyrighted by LoRd_MuldeR. The copyright of third-party software used in LameXP belongs to the individual authors. + + AudioFileModel @@ -1675,7 +1675,7 @@ Warning: Audio quality will be very poor. Please do <u>not</u> complain about audio quality! - 警告: 音频质量会很差。请<u>不要</u> 抱怨音频质量差! + 警告: 音频质量会很差。请<u>不要</u>抱怨音频质量差! Warning: Processing speed will be very slow. Please do <u>not</u> complain about processing speed! diff --git a/res/Flags.qrc b/res/Flags.qrc index db0d8b1b..95db54a0 100644 --- a/res/Flags.qrc +++ b/res/Flags.qrc @@ -9,6 +9,7 @@ flags/kr.png flags/pl.png flags/ru.png + flags/tw.png flags/uk.png flags/zh.png diff --git a/res/Localization.qrc b/res/Localization.qrc index 695720e4..97e8e402 100644 --- a/res/Localization.qrc +++ b/res/Localization.qrc @@ -15,6 +15,8 @@ localization/LameXP_PL.qm.txt localization/LameXP_RU.qm localization/LameXP_RU.qm.txt + localization/LameXP_TW.qm + localization/LameXP_TW.qm.txt localization/LameXP_UK.qm localization/LameXP_UK.qm.txt localization/LameXP_ZH.qm diff --git a/res/flags/cn.png b/res/flags/zh.png similarity index 100% rename from res/flags/cn.png rename to res/flags/zh.png diff --git a/res/localization/LameXP_DE.qm.txt b/res/localization/LameXP_DE.qm.txt index a4d13650..2e532dc0 100644 --- a/res/localization/LameXP_DE.qm.txt +++ b/res/localization/LameXP_DE.qm.txt @@ -1 +1 @@ -42,Deutsch \ No newline at end of file +42,0,Deutsch \ No newline at end of file diff --git a/res/localization/LameXP_ES.qm.txt b/res/localization/LameXP_ES.qm.txt index 419bf73a..a67b7359 100644 --- a/res/localization/LameXP_ES.qm.txt +++ b/res/localization/LameXP_ES.qm.txt @@ -1 +1 @@ -111,Español \ No newline at end of file +111,0,Español \ No newline at end of file diff --git a/res/localization/LameXP_FR.qm.txt b/res/localization/LameXP_FR.qm.txt index 17f20699..7f101ce0 100644 --- a/res/localization/LameXP_FR.qm.txt +++ b/res/localization/LameXP_FR.qm.txt @@ -1 +1 @@ -37,Française \ No newline at end of file +37,0,Française \ No newline at end of file diff --git a/res/localization/LameXP_IT.qm.txt b/res/localization/LameXP_IT.qm.txt index 4bdd8822..885a2c84 100644 --- a/res/localization/LameXP_IT.qm.txt +++ b/res/localization/LameXP_IT.qm.txt @@ -1 +1 @@ -58,Italiano \ No newline at end of file +58,0,Italiano \ No newline at end of file diff --git a/res/localization/LameXP_KR.qm.txt b/res/localization/LameXP_KR.qm.txt index a2445ae5..6352b87e 100644 --- a/res/localization/LameXP_KR.qm.txt +++ b/res/localization/LameXP_KR.qm.txt @@ -1 +1 @@ -66,한국어 \ No newline at end of file +66,0,한국어 \ No newline at end of file diff --git a/res/localization/LameXP_PL.qm.txt b/res/localization/LameXP_PL.qm.txt index ac605960..64f7d964 100644 --- a/res/localization/LameXP_PL.qm.txt +++ b/res/localization/LameXP_PL.qm.txt @@ -1 +1 @@ -90,Polski \ No newline at end of file +90,0,Polski \ No newline at end of file diff --git a/res/localization/LameXP_RU.qm.txt b/res/localization/LameXP_RU.qm.txt index b92a4f99..889c7511 100644 --- a/res/localization/LameXP_RU.qm.txt +++ b/res/localization/LameXP_RU.qm.txt @@ -1 +1 @@ -96,Русский \ No newline at end of file +96,0,Русский \ No newline at end of file diff --git a/res/localization/LameXP_TW.qm b/res/localization/LameXP_TW.qm new file mode 100644 index 0000000000000000000000000000000000000000..6d93f7fa4a9cf6629e21c6b88d9f32937a2bd8c8 GIT binary patch literal 50784 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ⅈo8UAer1 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 O4foR>4~iKvZvO`~t|e9g delta 4776 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 diff --git a/res/localization/LameXP_ZH.qm.txt b/res/localization/LameXP_ZH.qm.txt index aae3ecef..92b22a77 100644 --- a/res/localization/LameXP_ZH.qm.txt +++ b/res/localization/LameXP_ZH.qm.txt @@ -1 +1 @@ -25,普通话 \ No newline at end of file +25,5,简体中文 \ No newline at end of file diff --git a/src/Dialog_About.cpp b/src/Dialog_About.cpp index 0f48d215..1a3b5ee0 100644 --- a/src/Dialog_About.cpp +++ b/src/Dialog_About.cpp @@ -67,8 +67,9 @@ g_lamexp_contributors[] = {"pl", L"Polski", L"Sir Daniel K", "Sir.Daniel.K@gmail.com"}, {"ru", L"Русский", L"Neonailol", "Neonailol@gmail.com" }, {"", L"", L"Иван Митин", "bardak@inbox.ru" }, + {"tw", L"繁体中文", L"456Vv", "123@456vv.com" }, {"uk", L"Українська", L"Arestarh", "Arestarh@ukr.net" }, - {"zh", L"普通话", L"456Vv", "123@456vv.com" }, + {"zh", L"简体中文", L"456Vv", "123@456vv.com" }, {NULL, NULL, NULL, NULL} }; diff --git a/src/Global.cpp b/src/Global.cpp index 543a0db2..47aefddf 100644 --- a/src/Global.cpp +++ b/src/Global.cpp @@ -186,6 +186,7 @@ static struct QMap files; QMap names; QMap sysid; + QMap scrpt; } g_lamexp_translation; @@ -1251,7 +1252,7 @@ const QString lamexp_version2string(const QString &pattern, unsigned int version /* * Register a new translation */ -bool lamexp_translation_register(const QString &langId, const QString &qmFile, const QString &langName, unsigned int &systemId) +bool lamexp_translation_register(const QString &langId, const QString &qmFile, const QString &langName, unsigned int &systemId, unsigned int &script) { if(qmFile.isEmpty() || langName.isEmpty() || systemId < 1) { @@ -1261,6 +1262,7 @@ bool lamexp_translation_register(const QString &langId, const QString &qmFile, c g_lamexp_translation.files.insert(langId, qmFile); g_lamexp_translation.names.insert(langId, langName); g_lamexp_translation.sysid.insert(langId, systemId); + g_lamexp_translation.scrpt.insert(langId, script); return true; } @@ -1289,6 +1291,14 @@ unsigned int lamexp_translation_sysid(const QString &langId) return g_lamexp_translation.sysid.value(langId.toLower(), 0); } +/* + * Get translation script id + */ +unsigned int lamexp_translation_script(const QString &langId) +{ + return g_lamexp_translation.scrpt.value(langId.toLower(), 0); +} + /* * Install a new translator */ diff --git a/src/Global.h b/src/Global.h index 2fd5d2a3..cc850adf 100644 --- a/src/Global.h +++ b/src/Global.h @@ -111,9 +111,10 @@ bool lamexp_is_hibernation_supported(void); //Translation support QStringList lamexp_query_translations(void); -bool lamexp_translation_register(const QString &langId, const QString &qmFile, const QString &langName, unsigned int &systemId); +bool lamexp_translation_register(const QString &langId, const QString &qmFile, const QString &langName, unsigned int &systemId, unsigned int &script); QString lamexp_translation_name(const QString &language); unsigned int lamexp_translation_sysid(const QString &langId); +unsigned int lamexp_translation_script(const QString &langId); bool lamexp_install_translator_from_file(const QString &qmFile); bool lamexp_install_translator(const QString &language); QStringList lamexp_available_codepages(bool noAliases = true); diff --git a/src/Model_Settings.cpp b/src/Model_Settings.cpp index 7094f9a1..0e7a7d98 100644 --- a/src/Model_Settings.cpp +++ b/src/Model_Settings.cpp @@ -273,7 +273,7 @@ QString SettingsModel::defaultLanguage(void) //Check if we can use the default translation QLocale systemLanguage= QLocale::system(); - if(systemLanguage.language() == QLocale::English || systemLanguage.language() == QLocale::C) + if(systemLanguage.language() == QLocale::English /*|| systemLanguage.language() == QLocale::C*/) { m_defaultLanguage = new QString(LAMEXP_DEFAULT_LANGID); return LAMEXP_DEFAULT_LANGID; @@ -286,8 +286,12 @@ QString SettingsModel::defaultLanguage(void) QString currentLangId = languages.takeFirst(); if(lamexp_translation_sysid(currentLangId) == systemLanguage.language()) { - m_defaultLanguage = new QString(currentLangId); - return currentLangId; + unsigned int script = lamexp_translation_script(currentLangId); + if((script == 0) || (systemLanguage.script() == 0) || (script == systemLanguage.script())) + { + m_defaultLanguage = new QString(currentLangId); + return currentLangId; + } } } diff --git a/src/Thread_Initialization.cpp b/src/Thread_Initialization.cpp index 9f2a0e17..04eeaa93 100644 --- a/src/Thread_Initialization.cpp +++ b/src/Thread_Initialization.cpp @@ -246,8 +246,8 @@ void InitializationThread::initTranslations(void) while(!qmFiles.isEmpty()) { QString langId, langName; + unsigned int systemId = 0, scriptId = 0; QString qmFile = qmFiles.takeFirst(); - unsigned int systemId = 0; QRegExp langIdExp("LameXP_(\\w\\w)\\.qm", Qt::CaseInsensitive); if(langIdExp.indexIn(qmFile) >= 0) @@ -262,10 +262,11 @@ void InitializationThread::initTranslations(void) while(!stream.atEnd()) { QStringList langInfo = stream.readLine().simplified().split(",", QString::SkipEmptyParts); - if(langInfo.count() == 2) + if(langInfo.count() == 3) { systemId = langInfo.at(0).trimmed().toUInt(); - langName = langInfo.at(1).trimmed(); + scriptId = langInfo.at(1).trimmed().toUInt(); + langName = langInfo.at(2).trimmed(); break; } } @@ -274,7 +275,7 @@ void InitializationThread::initTranslations(void) if(!(langId.isEmpty() || langName.isEmpty() || systemId == 0)) { - if(lamexp_translation_register(langId, qmFile, langName, systemId)) + if(lamexp_translation_register(langId, qmFile, langName, systemId, scriptId)) { qDebug("Registering translation: %s = %s (%u)", qmFile.toUtf8().constData(), langName.toUtf8().constData(), systemId); } From d1803f1a3b60a440bb358fab333a6572ec1ce664 Mon Sep 17 00:00:00 2001 From: lordmulder Date: Mon, 19 Dec 2011 16:20:52 +0100 Subject: [PATCH 2/4] Print the "script" of the language file. --- etc/Translation/Blank.ts | 144 +++++++++++++++++----------------- etc/Translation/LameXP_PL.ts | 144 +++++++++++++++++----------------- src/Config.h | 2 +- src/Thread_Initialization.cpp | 2 +- 4 files changed, 146 insertions(+), 146 deletions(-) diff --git a/etc/Translation/Blank.ts b/etc/Translation/Blank.ts index 0ee855d7..c3441877 100644 --- a/etc/Translation/Blank.ts +++ b/etc/Translation/Blank.ts @@ -4,294 +4,294 @@ AboutDialog - + LameXP - Audio Encoder Front-end - + Please visit %1 for news and updates! - + Note: This demo (pre-release) version of LameXP will expire at %1. Still %2 days left. - + Note: LameXP is free software. Do <b>not</b> pay money to obtain or use LameXP! If some third-party website tries to make you pay for downloading LameXP, you should <b>not</b> respond to the offer !!! - + Special thanks go out to "John33" from %1 for his continuous support. - + About LameXP - + Show License Text - + Accept License - + Decline License - + 3rd Party S/W - + Contributors - + About Qt4 - - - + + + Discard - + The following people have contributed to LameXP: - + Translators: - + If you are willing to contribute a LameXP translation, feel free to contact us! - + About Contributors - + The following third-party software is used in LameXP: - + LAME - OpenSource mp3 Encoder - - - - - - - - - - - + + + + + + + + + + + Released under the terms of the GNU Lesser General Public License. - + OggEnc - Ogg Vorbis Encoder - + Completely open and patent-free audio encoding technology. - + Nero AAC Reference MPEG-4 Encoder - + Freeware state-of-the-art HE-AAC encoder with 2-Pass support. - + Available from vendor web-site as free download: - + Aften - A/52 audio encoder - + FLAC - Free Lossless Audio Codec - + Open and patent-free lossless audio compression technology. - + mpg123 - Fast Console MPEG Audio Player/Decoder - + FAAD - OpenSource MPEG-4 and MPEG-2 AAC Decoder - + Released under the terms of the GNU General Public License. - + AC3Filter Tools - AC3/DTS Decoder - + WavPack - Hybrid Lossless Compression - + Completely open audio compression format. - + Musepack - Living Audio Compression - + Monkey's Audio - Lossless Audio Compressor - + Freely available source code, simple SDK and non-restrictive licensing. - + Shorten - Lossless Audio Compressor - + Speex - Free Codec For Free Speech - + Open Source patent-free audio format designed for speech. - + The True Audio - Lossless Audio Codec - + ALAC Decoder - + Copyright (c) 2004 David Hammerton. Contributions by Cody Brocious. - + wma2wav - Dump WMA files to Wave Audio - + Copyright (c) 2011 LoRd_MuldeR <mulder2@gmx.de>. Some rights reserved. - + avs2wav - Avisynth to Wave Audio converter - + By Jory Stone <jcsston@toughguy.net> and LoRd_MuldeR <mulder2@gmx.de>. - + MediaInfo - Media File Analysis Tool - + SoX - Sound eXchange - + GnuPG - The GNU Privacy Guard - + GNU Wget - Software for retrieving files using HTTP - + Silk Icons - Over 700 icons in PNG format - + By Mark James, released under the Creative Commons 'by' License. - + LameXP as a whole is copyrighted by LoRd_MuldeR. The copyright of third-party software used in LameXP belongs to the individual authors. - + About Third-party Software - + n/a @@ -2839,22 +2839,22 @@ QApplication - + Executable '%1' doesn't support Windows compatibility mode. - + Executable '%1' requires Qt v%2, but found Qt v%3. - + Executable '%1' was built for Qt '%2', but found Qt '%3'. - + Executable '%1' requires Windows 2000 or later. diff --git a/etc/Translation/LameXP_PL.ts b/etc/Translation/LameXP_PL.ts index c493c322..6b40f2c5 100644 --- a/etc/Translation/LameXP_PL.ts +++ b/etc/Translation/LameXP_PL.ts @@ -4,294 +4,294 @@ AboutDialog - + LameXP - Audio Encoder Front-end LameXP - Program do kompresji dźwięku - + Please visit %1 for news and updates! Odwiedź %1 aby zobaczyć nowości i aktualizacje! - + Note: This demo (pre-release) version of LameXP will expire at %1. Still %2 days left. Uwaga: To jest wersja demo (próbna) LameXP, która wygaśnie %1. Pozostało jeszcze %2 dni. - + Note: LameXP is free software. Do <b>not</b> pay money to obtain or use LameXP! If some third-party website tries to make you pay for downloading LameXP, you should <b>not</b> respond to the offer !!! Uwaga: LameXP jest darmowym oprogramowaniem. <b>Nie</b> płać nikomu za ten program! Jeśli ktoś oferuje Ci LameXP za pieniądze <b>nie</b> kupuj od niego!!! - + Special thanks go out to "John33" from %1 for his continuous support. Specjalne podziękowania dla John33 z %1 za jego stałe wsparcie. - + About LameXP Informacje o LameXP - + Show License Text Pokaż tekst licencji - + Accept License Akceptuj licencję - + Decline License Odrzuć licencję - + 3rd Party S/W Programy firm trzecich - + Contributors Tłumacze - + About Qt4 Info o Qt4 - - - + + + Discard Zamknij - + The following people have contributed to LameXP: LameXP wspomogli: - + Translators: Tłumacze: - + If you are willing to contribute a LameXP translation, feel free to contact us! Jeśli chcesz wspomóc LameXP w obsłudze większej ilości języków, nie wahaj skontaktować się z nami! - + About Contributors Info o - + The following third-party software is used in LameXP: Następujące programy firm trzecich zostały użyte w LameXP: - + LAME - OpenSource mp3 Encoder LAME - Otwartoźródłowy koder mp3 - - - - - - - - - - - + + + + + + + + + + + Released under the terms of the GNU Lesser General Public License. Wydane na warunkach licencji GNU Lesser General Public License. - + OggEnc - Ogg Vorbis Encoder OggEnc - Koder Ogg Vorbis - + Completely open and patent-free audio encoding technology. Całkowicie otwarta i wolna od patentów technologia kompresji dźwięku. - + Nero AAC Reference MPEG-4 Encoder Nero AAC Reference MPEG-4 Encoder - + Freeware state-of-the-art HE-AAC encoder with 2-Pass support. Darmowy, jedyny w swoim rodzaju koder HE-AAC z wsparciem dla dwóch przebiegów. - + Available from vendor web-site as free download: Darmowy pakiet dostępny ze strony wydawcy: - + Aften - A/52 audio encoder Aften - Koder dźwięku A/52 - + FLAC - Free Lossless Audio Codec FLAC - Darmowy i bezstartny kodek dźwięku - + Open and patent-free lossless audio compression technology. Otwarta i wolna od patentów technologia bezstratnej kompresji dźwięku. - + mpg123 - Fast Console MPEG Audio Player/Decoder mpg123 - Szybki dekoder/odtwarzacz MPEG Audio - + FAAD - OpenSource MPEG-4 and MPEG-2 AAC Decoder FAAD - Otwartoźródłowy dekoder MPEG-4 oraz MPEG-2 AAC - + Released under the terms of the GNU General Public License. Wydane na warunkach licencji GNU General Public License. - + AC3Filter Tools - AC3/DTS Decoder AC3Filter Tools - Dekoder AC3/DTS - + WavPack - Hybrid Lossless Compression Wavpack - Bezstratny hybrydowy kodek dźwięku - + Completely open audio compression format. Całkowicie otwarty format kompresji dźwięku. - + Musepack - Living Audio Compression Musepack - Koder dźwięku - + Monkey's Audio - Lossless Audio Compressor Monkey's Audio - Koder bezstratnego formatu dźwięku - + Freely available source code, simple SDK and non-restrictive licensing. Szeroko dostępny kod źródłowy, prosty SDK i bezrestrykcyjna licencja. - + Shorten - Lossless Audio Compressor Shorten - Bezstratny kodek dźwięku - + Speex - Free Codec For Free Speech Speex - Darmowy kodek dla mowy ludzkiej - + Open Source patent-free audio format designed for speech. Otwartoźródłowy, wolny od patentów format dźwięku przeznaczony dla mowy ludzkiej. - + The True Audio - Lossless Audio Codec The True Audio - Bezstratny kodek dźwięku - + ALAC Decoder Dekoder ALAC - + Copyright (c) 2004 David Hammerton. Contributions by Cody Brocious. Prawa autorskie: 2004 David Hammerton. Kodu użyczył Cody Brocious. - + wma2wav - Dump WMA files to Wave Audio wma2wav - Dekoder plików WMA do Wave - + Copyright (c) 2011 LoRd_MuldeR <mulder2@gmx.de>. Some rights reserved. Prawa autorskie: 2011 LoRd_MuldeR <mulder2@gmx.de>. Pewne prawa zastrzeżone. - + avs2wav - Avisynth to Wave Audio converter avs2wav - Konwerter dźwięku z Avisynth do Wave - + By Jory Stone <jcsston@toughguy.net> and LoRd_MuldeR <mulder2@gmx.de>. Autorami programu są Jory Stone <jcsston@toughguy.net> i LoRd_MuldeR <mulder2@gmx.de>. - + MediaInfo - Media File Analysis Tool MediaInfo - Narzędzie do analizy plików multimedialnych - + SoX - Sound eXchange SoX - Sound eXchange - + GnuPG - The GNU Privacy Guard GnuPG - GNU Privacy Guard - + GNU Wget - Software for retrieving files using HTTP GNU Wget - Oprogramowanie służące do pobierania plików za pomocą protokołu HTTP - + Silk Icons - Over 700 icons in PNG format Silk Icons - Ponad 700 ikon w formacie PNG - + By Mark James, released under the Creative Commons 'by' License. Autorem pakietu jest Mark James, wydano na licencji Creative Commons. - + LameXP as a whole is copyrighted by LoRd_MuldeR. The copyright of third-party software used in LameXP belongs to the individual authors. Do programu LameXP jako całości, prawa autorskie posiada LoRd_MuldeR. Prawa autorskie oprogramowania firm trzecich należą do autorów poszczególnych programów. - + About Third-party Software Informacje o programach firm trzecich - + n/a n/d @@ -2839,22 +2839,22 @@ QApplication - + Executable '%1' doesn't support Windows compatibility mode. Plik wykonywalny '%1' nie działa w trybie kompatybilności z Windows. - + Executable '%1' requires Qt v%2, but found Qt v%3. Plik wykonywalny '%1' wymaga Qt v%2, znaleziono jednak Qt v%3. - + Executable '%1' was built for Qt '%2', but found Qt '%3'. - + Executable '%1' requires Windows 2000 or later. Plik wykonywalny '%1' wymaga do uruchomienia Windows 2000 lub nowszego. diff --git a/src/Config.h b/src/Config.h index ab31f6e5..467b1be3 100644 --- a/src/Config.h +++ b/src/Config.h @@ -30,7 +30,7 @@ #define VER_LAMEXP_MINOR_LO 4 #define VER_LAMEXP_TYPE Alpha #define VER_LAMEXP_PATCH 10 -#define VER_LAMEXP_BUILD 818 +#define VER_LAMEXP_BUILD 819 /////////////////////////////////////////////////////////////////////////////// // Tool versions (minimum expected versions!) diff --git a/src/Thread_Initialization.cpp b/src/Thread_Initialization.cpp index 04eeaa93..b186ac65 100644 --- a/src/Thread_Initialization.cpp +++ b/src/Thread_Initialization.cpp @@ -277,7 +277,7 @@ void InitializationThread::initTranslations(void) { if(lamexp_translation_register(langId, qmFile, langName, systemId, scriptId)) { - qDebug("Registering translation: %s = %s (%u)", qmFile.toUtf8().constData(), langName.toUtf8().constData(), systemId); + qDebug("Registering translation: %s = %s (%u) [%u]", qmFile.toUtf8().constData(), langName.toUtf8().constData(), systemId, scriptId); } else { From 3141ebf2eef7efd0a7d05d9b78fcd4356331b260 Mon Sep 17 00:00:00 2001 From: lordmulder Date: Mon, 19 Dec 2011 17:26:20 +0100 Subject: [PATCH 3/4] Improved detection of default language: Each language file can now have a country id in addition to the language id. This is required, because some languages (e.g. Chinese) have country-specific variants. --- res/localization/LameXP_TW.qm.txt | 2 +- res/localization/LameXP_ZH.qm.txt | 2 +- src/Config.h | 2 +- src/Global.cpp | 10 +++++----- src/Global.h | 4 ++-- src/Model_Settings.cpp | 25 +++++++++++++++++++++---- 6 files changed, 31 insertions(+), 14 deletions(-) diff --git a/res/localization/LameXP_TW.qm.txt b/res/localization/LameXP_TW.qm.txt index 35cce7f5..8131ec8a 100644 --- a/res/localization/LameXP_TW.qm.txt +++ b/res/localization/LameXP_TW.qm.txt @@ -1 +1 @@ -25,6,繁体中文 \ No newline at end of file +25,208,繁体中文 \ No newline at end of file diff --git a/res/localization/LameXP_ZH.qm.txt b/res/localization/LameXP_ZH.qm.txt index 92b22a77..10f90b7e 100644 --- a/res/localization/LameXP_ZH.qm.txt +++ b/res/localization/LameXP_ZH.qm.txt @@ -1 +1 @@ -25,5,简体中文 \ No newline at end of file +25,44,简体中文 \ No newline at end of file diff --git a/src/Config.h b/src/Config.h index 467b1be3..ac69ec1c 100644 --- a/src/Config.h +++ b/src/Config.h @@ -30,7 +30,7 @@ #define VER_LAMEXP_MINOR_LO 4 #define VER_LAMEXP_TYPE Alpha #define VER_LAMEXP_PATCH 10 -#define VER_LAMEXP_BUILD 819 +#define VER_LAMEXP_BUILD 820 /////////////////////////////////////////////////////////////////////////////// // Tool versions (minimum expected versions!) diff --git a/src/Global.cpp b/src/Global.cpp index 47aefddf..be5c8c04 100644 --- a/src/Global.cpp +++ b/src/Global.cpp @@ -186,7 +186,7 @@ static struct QMap files; QMap names; QMap sysid; - QMap scrpt; + QMap cntry; } g_lamexp_translation; @@ -1252,7 +1252,7 @@ const QString lamexp_version2string(const QString &pattern, unsigned int version /* * Register a new translation */ -bool lamexp_translation_register(const QString &langId, const QString &qmFile, const QString &langName, unsigned int &systemId, unsigned int &script) +bool lamexp_translation_register(const QString &langId, const QString &qmFile, const QString &langName, unsigned int &systemId, unsigned int &country) { if(qmFile.isEmpty() || langName.isEmpty() || systemId < 1) { @@ -1262,7 +1262,7 @@ bool lamexp_translation_register(const QString &langId, const QString &qmFile, c g_lamexp_translation.files.insert(langId, qmFile); g_lamexp_translation.names.insert(langId, langName); g_lamexp_translation.sysid.insert(langId, systemId); - g_lamexp_translation.scrpt.insert(langId, script); + g_lamexp_translation.cntry.insert(langId, country); return true; } @@ -1294,9 +1294,9 @@ unsigned int lamexp_translation_sysid(const QString &langId) /* * Get translation script id */ -unsigned int lamexp_translation_script(const QString &langId) +unsigned int lamexp_translation_country(const QString &langId) { - return g_lamexp_translation.scrpt.value(langId.toLower(), 0); + return g_lamexp_translation.cntry.value(langId.toLower(), 0); } /* diff --git a/src/Global.h b/src/Global.h index cc850adf..2f624ac6 100644 --- a/src/Global.h +++ b/src/Global.h @@ -111,10 +111,10 @@ bool lamexp_is_hibernation_supported(void); //Translation support QStringList lamexp_query_translations(void); -bool lamexp_translation_register(const QString &langId, const QString &qmFile, const QString &langName, unsigned int &systemId, unsigned int &script); +bool lamexp_translation_register(const QString &langId, const QString &qmFile, const QString &langName, unsigned int &systemId, unsigned int &country); QString lamexp_translation_name(const QString &language); unsigned int lamexp_translation_sysid(const QString &langId); -unsigned int lamexp_translation_script(const QString &langId); +unsigned int lamexp_translation_country(const QString &langId); bool lamexp_install_translator_from_file(const QString &qmFile); bool lamexp_install_translator(const QString &language); QStringList lamexp_available_codepages(bool noAliases = true); diff --git a/src/Model_Settings.cpp b/src/Model_Settings.cpp index 0e7a7d98..79d70f66 100644 --- a/src/Model_Settings.cpp +++ b/src/Model_Settings.cpp @@ -271,23 +271,28 @@ QString SettingsModel::defaultLanguage(void) return *m_defaultLanguage; } - //Check if we can use the default translation + //Detect system langauge QLocale systemLanguage= QLocale::system(); + qDebug("[Locale]"); + qDebug("Language: %s (%d)", QLocale::languageToString(systemLanguage.language()).toUtf8().constData(), systemLanguage.language()); + qDebug("Country is: %s (%d)", QLocale::countryToString(systemLanguage.country()).toUtf8().constData(), systemLanguage.country()); + qDebug("Script is: %s (%d)\n", QLocale::scriptToString(systemLanguage.script()).toUtf8().constData(), systemLanguage.script()); + + //Check if we can use the default translation if(systemLanguage.language() == QLocale::English /*|| systemLanguage.language() == QLocale::C*/) { m_defaultLanguage = new QString(LAMEXP_DEFAULT_LANGID); return LAMEXP_DEFAULT_LANGID; } - //Try to find a suitable translation for the user's system language + //Try to find a suitable translation for the user's system language *and* country QStringList languages = lamexp_query_translations(); while(!languages.isEmpty()) { QString currentLangId = languages.takeFirst(); if(lamexp_translation_sysid(currentLangId) == systemLanguage.language()) { - unsigned int script = lamexp_translation_script(currentLangId); - if((script == 0) || (systemLanguage.script() == 0) || (script == systemLanguage.script())) + if(lamexp_translation_country(currentLangId) == systemLanguage.country()) { m_defaultLanguage = new QString(currentLangId); return currentLangId; @@ -295,6 +300,18 @@ QString SettingsModel::defaultLanguage(void) } } + //Try to find a suitable translation for the user's system language + languages = lamexp_query_translations(); + while(!languages.isEmpty()) + { + QString currentLangId = languages.takeFirst(); + if(lamexp_translation_sysid(currentLangId) == systemLanguage.language()) + { + m_defaultLanguage = new QString(currentLangId); + return currentLangId; + } + } + //Fall back to the default translation m_defaultLanguage = new QString(LAMEXP_DEFAULT_LANGID); return LAMEXP_DEFAULT_LANGID; From 660ce78f799861a02542ce7e3af752cdd813a627 Mon Sep 17 00:00:00 2001 From: lordmulder Date: Mon, 19 Dec 2011 17:38:36 +0100 Subject: [PATCH 4/4] Renamed one local var. --- src/Thread_Initialization.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Thread_Initialization.cpp b/src/Thread_Initialization.cpp index b186ac65..b8aff545 100644 --- a/src/Thread_Initialization.cpp +++ b/src/Thread_Initialization.cpp @@ -246,7 +246,7 @@ void InitializationThread::initTranslations(void) while(!qmFiles.isEmpty()) { QString langId, langName; - unsigned int systemId = 0, scriptId = 0; + unsigned int systemId = 0, country = 0; QString qmFile = qmFiles.takeFirst(); QRegExp langIdExp("LameXP_(\\w\\w)\\.qm", Qt::CaseInsensitive); @@ -265,7 +265,7 @@ void InitializationThread::initTranslations(void) if(langInfo.count() == 3) { systemId = langInfo.at(0).trimmed().toUInt(); - scriptId = langInfo.at(1).trimmed().toUInt(); + country = langInfo.at(1).trimmed().toUInt(); langName = langInfo.at(2).trimmed(); break; } @@ -275,9 +275,9 @@ void InitializationThread::initTranslations(void) if(!(langId.isEmpty() || langName.isEmpty() || systemId == 0)) { - if(lamexp_translation_register(langId, qmFile, langName, systemId, scriptId)) + if(lamexp_translation_register(langId, qmFile, langName, systemId, country)) { - qDebug("Registering translation: %s = %s (%u) [%u]", qmFile.toUtf8().constData(), langName.toUtf8().constData(), systemId, scriptId); + qDebug("Registering translation: %s = %s (%u) [%u]", qmFile.toUtf8().constData(), langName.toUtf8().constData(), systemId, country); } else {