diff --git a/stepmania/src/DateTime.cpp b/stepmania/src/DateTime.cpp index 2a9a6a5ba1..4b83c105a7 100644 --- a/stepmania/src/DateTime.cpp +++ b/stepmania/src/DateTime.cpp @@ -2,8 +2,9 @@ #include "DateTime.h" #include "RageUtil.h" #include "EnumHelper.h" +#if !defined(SMPACKAGE) #include "ThemeMetric.h" - +#endif DateTime::DateTime() { @@ -195,7 +196,9 @@ static const CString MonthNames[] = "December", }; XToString( Month, MONTHS_IN_YEAR ); +#if !defined(SMPACKAGE) XToThemedString( Month, MONTHS_IN_YEAR ); +#endif CString LastWeekToString( int iLastWeekIndex ) { diff --git a/stepmania/src/LuaManager.cpp b/stepmania/src/LuaManager.cpp index 4f40d7acc0..21d5371c1b 100644 --- a/stepmania/src/LuaManager.cpp +++ b/stepmania/src/LuaManager.cpp @@ -6,9 +6,15 @@ #include "RageLog.h" #include "RageFile.h" #include "RageThreads.h" -#include "arch/Dialog/Dialog.h" #include "Foreach.h" +#if !defined(SMPACKAGE) +#include "arch/Dialog/Dialog.h" +#define DIALOG_OK Dialog::OK +#else +#define DIALOG_OK __noop +#endif + #include #include @@ -268,7 +274,7 @@ bool LuaHelpers::RunScriptFile( const CString &sFile ) if( !f.Open( sFile ) ) { CString sError = ssprintf( "Couldn't open Lua script \"%s\": %s", sFile.c_str(), f.GetError().c_str() ); - Dialog::OK( sError, "LUA_ERROR" ); + DIALOG_OK( sError, "LUA_ERROR" ); return false; } @@ -276,7 +282,7 @@ bool LuaHelpers::RunScriptFile( const CString &sFile ) if( f.Read( sScript ) == -1 ) { CString sError = ssprintf( "Error reading Lua script \"%s\": %s", sFile.c_str(), f.GetError().c_str() ); - Dialog::OK( sError, "LUA_ERROR" ); + DIALOG_OK( sError, "LUA_ERROR" ); return false; } @@ -287,7 +293,7 @@ bool LuaHelpers::RunScriptFile( const CString &sFile ) { LUA->Release(L); sError = ssprintf( "Lua runtime error: %s", sError.c_str() ); - Dialog::OK( sError, "LUA_ERROR" ); + DIALOG_OK( sError, "LUA_ERROR" ); return false; } LUA->Release(L); @@ -330,7 +336,7 @@ bool LuaHelpers::RunScript( Lua *L, const CString &sExpression, const CString &s if( !LuaHelpers::RunScript( L, sExpression, sName.size()? sName:CString("in"), sError, iReturnValues ) ) { sError = ssprintf( "Lua runtime error parsing \"%s\": %s", sName.size()? sName.c_str():sExpression.c_str(), sError.c_str() ); - Dialog::OK( sError, "LUA_ERROR" ); + DIALOG_OK( sError, "LUA_ERROR" ); return false; } diff --git a/stepmania/src/SpecialFiles.cpp b/stepmania/src/SpecialFiles.cpp index 77da6ed00e..efcca5a771 100644 --- a/stepmania/src/SpecialFiles.cpp +++ b/stepmania/src/SpecialFiles.cpp @@ -3,6 +3,8 @@ const RString SpecialFiles::KEYMAPS_PATH = "Save/Keymaps.ini"; const RString SpecialFiles::PREFERENCES_INI_PATH = "Save/Preferences.ini"; +const RString SpecialFiles::THEMES_DIR = "Themes/"; +const RString SpecialFiles::LANGUAGES_SUBDIR = "Languages/"; /* diff --git a/stepmania/src/SpecialFiles.h b/stepmania/src/SpecialFiles.h index 2cf605a895..0ec6d6d6b1 100644 --- a/stepmania/src/SpecialFiles.h +++ b/stepmania/src/SpecialFiles.h @@ -7,6 +7,9 @@ namespace SpecialFiles { extern const RString KEYMAPS_PATH; extern const RString PREFERENCES_INI_PATH; + extern const RString THEMES_DIR; + extern const RString LANGUAGES_SUBDIR; + } #endif diff --git a/stepmania/src/ThemeManager.cpp b/stepmania/src/ThemeManager.cpp index 59126770ff..39b9233c24 100644 --- a/stepmania/src/ThemeManager.cpp +++ b/stepmania/src/ThemeManager.cpp @@ -17,6 +17,7 @@ #include "ScreenDimensions.h" #include "Command.h" #include "LocalizedString.h" +#include "SpecialFiles.h" ThemeManager* THEME = NULL; // global object accessable from anywhere in the program @@ -33,9 +34,7 @@ StringToX( ElementCategory ); const RString BASE_THEME_NAME = "default"; -const RString LANGUAGES_SUBDIR = "Languages/"; const RString BASE_LANGUAGE = "english"; -const RString THEMES_DIR = "Themes/"; const RString METRICS_FILE = "metrics.ini"; @@ -125,7 +124,7 @@ ThemeManager::~ThemeManager() void ThemeManager::GetThemeNames( vector& AddTo ) { - GetDirListing( THEMES_DIR + "*", AddTo, true ); + GetDirListing( SpecialFiles::THEMES_DIR + "*", AddTo, true ); StripCvs( AddTo ); } @@ -356,7 +355,7 @@ void ThemeManager::UpdateLuaGlobals() RString ThemeManager::GetThemeDirFromName( const RString &sThemeName ) { - return THEMES_DIR + sThemeName + "/"; + return SpecialFiles::THEMES_DIR + sThemeName + "/"; } struct CompareLanguageTag @@ -847,7 +846,7 @@ void ThemeManager::NextTheme() void ThemeManager::GetLanguagesForTheme( const RString &sThemeName, vector& asLanguagesOut ) { - RString sLanguageDir = GetThemeDirFromName(sThemeName) + LANGUAGES_SUBDIR; + RString sLanguageDir = GetThemeDirFromName(sThemeName) + SpecialFiles::LANGUAGES_SUBDIR; vector as; GetDirListing( sLanguageDir + "*.ini", as ); @@ -865,7 +864,7 @@ void ThemeManager::GetLanguagesForTheme( const RString &sThemeName, vector& AddTo ) @@ -926,7 +925,7 @@ void ThemeManager::GetMetricsThatBeginWith( const RString &sClassName_, const RS RString ThemeManager::GetBlankGraphicPath() { - return THEMES_DIR + BASE_THEME_NAME + "/" + ElementCategoryToString(EC_GRAPHICS) + "/_blank.png"; + return SpecialFiles::THEMES_DIR + BASE_THEME_NAME + "/" + ElementCategoryToString(EC_GRAPHICS) + "/_blank.png"; } // lua start diff --git a/stepmania/src/smpackage-net2003.vcproj b/stepmania/src/smpackage-net2003.vcproj index 4070b2e225..2c0186ddff 100644 --- a/stepmania/src/smpackage-net2003.vcproj +++ b/stepmania/src/smpackage-net2003.vcproj @@ -176,6 +176,12 @@ + + + + @@ -250,10 +256,10 @@ RelativePath="menu.bmp"> + RelativePath="smpackage.ICO"> + RelativePath="res\smpackage.ico"> @@ -371,6 +377,18 @@ + + + + + + + + @@ -383,6 +401,12 @@ + + + + @@ -425,6 +449,12 @@ + + + + @@ -499,12 +529,6 @@ - - - - diff --git a/stepmania/src/smpackage/LanguagesDlg.cpp b/stepmania/src/smpackage/LanguagesDlg.cpp new file mode 100644 index 0000000000..4778ec874c --- /dev/null +++ b/stepmania/src/smpackage/LanguagesDlg.cpp @@ -0,0 +1,112 @@ +// LanguagesDlg.cpp : implementation file +// + +#define CO_EXIST_WITH_MFC +#include "global.h" +#include "stdafx.h" +#include "smpackage.h" +#include "LanguagesDlg.h" +#include "SpecialFiles.h" +#include "RageUtil.h" + + +// LanguagesDlg dialog + +IMPLEMENT_DYNAMIC(LanguagesDlg, CDialog) +LanguagesDlg::LanguagesDlg(CWnd* pParent /*=NULL*/) + : CDialog(LanguagesDlg::IDD, pParent) +{ +} + +LanguagesDlg::~LanguagesDlg() +{ +} + +void LanguagesDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + DDX_Control(pDX, IDC_LIST_THEMES, m_listThemes); + DDX_Control(pDX, IDC_LIST_LANGUAGES, m_listLanguages); +} + +BOOL LanguagesDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + vector vs; + GetDirListing( SpecialFiles::THEMES_DIR+"*", vs, true ); + FOREACH_CONST( RString, vs, s ) + m_listThemes.AddString( *s ); + if( !vs.empty() ) + m_listThemes.SetSel( 0 ); + else + OnSelchangeListThemes(); + + return TRUE; // return TRUE unless you set the focus to a control +} + +static RString GetCurrentString( const CListBox &list ) +{ + // TODO: Add your control notification handler code here + int iSel = list.GetCurSel(); + if( iSel == LB_ERR ) + return RString(); + CString s; + list.GetText( list.GetCurSel(), s ); + return RString( s ); +} + +void LanguagesDlg::OnSelchangeListThemes() +{ + // TODO: Add your control notification handler code here + m_listLanguages.ResetContent(); + + RString sTheme = GetCurrentString( m_listThemes ); + if( sTheme.empty() ) + { + OnSelchangeListLanguages(); + return; + } + + RString sLanguagesDir = SpecialFiles::THEMES_DIR + sTheme + "/" + SpecialFiles::LANGUAGES_SUBDIR; + + vector vs; + GetDirListing( sLanguagesDir+"*.ini", vs, false ); + FOREACH_CONST( RString, vs, s ) + m_listLanguages.AddString( GetFileNameWithoutExtension(*s) ); + if( !vs.empty() ) + m_listLanguages.SetSel( 0 ); + else + OnSelchangeListLanguages(); +} + +void LanguagesDlg::OnSelchangeListLanguages() +{ + // TODO: Add your control notification handler code here + int iTotalStrings = -1; + int iNeedTranslation = -1; + + RString sTheme = GetCurrentString( m_listThemes ); + RString sLanguage = GetCurrentString( m_listLanguages ); + + if( !sTheme.empty() && !sLanguage.empty() ) + { + RString sThemeDir = "Themes/" + sTheme + "/"; + RString sLanguageFile = sThemeDir + SpecialFiles::LANGUAGES_SUBDIR + sLanguage + ".ini"; + + iTotalStrings = rand()%100; + iNeedTranslation = rand()%100; + } + + GetDlgItem(IDC_STATIC_TOTAL_STRINGS )->SetWindowText( ssprintf(iTotalStrings==-1?"":"%d",iTotalStrings) ); + GetDlgItem(IDC_STATIC_NEED_TRANSLATION )->SetWindowText( ssprintf(iNeedTranslation==-1?"":"%d",iNeedTranslation) ); +} + + +BEGIN_MESSAGE_MAP(LanguagesDlg, CDialog) + ON_LBN_SELCHANGE(IDC_LIST_THEMES, OnSelchangeListThemes) + ON_LBN_SELCHANGE(IDC_LIST_LANGUAGES, OnSelchangeListLanguages) +END_MESSAGE_MAP() + + +// LanguagesDlg message handlers diff --git a/stepmania/src/smpackage/LanguagesDlg.h b/stepmania/src/smpackage/LanguagesDlg.h new file mode 100644 index 0000000000..0ed7bc61c5 --- /dev/null +++ b/stepmania/src/smpackage/LanguagesDlg.h @@ -0,0 +1,28 @@ +#pragma once +#include "afxwin.h" + + +// LanguagesDlg dialog + +class LanguagesDlg : public CDialog +{ + DECLARE_DYNAMIC(LanguagesDlg) + +public: + LanguagesDlg(CWnd* pParent = NULL); // standard constructor + virtual ~LanguagesDlg(); + +// Dialog Data + enum { IDD = IDD_THEMES }; + +protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + virtual BOOL OnInitDialog(); + void OnSelchangeListThemes(); + void OnSelchangeListLanguages(); + + DECLARE_MESSAGE_MAP() +public: + CListBox m_listThemes; + CListBox m_listLanguages; +}; diff --git a/stepmania/src/smpackage/MainMenuDlg.cpp b/stepmania/src/smpackage/MainMenuDlg.cpp index d5bd5d7fce..b399d1eccb 100644 --- a/stepmania/src/smpackage/MainMenuDlg.cpp +++ b/stepmania/src/smpackage/MainMenuDlg.cpp @@ -15,7 +15,8 @@ #include "archutils/Win32/SpecialDirs.h" #include "SpecialFiles.h" #include "ProductInfo.h" -#include ".\mainmenudlg.h" +#include "mainmenudlg.h" +#include "LanguagesDlg.h" #ifdef _DEBUG #define new DEBUG_NEW @@ -58,6 +59,7 @@ BEGIN_MESSAGE_MAP(MainMenuDlg, CDialog) ON_BN_CLICKED(IDC_BUTTON_LAUNCH_GAME, OnBnClickedButtonLaunchGame) ON_BN_CLICKED(IDC_VIEW_STATISTICS, OnBnClickedViewStatistics) ON_BN_CLICKED(IDC_CLEAR_CACHE, OnBnClickedClearCache) + ON_BN_CLICKED(IDC_LANGUAGES, OnBnClickedLanguages) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// @@ -257,6 +259,13 @@ void MainMenuDlg::OnBnClickedClearCache() ASSERT(0); } +void MainMenuDlg::OnBnClickedLanguages() +{ + // TODO: Add your control notification handler code here + LanguagesDlg dlg; + dlg.DoModal(); +} + /* * (c) 2002-2005 Chris Danford * All rights reserved. @@ -280,4 +289,4 @@ void MainMenuDlg::OnBnClickedClearCache() * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. - */ + */ \ No newline at end of file diff --git a/stepmania/src/smpackage/MainMenuDlg.h b/stepmania/src/smpackage/MainMenuDlg.h index c7c2682c3c..419bcf7459 100644 --- a/stepmania/src/smpackage/MainMenuDlg.h +++ b/stepmania/src/smpackage/MainMenuDlg.h @@ -51,6 +51,7 @@ public: afx_msg void OnBnClickedButtonLaunchGame(); afx_msg void OnBnClickedViewStatistics(); afx_msg void OnBnClickedClearCache(); + afx_msg void OnBnClickedLanguages(); }; //{{AFX_INSERT_LOCATION}} diff --git a/stepmania/src/smpackage/resource.h b/stepmania/src/smpackage/resource.h index df86fef3c0..c22b283113 100644 --- a/stepmania/src/smpackage/resource.h +++ b/stepmania/src/smpackage/resource.h @@ -17,6 +17,7 @@ #define IDD_SHOW_COMMENT 147 #define IDD_UNINSTALL_OLD_PACKAGES 148 #define IDD_CHANGE_GAME_SETTINGS 149 +#define IDD_THEMES 150 #define IDC_LIST_SONGS 1000 #define IDC_LIST 1000 #define IDC_BUTTON_PLAY 1001 @@ -54,6 +55,7 @@ #define IDC_VIEW_STATISTICS 1030 #define IDC_CLEAR_KEYMAPS2 1031 #define IDC_CLEAR_CACHE 1031 +#define IDC_LANGUAGES 1032 #define IDC_BUTTON_REFRESH 1035 #define IDC_BUTTON_SAVE 1036 #define IDC_BUTTON_OVERRIDE 1037 @@ -63,8 +65,10 @@ #define IDC_DONTSHOW 1042 #define IDC_PACKAGES 1044 #define IDC_BUTTON1 1045 +#define IDC_BUTTON_DELETE 1046 #define IDC_PROGRESS1 1047 #define IDC_RADIO_DEFAULT 1048 +#define IDC_BUTTON_IMPORT 1048 #define IDC_RADIO_OPENGL 1049 #define IDC_RADIO_DIRECT3D 1050 #define IDC_RADIO_SOUND_DEFAULT 1051 @@ -76,14 +80,19 @@ #define IDC_BUTTON_LAUNCH_GAME 1055 #define IDC_RADIO_SOUND_DIRECTSOUND_HARDWARE 1056 #define IDC_RADIO_SOUND_WAVEOUT 1057 +#define IDC_BUTTON_CREATE 1057 +#define IDC_LIST_LANGUAGES 1058 +#define IDC_STATIC_TOTAL_STRINGS 1060 +#define IDC_STATIC_NEED_TRANSLATION 1061 +#define IDC_STATIC_TOTAL_STRINGS2 1062 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 150 +#define _APS_NEXT_RESOURCE_VALUE 151 #define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1056 +#define _APS_NEXT_CONTROL_VALUE 1062 #define _APS_NEXT_SYMED_VALUE 104 #endif #endif diff --git a/stepmania/src/smpackage/smpackage.cpp b/stepmania/src/smpackage/smpackage.cpp index 6195667a63..370d2256dd 100644 --- a/stepmania/src/smpackage/smpackage.cpp +++ b/stepmania/src/smpackage/smpackage.cpp @@ -9,6 +9,7 @@ #include "MainMenuDlg.h" #include "RageFileManager.h" #include "arch/arch.h" +#include "LuaManager.h" #ifdef _DEBUG @@ -38,8 +39,11 @@ extern RString GetLastErrorString(); BOOL CSmpackageApp::InitInstance() { + TCHAR szCurrentDirectory[MAX_PATH]; + GetCurrentDirectory( ARRAYSIZE(szCurrentDirectory), szCurrentDirectory ); + /* Almost everything uses this to read and write files. Load this early. */ - FILEMAN = new RageFileManager( "" ); + FILEMAN = new RageFileManager( szCurrentDirectory ); FILEMAN->MountInitialFilesystems(); /* Set this up next. Do this early, since it's needed for RageException::Throw. */ @@ -47,12 +51,7 @@ BOOL CSmpackageApp::InitInstance() if( DoesFileExist("Songs") ) // this is a SM program directory - { - // make sure it's in the list of install directories - TCHAR szCurrentDirectory[MAX_PATH]; - GetCurrentDirectory( MAX_PATH, szCurrentDirectory ); - SMPackageUtil::AddStepManiaInstallDir( szCurrentDirectory ); - } + SMPackageUtil::AddStepManiaInstallDir( szCurrentDirectory ); // add this if it doesn't already exist // check if there's a .smzip command line argument @@ -109,6 +108,7 @@ BOOL CSmpackageApp::InitInstance() } FILEMAN = new RageFileManager( "" ); + LUA = new LuaManager(); // Show the Manager Dialog @@ -117,6 +117,7 @@ BOOL CSmpackageApp::InitInstance() // if (nResponse == IDOK) + SAFE_DELETE( LUA ); SAFE_DELETE( FILEMAN ); diff --git a/stepmania/src/smpackage/smpackage.rc b/stepmania/src/smpackage/smpackage.rc index 76c52ca2e2..caaae8bbd8 100644 --- a/stepmania/src/smpackage/smpackage.rc +++ b/stepmania/src/smpackage/smpackage.rc @@ -155,23 +155,23 @@ BEGIN IDC_STATIC,18,144,196,17 END -IDD_MENU DIALOGEX 0, 0, 334, 303 +IDD_MENU DIALOGEX 0, 0, 332, 325 STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "StepMania Tools Main Menu" FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN - DEFPUSHBUTTON "Exit",IDOK,277,282,50,14 + DEFPUSHBUTTON "Exit",IDOK,275,304,50,14 CONTROL 140,IDC_STATIC,"Static",SS_BITMAP,0,0,332,38 - GROUPBOX "Installation",IDC_STATIC,7,41,320,28 + GROUPBOX "Installation",IDC_STATIC,7,41,318,28 PUSHBUTTON "Edit Installations",IDC_EDIT_INSTALLATIONS,241,49,75,15 - GROUPBOX "Create and Share",IDC_STATIC,7,219,320,57 + GROUPBOX "Create and Share",IDC_STATIC,7,219,318,79 PUSHBUTTON "Export Packages",IDC_EXPORT_PACKAGES,15,234,75,15 LTEXT "Create .smzip package files to share with other users. Packages can contain songs, courses, themes, backgrounds, and more.", IDC_STATIC,104,233,215,18 PUSHBUTTON "Create Song",IDC_CREATE_SONG,15,255,75,15 - LTEXT "Create a new song in StepMania from your favorite mp3 or ogg music file.", + LTEXT "Create a new song in from your favorite mp3 or ogg music file.", IDC_STATIC,103,254,215,20 - GROUPBOX "Troubleshooting",IDC_STATIC,7,109,320,109 + GROUPBOX "Troubleshooting",IDC_STATIC,7,109,318,109 PUSHBUTTON "Change Preferences",IDC_CHANGE_PREFERENCES,16,120,75,15 PUSHBUTTON "Open Preferences",IDC_OPEN_PREFERENCES,16,152,75,15 LTEXT "Using this feature, you can:\n - Change the graphics API that the game will use.\n - Change the sound API that the game will use.\n - Clear all preferences if the game won't start.\n - Open the preferences file to make changes by hand.", @@ -182,14 +182,17 @@ BEGIN ES_READONLY LTEXT "Erase all of your keyboard and joystick mappings if you've made a mistake.", IDC_STATIC,104,174,214,18 - PUSHBUTTON "Launch Game",IDC_BUTTON_LAUNCH_GAME,189,282,70,14 + PUSHBUTTON "Launch Game",IDC_BUTTON_LAUNCH_GAME,189,304,70,14 PUSHBUTTON "View Statistics",IDC_VIEW_STATISTICS,16,85,75,15 LTEXT "View high scores and usage statistics and other data saved from your play.", IDC_STATIC,103,84,215,20 - GROUPBOX "Statistics",IDC_STATIC,7,72,320,35 + GROUPBOX "Statistics",IDC_STATIC,7,72,318,35 PUSHBUTTON "Clear Cache",IDC_CLEAR_CACHE,16,196,75,15 LTEXT "Erase the song and course cache. Use this if you change a song file and the change isn't showing in-game.", IDC_STATIC,104,196,214,18 + PUSHBUTTON "Languages",IDC_LANGUAGES,15,276,75,15 + LTEXT "Create a new or manage existing language translations.", + IDC_STATIC,103,275,215,20 END IDD_ENTER_COMMENT DIALOGEX 0, 0, 312, 202 @@ -271,6 +274,32 @@ BEGIN IDC_STATIC,7,234,147,26 END +IDD_THEMES DIALOGEX 0, 0, 329, 194 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | + WS_SYSMENU +CAPTION "Language Translations" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "Close",IDOK,272,173,50,14 + LISTBOX IDC_LIST_THEMES,7,18,102,121,LBS_SORT | + LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + LTEXT "Themes",IDC_STATIC,7,7,101,10 + LISTBOX IDC_LIST_LANGUAGES,116,17,100,121,LBS_SORT | + LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + LTEXT "Languages",IDC_STATIC,118,7,98,10 + PUSHBUTTON "Create Language",IDC_BUTTON_CREATE,232,45,85,15 + PUSHBUTTON "Delete Language",IDC_BUTTON_DELETE,232,67,85,15 + PUSHBUTTON "Export CSV",IDC_BUTTON_EXPORT,232,89,85,15 + PUSHBUTTON "Import CSV",IDC_BUTTON_IMPORT,232,111,85,15 + LTEXT "Create a new language, export the theme strings to a CSV, edit the CSV using Excel or a text editor, then import the CSV file back into the same language.", + IDC_STATIC,7,144,315,25 + LTEXT "Selection details",IDC_STATIC,222,7,100,9 + LTEXT "Total Strings:",IDC_STATIC,225,17,62,10 + LTEXT "Need translation:",IDC_STATIC,225,28,69,10 + LTEXT "",IDC_STATIC_TOTAL_STRINGS,296,18,26,10 + LTEXT "",IDC_STATIC_NEED_TRANSLATION,296,27,26,10 +END + ///////////////////////////////////////////////////////////////////////////// // @@ -353,9 +382,9 @@ BEGIN IDD_MENU, DIALOG BEGIN LEFTMARGIN, 7 - RIGHTMARGIN, 327 + RIGHTMARGIN, 325 TOPMARGIN, 7 - BOTTOMMARGIN, 296 + BOTTOMMARGIN, 318 END IDD_ENTER_COMMENT, DIALOG @@ -389,6 +418,14 @@ BEGIN TOPMARGIN, 7 BOTTOMMARGIN, 274 END + + IDD_THEMES, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 322 + TOPMARGIN, 7 + BOTTOMMARGIN, 187 + END END #endif // APSTUDIO_INVOKED