diff options
-rw-r--r-- | packaging/windows/make-translations.vbs | 42 | ||||
-rw-r--r-- | packaging/windows/setup.nsi | 26 | ||||
-rw-r--r-- | src/main.cpp | 7 | ||||
-rw-r--r-- | tmw.cbp | 2 |
4 files changed, 72 insertions, 5 deletions
diff --git a/packaging/windows/make-translations.vbs b/packaging/windows/make-translations.vbs new file mode 100644 index 00000000..48246188 --- /dev/null +++ b/packaging/windows/make-translations.vbs @@ -0,0 +1,42 @@ +Set fso = CreateObject("Scripting.FileSystemObject")
+Set WshShell = CreateObject("WScript.Shell")
+Dim s, infile, outfile, command
+
+Function CreateFolderIfNonexistent(folder)
+ if not fso.FolderExists(folder) then
+ fso.CreateFolder(folder)
+ end if
+end Function
+
+'check for existence of msgfmt
+if not fso.FileExists("msgfmt.exe") then
+ WScript.echo "msgfmt.exe not found. Please get gettext for windows from http://gnuwin32.sourceforge.net/packages/gettext.htm and copy the files msgfmt.exe and all dll files from the gettext/bin directory into this directory and run this script again."
+ WScript.Quit(1)
+end if
+
+CreateFolderIfNonexistent("..\..\translations\")
+
+'open translation list
+Set stream = fso.GetFile("..\..\po\LINGUAS").OpenAsTextStream(1, 0)
+
+'iterate contents of translations file
+translations = 0
+do while not stream.AtEndOfStream
+ s = stream.ReadLine()
+ if inStr(s, "#") = false then
+ 'create the output directory
+ CreateFolderIfNonexistent("..\..\translations\" + s)
+ CreateFolderIfNonexistent("..\..\translations\" + s + "\LC_MESSAGES")
+ 'build the translate command
+ infile = "../../po/" + s + ".po"
+ outfile = "../../translations/" + s +"/LC_MESSAGES/tmw.mo"
+ command = "msgfmt -c -o " + outfile + " " + infile
+ 'execute translate command
+ errval = WshShell.run(command, 0, true)
+ if errval = 0 then
+ translations = translations + 1
+ end if
+ end if
+loop
+
+WScript.echo translations, " translations compiled."
\ No newline at end of file diff --git a/packaging/windows/setup.nsi b/packaging/windows/setup.nsi index ec57051c..6859a941 100644 --- a/packaging/windows/setup.nsi +++ b/packaging/windows/setup.nsi @@ -43,6 +43,8 @@ SetCompressor /SOLID lzma !insertmacro MUI_PAGE_LICENSE "${SRCDIR}\COPYING" ; Directory page !insertmacro MUI_PAGE_DIRECTORY +; Components page +!insertmacro MUI_PAGE_COMPONENTS ; Instfiles page !insertmacro MUI_PAGE_INSTFILES ; Finish page @@ -152,7 +154,6 @@ Section "Core files (required)" SecCore CreateDirectory "$INSTDIR\data\graphics" CreateDirectory "$INSTDIR\data\help" CreateDirectory "$INSTDIR\data\icons" - CreateDirectory "$INSTDIR\data\music" CreateDirectory "$INSTDIR\data\graphics\gui" CreateDirectory "$INSTDIR\data\graphics\images" CreateDirectory "$INSTDIR\docs" @@ -176,12 +177,31 @@ Section "Core files (required)" SecCore File "${SRCDIR}\data\help\*.txt" SetOutPath "$INSTDIR\data\icons\" File "${SRCDIR}\data\icons\tmw.ico" - SetOutPath "$INSTDIR\data\music" - File /nonfatal "${SRCDIR}\data\music\*.ogg" SetOutPath "$INSTDIR\docs" File "${SRCDIR}\docs\FAQ.txt" SectionEnd +Section "Music" SecMusic + CreateDirectory "$INSTDIR\data\music" + SetOutPath "$INSTDIR\data\music" + File /nonfatal "${SRCDIR}\data\music\*.ogg" +SectionEnd + +Section "Translations" SecTrans + CreateDirectory "$INSTDIR\translations" + SetOutPath "$INSTDIR\translations" + File /nonfatal /r "${SRCDIR}\translations" +SectionEnd + +;Package descriptions +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecCore} "The TMW program files." + !insertmacro MUI_DESCRIPTION_TEXT ${SecMusic} "Background music." + !insertmacro MUI_DESCRIPTION_TEXT ${SecTrans} "Translations for the user interface into 23 different languages. Uncheck this component to leave it in English." +!insertmacro MUI_FUNCTION_DESCRIPTION_END + + + Section -AdditionalIcons WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" CreateShortCut "$SMPROGRAMS\The Mana World\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url" diff --git a/src/main.cpp b/src/main.cpp index 0291fd86..051840f1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -219,7 +219,7 @@ void init_engine(const Options &options) GetLastError() != ERROR_ALREADY_EXISTS) #elif defined __APPLE__ // Use Application Directory instead of .tmw - homeDir = std::string(PHYSFS_getUserDir()) + + homeDir = std::string(PHYSFS_getUserDir()) + "/Library/Application Support/The Mana World"; if ((mkdir(homeDir.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) != 0) && (errno != EEXIST)) @@ -672,9 +672,12 @@ int main(int argc, char *argv[]) #if ENABLE_NLS #ifdef WIN32 putenv(("LANG=" + std::string(_nl_locale_name_default())).c_str()); + // mingw doesn't like LOCALEDIR to be defined for some reason + bindtextdomain("tmw", "translations/"); +#else + bindtextdomain("tmw", LOCALEDIR); #endif setlocale(LC_MESSAGES, ""); - bindtextdomain("tmw", LOCALEDIR); bind_textdomain_codeset("tmw", "UTF-8"); textdomain("tmw"); #endif @@ -16,6 +16,7 @@ <Add option="-Wall" /> <Add option="-DUSE_OPENGL" /> <Add option="-DNOGDI" /> + <Add option="-DENABLE_NLS" /> </Compiler> <Linker> <Add library="guichan" /> @@ -35,6 +36,7 @@ <Add library="z.dll" /> <Add library="physfs" /> <Add library="curl.dll" /> + <Add library="intl" /> </Linker> </Target> <Target title="unix"> |