diff --git a/CHANGES b/CHANGES index 6dbdbf5..92006f6 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,20 @@ +2010-05-05 #################### PortaBase 2.0b1 #################### + +2010-05-05 JMB Windows updates, packaging tweaks, translation tools + + Updated the Windows-specific parts of portabase.pro. Fixed a bug in + imageselector.cpp that broke compiling with MinGW. Updated the application + icon for Windows and the Inno Setup installer script. Created a couple of + batch scripts to automate compilation and creation of the installer. + Updated the INSTALL file with current instructions for building on Windows. + Made some minor packaging fixes for Debian and Maemo. + + There's now a trio of environment variables that can be used to test out + PortaBase UI and help file translations: PORTABASE_QM, PORTABASE_QT_QM, and + PORTABASE_HELP. I'll document their usage fully on the web site with the + notes on doing translations. Clarified the encoding (UTF-8) of the + existing help files and updated the UI translation files while I was at it. + 2010-05-02 JMB Help file update, more Maemo and usability improvements Updated the English help file to match the current state of the code. diff --git a/INSTALL b/INSTALL index 4779343..53fbe20 100644 --- a/INSTALL +++ b/INSTALL @@ -15,7 +15,13 @@ need the following: - Windows XP, Vista, or 7 - A recent version of Qt 4 (http://qt.nokia.com/downloads). It's easiest to get started with a version that comes with the MinGW compiler, since I - haven't tested the latest code with Visual Studio. + haven't tested the latest code with Visual Studio. Add both the "bin" + directory and the "mingw\bin" directory that come with it to your "Path" + environment variable. +- MSYS 1.0.11 (http://sourceforge.net/projects/mingw/files/MSYS%20Base%20System/msys-1.0.11/MSYS-1.0.11.exe/download). + This emulates a basic UNIX system on Windows, and is the easiest way to + compile Metakit with MinGW. Newer versions are available, but lack a + convenient installer; this one should work fine. - Inno Setup, if you wish to create the PortaBase installer; available from: http://www.jrsoftware.org/isinfo.php @@ -50,11 +56,19 @@ the Metakit README file) inside the appropriate Scratchbox environment. You'll want to pass the "--enable-threads" and "--disable-shared" parameters to the configure script. -To compile Metakit for Windows, follow the instructions in Metakit's README -file; be sure to build the static library version (mklib). To compile -Metakit for use in Linux or Mac OS X desktop PortaBase, just follow the -README directions (the "UNIX" instructions in both cases); you'll want to use -the same configure script parameters mentioned above for Maemo development. +To compile Metakit for use in Linux or Mac OS X desktop PortaBase, just follow +the README directions (the "UNIX" instructions in both cases); you'll want to +use the same configure script parameters mentioned above for Maemo development. + +To compile Metakit for Windows, first install Qt in order to get the MinGW +compiler. Then install MSYS as mentioned above; in the postinstallation +script, you'll be asked for the path of the MinGW installation that came with +Qt. Start MSYS from the installed shortcut, and change to the metakit/builds +directory that is included with the PortaBase source code. Note that you use +"cd" to change directories, use "/" as the directory separator, and the C: +drive is located at "/c". From the metakit/builds directory, run +"../unix/configure --enable-threads --disable-shared". Once that finishes, run +"make". You should now have a libmk4.a static library file in that directory. PortaBase for Maemo Compilation -------------------------------- @@ -64,21 +78,16 @@ documentation for more information. PortaBase for Windows Compilation, Packaging -------------------------------------------- -- Install a recent version of Qt 4 and configure it (make sure the "bin" - directory is in your path and that the QTDIR and QMAKESPEC environment - variables are set correctly). -- Adjust the value of INCLUDEPATH in portabase.pro as needed to locate the - library header files on your system. -- Run "qmake -t vcapp -o portabase.dsp portabase.pro" -- Copy mk4vc60s.lib to the PortaBase source directory. -- Open the generated portabase.dsp file in Visual C++, and from - "Build->Set Active Configuration..." select "portabase - Win32 Release". -- Execute the build. -- Copy qt-mtnc321.dll from Qt's "lib" directory to the Release subdirectory - created by Visual C++. -- Copy msvcrt.dll to the PortaBase source directory. -- Run "lrelease portabase.pro" to generate the UI translation files. -- Open portabase.iss with Inno Setup and choose "Compile" +- Compile Metakit as described above. +- Open a command prompt, and change to the root directory of the downloaded + PortaBase source code. If this isn't at "C:\portabase", you'll have to + change the paths for "LIBS" and "INCLUDEPATH" in portabase.pro. +- From that directory run "packaging\windows\build.bat"; this will generate a + working PortaBase.exe file in the "build" directory. +- If you want to create an installer for PortaBase, first install Inno Setup. + Then run "packaging\windows\installer.bat"; you may need to edit it first + in order to adjust the paths to Qt and/or Inno Setup. This will generate an + executable installer in the "build/windows" directory. Debian Package Building ----------------------- diff --git a/image/imageselector.cpp b/image/imageselector.cpp index 3f54c1a..29e9169 100644 --- a/image/imageselector.cpp +++ b/image/imageselector.cpp @@ -21,11 +21,11 @@ #include #include "../database.h" #include "../factory.h" +#include "../importdialog.h" #include "imageeditor.h" #include "imageselector.h" #include "imageutils.h" #include "imageviewer.h" -#include "importdialog.h" /** * Constructor. diff --git a/main.cpp b/main.cpp index 560ae58..f3dafbf 100644 --- a/main.cpp +++ b/main.cpp @@ -15,6 +15,8 @@ #include #include +#include +#include #include #include "commandline.h" #include "eventfilter.h" @@ -41,13 +43,35 @@ int main(int argc, char **argv) { app.setOrganizationDomain("sourceforge.net"); app.setApplicationName("PortaBase"); app.setWindowIcon(QIcon(":/appicon/PortaBase.png")); + // can't use QProcessEnvironment because Diablo doesn't have it yet + QStringList env = QProcess::systemEnvironment(); + int qmIndex = env.indexOf(QRegExp("PORTABASE_QM=.*")); + int qtQmIndex = env.indexOf(QRegExp("PORTABASE_QT_QM=.*")); QTranslator qtTranslator; - if (qtTranslator.load(QString(":/i18n/Qt.qm"))) { - app.installTranslator(&qtTranslator); + if (qtQmIndex != -1) { + QString path = env[qtQmIndex]; + path = path.right(path.length() - 16); + if (qtTranslator.load(path)) { + app.installTranslator(&qtTranslator); + } + } + else { + if (qtTranslator.load(QString(":/i18n/Qt.qm"))) { + app.installTranslator(&qtTranslator); + } } QTranslator translator; - if (translator.load(QString(":/i18n/PortaBase.qm"))) { - app.installTranslator(&translator); + if (qmIndex != -1) { + QString path = env[qmIndex]; + path = path.right(path.length() - 13); + if (translator.load(path)) { + app.installTranslator(&translator); + } + } + else { + if (translator.load(QString(":/i18n/PortaBase.qm"))) { + app.installTranslator(&translator); + } } QStringList args = app.arguments(); if ((args.count() > 1 && args[1].startsWith("-")) || args.count() > 2) { diff --git a/packaging/linux/debian.sh b/packaging/linux/debian.sh index ff192ea..c507dfa 100755 --- a/packaging/linux/debian.sh +++ b/packaging/linux/debian.sh @@ -1,6 +1,6 @@ #!/bin/sh -VERSION=2.0 +VERSION=2.0~beta1 DEST=build/debian/portabase-$VERSION rm -rf build/debian diff --git a/packaging/mac/build.sh b/packaging/mac/build.sh index fcffc83..ddd6a18 100755 --- a/packaging/mac/build.sh +++ b/packaging/mac/build.sh @@ -7,6 +7,8 @@ rm -f build/PortaBase.app rm -f build/PortaBase.dmg qmake -spec macx-g++40 portabase.pro make clean +lrelease portabase.pro +lrelease resources/translations/qt*.ts make cd build macdeployqt PortaBase.app diff --git a/packaging/maemo/debian/changelog b/packaging/maemo/debian/changelog index 08e4f79..26ac6ec 100644 --- a/packaging/maemo/debian/changelog +++ b/packaging/maemo/debian/changelog @@ -1,3 +1,9 @@ +portabase (2.0~beta1-2) unstable; urgency=low + + * Declare the debug package in the control file + + -- Jeremy Bowman Wed, 05 May 2010 13:49:03 +0100 + portabase (2.0~beta1-1) unstable; urgency=low * Initial Maemo Release. diff --git a/packaging/maemo/debian/control b/packaging/maemo/debian/control index f0ffec0..62bb53b 100644 --- a/packaging/maemo/debian/control +++ b/packaging/maemo/debian/control @@ -7,7 +7,7 @@ Standards-Version: 3.7.2 Package: portabase Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, hildon-application-manager +Depends: ${shlibs:Depends}, hildon-application-manager Description: An easy-to-use personal database application PortaBase is a program for conveniently managing one-table database files. It is available for many platforms, including Linux, Mac OS X, Windows, @@ -71,3 +71,9 @@ XB-Maemo-Icon-26: IAXKcs6zjLFMrzYzxmSaR5xSyjcDcM6ZFEClK7bWdqy1URrbbWttK/0u0VqbXsO61djnc40kKaWM McbTJSilPetzQkgvL3qbqF5l64WQcc7p1BPGWmtc90C867///w+iNyjsMjIXAQAAAABJRU5ErkJg gg== + +Package: portabase-dbg +Section: devel +Architecture: any +Depends: portabase (= ${Source-Version}) +Description: Debug symbols for PortaBase diff --git a/packaging/maemo/diablo.sh b/packaging/maemo/diablo.sh index 5a67b97..f830ec1 100755 --- a/packaging/maemo/diablo.sh +++ b/packaging/maemo/diablo.sh @@ -11,4 +11,5 @@ cp src/packaging/maemo/portabase.pro portabase.pro cp -R src/packaging/maemo/debian . cp src/packaging/maemo/diablo_control debian/control cp src/packaging/maemo/diablo_postinst debian/postinst -dpkg-buildpackage -rfakeroot -uc -us -sa +dpkg-buildpackage -rfakeroot -sa -S +#dpkg-buildpackage -rfakeroot -uc -us -sa diff --git a/packaging/maemo/diablo_control b/packaging/maemo/diablo_control index 6867208..b73fa82 100644 --- a/packaging/maemo/diablo_control +++ b/packaging/maemo/diablo_control @@ -53,3 +53,9 @@ XB-Maemo-Icon-26: hRBCSllyHKfqOM6zUsop13XHXdetOI5T5px7jDGHEMLx8MJN0jTVSZIEWutOFEXNKIq2lFKbWut/ tNYNpZRvjDF933VCCC6EcHK5nCeEKHDOC5zz/D6I7YPSfVCYJEnXGNON4zgwxmhjHvtDAvgXDRHA N2eaZkMAAAAASUVORK5CYII= + +Package: portabase-dbg +Section: devel +Architecture: any +Depends: portabase (= ${Source-Version}) +Description: Debug symbols for PortaBase diff --git a/packaging/maemo/fremantle.sh b/packaging/maemo/fremantle.sh old mode 100644 new mode 100755 index 3e61b5a..f38bf5e --- a/packaging/maemo/fremantle.sh +++ b/packaging/maemo/fremantle.sh @@ -1,7 +1,7 @@ #!/bin/sh VERSION=2.0~beta1 -DEST=build/diablo/portabase-$VERSION +DEST=build/fremantle/portabase-$VERSION rm -rf build/fremantle packaging/copy_source.sh $DEST/src @@ -9,4 +9,5 @@ cd $DEST mv src/portabase.pro src/src.pro cp src/packaging/maemo/portabase.pro portabase.pro cp -R src/packaging/maemo/debian . -dpkg-buildpackage -rfakeroot -uc -us -sa +dpkg-buildpackage -rfakeroot -sa -S +#dpkg-buildpackage -rfakeroot -uc -us -sa diff --git a/packaging/windows/ChineseTrad-2-5.1.11.isl b/packaging/windows/ChineseTrad-2-5.1.11.isl new file mode 100644 index 0000000..748442d --- /dev/null +++ b/packaging/windows/ChineseTrad-2-5.1.11.isl @@ -0,0 +1,317 @@ +; *** Inno Setup version 5.1.11+ Chinese (Traditional) messages *** +; +; To download user-contributed translations of this file, go to: +; http://www.jrsoftware.org/is3rdparty.php +; +; Translated by: Patrick Pang (uncleleft at yahoo.com.hk) +; +; Note: When translating this text, do not add periods (.) to the end of +; messages that didn't have them already, because on those messages Inno +; Setup adds the periods automatically (appending a period would result in +; two periods being displayed). + +[LangOptions] +LanguageName=<7e41><9ad4><4e2d><6587> +LanguageID=$0404 +LanguageCodepage=950 +; If the language you are translating to requires special font faces or +; sizes, uncomment any of the following entries and change them accordingly. +DialogFontName=新細明體 +DialogFontSize=9 +TitleFontName=Arial +TitleFontSize=28 +WelcomeFontName=新細明體 +WelcomeFontSize=12 +CopyrightFontName=新細明體 +CopyrightFontSize=9 + +[Messages] + +; *** Application titles +SetupAppTitle=安裝程式 +SetupWindowTitle=%1 安裝程式 +UninstallAppTitle=解除安裝 +UninstallAppFullTitle=解除安裝 %1 + +; *** Misc. common +InformationTitle=訊息 +ConfirmTitle=確認 +ErrorTitle=錯誤 + +; *** SetupLdr messages +SetupLdrStartupMessage=這將會安裝 %1。您想要繼續嗎? +LdrCannotCreateTemp=無法建立暫存檔案。安裝程式將會結束。 +LdrCannotExecTemp=無法執行暫存檔案。安裝程式將會結束。 + +; *** Startup error messages +LastErrorMessage=%1%n%n錯誤 %2: %3 +SetupFileMissing=安裝資料夾中遺失檔案 %1。請修正此問題或重新取得此軟體。 +SetupFileCorrupt=安裝檔案已經損毀。請重新取得此軟體。 +SetupFileCorruptOrWrongVer=安裝檔案已經損毀,或與安裝程式的版本不符。請重新取得此軟體。 +NotOnThisPlatform=這個程式無法在 %1 執行。 +OnlyOnThisPlatform=這個程式必須在 %1 執行。 +OnlyOnTheseArchitectures=這個程式只能在專門為以下處理器架構而設計的 Windows 上安裝:%n%n%1 +MissingWOW64APIs=這個版本的 Windows 不包含安裝程式執行 64 位元安裝所需的功能。請安裝 Service Pack %1 去修正此問題。 +WinVersionTooLowError=這個程式必須在 %1 版本 %2 或以上的系統執行。 +WinVersionTooHighError=這個程式無法安裝在 %1 版本 %2 或以上的系統。 +AdminPrivilegesRequired=您必須登入成系統管理員以安裝這個程式。 +PowerUserPrivilegesRequired=您必須登入成具有系統管理員或 Power User 權限的使用者以安裝這個程式。 +SetupAppRunningError=安裝程式偵測到 %1 正在執行。%n%n請關閉該程式後按 [確定] 繼續,或按 [取消] 離開。 +UninstallAppRunningError=解除安裝程式偵測到 %1 正在執行。%n%n請關閉該程式後按 [確定] 繼續,或按 [取消] 離開。 + +; *** Misc. errors +ErrorCreatingDir=安裝程式無法建立資料夾 "%1"。 +ErrorTooManyFilesInDir=無法在資料夾 "%1" 內建立檔案,因為資料夾內有太多的檔案。 + +; *** Setup common messages +ExitSetupTitle=結束安裝程式 +ExitSetupMessage=安裝尚未完成。如果您現在結束安裝程式,這個程式將不會被安裝。%n%n您可以稍後再執行安裝程式以完成安裝程序。您現在要結束安裝程式嗎? +AboutSetupMenuItem=關於安裝程式(&A)... +AboutSetupTitle=關於安裝程式 +AboutSetupMessage=%1 版本 %2%n%3%n%n%1 網址:%n%4 +AboutSetupNote= +TranslatorNote=繁體中文語系由 Patrick Pang (uncleleft@yahoo.com.hk) 維護。 + +; *** Buttons +ButtonBack=< 上一步(&B) +ButtonNext=下一步(&N) > +ButtonInstall=安裝(&I) +ButtonOK=確定 +ButtonCancel=取消 +ButtonYes=是(&Y) +ButtonYesToAll=全部皆是(&A) +ButtonNo=否(&N) +ButtonNoToAll=全部皆否(&O) +ButtonFinish=完成(&F) +ButtonBrowse=瀏覽(&B)... +ButtonWizardBrowse=瀏覽(&R)... +ButtonNewFolder=建立新資料夾(&M) + +; *** "Select Language" dialog messages +SelectLanguageTitle=選擇安裝語言 +SelectLanguageLabel=選擇在安裝過程中使用的語言: + +; *** Common wizard text +ClickNext=按 [下一步] 繼續安裝,或按 [取消] 結束安裝程式。 +BeveledLabel= +BrowseDialogTitle=瀏覽資料夾 +BrowseDialogLabel=在下面的資料夾列表中選擇一個資料夾,然後按 [確定]。 +NewFolderName=新資料夾 + +; *** "Welcome" wizard page +WelcomeLabel1=歡迎使用 [name] 安裝程式 +WelcomeLabel2=這個安裝程式將會安裝 [name/ver] 到您的電腦。%n%n我們強烈建議您在安裝過程中關閉其它的應用程式,以避免與安裝程式發生衝突。 + +; *** "Password" wizard page +WizardPassword=密碼 +PasswordLabel1=這個安裝程式具有密碼保護。 +PasswordLabel3=請輸入密碼,然後按 [下一步] 繼續。密碼是區分大小寫的。 +PasswordEditLabel=密碼(&P): +IncorrectPassword=您輸入的密碼不正確,請重新輸入。 + +; *** "License Agreement" wizard page +WizardLicense=授權合約 +LicenseLabel=請閱讀以下授權合約。 +LicenseLabel3=請閱讀以下授權合約,您必須接受合約的各項條款才能繼續安裝。 +LicenseAccepted=我同意(&A) +LicenseNotAccepted=我不同意(&D) + +; *** "Information" wizard pages +WizardInfoBefore=訊息 +InfoBeforeLabel=在繼續安裝之前請閱讀以下重要資訊。 +InfoBeforeClickLabel=當您準備好繼續安裝,請按 [下一步]。 +WizardInfoAfter=訊息 +InfoAfterLabel=在繼續安裝之前請閱讀以下重要資訊。 +InfoAfterClickLabel=當您準備好繼續安裝,請按 [下一步]。 + +; *** "User Information" wizard page +WizardUserInfo=使用者資訊 +UserInfoDesc=請輸入您的資料。 +UserInfoName=使用者名稱(&U): +UserInfoOrg=組織(&O): +UserInfoSerial=序號(&S): +UserInfoNameRequired=您必須輸入您的名稱。 + +; *** "Select Destination Location" wizard page +WizardSelectDir=選擇目的資料夾 +SelectDirDesc=選擇安裝程式安裝 [name] 的位置。 +SelectDirLabel3=安裝程式將會把 [name] 安裝到下面的資料夾。 +SelectDirBrowseLabel=按 [確定] 繼續,如果您想選擇另一個資料夾,請按 [瀏覽]。 +DiskSpaceMBLabel=最少需要 [mb] MB 磁碟空間。 +ToUNCPathname=安裝程式無法安裝於 UNC 路徑名稱。如果您希望安裝於網路上其他電腦中,您必須建立一個固定連接的網路磁碟機。 +InvalidPath=您必須輸入完整的路徑名稱及磁碟機代碼。%n%n例如 C:\App 或 UNC 路徑格式 \\伺服器\共用資料夾。 +InvalidDrive=您選取的磁碟機或 UNC 名稱不存在或無法存取,請選擇其他的目的地。 +DiskSpaceWarningTitle=磁碟空間不足 +DiskSpaceWarning=安裝程式需要至少 %1 KB 的磁碟空間,您所選取的磁碟只有 %2 KB 可用空間。%n%n您要繼續安裝嗎? +DirNameTooLong=資料夾名稱或路徑太長。 +InvalidDirName=資料夾名稱不正確。 +BadDirName32=資料夾名稱不得包含以下特殊字元:%n%n%1 +DirExistsTitle=資料夾已經存在 +DirExists=資料夾 %1 已經存在。%n%n您要繼續安裝到這個資料夾嗎? +DirDoesntExistTitle=資料夾不存在 +DirDoesntExist=資料夾 %1 不存在。%n%n您要建立這個資料夾嗎? + +; *** "Select Components" wizard page +WizardSelectComponents=選擇元件 +SelectComponentsDesc=選擇將會被安裝的元件。 +SelectComponentsLabel2=選擇您想要安裝的元件及清除您不想安裝的元件,然後按 [下一步] 繼續安裝。 +FullInstallation=完整安裝 +; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language) +CompactInstallation=最小安裝 +CustomInstallation=自訂安裝 +NoUninstallWarningTitle=元件已存在 +NoUninstallWarning=安裝程式偵測到以下元件已經安裝在您的電腦上:%n%n%1%n%n取消選擇這些元件將不會移除它們。%n%n您仍然要繼續嗎? +ComponentSize1=%1 KB +ComponentSize2=%1 MB +ComponentsDiskSpaceMBLabel=目前的選擇需要至少 [mb] MB 磁碟空間。 + +; *** "Select Additional Tasks" wizard page +WizardSelectTasks=選擇附加的工作 +SelectTasksDesc=選擇要執行的附加工作。 +SelectTasksLabel2=選擇安裝程式在安裝 [name] 時要執行的附加工作,然後按 [下一步]。 + +; *** "Select Start Menu Folder" wizard page +WizardSelectProgramGroup=選擇「開始」功能表的資料夾 +SelectStartMenuFolderDesc=選擇安裝程式建立程式的捷徑的位置。 +SelectStartMenuFolderLabel3=安裝程式將會把程式的捷徑建立在下面的「開始」功能表資料夾。 +SelectStartMenuFolderBrowseLabel=按 [確定] 繼續,如果您想選擇另一個資料夾,請按 [瀏覽]。 +MustEnterGroupName=您必須輸入一個資料夾的名稱。 +GroupNameTooLong=資料夾名稱或路徑太長。 +InvalidGroupName=資料夾名稱不正確。 +BadGroupName=資料夾名稱不得包含下列字元:%n%n%1 +NoProgramGroupCheck2=不要在「開始」功能表中建立資料夾(&D) + +; *** "Ready to Install" wizard page +WizardReady=準備安裝 +ReadyLabel1=安裝程式將開始安裝 [name] 到您的電腦中。 +ReadyLabel2a=按下 [安裝] 繼續安裝,或按 [上一步] 重新檢視或設定各選項的內容。 +ReadyLabel2b=按下 [安裝] 繼續安裝。 +ReadyMemoUserInfo=使用者資訊 +ReadyMemoDir=目的資料夾: +ReadyMemoType=安裝型態: +ReadyMemoComponents=選擇的元件: +ReadyMemoGroup=「開始」功能表資料夾: +ReadyMemoTasks=附加工作: + +; *** "Preparing to Install" wizard page +WizardPreparing=準備安裝程式 +PreparingDesc=安裝程式準備將 [name] 安裝到您的電腦上。 +PreviousInstallNotCompleted=先前的安裝/ 解除安裝尚未完成,您必須重新啟動電腦以完成該安裝。%n%n在重新啟動電腦之後,請再執行這個程式來安裝 [name]。 +CannotContinue=安裝程式無法繼續。請按 [取消] 離開。 + +; *** "Installing" wizard page +WizardInstalling=正在安裝 +InstallingLabel=請稍候,安裝程式正在將 [name] 安裝到您的電腦上。 + +; *** "Setup Completed" wizard page +FinishedHeadingLabel=安裝完成 +FinishedLabelNoIcons=安裝程式已經將 [name] 安裝在您的電腦上。 +FinishedLabel=安裝程式已經將 [name] 安裝在您的電腦中,您可以選擇程式的圖示來執行該應用程式。 +ClickFinish=按 [完成] 以結束安裝程式。 +FinishedRestartLabel=要完成 [name] 的安裝,安裝程式必須重新啟動您的電腦。您想要現在重新啟動電腦嗎? +FinishedRestartMessage=要完成 [name] 的安裝,安裝程式必須重新啟動您的電腦。%n%n您想要現在重新啟動電腦嗎? +ShowReadmeCheck=是,我要閱讀讀我檔案。 +YesRadio=是,立即重新啟動電腦(&Y) +NoRadio=否,我稍後重新啟動電腦(&N) +; used for example as 'Run MyProg.exe' +RunEntryExec=執行 %1 +; used for example as 'View Readme.txt' +RunEntryShellExec=檢視 %1 + +; *** "Setup Needs the Next Disk" stuff +ChangeDiskTitle=安裝程式需要下一張磁片 +SelectDiskLabel2=請插入磁片 %1,然後按 [確定]。%n%n如果檔案不在以下所顯示的資料夾之中,請輸入正確的資料夾名稱或按 [瀏覽] 選取。 +PathLabel=路徑(&P): +FileNotInDir2=檔案 "%1" 無法在 "%2" 找到。請插入正確的磁片或選擇其它的資料夾。 +SelectDirectoryLabel=請指定下一張磁片的位置。 + +; *** Installation phase messages +SetupAborted=安裝沒有完成。%n%n請更正問題後重新安裝一次。 +EntryAbortRetryIgnore=按 [重試] 重試一次,按下 [略過] 跳過這個檔案,或按下 [中止] 結束安裝。 + +; *** Installation status messages +StatusCreateDirs=正在建立資料夾... +StatusExtractFiles=正在解壓縮檔案... +StatusCreateIcons=正在建立程式集圖示... +StatusCreateIniEntries=寫入 INI 檔案的項目... +StatusCreateRegistryEntries=正在更新系統登錄... +StatusRegisterFiles=正在登錄檔案... +StatusSavingUninstall=儲存解除安裝資訊... +StatusRunProgram=正在完成安裝... +StatusRollback=正在復原變更... + +; *** Misc. errors +ErrorInternal2=內部錯誤: %1。 +ErrorFunctionFailedNoCode=%1 失敗。 +ErrorFunctionFailed=%1 失敗。代碼 %2。 +ErrorFunctionFailedWithMessage=%1 失敗。代碼 %2。%n%3 +ErrorExecutingProgram=無法執行檔案:%n%1 + +; *** Registry errors +ErrorRegOpenKey=無法開啟登錄鍵:%n%1\%2 +ErrorRegCreateKey=無法建立登錄項目:%n%1\%2 +ErrorRegWriteKey=無法變更登錄項目:%n%1\%2 + +; *** INI errors +ErrorIniEntry=無法建立 INI 項目 "%1"。 + +; *** File copying errors +FileAbortRetryIgnore=按 [重試] 再試一次,按 [略過] 跳過這個檔案(不建議),或按 [中止] 結束安裝。 +FileAbortRetryIgnore2=按 [重試] 再試一次,按 [略過] 繼續進行(不建議),或按 [中止] 結束安裝。 +SourceIsCorrupted=來源檔案已經損毀。 +SourceDoesntExist=來源檔案 "%1" 不存在。 +ExistingFileReadOnly=檔案屬性已設為唯讀。%n%n按 [重試] 將唯讀屬性移除並再試一次,按 [略過] 跳過這個檔案,或按 [中止] 結束安裝。 +ErrorReadingExistingDest=讀取一個已存在的檔案時發生錯誤: +FileExists=檔案已經存在。您要取代目前的檔案嗎? +ExistingFileNewer=存在的檔案版本比較新,建議您保留目前已存在的檔案。%n%n您要保留目前已存在的檔案嗎? +ErrorChangingAttr=在變更檔案屬性時發生錯誤: +ErrorCreatingTemp=在目的資料夾中建立檔案時發生錯誤: +ErrorReadingSource=讀取原始檔案時發生錯誤: +ErrorCopying=複製檔案時發生錯誤: +ErrorReplacingExistingFile=取代檔案時發生錯誤: +ErrorRestartReplace=重新啟動電腦後取代檔案失敗: +ErrorRenamingTemp=在目的資料夾變更檔案名稱時發生錯誤: +ErrorRegisterServer=無法登錄 DLL/OCX 檔案: %1。 +ErrorRegSvr32Failed=執行 RegSvr32 失敗,錯誤碼為 %1。 +ErrorRegisterTypeLib=無法登錄 Type Library: %1。 + +; *** Post-installation errors +ErrorOpeningReadme=開啟讀我檔案時發生錯誤。 +ErrorRestartingComputer=安裝程式無法重新啟動電腦,請以手動方式自行重新啟動電腦。 + +; *** Uninstaller messages +UninstallNotFound=檔案 "%1" 不存在,無法移除程式。 +UninstallOpenError=無法開啟檔案 "%1",無法移除程式。 +UninstallUnsupportedVer=這個版本的解除安裝程式無法辨識記錄檔 "%1" 之格式,無法解除安裝。 +UninstallUnknownEntry=解除安裝記錄檔中發現未知的記錄 (%1)。 +ConfirmUninstall=您確定要完全移除 %1 及其相關的檔案嗎? +UninstallOnlyOnWin64=這個程式只能在 64 位元的 Windows 上解除安裝。 +OnlyAdminCanUninstall=這個程式要具備系統管理員權限的使用者方可解除安裝。 +UninstallStatusLabel=正在從您的電腦移除 %1 中,請稍候... +UninstalledAll=%1 已經成功從您的電腦中移除。 +UninstalledMost=%1 解除安裝完成。%n%n某些檔案及元件無法移除,您可以自行刪除這些檔案。 +UninstalledAndNeedsRestart=要完成 %1 的解除安裝程序,您必須重新啟動電腦。%n%n您想要現在重新啟動電腦嗎? +UninstallDataCorrupted=檔案 "%1" 已經損毀,無法解除安裝。 + +; *** Uninstallation phase messages +ConfirmDeleteSharedFileTitle=移除共用檔案 +ConfirmDeleteSharedFile2=系統顯示下列共用檔案已不再被任何程式所使用,您要移除這些檔案嗎?%n%n%1%n%n倘若您移除了以上檔案但仍有程式需要使用它們,將造成這些程式無法正常執行,因此您若無法確定請選擇 [否]。保留這些檔案在您的系統中不會造成任何損害。 +SharedFileNameLabel=檔案名稱: +SharedFileLocationLabel=位置: +WizardUninstalling=解除安裝狀態 +StatusUninstalling=正在解除安裝 %1... + +; The custom messages below aren't used by Setup itself, but if you make +; use of them in your scripts, you'll want to translate them. + +[CustomMessages] + +NameAndVersion=%1 版本 %2 +AdditionalIcons=附加圖示: +CreateDesktopIcon=建立桌面圖示(&D) +CreateQuickLaunchIcon=建立快速啟動圖示(&Q) +ProgramOnTheWeb=%1 的網站 +UninstallProgram=解除安裝 %1 +LaunchProgram=啟動 %1 +AssocFileExtension=將 %1 與檔案副檔名 %2 產生關聯(&A) +AssocingFileExtension=正在將 %1 與檔案副檔名 %2 產生關聯... diff --git a/packaging/windows/UNIX2DOS.C b/packaging/windows/UNIX2DOS.C new file mode 100755 index 0000000..7453e09 --- /dev/null +++ b/packaging/windows/UNIX2DOS.C @@ -0,0 +1,138 @@ +// UNIX2DOS - a Win32 utility to convert single text files from Unix to MS-DOS format. + +// Copyright (C) 1998 Clem Dye + +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +// Additional notes. +// +// The author of the original source code is unknown. +// +// Modified by Clem Dye (clem@bastet.com), December 1998, to compile cleanly +// under Microsoft Visual C/C++ v4.0 (or later) for use on Windows NT. Added +// exit(1) statements in main() to improve error reporting when the program is +// used in batch scripts. + +// Decoding loop modified 08/08/00 by Johannes Herzig (HerzJoh.EMAX-SE@t-online.de), +// to add 'Carriage Return' only once in the situation that 'UNIX2DOS' finds 'CRLF' +// combination in files with a mix of DOS and UNIX text file formats. + +#include +#include +#include +#include +#include +#include +#include + +#ifndef TRUE +# define TRUE (1) +# define FALSE (0) +#endif + +#define R_CNTRL "rb" +#define W_CNTRL "wb" + +struct stat s_buf; + +int u2dos (path) +char *path; +{ + FILE *in, *out; + int ch, + prev_ch= 0, + rval = FALSE; + char temppath [16]; + struct _utimbuf ut_buf; + strcpy (temppath, "./clntmp"); + strcat (temppath, "XXXXXX"); + mktemp (temppath); + if ((in=fopen (path, R_CNTRL)) == (FILE *) 0) + return TRUE; + if ((out=fopen (temppath, W_CNTRL)) == (FILE *) 0) + { + fclose (in); + return TRUE; + } + + #define LF 0x0A + #define CR 0x0D + + while ((ch = getc (in)) != EOF) + { + if ( ( ch == LF) + && ( prev_ch != CR) + && ( putc( CR, out) == EOF) + || ( putc( ch, out) == EOF) + ) + { + rval = TRUE; + break; + } + prev_ch= ch ; + } + + if (fclose (in) == EOF) + { + rval = TRUE; + } + if (fclose (out) == EOF) + { + rval = TRUE; + } + ut_buf.actime = s_buf.st_atime; + ut_buf.modtime = s_buf.st_mtime; + if (_utime (temppath, &ut_buf) == -1) + rval = TRUE; + if (unlink (path) == -1) + rval = TRUE; + if (rval) + { + unlink (temppath); + return TRUE; + } + if (rename (temppath,path) == -1) + { + fprintf (stderr, "Unix2Dos: Problems renaming '%s' to '%s'.\n", temppath, path); + fprintf (stderr, " However, file '%s' remains.\n", temppath); + exit (1); + } + unlink (temppath); + return FALSE; +} + +void main (argc, argv) +int argc; +char **argv; +{ + char *path; + while (--argc>0) + { + if (stat (path=*++argv, &s_buf) != -1) + { + printf ("Unix2Dos: Processing file %s ...\n", path); + if (u2dos (path)) + { + fprintf (stderr, "Unix2Dos: Problems processing file %s.\n", path); + exit (1); + } + } + else + { + fprintf (stderr, "Unix2Dos: Can't stat '%s'.\n", path); + exit (1); + } + } +} diff --git a/packaging/windows/UNIX2DOS.EXE b/packaging/windows/UNIX2DOS.EXE new file mode 100755 index 0000000..626cfb1 Binary files /dev/null and b/packaging/windows/UNIX2DOS.EXE differ diff --git a/packaging/windows/build.bat b/packaging/windows/build.bat new file mode 100755 index 0000000..34ba85a --- /dev/null +++ b/packaging/windows/build.bat @@ -0,0 +1,4 @@ +qmake portabase.pro +lrelease portabase.pro +lrelease resources\translations\qt*.ts +mingw32-make diff --git a/packaging/windows/installer.bat b/packaging/windows/installer.bat new file mode 100755 index 0000000..d44ae60 --- /dev/null +++ b/packaging/windows/installer.bat @@ -0,0 +1,18 @@ +SET qt_dir=C:\Qt\2010.02.1\Qt +IF NOT EXIST build\windows MKDIR build\windows +COPY CHANGES build\windows\CHANGES.txt +COPY COPYING build\windows\COPYING.txt +COPY README.txt build\windows +packaging\windows\UNIX2DOS build\windows\CHANGES.txt +packaging\windows\UNIX2DOS build\windows\COPYING.txt +packaging\windows\UNIX2DOS build\windows\README.txt +COPY %qt_dir%\bin\mingwm10.dll build\windows +COPY %qt_dir%\bin\libgcc_s_dw2-1.dll build\windows +COPY %qt_dir%\bin\QtCore4.dll build\windows +COPY %qt_dir%\bin\QtGui4.dll build\windows +COPY %qt_dir%\bin\QtXml4.dll build\windows +IF NOT EXIST build\windows\accessible MKDIR build\windows\accessible +copy %qt_dir%\plugins\accessible\qtaccessiblewidgets4.dll build\windows\accessible +IF NOT EXIST build\windows\imageformats MKDIR build\windows\imageformats +copy %qt_dir%\plugins\imageformats\qjpeg4.dll build\windows\imageformats +"C:\Program Files\Inno Setup 5\ISCC" portabase.iss diff --git a/portabase.ico b/portabase.ico old mode 100644 new mode 100755 index b5e2787..ed2ac3c Binary files a/portabase.ico and b/portabase.ico differ diff --git a/portabase.iss b/portabase.iss old mode 100644 new mode 100755 index 08be5f5..6dbc22b --- a/portabase.iss +++ b/portabase.iss @@ -3,70 +3,68 @@ [Setup] AppName=PortaBase -AppVerName=PortaBase 1.9 +AppVerName=PortaBase 2.0b1 AppPublisher=Jeremy Bowman AppPublisherURL=http://portabase.sourceforge.net AppSupportURL=http://portabase.sourceforge.net AppUpdatesURL=http://portabase.sourceforge.net +AppReadmeFile=README.txt +AppVersion=2.0b1 +AppCopyright=Copyright (C) 2002-2010 Jeremy Bowman DefaultDirName={pf}\PortaBase DefaultGroupName=PortaBase AllowNoIcons=yes +AllowRootDirectory=yes ChangesAssociations=yes LicenseFile=COPYING PrivilegesRequired=admin SolidCompression=yes -OutputBaseFilename=portabase_1.9 -VersionInfoVersion=1.9 -ShowLanguageDialog=auto +OutputBaseFilename=PortaBase_2.0b1 +OutputDir=build\windows +VersionInfoVersion=2.0.0.0 +ShowLanguageDialog=yes +MinVersion=0,5.1 [Tasks] -Name: "desktopicon"; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:" +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}" [Files] -Source: "Release\portabase.exe"; DestDir: "{app}"; Flags: ignoreversion -Source: "desktop\icons\*.*"; DestDir: "{app}\icons"; Flags: ignoreversion -Source: "desktop\icons\portabase\*.*"; DestDir: "{app}\icons\portabase"; Flags: ignoreversion -Source: "help\html\portabase.html"; DestDir: "{app}\help\en"; Flags: ignoreversion -Source: "help\ja\html\portabase.html"; DestDir: "{app}\help\ja"; Flags: ignoreversion -Source: "help\tw\html\portabase.html"; DestDir: "{app}\help\zh_TW"; Flags: ignoreversion -Source: "portabase_cs.qm"; DestDir: "{app}\i18n\cs"; DestName: "portabase.qm"; Flags: ignoreversion -Source: "portabase_fr.qm"; DestDir: "{app}\i18n\fr"; DestName: "portabase.qm"; Flags: ignoreversion -Source: "portabase_ja.qm"; DestDir: "{app}\i18n\ja"; DestName: "portabase.qm"; Flags: ignoreversion -Source: "portabase_zh_TW.qm"; DestDir: "{app}\i18n\zh_TW"; DestName: "portabase.qm"; Flags: ignoreversion +Source: "build\PortaBase.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "CHANGES"; DestDir: "{app}"; Flags: ignoreversion Source: "COPYING"; DestDir: "{app}"; Flags: ignoreversion -Source: "portabase.ico"; DestDir: "{app}"; Flags: ignoreversion Source: "README.txt"; DestDir: "{app}"; Flags: ignoreversion isreadme -Source: "Release\qt-mtnc321.dll"; DestDir: "{sys}"; Flags: onlyifdoesntexist sharedfile -Source: "beecrypt.dll"; DestDir: "{sys}"; Flags: sharedfile -Source: "msvcrt.dll"; DestDir: "{sys}"; Flags: onlyifdoesntexist uninsneveruninstall +Source: "build\windows\mingwm10.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "build\windows\libgcc_s_dw2-1.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "build\windows\QtCore4.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "build\windows\QtGui4.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "build\windows\QtXml4.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "build\windows\accessible\qtaccessiblewidgets4.dll"; DestDir: "{app}\accessible"; Flags: ignoreversion +Source: "build\windows\imageformats\qjpeg4.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion ; NOTE: Don't use "Flags: ignoreversion" on any shared system files -[INI] -Filename: "{app}\portabase.url"; Section: "InternetShortcut"; Key: "URL"; String: "http://portabase.sourceforge.net" - [Languages] Name: "en"; MessagesFile: "compiler:Default.isl" -Name: "cs"; MessagesFile: "Czech-5-4.1.8.isl" -Name: "fr"; MessagesFile: "French-15-4.1.8.isl" -Name: "ja"; MessagesFile: "Japanese-3-4.1.8.isl" -Name: "zh_TW"; MessagesFile: "ChineseTrad-3-4.1.8.isl" +Name: "cs"; MessagesFile: "compiler:Languages\Czech.isl" +Name: "de"; MessagesFile: "compiler:Languages\German.isl" +Name: "es"; MessagesFile: "compiler:Languages\Spanish.isl" +Name: "fr"; MessagesFile: "compiler:Languages\French.isl" +Name: "ja"; MessagesFile: "compiler:Languages\Japanese.isl" +Name: "zh_TW"; MessagesFile: "packaging\windows\ChineseTrad-2-5.1.11.isl" [Registry] Root: HKCR; Subkey: ".pob"; ValueType: string; ValueName: ""; ValueData: "PortaBaseFile"; Flags: uninsdeletevalue Root: HKCR; Subkey: "PortaBaseFile"; ValueType: string; ValueName: ""; ValueData: "PortaBase File"; Flags: uninsdeletekey Root: HKCR; Subkey: "PortaBaseFile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\PORTABASE.EXE,0" -Root: HKCR; Subkey: "PortaBaseFile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\PORTABASE.EXE"" -f ""%1""" +Root: HKCR; Subkey: "PortaBaseFile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\PORTABASE.EXE"" ""%1""" [Icons] -Name: "{group}\PortaBase"; Filename: "{app}\portabase.exe" -Name: "{group}\PortaBase Home Page"; Filename: "{app}\portabase.url" -Name: "{group}\Uninstall PortaBase"; Filename: "{uninstallexe}" +Name: "{group}\PortaBase"; Filename: "{app}\PortaBase.exe"; Comment: "A personal database application" +Name: "{group}\{cm:ProgramOnTheWeb,PortaBase}"; Filename: "http://portabase.sourceforge.net" +Name: "{group}\{cm:UninstallProgram,PortaBase}"; Filename: "{uninstallexe}" Name: "{userdesktop}\PortaBase"; Filename: "{app}\portabase.exe"; Tasks: desktopicon [Run] -Filename: "{app}\portabase.exe"; Description: "Launch PortaBase"; Flags: nowait postinstall skipifsilent +Filename: "{app}\PortaBase.exe"; Description: "{cm:LaunchProgram,PortaBase}"; Flags: nowait postinstall skipifsilent + -[UninstallDelete] -Type: files; Name: "{app}\portabase.url" diff --git a/portabase.pro b/portabase.pro index 3d01cfb..209f2bd 100644 --- a/portabase.pro +++ b/portabase.pro @@ -1,5 +1,5 @@ TEMPLATE = app -CONFIG += qt warn_on release thread +CONFIG += qt warn_on thread QT += xml DESTDIR = build OBJECTS_DIR = build @@ -153,9 +153,8 @@ include(color_picker/qtcolorpicker.pri) unix:LIBS += -lm -lmk4 # Stuff for Mac OS X -QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.4 macx { - #CONFIG += static + CONFIG += release x86 ppc TARGET = PortaBase RESOURCES = resources/mac.qrc ICON = packaging/mac/PortaBase.icns @@ -191,12 +190,12 @@ macx { JA_LPROJ \ ZH_HANT_LPROJ QMAKE_INFO_PLIST = packaging/mac/Info.plist - CONFIG += x86 ppc + QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.4 } # Stuff for Maemo maemo5|contains(QT_CONFIG, hildon): { - CONFIG += qdbus + CONFIG += debug qdbus LIBS += -L../../src/metakit/builds isEmpty(PREFIX) { PREFIX = /usr/local @@ -234,17 +233,20 @@ contains(QT_CONFIG, hildon) { # Stuff for other Linux/UNIX platforms unix:!macx:!maemo5:!contains(QT_CONFIG, hildon): { #QMAKE_CXXFLAGS += -O0 # for valgrind + CONFIG += debug LIBS += -Lmetakit/builds RESOURCES = resources/linux.qrc } # Stuff for Windows -win32:DEFINES += QT_DLL -win32:RC_FILE = portabase.rc -win32:QMAKE_CXXFLAGS_RELEASE += /MD -win32:INCLUDEPATH += D:\Devel\metakit-2.4.9.3\include \ - D:\Devel\jpeg-6b \ - D:\Devel +win32 { + CONFIG += release + TARGET = PortaBase + RESOURCES = resources/windows.qrc + LIBS += c:/portabase/metakit/builds/libmk4.a + RC_FILE = portabase.rc + INCLUDEPATH += c:/portabase/metakit/include +} # Stuff for static builds static { diff --git a/qqutil/qqmenuhelper.cpp b/qqutil/qqmenuhelper.cpp index 3ade702..d7947a9 100755 --- a/qqutil/qqmenuhelper.cpp +++ b/qqutil/qqmenuhelper.cpp @@ -24,6 +24,8 @@ #include #include #include +#include +#include #include #include #include "qqhelpbrowser.h" @@ -358,11 +360,24 @@ void QQMenuHelper::setEdited(bool y) /** * Show the application's main help file. This should be a resource named - * help/[applicationName].html (i.e. "help/MyApp.html"). + * help/[applicationName].html (i.e. "help/MyApp.html"). To override it with + * a custom file URL (to test a translation, for example), set that URL as + * the value of the APPLICATIONNAME_HELP environment variable. */ void QQMenuHelper::showHelp() { - QQHelpBrowser helpBrowser(QString("qrc:/help/html/%1.html").arg(qApp->applicationName()), mainWindow); + QStringList env = QProcess::systemEnvironment(); + QString var = QString("%1_HELP").arg(qApp->applicationName().toUpper()); + QString path; + int index = env.indexOf(QRegExp(QString("%1=.*").arg(var))); + if (index != -1) { + path = env[index]; + path = path.right(path.length() - var.length() - 1); + } + else { + path = QString("qrc:/help/html/%1.html").arg(qApp->applicationName()); + } + QQHelpBrowser helpBrowser(path, mainWindow); helpBrowser.exec(); } diff --git a/resources/help/html/PortaBase.html b/resources/help/html/PortaBase.html index cf1bed5..dd4f8b4 100644 --- a/resources/help/html/PortaBase.html +++ b/resources/help/html/PortaBase.html @@ -1,6 +1,7 @@ + PortaBase 2.0b1 diff --git a/resources/help/ja/html/PortaBase.html b/resources/help/ja/html/PortaBase.html index 7ffeec8..0f80188 100644 --- a/resources/help/ja/html/PortaBase.html +++ b/resources/help/ja/html/PortaBase.html @@ -1,6 +1,7 @@ + PortaBase 1.9 diff --git a/resources/help/tw/html/PortaBase.html b/resources/help/tw/html/PortaBase.html index d9194c2..fc8412e 100644 --- a/resources/help/tw/html/PortaBase.html +++ b/resources/help/tw/html/PortaBase.html @@ -1,6 +1,7 @@ + PortaBase 1.9 diff --git a/resources/mac.qrc b/resources/mac.qrc index d981239..eac4ee5 100644 --- a/resources/mac.qrc +++ b/resources/mac.qrc @@ -30,27 +30,31 @@ icons/mac/PortaBase.png - help/html/PortaBase.html translations/portabase_en.qm translations/qt_en.qm + help/html/PortaBase.html translations/portabase_cs.qm translations/qt_cs.qm + help/html/PortaBase.html translations/portabase_de.qm translations/qt_de.qm + help/html/PortaBase.html translations/portabase_es.qm translations/qt_es.qm + help/html/PortaBase.html translations/portabase_fr.qm translations/qt_fr.qm + help/html/PortaBase.html help/ja/html/PortaBase.html diff --git a/resources/translations/portabase_cs.ts b/resources/translations/portabase_cs.ts index 674a359..5c5ac03 100644 --- a/resources/translations/portabase_cs.ts +++ b/resources/translations/portabase_cs.ts @@ -223,6 +223,10 @@ Image Obr獺zek + + Column Definition + + Condition @@ -299,6 +303,14 @@ Columns Editor Editor sloupc轡 + + No columns defined + + + + Press the "Add" button to create one + + DateDialog @@ -310,12 +322,9 @@ Today Dnes - - - DateWidget None - Nen穩 + Nen穩 @@ -352,6 +361,15 @@ Replace where used with: Nahradit v羸skyt 穩m: + + No options defined for this enumeration type + + + + Press the "Add" button to create one, or press +the "Import" button to load lines from a text file + + EnumManager @@ -370,6 +388,14 @@ tohoto typu pole budou smaz獺ny: Continue? Pokraovat? + + No enumerated column types defined + + + + Press the "Add" button to create one + + FilterEditor @@ -692,6 +718,38 @@ tohoto typu pole budou smaz獺ny: Print Pre&view + + Views + N獺hledy + + + Change the active view + + + + Sortings + Poad穩 + + + Change the active sorting + + + + Filters + Filtry + + + Change the active filter + + + + Fullscreen + + + + View PortaBase in fullscreen mode + + NumberWidget @@ -872,10 +930,6 @@ vyhovuj穩c穩 filtru? Not a PortaBase file Nen穩 souborem PortaBase - - Toolbar - - PortaBase files Soubory PortaBase @@ -912,6 +966,14 @@ vyhovuj穩c穩 filtru? About %1 + + For statistics on a particular column, press and hold that column's header for at least half of a second + + + + No such file exists + + Preferences @@ -1071,6 +1133,25 @@ vyhovuj穩c穩 filtru? Thistle + + View rows with a single click + + + + + QFileSystemModel + + %1 bytes + + + + %1 KB + + + + %1 MB + + QMenuBar @@ -1368,6 +1449,14 @@ vyhovuj穩c穩 filtru? Next row + + Copy this row + + + + Delete this row + + SlideshowDialog @@ -1434,6 +1523,53 @@ vyhovuj穩c穩 filtru? Odpoledne/veer + + VSFManager + + Views + N獺hledy + + + Current View + + + + New View + + + + Sortings + Poad穩 + + + Current Sorting + + + + New Sorting + + + + Filters + Filtry + + + Current Filter + + + + New Filter + + + + Selected Column + + + + None + + + View @@ -1542,14 +1678,18 @@ vyhovuj穩c穩 filtru? Column Name Jm矇no sloupce - - None - Nen穩 - All Rows V禳echny z獺znamy + + No default sorting + + + + No default filter + + XMLImport diff --git a/resources/translations/portabase_de.ts b/resources/translations/portabase_de.ts index 3f3f724..ff870db 100644 --- a/resources/translations/portabase_de.ts +++ b/resources/translations/portabase_de.ts @@ -223,6 +223,10 @@ Image Bild + + Column Definition + + Condition @@ -299,6 +303,14 @@ Columns Editor Spalten Editor + + No columns defined + + + + Press the "Add" button to create one + + DateDialog @@ -310,12 +322,9 @@ Today Heute - - - DateWidget None - kein + Kein @@ -352,6 +361,15 @@ Replace where used with: Ersetzen wo benutzt mit: + + No options defined for this enumeration type + + + + Press the "Add" button to create one, or press +the "Import" button to load lines from a text file + + EnumManager @@ -371,6 +389,14 @@ werden gel繹scht: Continue? Fortsetzen? + + No enumerated column types defined + + + + Press the "Add" button to create one + + FilterEditor @@ -693,6 +719,38 @@ werden gel繹scht: Print Pre&view + + Views + Sichten + + + Change the active view + + + + Sortings + Sortierungen + + + Change the active sorting + + + + Filters + Filter + + + Change the active filter + + + + Fullscreen + + + + View PortaBase in fullscreen mode + + NumberWidget @@ -872,10 +930,6 @@ Filter l繹schen? Not a PortaBase file Das ist keine Portabase-Datei - - Toolbar - - PortaBase files PortaBase Dateien @@ -912,6 +966,14 @@ Filter l繹schen? About %1 + + For statistics on a particular column, press and hold that column's header for at least half of a second + + + + No such file exists + + Preferences @@ -1071,6 +1133,25 @@ Filter l繹schen? Thistle + + View rows with a single click + + + + + QFileSystemModel + + %1 bytes + + + + %1 KB + + + + %1 MB + + QMenuBar @@ -1368,6 +1449,14 @@ Filter l繹schen? Next row + + Copy this row + + + + Delete this row + + SlideshowDialog @@ -1434,6 +1523,53 @@ Filter l繹schen? pm + + VSFManager + + Views + Sichten + + + Current View + + + + New View + + + + Sortings + Sortierungen + + + Current Sorting + + + + New Sorting + + + + Filters + Filter + + + Current Filter + + + + New Filter + + + + Selected Column + + + + None + + + View @@ -1542,14 +1678,18 @@ Filter l繹schen? Column Name Spaltenname - - None - kein - All Rows Alle Zeilen + + No default sorting + + + + No default filter + + XMLImport diff --git a/resources/translations/portabase_en.ts b/resources/translations/portabase_en.ts index da7c995..2b38c04 100644 --- a/resources/translations/portabase_en.ts +++ b/resources/translations/portabase_en.ts @@ -174,122 +174,127 @@ ColumnEditor - - + + Column Definition + + + + + Name - - + + Type - - + + String - - + + Integer - - + + Decimal - - + + Boolean - - + + Note - - + + Date - - + + Time - - + + Calculation - - + + Sequence - - + + Image - + New Enum - - - - + + + + Default - + Default Note - - + + Today - - - - + + + + None - - + + Now - + Edit calculation - + Next value @@ -330,27 +335,27 @@ - + Any text column - + contains - + starts with - + Case sensitive - + Constant @@ -382,10 +387,20 @@ DBEditor - + Columns Editor + + + No columns defined + + + + + Press the "Add" button to create one + + DateDialog @@ -395,15 +410,12 @@ - + Today - - - DateWidget - + None @@ -411,44 +423,55 @@ EnumEditor - + Enum Editor - + Enum Name - + Sort - + Import - + Export - - + + No options defined for this enumeration type + + + + + Press the "Add" button to create one, or press +the "Import" button to load lines from a text file + + + + + Must have at least one option - - + + Option text - + Replace where used with: @@ -456,19 +479,29 @@ EnumManager - + Enum Manager - + + No enumerated column types defined + + + + + Press the "Add" button to create one + + + + The following columns which use this enum will also be deleted: - + Continue? @@ -699,6 +732,7 @@ deleted: + &Quick Filter @@ -793,6 +827,7 @@ deleted: + All &Columns @@ -803,6 +838,7 @@ deleted: + All &Rows @@ -868,17 +904,57 @@ deleted: - + + Views + + + + + Change the active view + + + + + Sortings + + + + + Change the active sorting + + + + + Filters + + + + + Change the active filter + + + + + Fullscreen + + + + + View PortaBase in fullscreen mode + + + + Import - + Export - + All Columns @@ -894,48 +970,48 @@ deleted: PBDialog - - + + Add - - + + Edit - - + + Delete - - + + Name must not start with '_' - - + + Duplicate name - + Up - + Down - + No name entered @@ -944,33 +1020,34 @@ deleted: PasswordDialog - + Old password - + New password - + + Password - + Repeat password - + Repeat new password - - + + Repeated password doesn't match @@ -978,103 +1055,88 @@ deleted: PortaBase - - Toolbar - - - - + PortaBase files - + Recently opened files - + Name - - %1 bytes - - - - - %1 KB - - - - - %1 MB - - - - + Size - + Rows - + Columns - + Views - + Sortings - + Filters - + Enums - + + For statistics on a particular column, press and hold that column's header for at least half of a second + + + + File Properties - - + + XML - + MobileDB - + Import from: - + Encrypt the file? - + This file uses a newer version of the PortaBase format than this version of PortaBase supports; please @@ -1082,314 +1144,343 @@ upgrade - + Save changes? - + + Delete this row? - + Delete all rows in the current filter? - + CSV - + rows in current filter - + Export to: - + Text files with comma separated values - + XML files - + Delete this view? - + Delete this sorting? - + Delete this filter? - + Not a PortaBase file - + Printing aborted - + Printing - + Printing completed - + Copyright (C) - + Web site at http://portabase.sourceforge.net - + About %1 + + + No such file exists + + Preferences - + Preferences - + Confirm deletions - + Allow checkbox edit in data viewer - + Use pages in data viewer - + Wrap Notes - + at whitespace - + anywhere - + Default rows per page - + + View rows with a single click + + + + Use small-screen settings on this device - + General - + Date format - + D - + M - + Y - + Time format - + 24 hour - + 12 hour - + Weeks start on - + Sunday - + Monday - + Show seconds for times - + Date and Time - + Font - + Name - + Size - + Sample - + Sample text - + Row Colors - + Appearance - + White - + Aquamarine - + Light blue - + Cyan - + Light gray - + Light green - + Lavender - + Silver - + Tan - + Thistle + + QFileSystemModel + + + %1 bytes + + + + + %1 KB + + + + + %1 MB + + + QMenuBar - + Preferences - + Quit %1 - + About %1 - + About Qt @@ -1403,7 +1494,7 @@ current filter? - + Unable to open file @@ -1469,17 +1560,17 @@ current filter? QQHelpBrowser - + Help - + Back - + Forward @@ -1487,129 +1578,129 @@ current filter? QQMenuHelper - - + + Choose a filename to save under - + Pr&eferences - + &Quit - + Help Contents - + %1 Help - + &About %1 - + About &Qt - + &New - + Create a new file - + &Open - + Open an existing file - + Quit the application - + &Save - + Save the current file - - + + Open &Recent - + &Close - + Close the current file - + Change the application settings - + &File - + &Help - + Save changes? - + File already exists; overwrite it? - + Choose a file - + File does not exist - + The selected item is a directory @@ -1736,27 +1827,37 @@ current filter? RowViewer - + Row Viewer - + Previous row - + Edit this row - + + Copy this row + + + + + Delete this row + + + + Copy the selected text - + Next row @@ -1828,112 +1929,170 @@ current filter? TimeWidget - - - + + + AM - + None - - + + PM + + VSFManager + + + Views + + + + + Current View + + + + + New View + + + + + Sortings + + + + + Current Sorting + + + + + New Sorting + + + + + Filters + + + + + Current Filter + + + + + New Filter + + + + + Selected Column + + + + + None + + + View - + No data to summarize - - + + Total - - + + Average - - + + Minimum - - + + Maximum - + Checked - + Unchecked - - + + Earliest - - + + Latest - + Total length - - - - + + + + characters - + Average length - + Minimum length - + Maximum length - + Image available - + No image @@ -1941,17 +2100,17 @@ current filter? ViewDisplay - + No results - + No image columns in this view - + No rows in this filter @@ -1969,33 +2128,37 @@ current filter? - + Default Sorting - + Default Filter - + Include - + Column Name - - - None + + No default sorting + + + + + No default filter - + All Rows diff --git a/resources/translations/portabase_es.ts b/resources/translations/portabase_es.ts index ce7d39d..0baa91b 100644 --- a/resources/translations/portabase_es.ts +++ b/resources/translations/portabase_es.ts @@ -223,6 +223,10 @@ Image Imagen + + Column Definition + + Condition @@ -299,6 +303,14 @@ Columns Editor Editor de columnas + + No columns defined + + + + Press the "Add" button to create one + + DateDialog @@ -310,12 +322,9 @@ Today Hoy - - - DateWidget None - Nada + Nada @@ -352,6 +361,15 @@ Export Exportar + + No options defined for this enumeration type + + + + Press the "Add" button to create one, or press +the "Import" button to load lines from a text file + + EnumManager @@ -371,6 +389,14 @@ tambi矇n ser獺n borradas: Continue? 聶Continuar? + + No enumerated column types defined + + + + Press the "Add" button to create one + + FilterEditor @@ -693,6 +719,38 @@ tambi矇n ser獺n borradas: Print Pre&view + + Views + Vistas + + + Change the active view + + + + Sortings + Clasificaciones + + + Change the active sorting + + + + Filters + Filtros + + + Change the active filter + + + + Fullscreen + + + + View PortaBase in fullscreen mode + + NumberWidget @@ -873,10 +931,6 @@ en el filtro actual? Not a PortaBase file No es un archivo de PortaBase - - Toolbar - - PortaBase files @@ -913,6 +967,14 @@ en el filtro actual? About %1 + + For statistics on a particular column, press and hold that column's header for at least half of a second + + + + No such file exists + + Preferences @@ -1072,6 +1134,25 @@ en el filtro actual? Thistle + + View rows with a single click + + + + + QFileSystemModel + + %1 bytes + + + + %1 KB + + + + %1 MB + + QMenuBar @@ -1369,6 +1450,14 @@ en el filtro actual? Next row + + Copy this row + + + + Delete this row + + SlideshowDialog @@ -1435,6 +1524,53 @@ en el filtro actual? PM + + VSFManager + + Views + Vistas + + + Current View + + + + New View + + + + Sortings + Clasificaciones + + + Current Sorting + + + + New Sorting + + + + Filters + Filtros + + + Current Filter + + + + New Filter + + + + Selected Column + + + + None + Nada + + View @@ -1543,14 +1679,18 @@ en el filtro actual? Column Name Nombre de la columna - - None - Nada - All Rows Todas las filas + + No default sorting + + + + No default filter + + XMLImport diff --git a/resources/translations/portabase_fr.ts b/resources/translations/portabase_fr.ts index 2763c46..8921713 100644 --- a/resources/translations/portabase_fr.ts +++ b/resources/translations/portabase_fr.ts @@ -223,6 +223,10 @@ Image image + + Column Definition + + Condition @@ -299,6 +303,14 @@ Columns Editor diteur de colonnes + + No columns defined + + + + Press the "Add" button to create one + + DateDialog @@ -310,12 +322,9 @@ Today Aujourd'hui - - - DateWidget None - None + None @@ -352,6 +361,15 @@ Replace where used with: Remplacer si utilis矇 avec: + + No options defined for this enumeration type + + + + Press the "Add" button to create one, or press +the "Import" button to load lines from a text file + + EnumManager @@ -371,6 +389,14 @@ aussi effac矇es: Continue? Continuer? + + No enumerated column types defined + + + + Press the "Add" button to create one + + FilterEditor @@ -693,6 +719,38 @@ aussi effac矇es: Print Pre&view + + Views + Vues + + + Change the active view + + + + Sortings + Tris + + + Change the active sorting + + + + Filters + Filtres + + + Change the active filter + + + + Fullscreen + + + + View PortaBase in fullscreen mode + + NumberWidget @@ -872,10 +930,6 @@ dans le filtre courant? Not a PortaBase file Ce n'est pas un fcihier Portabase - - Toolbar - - PortaBase files Fichiers portabase @@ -912,6 +966,14 @@ dans le filtre courant? About %1 + + For statistics on a particular column, press and hold that column's header for at least half of a second + + + + No such file exists + + Preferences @@ -1071,6 +1133,25 @@ dans le filtre courant? Thistle + + View rows with a single click + + + + + QFileSystemModel + + %1 bytes + + + + %1 KB + + + + %1 MB + + QMenuBar @@ -1368,6 +1449,14 @@ dans le filtre courant? Next row + + Copy this row + + + + Delete this row + + SlideshowDialog @@ -1434,6 +1523,53 @@ dans le filtre courant? pm + + VSFManager + + Views + Vues + + + Current View + + + + New View + + + + Sortings + Tris + + + Current Sorting + + + + New Sorting + + + + Filters + Filtres + + + Current Filter + + + + New Filter + + + + Selected Column + + + + None + + + View @@ -1542,14 +1678,18 @@ dans le filtre courant? Column Name Nom de colonne - - None - Aucun - All Rows Toutes les lignes + + No default sorting + + + + No default filter + + XMLImport diff --git a/resources/translations/portabase_ja.ts b/resources/translations/portabase_ja.ts index 2c814aa..7bea4ab 100644 --- a/resources/translations/portabase_ja.ts +++ b/resources/translations/portabase_ja.ts @@ -223,6 +223,10 @@ Image + + Column Definition + 潦怒蝺券 + Condition @@ -299,6 +303,14 @@ Columns Editor 押潦蝺券 + + No columns defined + 潦怒芥 + + + Press the "Add" button to create one + 潦怒雿怒胯雿潦虫 + DateDialog @@ -310,9 +322,6 @@ Today - - - DateWidget None @@ -352,6 +361,15 @@ Export 具胯嫘潦 + + No options defined for this enumeration type + 豢U芥 + + + Press the "Add" button to create one, or press +the "Import" button to load lines from a text file + 豢U雿怒胯雿潦虫\n准嫘∼扎怒豢U扎喋潦怒胯扎喋潦潦虫 + EnumManager @@ -370,6 +388,14 @@ deleted: Continue? 蝬? + + No enumerated column types defined + + + + Press the "Add" button to create one + 雿怒胯雿潦虫 + FilterEditor @@ -692,6 +718,38 @@ deleted: Print the current file 曉具柴∼扎怒啣瑯整 + + Views + 乓潛恣 + + + Change the active view + 乓潦鈭斗整舐楊整 + + + Sortings + 賬潦喋啁恣 + + + Change the active sorting + 賬潦喋啜鈭斗整舐楊整 + + + Filters + 怒輻恣 + + + Change the active filter + 怒踴鈭斗整舐楊整 + + + Fullscreen + 怒嫘胯芥潦 + + + View PortaBase in fullscreen mode + PortaBase怒嫘胯芥潦喋扯整 + NumberWidget @@ -871,10 +929,6 @@ current filter? Not a PortaBase file PortaBase∼扎怒扼胯整 - - Toolbar - 潦怒 - PortaBase files PortaBase∼扎 @@ -911,6 +965,14 @@ current filter? About %1 %1怒扎 + + For statistics on a particular column, press and hold that column's header for at least half of a second + 潦怒桃絞閮踴怒胯柴潦怒柴押怒嚗嚗嚗蝘隞乩潦虫 + + + No such file exists + ∼扎怒臬具整 + Preferences @@ -1070,6 +1132,10 @@ current filter? Thistle + + View rows with a single click + 研喋潦銝潦扯”蝷箝整 + QMenuBar @@ -1367,6 +1433,14 @@ current filter? Next row 甈∼柴研喋潦 + + Copy this row + 柴研喋潦喋潦整 + + + Delete this row + 柴研喋潦扎整 + SlideshowDialog @@ -1433,6 +1507,53 @@ current filter? + + VSFManager + + Views + 乓潛恣 + + + Current View + 雿踴艾乓 + + + New View + 乓潔 + + + Sortings + 賬潦喋啁恣 + + + Current Sorting + 雿踴艾賬潦喋 + + + New Sorting + 賬潦喋唬 + + + Filters + 怒輻恣 + + + Current Filter + 雿踴艾怒 + + + New Filter + 怒蹂 + + + Selected Column + 豢潦怒 + + + None + + + View @@ -1541,14 +1662,18 @@ current filter? Column Name 潦怒 - - None - - All Rows 具艾柴研喋潦 + + No default sorting + 押怒賬潦喋啜芥 + + + No default filter + 押怒怒踴芥 + XMLImport diff --git a/resources/translations/portabase_zh_TW.ts b/resources/translations/portabase_zh_TW.ts index 8f3a3e3..581b4ab 100644 --- a/resources/translations/portabase_zh_TW.ts +++ b/resources/translations/portabase_zh_TW.ts @@ -225,6 +225,10 @@ Image 敶勗 + + Column Definition + + Condition @@ -301,6 +305,14 @@ Columns Editor 甈雿蝺刻摩 + + No columns defined + + + + Press the "Add" button to create one + + DateDialog @@ -312,12 +324,9 @@ Today - - - DateWidget None - + @@ -354,6 +363,15 @@ Export + + No options defined for this enumeration type + + + + Press the "Add" button to create one, or press +the "Import" button to load lines from a text file + + EnumManager @@ -371,6 +389,14 @@ deleted: Continue? 蝜潛? + + No enumerated column types defined + + + + Press the "Add" button to create one + + FilterEditor @@ -697,6 +723,38 @@ deleted: Print Pre&view + + Views + + + + Change the active view + + + + Sortings + 摨孵 + + + Change the active sorting + + + + Filters + 蝭拚 + + + Change the active filter + + + + Fullscreen + + + + View PortaBase in fullscreen mode + + NumberWidget @@ -873,10 +931,6 @@ current filter? Not a PortaBase file 銝烈ortaBase 瑼獢 - - Toolbar - - PortaBase files PortaBase瑼獢 @@ -913,6 +967,14 @@ current filter? About %1 + + For statistics on a particular column, press and hold that column's header for at least half of a second + + + + No such file exists + + Preferences @@ -1072,6 +1134,25 @@ current filter? Thistle + + View rows with a single click + + + + + QFileSystemModel + + %1 bytes + + + + %1 KB + + + + %1 MB + + QMenuBar @@ -1369,6 +1450,14 @@ current filter? Next row + + Copy this row + + + + Delete this row + + SlideshowDialog @@ -1436,6 +1525,53 @@ current filter? + + VSFManager + + Views + + + + Current View + + + + New View + + + + Sortings + 摨孵 + + + Current Sorting + + + + New Sorting + + + + Filters + 蝭拚 + + + Current Filter + + + + New Filter + + + + Selected Column + + + + None + + + View @@ -1544,14 +1680,18 @@ current filter? Column Name 甈雿蝔 - - None - - All Rows + + No default sorting + + + + No default filter + + XMLImport diff --git a/resources/windows.qrc b/resources/windows.qrc new file mode 100644 index 0000000..48c6afb --- /dev/null +++ b/resources/windows.qrc @@ -0,0 +1,66 @@ + + + icons/checked.png + icons/unchecked.png + icons/mac/add.png + icons/mac/back.png + icons/mac/calculator.png + icons/mac/calendar.png + icons/mac/close.png + icons/mac/copy_row.png + icons/mac/copy_text.png + icons/mac/delete.png + icons/mac/document_small.png + icons/mac/document_large.png + icons/mac/edit.png + icons/mac/find.png + icons/mac/forward.png + icons/mac/image.png + icons/mac/import.png + icons/mac/new.png + icons/mac/note.png + icons/mac/open.png + icons/mac/quit.png + icons/mac/refresh.png + icons/mac/save.png + icons/mac/view.png + icons/mac/sort.png + icons/mac/filter.png + icons/mac/fullscreen.png + + + icons/mac/PortaBase.png + help/html/PortaBase.html + + + translations/portabase_en.qm + translations/qt_en.qm + + + translations/portabase_cs.qm + translations/qt_cs.qm + + + translations/portabase_de.qm + translations/qt_de.qm + + + translations/portabase_es.qm + translations/qt_es.qm + + + translations/portabase_fr.qm + translations/qt_fr.qm + + + help/ja/html/PortaBase.html + translations/portabase_ja.qm + translations/qt_ja.qm + + + help/tw/html/PortaBase.html + translations/portabase_zh_TW.qm + translations/qt_zh_TW.qm + + + \ No newline at end of file