Merge with develop

--HG--
branch : experimental-ui-scaling
feature/pipeline-tools
Nimetu 8 years ago
commit f56e9e5e4c

@ -61,7 +61,7 @@ SET(NL_VERSION_MAJOR 0)
SET(NL_VERSION_MINOR 12) SET(NL_VERSION_MINOR 12)
SET(NL_VERSION_PATCH 0) SET(NL_VERSION_PATCH 0)
SET(YEAR "2004-${CURRENT_YEAR}") SET(YEAR "2004-${CURRENT_YEAR}")
SET(AUTHOR "Winchgate and The Ryzom Core Community") SET(AUTHOR "Winch Gate and The Ryzom Core Community")
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Redirect output files # Redirect output files

@ -246,11 +246,12 @@ MACRO(NL_SETUP_DEFAULT_OPTIONS)
### ###
OPTION(WITH_SYMBOLS "Keep debug symbols in binaries" OFF) OPTION(WITH_SYMBOLS "Keep debug symbols in binaries" OFF)
IF(WIN32) # only enable STLport for VC++ 2010 and less
IF(WIN32 AND MSVC_VERSION LESS 1600)
OPTION(WITH_STLPORT "With STLport support." ON ) OPTION(WITH_STLPORT "With STLport support." ON )
ELSE(WIN32) ELSE()
OPTION(WITH_STLPORT "With STLport support." OFF) OPTION(WITH_STLPORT "With STLport support." OFF)
ENDIF(WIN32) ENDIF()
OPTION(BUILD_DASHBOARD "Build to the CDash dashboard" OFF) OPTION(BUILD_DASHBOARD "Build to the CDash dashboard" OFF)

@ -4,7 +4,7 @@ NL_TARGET_DRIVER(nel_drv_direct3d_win ${SRC})
INCLUDE_DIRECTORIES(BEFORE ${DXSDK_INCLUDE_DIR}) INCLUDE_DIRECTORIES(BEFORE ${DXSDK_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nel_drv_direct3d_win nel3d nelmisc ${DXSDK_D3DX9_LIBRARY} ${DXSDK_D3D9_LIBRARY} ${DXSDK_DINPUT_LIBRARY} ${DXSDK_GUID_LIBRARY}) TARGET_LINK_LIBRARIES(nel_drv_direct3d_win nel3d nelmisc ${DXSDK_D3DX9_LIBRARY} ${DXSDK_D3D9_LIBRARY})
NL_DEFAULT_PROPS(nel_drv_direct3d_win "NeL, Driver, Video: Direct3D") NL_DEFAULT_PROPS(nel_drv_direct3d_win "NeL, Driver, Video: Direct3D")
NL_ADD_RUNTIME_FLAGS(nel_drv_direct3d_win) NL_ADD_RUNTIME_FLAGS(nel_drv_direct3d_win)

@ -1924,8 +1924,8 @@ namespace NLGUI
style.Underlined = getFontUnderlined(); style.Underlined = getFontUnderlined();
style.StrikeThrough = getFontStrikeThrough(); style.StrikeThrough = getFontStrikeThrough();
if (present[MY_HTML_SPAN_STYLE] && value[MY_HTML_SPAN_STYLE]) if (present[HTML_PRE_STYLE] && value[HTML_PRE_STYLE])
getStyleParams(value[MY_HTML_SPAN_STYLE], style); getStyleParams(value[HTML_PRE_STYLE], style);
_TextColor.push_back(style.TextColor); _TextColor.push_back(style.TextColor);
_FontFamily.push_back(style.FontFamily); _FontFamily.push_back(style.FontFamily);

@ -3,7 +3,7 @@ FILE(GLOB SRC *.cpp *.h *.def *.rc)
NL_TARGET_DRIVER(nel_drv_dsound_win ${SRC}) NL_TARGET_DRIVER(nel_drv_dsound_win ${SRC})
INCLUDE_DIRECTORIES(BEFORE ${DXSDK_INCLUDE_DIR}) INCLUDE_DIRECTORIES(BEFORE ${DXSDK_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nel_drv_dsound_win nelmisc nelsnd_lowlevel ${DXSDK_DSOUND_LIBRARY} ${DXSDK_GUID_LIBRARY}) TARGET_LINK_LIBRARIES(nel_drv_dsound_win nelmisc nelsnd_lowlevel ${DXSDK_DSOUND_LIBRARY})
NL_DEFAULT_PROPS(nel_drv_dsound_win "NeL, Driver, Sound: DirectSound") NL_DEFAULT_PROPS(nel_drv_dsound_win "NeL, Driver, Sound: DirectSound")
NL_ADD_RUNTIME_FLAGS(nel_drv_dsound_win) NL_ADD_RUNTIME_FLAGS(nel_drv_dsound_win)

@ -22,6 +22,7 @@
# include <eax.h> # include <eax.h>
#endif #endif
#include <initguid.h>
#include <dsound.h> #include <dsound.h>
#include <iostream> #include <iostream>

@ -30,7 +30,7 @@ NL_TARGET_DRIVER(nel_drv_xaudio2_win ${SRC})
INCLUDE_DIRECTORIES(BEFORE ${DXSDK_INCLUDE_DIR}) INCLUDE_DIRECTORIES(BEFORE ${DXSDK_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nel_drv_xaudio2_win nelmisc nelsnd_lowlevel ${DXSDK_XAUDIO_LIBRARY} ${DXSDK_GUID_LIBRARY}) TARGET_LINK_LIBRARIES(nel_drv_xaudio2_win nelmisc nelsnd_lowlevel ${DXSDK_XAUDIO_LIBRARY})
NL_DEFAULT_PROPS(nel_drv_xaudio2_win "NeL, Driver, Sound: XAudio2") NL_DEFAULT_PROPS(nel_drv_xaudio2_win "NeL, Driver, Sound: XAudio2")
NL_ADD_RUNTIME_FLAGS(nel_drv_xaudio2_win) NL_ADD_RUNTIME_FLAGS(nel_drv_xaudio2_win)

@ -354,19 +354,19 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
<instance template="server_box" id="opt_win" posparent="nonopt_win" posref="BM TM" w="400" h="206" y="-30" /> <instance template="server_box" id="opt_win" posparent="nonopt_win" posref="BM TM" w="400" h="206" y="-30" />
<!-- Textes --> <!-- Textes -->
<view type="text" id="title" posparent="global_win" posref="TM BM" y="24" color="255 255 255 255" <view type="text" id="title" posparent="global_win" posref="TM BM" y="2" color="255 255 255 255"
fontsize="12" shadow="true" hardtext="uiOnPatchDetail" /> fontsize="12" shadow="true" hardtext="uiOnPatchDetail" />
<view type="text" id="opt_txt" posparent="opt_win" posref="TL BL" y="1" color="255 255 255 255" <view type="text" id="opt_txt" posparent="opt_win" posref="TL BL" y="1" color="255 255 255 255"
fontsize="10" shadow="true" hardtext="uiOnPatchOpt" /> fontsize="10" shadow="true" hardtext="uiOnPatchOpt" />
<group id="global_patch" w="382" h="22" posparent="global_win" posref="MM MM" > <group id="global_patch" w="382" h="22" posparent="global_win" posref="MM MM" >
<view type="text" id="name" posref="BL BL" fontsize="12" x="2" y="0" color="135 243 28 255" shadow="true" hardtext="uiTotalPatch" /> <view type="text" id="name" posref="ML ML" fontsize="12" x="2" y="0" color="135 243 28 255" shadow="true" hardtext="uiTotalPatch" />
<view type="text" id="size" posref="BR BR" fontsize="12" x="-8" y="0" color="135 243 28 255" shadow="true" hardtext="...Kbs" /> <view type="text" id="size" posref="MR MR" fontsize="12" x="-8" y="0" color="135 243 28 255" shadow="true" hardtext="...Kbs" />
</group> </group>
<group id="nonopt_patch" w="382" h="22" posparent="nonopt_win" posref="MM MM" > <group id="nonopt_patch" w="382" h="22" posparent="nonopt_win" posref="MM MM" >
<view type="text" id="name" posref="BL BL" fontsize="12" x="2" y="0" color="135 243 28 255" shadow="true" hardtext="uiRequiredFiles" /> <view type="text" id="name" posref="ML ML" fontsize="12" x="2" y="0" color="135 243 28 255" shadow="true" hardtext="uiRequiredFiles" />
<view type="text" id="size" posref="BR BR" fontsize="12" x="-8" y="0" color="135 243 28 255" shadow="true" hardtext="...Kbs" /> <view type="text" id="size" posref="MR MR" fontsize="12" x="-8" y="0" color="135 243 28 255" shadow="true" hardtext="...Kbs" />
</group> </group>
<!-- Categories --> <!-- Categories -->
@ -412,12 +412,12 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
<link expr="eq(@UI:VARIABLES:SCREEN,4)" target="global_win:active,patch_win:active"/> <link expr="eq(@UI:VARIABLES:SCREEN,4)" target="global_win:active,patch_win:active"/>
<group id="global_patch" w="582" h="22" posparent="global_win" posref="MM MM" > <group id="global_patch" w="582" h="22" posparent="global_win" posref="MM MM" >
<view type="text" id="name" posref="BL BL" fontsize="12" x="2" y="0" color="135 243 28 255" shadow="true" hardtext="TOTAL PATCH" /> <view type="text" id="name" posref="ML ML" fontsize="12" x="2" y="0" color="135 243 28 255" shadow="true" hardtext="uiTotalPatch" />
<view type="text" id="size" posref="BR BR" fontsize="12" x="-8" y="0" color="135 243 28 255" shadow="true" hardtext=".../...Kbs" /> <view type="text" id="size" posref="MR MR" fontsize="12" x="-8" y="0" color="135 243 28 255" shadow="true" hardtext=".../...Kbs" />
</group> </group>
<link expr="eq(@UI:VARIABLES:SCREEN,4)" target="global_patch:active"/> <link expr="eq(@UI:VARIABLES:SCREEN,4)" target="global_patch:active"/>
<view type="text" id="progress" posref="TL TL" posparent="patch_win" fontsize="12" x="8" y="-8" color="135 243 28 255" shadow="true"/> <view type="text" id="progress" posref="TL TL" posparent="patch_win" fontsize="12" x="8" y="-4" color="135 243 28 255" shadow="true"/>
<view type="text" id="state" posparent="progress" posref="TR TL" w="520" x="4" y="0" line_maxw="520" color="135 243 28 255" <view type="text" id="state" posparent="progress" posref="TR TL" w="520" x="4" y="0" line_maxw="520" color="135 243 28 255"
fontsize="12" shadow="true" multi_line="true" multi_line_space="0" case_mode="%case_normal"/> fontsize="12" shadow="true" multi_line="true" multi_line_space="0" case_mode="%case_normal"/>
<link expr="eq(@UI:VARIABLES:SCREEN,4)" target="progress:active,state:active"/> <link expr="eq(@UI:VARIABLES:SCREEN,4)" target="progress:active,state:active"/>
@ -434,9 +434,9 @@ on_enter="leave_modal" options="no_bordure" mouse_pos="false" exit_key_pushed="t
<!-- Release Note --> <!-- Release Note -->
<instance template="server_box" id="release_win" posparent="bl" posref="TM TM" w="600" h="324" x="-14" y="-282" /> <instance template="server_box" id="release_win" posparent="bl" posref="TM TM" w="600" h="324" x="-14" y="-282" />
<view type="text" id="release_title" posref="TM BM" posparent="release_win" fontsize="10" y="-2" color="255 255 255 255" <view type="text" id="release_title" posref="TM BM" posparent="release_win" fontsize="10" y="0" color="255 255 255 255"
hardtext="uiOnRelease" shadow="true"/> hardtext="uiOnRelease" shadow="true"/>
<!-- <!--

@ -182,7 +182,7 @@
<style style="log_button" type="text_button" button_type="push_button" <style style="log_button" type="text_button" button_type="push_button"
tx_normal="log_but" tx_pushed="log_but_over" tx_over="log_but_over" wmargin="48" tx_normal="log_but" tx_pushed="log_but_over" tx_over="log_but_over" wmargin="48"
color="255 255 255 255" col_over="255 255 255 255" col_pushed="255 255 255 255" color="255 255 255 255" col_over="255 255 255 255" col_pushed="255 255 255 255"
text_y="-3" fontsize="10" shadow="true" text_y="0" fontsize="10" shadow="true"
text_color_normal="255 255 255 160" text_color_normal="255 255 255 160"
text_color_pushed="255 255 255 255" text_color_pushed="255 255 255 255"
text_color_over="255 255 255 255" text_color_over="255 255 255 255"

@ -1223,25 +1223,29 @@ void CPlayerService::initConfigFileVars()
MaxNbGuilds = 1000; MaxNbGuilds = 1000;
CConfigFile::CVar *varMaxNbObjects = ConfigFile.getVarPtr("NbObjectsLimit"); CConfigFile::CVar *varMaxNbObjects = ConfigFile.getVarPtr("NbObjectsLimit");
if ( varMaxNbPlayers ) if ( varMaxNbObjects )
MaxNbObjects= varMaxNbPlayers->asInt(); MaxNbObjects = varMaxNbObjects->asInt();
else else
MaxNbObjects = 1000; MaxNbObjects = 1000;
CConfigFile::CVar *varMaxNbNpcSpawnedByEGS = ConfigFile.getVarPtr("NbNpcSpawnedByEGSLimit"); CConfigFile::CVar *varMaxNbNpcSpawnedByEGS = ConfigFile.getVarPtr("NbNpcSpawnedByEGSLimit");
if ( varMaxNbPlayers ) if ( varMaxNbNpcSpawnedByEGS )
MaxNbNpcSpawnedByEGS = varMaxNbPlayers->asInt(); MaxNbNpcSpawnedByEGS = varMaxNbNpcSpawnedByEGS->asInt();
else else
MaxNbNpcSpawnedByEGS = 50; MaxNbNpcSpawnedByEGS = 50;
CConfigFile::CVar *varMaxNbForageSources = ConfigFile.getVarPtr("NbForageSourcesLimit"); CConfigFile::CVar *varMaxNbForageSources = ConfigFile.getVarPtr("NbForageSourcesLimit");
if ( varMaxNbForageSources ) if ( varMaxNbForageSources )
MaxNbForageSources = varMaxNbForageSources->asInt(); MaxNbForageSources = varMaxNbForageSources->asInt();
else else
MaxNbForageSources = 2000; MaxNbForageSources = 2000;
CConfigFile::CVar *varMaxNbToxicClouds = ConfigFile.getVarPtr("NbToxicCloudsLimit"); CConfigFile::CVar *varMaxNbToxicClouds = ConfigFile.getVarPtr("NbToxicCloudsLimit");
if ( varMaxNbToxicClouds ) if ( varMaxNbToxicClouds )
MaxNbToxicClouds = varMaxNbToxicClouds->asInt(); MaxNbToxicClouds = varMaxNbToxicClouds->asInt();
else else
MaxNbToxicClouds = 1000; MaxNbToxicClouds = 1000;
nlinfo( "NbPlayersLimit=%u NbObjectsLimit=%u NbNpcSpawnedByEGSLimit=%u NbForageSourcesLimit=%u NbToxicCloudsLimit=%u NbGuildLimit=%u", MaxNbPlayers, MaxNbObjects, MaxNbNpcSpawnedByEGS, MaxNbForageSources, MaxNbToxicClouds, MaxNbGuilds ); nlinfo( "NbPlayersLimit=%u NbObjectsLimit=%u NbNpcSpawnedByEGSLimit=%u NbForageSourcesLimit=%u NbToxicCloudsLimit=%u NbGuildLimit=%u", MaxNbPlayers, MaxNbObjects, MaxNbNpcSpawnedByEGS, MaxNbForageSources, MaxNbToxicClouds, MaxNbGuilds );
CConfigFile::CVar *varExportDepositContents = ConfigFile.getVarPtr("ExportDepositContents"); CConfigFile::CVar *varExportDepositContents = ConfigFile.getVarPtr("ExportDepositContents");

@ -7,8 +7,8 @@ FILE(GLOB CLIENT_INSTALL_UIS ui/*.ui)
FILE(GLOB CLIENT_INSTALL_TRANS translations/*.ts) FILE(GLOB CLIENT_INSTALL_TRANS translations/*.ts)
FILE(GLOB CLIENT_INSTALL_RCS res/*.qrc) FILE(GLOB CLIENT_INSTALL_RCS res/*.qrc)
#CONFIGURE_FILE(translations/translations.qrc ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc COPYONLY) CONFIGURE_FILE(translations/translations.qrc ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc COPYONLY)
#SET(CLIENT_INSTALL_RCS resources.qrc ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc) LIST(APPEND CLIENT_INSTALL_RCS ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc)
IF(WITH_QT) IF(WITH_QT)
INCLUDE_DIRECTORIES(${QT_INCLUDES}) INCLUDE_DIRECTORIES(${QT_INCLUDES})
@ -51,3 +51,7 @@ IF(WITH_PCH)
ENDIF() ENDIF()
INSTALL(TARGETS ryzom_installer_qt RUNTIME DESTINATION ${RYZOM_GAMES_PREFIX} COMPONENT client) INSTALL(TARGETS ryzom_installer_qt RUNTIME DESTINATION ${RYZOM_GAMES_PREFIX} COMPONENT client)
IF(UNIX AND NOT APPLE)
INSTALL(FILES res/ryzom_installer.png DESTINATION ${RYZOM_SHARE_PREFIX} COMPONENT client)
ENDIF()

@ -5,4 +5,8 @@
<qresource prefix="/icons"> <qresource prefix="/icons">
<file>ryzom.ico</file> <file>ryzom.ico</file>
</qresource> </qresource>
<qresource prefix="/templates">
<file>template.desktop</file>
<file>ryzom_installer.ini</file>
</qresource>
</RCC> </RCC>

@ -0,0 +1,61 @@
version=1
[common]
installation_directory=
[product]
name=Ryzom
publisher="Winch Gate Property Limited"
url_about=http://ryzom.com/?lang=$LANG
url_help=http://app.ryzom.com/app_forum/index.php?page=topic/view/22047/1&post149889=$LANG#1
comments=Science-fantasy MMORPG
[servers]
size=2
[server_0]
id=ryzom_live
name=Atys
display_url="http://app.ryzom.com/app_releasenotes/index.php?lang=$LANG"
data_download_url="http://downloads.sourceforge.net/project/ryzom/ryzom_live_data.7z?r=&ts=$TIMESTAMP"
data_download_filename=ryzom_live_data.7z
data_compressed_size=1500000000
data_uncompressed_size=10000000000
client_download_url="http://downloads.sourceforge.net/project/ryzom/ryzom_live_client_$ARCH.zip?r=&ts=$TIMESTAMP"
client_download_filename=ryzom_live_client_$ARCH.zip
client_filename_windows=ryzom_client_r.exe
client_filename_osx=Ryzom.app/Contents/MacOS/Ryzom
client_filename_linux=ryzom_client
client_filename_old_windows=client_ryzom_rd.exe
configuration_filename_windows=ryzom_configuration_qt_r.exe
configuration_filename_osx=Ryzom.app/Contents/MacOS/RyzomConfiguration
configuration_filename_linux=ryzom_configuration_qt
installer_filename_windows=ryzom_installer_qt_r.exe
installer_filename_osx=RyzomInstaller.app/Contents/MacOS/RyzomInstaller
installer_filename_linux=ryzom_installer_qt
comments=
[server_1]
id=ryzom_dev
name=Yubo
display_url="http://app.ryzom.com/app_releasenotes/index.php?lang=$LANG"
data_download_url="http://downloads.sourceforge.net/project/ryzom/ryzom_live_data.7z?r=&ts=$TIMESTAMP"
data_download_filename=ryzom_live_data.7z
data_compressed_size=1500000000
data_uncompressed_size=10000000000
client_download_url="http://downloads.sourceforge.net/project/ryzom/ryzom_live_client_$ARCH.zip?r=&ts=$TIMESTAMP"
client_download_filename=ryzom_live_client_$ARCH.zip
client_filename_windows=ryzom_client_r.exe
client_filename_osx=Ryzom.app/Contents/MacOS/Ryzom
client_filename_linux=ryzom_client
client_filename_old_windows=client_ryzom_rd.exe
configuration_filename_windows=ryzom_configuration_qt_r.exe
configuration_filename_osx=Ryzom.app/Contents/MacOS/RyzomConfiguration
configuration_filename_linux=ryzom_configuration_qt
installer_filename_windows=ryzom_installer_qt_r.exe
installer_filename_osx=RyzomInstaller.app/Contents/MacOS/RyzomInstaller
installer_filename_linux=ryzom_installer_qt
comments=Test server
[profiles]
size=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

@ -0,0 +1,10 @@
[Desktop Entry]
Version=1.0
Name=$NAME
Type=Application
GenericName=MMORPG
Exec=$COMMAND
Icon=$ICON
Terminal=false
Hidden=false
Categories=Game;RolePlaying;

@ -60,33 +60,101 @@ QString CProfile::getClientFullPath() const
return s.getClientFullPath(); return s.getClientFullPath();
} }
QString CProfile::getClientDesktopLinkFullPath() const QString CProfile::getClientDesktopShortcutFullPath() const
{ {
#ifdef Q_OS_WIN32 #ifdef Q_OS_WIN32
return CConfigFile::getInstance()->getDesktopDirectory() + "/" + name + ".lnk"; return CConfigFile::getInstance()->getDesktopDirectory() + "/" + name + ".lnk";
#else #elif defined(Q_OS_MAC)
return ""; return "";
#else
return CConfigFile::getInstance()->getDesktopDirectory() + "/" + name + ".desktop";
#endif #endif
} }
QString CProfile::getClientMenuLinkFullPath() const QString CProfile::getClientMenuShortcutFullPath() const
{ {
#ifdef Q_OS_WIN32 #ifdef Q_OS_WIN32
return CConfigFile::getInstance()->getMenuDirectory() + "/" + name + ".lnk"; return CConfigFile::getInstance()->getMenuDirectory() + "/" + name + ".lnk";
#else #elif defined(Q_OS_MAC)
return ""; return "";
#else
return CConfigFile::getInstance()->getMenuDirectory() + "/" + name + ".desktop";
#endif
}
void CProfile::createShortcuts() const
{
const CServer &s = CConfigFile::getInstance()->getServer(server);
QString executable = getClientFullPath();
QString workingDir = s.getDirectory();
QString arguments = QString("--profile %1").arg(id);
// append custom arguments
if (!arguments.isEmpty()) arguments += QString(" %1").arg(arguments);
QString icon;
#ifdef Q_OS_WIN32
// under Windows, icon is included in executable
icon = executable;
#else
// icon is in the same directory as client
icon = s.getDirectory() + "/ryzom_client.png";
#endif #endif
if (desktopShortcut)
{
QString shortcut = getClientDesktopShortcutFullPath();
// create desktop shortcut
createLink(shortcut, name, executable, arguments, icon, workingDir);
}
if (menuShortcut)
{
QString shortcut = getClientMenuShortcutFullPath();
// create menu shortcut
createLink(shortcut, name, executable, arguments, icon, workingDir);
}
}
void CProfile::deleteShortcuts() const
{
// delete desktop shortcut
QString link = getClientDesktopShortcutFullPath();
if (QFile::exists(link)) QFile::remove(link);
// delete menu shortcut
link = getClientMenuShortcutFullPath();
if (QFile::exists(link)) QFile::remove(link);
}
void CProfile::updateShortcuts() const
{
deleteShortcuts();
createShortcuts();
} }
CConfigFile *CConfigFile::s_instance = NULL; CConfigFile *CConfigFile::s_instance = NULL;
CConfigFile::CConfigFile(QObject *parent):QObject(parent), m_defaultServerIndex(0), m_defaultProfileIndex(0), m_use64BitsClient(false), m_shouldUninstallOldClient(true) CConfigFile::CConfigFile(QObject *parent):QObject(parent), m_version(-1),
m_defaultServerIndex(0), m_defaultProfileIndex(0), m_use64BitsClient(false), m_shouldUninstallOldClient(true)
{ {
s_instance = this; s_instance = this;
m_language = QLocale::system().name().left(2); // only keep language ISO 639 code // only keep language ISO 639 code
m_defaultConfigPath = QApplication::applicationDirPath() + "/installer.ini"; m_language = QLocale::system().name().left(2);
m_configPath = QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + "/installer.ini";
// default config file in included in resources
m_defaultConfigPath = ":/templates/ryzom_installer.ini";
// the config file we'll write
m_configPath = QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + "/ryzom_installer.ini";
} }
CConfigFile::~CConfigFile() CConfigFile::~CConfigFile()
@ -96,13 +164,31 @@ CConfigFile::~CConfigFile()
bool CConfigFile::load() bool CConfigFile::load()
{ {
return load(m_configPath) || load(m_defaultConfigPath); // load default values
return load(m_defaultConfigPath) || load(m_configPath);
} }
bool CConfigFile::load(const QString &filename) bool CConfigFile::load(const QString &filename)
{ {
if (!QFile::exists(filename)) return false;
QSettings settings(filename, QSettings::IniFormat); QSettings settings(filename, QSettings::IniFormat);
int defaultVersion = m_version;
int currentVersion = settings.value("version", 0).toInt();
bool useDefaultValues = defaultVersion > currentVersion;
// set default version from default config
if (defaultVersion == -1) m_version = currentVersion;
if (useDefaultValues)
{
// make a backup of custom ryzom_installer.ini
QFile::copy(filename, filename + ".bak");
}
// custom choices, always keep them
settings.beginGroup("common"); settings.beginGroup("common");
m_language = settings.value("language", m_language).toString(); m_language = settings.value("language", m_language).toString();
m_srcDirectory = settings.value("source_directory").toString(); m_srcDirectory = settings.value("source_directory").toString();
@ -111,58 +197,62 @@ bool CConfigFile::load(const QString &filename)
m_shouldUninstallOldClient = settings.value("should_uninstall_old_client", true).toBool(); m_shouldUninstallOldClient = settings.value("should_uninstall_old_client", true).toBool();
settings.endGroup(); settings.endGroup();
settings.beginGroup("product"); if (!useDefaultValues)
m_productName = settings.value("name").toString();
m_productPublisher = settings.value("publisher").toString();
m_productAboutUrl = settings.value("url_about").toString();
m_productUpdateUrl = settings.value("url_update").toString();
m_productHelpUrl = settings.value("url_help").toString();
m_productComments = settings.value("comments").toString();
settings.endGroup();
settings.beginGroup("servers");
int serversCount = settings.value("size").toInt();
m_defaultServerIndex = settings.value("default").toInt();
settings.endGroup();
m_servers.resize(serversCount);
for(int i = 0; i < serversCount; ++i)
{ {
CServer &server = m_servers[i]; settings.beginGroup("product");
m_productName = settings.value("name").toString();
m_productPublisher = settings.value("publisher").toString();
m_productAboutUrl = settings.value("url_about").toString();
m_productUpdateUrl = settings.value("url_update").toString();
m_productHelpUrl = settings.value("url_help").toString();
m_productComments = settings.value("comments").toString();
settings.endGroup();
settings.beginGroup(QString("server_%1").arg(i)); settings.beginGroup("servers");
int serversCount = settings.value("size").toInt();
m_defaultServerIndex = settings.value("default").toInt();
settings.endGroup();
m_servers.resize(serversCount);
server.id = settings.value("id").toString(); for (int i = 0; i < serversCount; ++i)
server.name = settings.value("name").toString(); {
server.displayUrl = settings.value("display_url").toString(); CServer &server = m_servers[i];
server.dataDownloadUrl = settings.value("data_download_url").toString();
server.dataDownloadFilename = settings.value("data_download_filename").toString(); settings.beginGroup(QString("server_%1").arg(i));
server.dataCompressedSize = settings.value("data_compressed_size").toULongLong();
server.dataUncompressedSize = settings.value("data_uncompressed_size").toULongLong(); server.id = settings.value("id").toString();
server.clientDownloadUrl = settings.value("client_download_url").toString(); server.name = settings.value("name").toString();
server.clientDownloadFilename = settings.value("client_download_filename").toString(); server.displayUrl = settings.value("display_url").toString();
server.dataDownloadUrl = settings.value("data_download_url").toString();
server.dataDownloadFilename = settings.value("data_download_filename").toString();
server.dataCompressedSize = settings.value("data_compressed_size").toULongLong();
server.dataUncompressedSize = settings.value("data_uncompressed_size").toULongLong();
server.clientDownloadUrl = settings.value("client_download_url").toString();
server.clientDownloadFilename = settings.value("client_download_filename").toString();
#if defined(Q_OS_WIN) #if defined(Q_OS_WIN)
server.clientFilename = settings.value("client_filename_windows").toString(); server.clientFilename = settings.value("client_filename_windows").toString();
server.clientFilenameOld = settings.value("client_filename_old_windows").toString(); server.clientFilenameOld = settings.value("client_filename_old_windows").toString();
server.configurationFilename = settings.value("configuration_filename_windows").toString(); server.configurationFilename = settings.value("configuration_filename_windows").toString();
server.installerFilename = settings.value("installer_filename_windows").toString(); server.installerFilename = settings.value("installer_filename_windows").toString();
#elif defined(Q_OS_MAC) #elif defined(Q_OS_MAC)
server.clientFilename = settings.value("client_filename_osx").toString(); server.clientFilename = settings.value("client_filename_osx").toString();
server.clientFilenameOld = settings.value("client_filename_old_osx").toString(); server.clientFilenameOld = settings.value("client_filename_old_osx").toString();
server.configurationFilename = settings.value("configuration_filename_osx").toString(); server.configurationFilename = settings.value("configuration_filename_osx").toString();
server.installerFilename = settings.value("installer_filename_osx").toString(); server.installerFilename = settings.value("installer_filename_osx").toString();
#else #else
server.clientFilename = settings.value("client_filename_linux").toString(); server.clientFilename = settings.value("client_filename_linux").toString();
server.clientFilenameOld = settings.value("client_filename_old_linux").toString(); server.clientFilenameOld = settings.value("client_filename_old_linux").toString();
server.configurationFilename = settings.value("configuration_filename_linux").toString(); server.configurationFilename = settings.value("configuration_filename_linux").toString();
server.installerFilename = settings.value("installer_filename_linux").toString(); server.installerFilename = settings.value("installer_filename_linux").toString();
#endif #endif
server.comments = settings.value("comments").toString(); server.comments = settings.value("comments").toString();
settings.endGroup(); settings.endGroup();
}
} }
// custom choices, always keep them
settings.beginGroup("profiles"); settings.beginGroup("profiles");
int profilesCounts = settings.value("size").toInt(); int profilesCounts = settings.value("size").toInt();
m_defaultProfileIndex = settings.value("default").toInt(); m_defaultProfileIndex = settings.value("default").toInt();
@ -195,6 +285,8 @@ bool CConfigFile::save() const
{ {
QSettings settings(m_configPath, QSettings::IniFormat); QSettings settings(m_configPath, QSettings::IniFormat);
settings.setValue("version", m_version);
settings.beginGroup("common"); settings.beginGroup("common");
settings.setValue("language", m_language); settings.setValue("language", m_language);
settings.setValue("source_directory", m_srcDirectory); settings.setValue("source_directory", m_srcDirectory);
@ -376,6 +468,11 @@ QString CConfigFile::getMenuDirectory() const
bool CConfigFile::has64bitsOS() bool CConfigFile::has64bitsOS()
{ {
#ifdef Q_OS_WIN32
// 64 bits only supported under Vista and up
if (QSysInfo::windowsVersion() < QSysInfo::WV_VISTA) return false;
#endif
return QSysInfo::currentCpuArchitecture() == "x86_64"; return QSysInfo::currentCpuArchitecture() == "x86_64";
} }
@ -482,6 +579,11 @@ QString CConfigFile::expandVariables(const QString &str) const
res.replace("$TIMESTAMP", QString::number(QDateTime::currentDateTime().toTime_t())); res.replace("$TIMESTAMP", QString::number(QDateTime::currentDateTime().toTime_t()));
res.replace("$LANG", m_language); res.replace("$LANG", m_language);
res.replace("$ARCH", getClientArch()); res.replace("$ARCH", getClientArch());
res.replace("$PRODUCT_NAME", m_productName);
res.replace("$PRODUCT_PUBLISHER", m_productPublisher);
res.replace("$PRODUCT_ABOUT_URL", m_productAboutUrl);
res.replace("$PRODUCT_HELP_URL", m_productHelpUrl);
res.replace("$PRODUCT_COMMENTS", m_productComments);
return res; return res;
} }
@ -552,9 +654,11 @@ QString CConfigFile::getOldInstallationLanguage()
QSettings settings("HKEY_LOCAL_MACHINE\\Software\\Nevrax\\Ryzom", QSettings::NativeFormat); QSettings settings("HKEY_LOCAL_MACHINE\\Software\\Nevrax\\Ryzom", QSettings::NativeFormat);
#endif #endif
if (settings.contains("Language")) QString key = "Language";
if (settings.contains(key))
{ {
QString languageCode = settings.value("Language").toString(); QString languageCode = settings.value(key).toString();
// 1036 = French (France), 1033 = English (USA), 1031 = German // 1036 = French (France), 1033 = English (USA), 1031 = German
if (languageCode == "1036") return "fr"; if (languageCode == "1036") return "fr";
@ -570,16 +674,18 @@ QString CConfigFile::getNewInstallationLanguage()
{ {
#if defined(Q_OS_WIN) #if defined(Q_OS_WIN)
// NSIS new official installer // NSIS new official installer
#ifdef Q_OS_WIN64 QSettings settings("HKEY_CURRENT_USER\\Software\\Winch Gate\\Ryzom", QSettings::NativeFormat);
// use WOW6432Node in 64 bits (64 bits OS and 64 bits Installer) because Ryzom old installer was in 32 bits
QSettings settings("HKEY_LOCAL_MACHINE\\Software\\WOW6432Node\\Nevrax\\Ryzom", QSettings::NativeFormat);
#else
QSettings settings("HKEY_LOCAL_MACHINE\\Software\\Nevrax\\Ryzom", QSettings::NativeFormat);
#endif
if (settings.contains("Ryzom Install Path")) QString key = "Language";
if (settings.contains(key))
{ {
return QDir::fromNativeSeparators(settings.value("Ryzom Install Path").toString()); QString languageCode = settings.value(key).toString();
// 1036 = French (France), 1033 = English (USA), 1031 = German
if (languageCode == "1036") return "fr";
if (languageCode == "1031") return "de";
if (languageCode == "1033") return "en";
} }
#endif #endif
@ -588,6 +694,19 @@ QString CConfigFile::getNewInstallationLanguage()
QString CConfigFile::getNewInstallationDirectory() QString CConfigFile::getNewInstallationDirectory()
{ {
#if defined(Q_OS_WIN)
// NSIS new official installer
QSettings settings("HKEY_CURRENT_USER\\Software\\Winch Gate\\Ryzom", QSettings::NativeFormat);
QString key = "Ryzom Install Path";
if (settings.contains(key))
{
return QDir::fromNativeSeparators(settings.value(key).toString());
}
#endif
// default location
return QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation); return QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation);
} }
@ -634,9 +753,6 @@ bool CConfigFile::isRyzomClientInstalledIn(const QString &directory) const
// directory doesn't exist // directory doesn't exist
if (!dir.exists()) return false; if (!dir.exists()) return false;
// client_default.cfg doesn't exist
if (!dir.exists("client_default.cfg")) return false;
// current server // current server
CServer server = getServer(); CServer server = getServer();
@ -649,9 +765,18 @@ bool CConfigFile::isRyzomClientInstalledIn(const QString &directory) const
// check if old client is defined and exists // check if old client is defined and exists
if (!dir.exists(clientFilename)) return false; if (!dir.exists(clientFilename)) return false;
// client 2.1-
} }
else
{
// client 3.0+
// TODO: more checks // client_default.cfg doesn't exist
if (!dir.exists("client_default.cfg")) return false;
// TODO: more checks
}
return true; return true;
} }
@ -692,11 +817,9 @@ bool CConfigFile::shouldCreateDesktopShortcut() const
if (!profile.desktopShortcut) return false; if (!profile.desktopShortcut) return false;
#ifdef Q_OS_WIN32 QString shortcut = profile.getClientDesktopShortcutFullPath();
return !NLMISC::CFile::isExists(qToUtf8(profile.getClientDesktopLinkFullPath()));
#else return !shortcut.isEmpty() && !NLMISC::CFile::isExists(qToUtf8(shortcut));
return false;
#endif
} }
bool CConfigFile::shouldCreateMenuShortcut() const bool CConfigFile::shouldCreateMenuShortcut() const
@ -705,16 +828,14 @@ bool CConfigFile::shouldCreateMenuShortcut() const
if (!profile.menuShortcut) return false; if (!profile.menuShortcut) return false;
#ifdef Q_OS_WIN32 QString shortcut = profile.getClientMenuShortcutFullPath();
return !NLMISC::CFile::isExists(qToUtf8(profile.getClientMenuLinkFullPath()));
#else return !shortcut.isEmpty() && !NLMISC::CFile::isExists(qToUtf8(shortcut));
return false;
#endif
} }
QString CConfigFile::getInstallerFullPath() const QString CConfigFile::getInstallerFullPath() const
{ {
return QApplication::applicationFilePath(); return QApplication::applicationDirPath();
} }
QString CConfigFile::getInstallerMenuLinkFullPath() const QString CConfigFile::getInstallerMenuLinkFullPath() const
@ -726,6 +847,51 @@ QString CConfigFile::getInstallerMenuLinkFullPath() const
#endif #endif
} }
QStringList CConfigFile::getInstallerRequiredFiles() const
{
// list of all files required by installer (and its executable too)
QStringList files;
#ifdef Q_OS_WIN
// VC++ runtimes
#if _MSC_VER == 1900
// VC++ 2015
files << "msvcp140.dll";
files << "msvcr140.dll";
#elif _MSC_VER == 1800
// VC++ 2013
files << "msvcp120.dll";
files << "msvcr120.dll";
#elif _MSC_VER == 1700
// VC++ 2012
files << "msvcp110.dll";
files << "msvcr110.dll";
#elif _MSC_VER == 1600
// VC++ 2010
files << "msvcp100.dll";
files << "msvcr100.dll";
#elif _MSC_VER == 1500
// VC++ 2008
files << "msvcp90.dll";
files << "msvcr90.dll";
#else
// unsupported compiler
#endif
#elif defined(Q_OS_MAC)
// TODO: for OS X
#else
// icon under Linux
files << "ryzom_installer.png";
#endif
// include current executable
files << QFileInfo(QApplication::applicationFilePath()).fileName();
return files;
}
QString CConfigFile::getSrcServerClientBNPFullPath() const QString CConfigFile::getSrcServerClientBNPFullPath() const
{ {
return QString("%1/unpack/exedll_%2.bnp").arg(getSrcServerDirectory()).arg(getClientArch()); return QString("%1/unpack/exedll_%2.bnp").arg(getSrcServerDirectory()).arg(getClientArch());
@ -876,14 +1042,9 @@ OperationStep CConfigFile::getInstallNextStep() const
return CopyProfileFiles; return CopyProfileFiles;
} }
if (shouldCreateDesktopShortcut()) if (shouldCreateDesktopShortcut() || shouldCreateMenuShortcut())
{
return CreateDesktopShortcut;
}
if (shouldCreateMenuShortcut())
{ {
return CreateMenuShortcut; return CreateProfileShortcuts;
} }
#ifdef Q_OS_WIN #ifdef Q_OS_WIN

@ -74,8 +74,12 @@ public:
// helpers // helpers
QString getDirectory() const; QString getDirectory() const;
QString getClientFullPath() const; QString getClientFullPath() const;
QString getClientDesktopLinkFullPath() const; QString getClientDesktopShortcutFullPath() const;
QString getClientMenuLinkFullPath() const; QString getClientMenuShortcutFullPath() const;
void createShortcuts() const;
void deleteShortcuts() const;
void updateShortcuts() const;
}; };
extern const CProfile NoProfile; extern const CProfile NoProfile;
@ -177,6 +181,8 @@ public:
QString getInstallerFullPath() const; QString getInstallerFullPath() const;
QString getInstallerMenuLinkFullPath() const; QString getInstallerMenuLinkFullPath() const;
QStringList getInstallerRequiredFiles() const;
QString getSrcServerClientBNPFullPath() const; QString getSrcServerClientBNPFullPath() const;
OperationStep getInstallNextStep() const; OperationStep getInstallNextStep() const;
@ -190,6 +196,7 @@ public:
QString getProductComments() const; QString getProductComments() const;
private: private:
int m_version;
int m_defaultServerIndex; int m_defaultServerIndex;
int m_defaultProfileIndex; int m_defaultProfileIndex;

@ -54,7 +54,6 @@ CInstallDialog::CInstallDialog():QDialog()
updateDestinationText(); updateDestinationText();
// check whether OS architecture is 32 or 64 bits // check whether OS architecture is 32 or 64 bits
// TODO: 64 bits client only supported under Vista+
if (CConfigFile::has64bitsOS()) if (CConfigFile::has64bitsOS())
{ {
clientArchGroupBox->setVisible(true); clientArchGroupBox->setVisible(true);

@ -47,6 +47,39 @@
#define new DEBUG_NEW #define new DEBUG_NEW
#endif #endif
// copy all specified files from current directory to destination directory
bool copyInstallerFiles(const QStringList &files, const QString &destination)
{
QString path = QApplication::applicationDirPath();
foreach(const QString &file, files)
{
// convert to absolute path
QString srcPath = path + "/" + file;
QString dstPath = destination + "/" + file;
if (QFile::exists(srcPath))
{
if (QFile::exists(dstPath))
{
if (!QFile::remove(dstPath))
{
qDebug() << "Unable to delete" << dstPath;
}
}
if (!QFile::copy(srcPath, dstPath))
{
qDebug() << "Unable to copy" << srcPath << "to" << dstPath;
return false;
}
}
}
return true;
}
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
#if defined(_MSC_VER) && defined(_DEBUG) #if defined(_MSC_VER) && defined(_DEBUG)
@ -83,16 +116,16 @@ int main(int argc, char *argv[])
if (step == DisplayNoServerError) if (step == DisplayNoServerError)
{ {
QMessageBox::critical(NULL, QApplication::tr("Error"), QApplication::tr("Unable to find installer.ini")); QMessageBox::critical(NULL, QApplication::tr("Error"), QApplication::tr("Unable to find ryzom_installer.ini"));
return 1; return 1;
} }
// use product name from installer.ini // use product name from ryzom_installer.ini
if (!config.getProductName().isEmpty()) QApplication::setApplicationName(config.getProductName()); if (!config.getProductName().isEmpty()) QApplication::setApplicationName(config.getProductName());
// define commandline arguments // define commandline arguments
QCommandLineParser parser; QCommandLineParser parser;
// parser.setApplicationDescription(DESCRIPTION); parser.setApplicationDescription(QApplication::tr("Instalation and launcher tool for Ryzom"));
parser.addHelpOption(); parser.addHelpOption();
parser.addVersionOption(); parser.addVersionOption();
@ -115,7 +148,7 @@ int main(int argc, char *argv[])
if (QApplication::applicationDirPath() != tempPath) if (QApplication::applicationDirPath() != tempPath)
{ {
// copy installer and required files to TEMP directory // copy installer and required files to TEMP directory
if (copyInstallerExecutable(tempPath)) if (copyInstallerFiles(config.getInstallerRequiredFiles(), tempPath))
{ {
QString tempFile = tempPath + "/" + QFileInfo(QApplication::applicationFilePath()).fileName(); QString tempFile = tempPath + "/" + QFileInfo(QApplication::applicationFilePath()).fileName();

@ -51,7 +51,6 @@ CMigrateDialog::CMigrateDialog():QDialog()
updateDestinationText(); updateDestinationText();
// check whether OS architecture is 32 or 64 bits // check whether OS architecture is 32 or 64 bits
// TODO: 64 bits client only supported under Vista+
if (CConfigFile::has64bitsOS()) if (CConfigFile::has64bitsOS())
{ {
clientArchGroupBox->setVisible(true); clientArchGroupBox->setVisible(true);

@ -64,8 +64,7 @@ enum OperationStep
CopyInstaller, CopyInstaller,
UninstallOldClient, UninstallOldClient,
CreateProfile, CreateProfile,
CreateDesktopShortcut, CreateProfileShortcuts,
CreateMenuShortcut,
CreateAddRemoveEntry, CreateAddRemoveEntry,
Done Done
}; };

@ -175,12 +175,8 @@ void COperationDialog::processInstallNextStep()
createDefaultProfile(); createDefaultProfile();
break; break;
case CreateDesktopShortcut: case CreateProfileShortcuts:
createClientDesktopShortcut(0); createProfileShortcuts(0);
break;
case CreateMenuShortcut:
createClientMenuShortcut(0);
break; break;
case CreateAddRemoveEntry: case CreateAddRemoveEntry:
@ -238,6 +234,9 @@ void COperationDialog::updateAddRemoveComponents()
// remove profiles that still exist // remove profiles that still exist
profilesToDelete.removeAll(profile.id); profilesToDelete.removeAll(profile.id);
// delete all shortcuts, they'll be recreated later
profile.deleteShortcuts();
} }
// update components to remove // update components to remove
@ -260,10 +259,9 @@ void COperationDialog::processUpdateProfilesNextStep()
{ {
updateAddRemoveComponents(); updateAddRemoveComponents();
} }
// TODO: check all servers are downloaded // TODO: check all servers are downloaded
// TODO: delete profiles directories that are not used anymore // TODO: delete profiles directories that are not used anymore
// TODO: create shortcuts
if (!m_removeComponents.profiles.isEmpty()) if (!m_removeComponents.profiles.isEmpty())
{ {
@ -279,9 +277,10 @@ void COperationDialog::processUpdateProfilesNextStep()
return; return;
} }
CConfigFile *config = CConfigFile::getInstance();
if (!m_addComponents.servers.isEmpty()) if (!m_addComponents.servers.isEmpty())
{ {
CConfigFile *config = CConfigFile::getInstance();
const CServer &defaultServer = config->getServer(); const CServer &defaultServer = config->getServer();
// servers files to download/update // servers files to download/update
@ -338,6 +337,12 @@ void COperationDialog::processUpdateProfilesNextStep()
} }
} }
// recreate shortcuts
foreach(const CProfile &profile, config->getProfiles())
{
profile.createShortcuts();
}
updateAddRemoveEntry(); updateAddRemoveEntry();
} }
@ -710,12 +715,8 @@ void COperationDialog::copyInstaller()
if (!QFile::exists(newInstallerFullPath)) if (!QFile::exists(newInstallerFullPath))
{ {
QStringList filter;
filter << "msvcp100.dll";
filter << "msvcr100.dll";
CFilesCopier copier(this); CFilesCopier copier(this);
copier.setIncludeFilter(filter); copier.setIncludeFilter(config->getInstallerRequiredFiles());
copier.addFile(oldInstallerFullPath); copier.addFile(oldInstallerFullPath);
copier.setSourceDirectory(config->getSrcServerDirectory().isEmpty() ? QApplication::applicationDirPath():config->getSrcServerDirectory()); copier.setSourceDirectory(config->getSrcServerDirectory().isEmpty() ? QApplication::applicationDirPath():config->getSrcServerDirectory());
copier.setDestinationDirectory(config->getInstallationDirectory()); copier.setDestinationDirectory(config->getInstallationDirectory());
@ -747,9 +748,18 @@ void COperationDialog::copyInstaller()
// create installer link in menu // create installer link in menu
QString executable = newInstallerFullPath; QString executable = newInstallerFullPath;
QString shortcut = config->getInstallerMenuLinkFullPath(); QString shortcut = config->getInstallerMenuLinkFullPath();
QString desc = "Ryzom Installer"; QString name = "Ryzom Installer";
QString icon;
#ifdef Q_OS_WIN32
// under Windows, icon is included in executable
icon = executable;
#else
// icon is in the same directory as installer
icon = config->getInstallationDirectory() + "/ryzom_installer.png";
#endif
createLink(executable, shortcut, "", "", desc); createLink(shortcut, name, executable, "", icon, "");
} }
emit done(); emit done();
@ -869,60 +879,15 @@ bool COperationDialog::createDefaultProfile()
return true; return true;
} }
bool COperationDialog::createClientDesktopShortcut(const QString &profileId) bool COperationDialog::createProfileShortcuts(const QString &profileId)
{ {
CConfigFile *config = CConfigFile::getInstance(); CConfigFile *config = CConfigFile::getInstance();
const CProfile &profile = config->getProfile(profileId); const CProfile &profile = config->getProfile(profileId);
const CServer &server = config->getServer(profile.server);
m_currentOperation = tr("Create desktop shortcut for profile %1").arg(profile.id);
#ifdef Q_OS_WIN32
if (profile.desktopShortcut)
{
QString executable = profile.getClientFullPath();
QString shortcut = profile.getClientDesktopLinkFullPath();
QString workingDir = server.getDirectory();
QString arguments = QString("--profile %1").arg(profile.id);
// append custom arguments m_currentOperation = tr("Create shortcuts for profile %1").arg(profile.id);
if (!profile.arguments.isEmpty()) arguments += QString(" %1").arg(profile.arguments);
createLink(executable, shortcut, arguments, workingDir, profile.comments); profile.createShortcuts();
}
#endif
emit done();
return true;
}
bool COperationDialog::createClientMenuShortcut(const QString &profileId)
{
CConfigFile *config = CConfigFile::getInstance();
const CProfile &profile = config->getProfile(profileId);
const CServer &server = config->getServer(profile.server);
m_currentOperation = tr("Create menu shortcut for profile %1").arg(profile.id);
#ifdef Q_OS_WIN32
if (profile.menuShortcut)
{
QString executable = profile.getClientFullPath();
QString shortcut = profile.getClientMenuLinkFullPath();
QString workingDir = server.getDirectory();
QString arguments = QString("--profile %1").arg(profile.id);
// append custom arguments
if (!profile.arguments.isEmpty()) arguments += QString(" %1").arg(profile.arguments);
createLink(executable, shortcut, arguments, workingDir, profile.comments);
}
#endif
emit done(); emit done();
@ -1059,6 +1024,17 @@ void COperationDialog::deleteComponentsServers()
return; return;
} }
} }
// delete all links to clients
for (int i = 0; i < config->getProfilesCount(); ++i)
{
const CProfile &profile = config->getProfile(i);
if (profile.server == serverId)
{
profile.deleteShortcuts();
}
}
} }
emit success(m_removeComponents.servers.size()); emit success(m_removeComponents.servers.size());
@ -1080,9 +1056,7 @@ void COperationDialog::addComponentsProfiles()
{ {
const CProfile &profile = config->getProfile(profileId); const CProfile &profile = config->getProfile(profileId);
if (profile.desktopShortcut) createClientDesktopShortcut(profile.id); profile.createShortcuts();
if (profile.menuShortcut) createClientMenuShortcut(profile.id);
} }
} }
@ -1123,7 +1097,7 @@ void COperationDialog::deleteComponentsProfiles()
} }
} }
// TODO: delete links profile.deleteShortcuts();
// delete profile // delete profile
config->removeProfile(profileId); config->removeProfile(profileId);
@ -1144,8 +1118,6 @@ void COperationDialog::deleteComponentsInstaller()
CConfigFile *config = CConfigFile::getInstance(); CConfigFile *config = CConfigFile::getInstance();
// TODO: delete installer
deleteAddRemoveEntry(); deleteAddRemoveEntry();
// delete menu // delete menu
@ -1158,7 +1130,22 @@ void COperationDialog::deleteComponentsInstaller()
dir.removeRecursively(); dir.removeRecursively();
} }
// TODO: path = config->getInstallerFullPath();
QStringList files = config->getInstallerRequiredFiles();
foreach(const QString &file, files)
{
QString fullPath = path + "/" + file;
// delete file
if (!QFile::remove(fullPath))
{
#ifdef Q_OS_WIN32
// under Windows, a running executable is locked, so we need to delete it later
MoveFileExW(qToWide(QDir::toNativeSeparators(fullPath)), NULL, MOVEFILE_DELAY_UNTIL_REBOOT);
#endif
}
}
// reset it once it's done // reset it once it's done
m_removeComponents.installer = false; m_removeComponents.installer = false;

@ -103,8 +103,7 @@ protected:
void uninstallOldClient(); void uninstallOldClient();
bool createDefaultProfile(); bool createDefaultProfile();
bool createClientDesktopShortcut(const QString &profileId); bool createProfileShortcuts(const QString &profileId);
bool createClientMenuShortcut(const QString &profileId);
bool createAddRemoveEntry(); bool createAddRemoveEntry();
bool updateAddRemoveEntry(); bool updateAddRemoveEntry();

@ -28,6 +28,10 @@ CSettingsDialog::CSettingsDialog(QWidget *parent):QDialog(parent)
CConfigFile *config = CConfigFile::getInstance(); CConfigFile *config = CConfigFile::getInstance();
m_installationDirectory = config->getInstallationDirectory();
updateInstallationDirectoryLabel();
// only 64 bits OS can switch between 32 and 64 bits // only 64 bits OS can switch between 32 and 64 bits
use64bitsClientsCheckBox->setEnabled(config->has64bitsOS()); use64bitsClientsCheckBox->setEnabled(config->has64bitsOS());
@ -47,6 +51,11 @@ CSettingsDialog::~CSettingsDialog()
{ {
} }
QString CSettingsDialog::getInstallationDirectory() const
{
return m_installationDirectory;
}
void CSettingsDialog::accept() void CSettingsDialog::accept()
{ {
// TODO: add save code // TODO: add save code
@ -56,11 +65,16 @@ void CSettingsDialog::accept()
void CSettingsDialog::onInstallationDirectoryButtonClicked() void CSettingsDialog::onInstallationDirectoryButtonClicked()
{ {
QString directory = QFileDialog::getExistingDirectory(this, tr("Please choose directory where to install Ryzom")); QString directory = QFileDialog::getExistingDirectory(this, tr("Please choose directory where to install Ryzom"), m_installationDirectory);
if (directory.isEmpty()) return; if (directory.isEmpty()) return;
// m_dstDirectory = directory; m_installationDirectory = directory;
updateInstallationDirectoryLabel();
}
// updateDestinationText(); void CSettingsDialog::updateInstallationDirectoryLabel()
{
installationDirectoryLabel->setText(m_installationDirectory);
} }

@ -33,11 +33,18 @@ public:
CSettingsDialog(QWidget *parent = NULL); CSettingsDialog(QWidget *parent = NULL);
virtual ~CSettingsDialog(); virtual ~CSettingsDialog();
QString getInstallationDirectory() const;
public slots: public slots:
void onInstallationDirectoryButtonClicked(); void onInstallationDirectoryButtonClicked();
private slots: private slots:
void accept(); void accept();
private:
void updateInstallationDirectoryLabel();
QString m_installationDirectory;
}; };
#endif #endif

@ -97,21 +97,7 @@ wchar_t* qToWide(const QString &str)
#ifdef Q_OS_WIN32 #ifdef Q_OS_WIN32
// CreateLink - Uses the Shell's IShellLink and IPersistFile interfaces bool createLink(const QString &link, const QString &name, const QString &executable, const QString &arguments, const QString &icon, const QString &workingDir)
// to create and store a shortcut to the specified object.
//
// Returns the result of calling the member functions of the interfaces.
//
// Parameters:
// lpszPathObj - Address of a buffer that contains the path of the object,
// including the file name.
// lpszPathLink - Address of a buffer that contains the path where the
// Shell link is to be stored, including the file name.
// lpszDesc - Address of a buffer that contains a description of the
// Shell link, stored in the Comment field of the link
// properties.
bool createLink(const QString &pathObj, const QString &pathLink, const QString &arguments, const QString &workingDir, const QString &desc)
{ {
IShellLinkW* psl; IShellLinkW* psl;
@ -123,8 +109,9 @@ bool createLink(const QString &pathObj, const QString &pathLink, const QString &
IPersistFile* ppf; IPersistFile* ppf;
// Set the path to the shortcut target and add the description. // Set the path to the shortcut target and add the description.
psl->SetPath(qToWide(QDir::toNativeSeparators(pathObj))); psl->SetPath(qToWide(QDir::toNativeSeparators(executable)));
psl->SetDescription(qToWide(desc)); psl->SetIconLocation(qToWide(QDir::toNativeSeparators(icon)), 0);
psl->SetDescription(qToWide(name));
psl->SetArguments(qToWide(arguments)); psl->SetArguments(qToWide(arguments));
psl->SetWorkingDirectory(qToWide(QDir::toNativeSeparators(workingDir))); psl->SetWorkingDirectory(qToWide(QDir::toNativeSeparators(workingDir)));
@ -138,7 +125,7 @@ bool createLink(const QString &pathObj, const QString &pathLink, const QString &
// for success. // for success.
// Save the link by calling IPersistFile::Save. // Save the link by calling IPersistFile::Save.
hres = ppf->Save(qToWide(QDir::toNativeSeparators(pathLink)), TRUE); hres = ppf->Save(qToWide(QDir::toNativeSeparators(link)), TRUE);
ppf->Release(); ppf->Release();
} }
psl->Release(); psl->Release();
@ -146,23 +133,6 @@ bool createLink(const QString &pathObj, const QString &pathLink, const QString &
return SUCCEEDED(hres); return SUCCEEDED(hres);
} }
// ResolveIt - Uses the Shell's IShellLink and IPersistFile interfaces
// to retrieve the path and description from an existing shortcut.
//
// Returns the result of calling the member functions of the interfaces.
//
// Parameters:
// hwnd - A handle to the parent window. The Shell uses this window to
// display a dialog box if it needs to prompt the user for more
// information while resolving the link.
// lpszLinkFile - Address of a buffer that contains the path of the link,
// including the file name.
// lpszPath - Address of a buffer that receives the path of the link
// target, including the file name.
// lpszDesc - Address of a buffer that receives the description of the
// Shell link, stored in the Comment field of the link
// properties.
bool resolveLink(const QWidget &window, const QString &linkFile, QString &path) bool resolveLink(const QWidget &window, const QString &linkFile, QString &path)
{ {
IShellLinkW* psl; IShellLinkW* psl;
@ -232,65 +202,40 @@ bool resolveLink(const QWidget &window, const QString &linkFile, QString &path)
#else #else
bool createLink(const QString &pathObj, const QString &pathLink, const QString &arguments, const QString &workingDir, const QString &desc) bool createLink(const QString &link, const QString &name, const QString &executable, const QString &arguments, const QString &icon, const QString &workingDir)
{ {
// TODO: create .desktop file under Linux // open template
QFile file(":/templates/template.desktop");
return false; if (!file.open(QFile::ReadOnly)) return false;
}
bool resolveLink(const QWidget &window, const QString &pathLink, QString &pathObj) QString data = QString::fromUtf8(file.readAll());
{
return false;
}
#endif file.close();
bool copyInstallerExecutable(const QString &destination) // build command
{ QString command = executable;
QString path = QApplication::applicationDirPath(); if (!arguments.isEmpty()) command += " " + arguments;
QStringList files;
#ifdef Q_OS_WIN
// VC++ runtimes
#if _MSC_VER == 1900
files << "msvcp140.dll";
files << "msvcr140.dll";
#else _MSC_VER == 1600
files << "msvcp100.dll";
files << "msvcr100.dll";
#endif
#else // replace strings
#endif data.replace("$NAME", name);
data.replace("$COMMAND", command);
data.replace("$ICON", icon);
files << QFileInfo(QApplication::applicationFilePath()).fileName(); // write file
file.setFileName(link);
foreach(const QString &file, files) if (!file.open(QFile::WriteOnly)) return false;
{
// convert to absolute path
QString srcPath = path + "/" + file;
QString dstPath = destination + "/" + file;
if (QFile::exists(srcPath)) file.write(data.toUtf8());
{ file.close();
if (QFile::exists(dstPath))
{
if (!QFile::remove(dstPath))
{
qDebug() << "Unable to delete" << dstPath;
}
}
if (!QFile::copy(srcPath, dstPath))
{
qDebug() << "Unable to copy" << srcPath << "to" << dstPath;
return false;
}
}
}
return true; return true;
} }
bool resolveLink(const QWidget &window, const QString &pathLink, QString &pathObj)
{
return false;
}
#endif

@ -48,9 +48,7 @@ QString qFromWide(const wchar_t *str);
wchar_t* qToWide(const QString &str); wchar_t* qToWide(const QString &str);
bool createLink(const QString &pathObj, const QString &pathLink, const QString &arguments, const QString &workingDir, const QString &desc); bool createLink(const QString &link, const QString &name, const QString &executable, const QString &arguments, const QString &icon, const QString &workingDir);
bool resolveLink(const QWidget &window, const QString &pathLink, QString &pathObj); bool resolveLink(const QWidget &window, const QString &pathLink, QString &pathObj);
bool copyInstallerExecutable(const QString &destination);
#endif #endif

@ -0,0 +1,744 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_US" sourcelanguage="en_US">
<context>
<name>CDownloader</name>
<message>
<source>File (%1B) is larger than expected (%2B)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You only have %1 bytes left on device, but %2 bytes are required.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to write file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Redirection URL is not defined</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Wrong status code: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Network error: %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CInstallDialog</name>
<message>
<source>Old installation: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Internet (%1 to download)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed to (requires %1):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose directory where is installed Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to find Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to find Ryzom in selected directory. Please choose another one or cancel.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose directory where to install Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Another location: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Undefined</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Not enough free disk space</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CMainWindow</name>
<message>
<source>About %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Program to install, download and manage Ryzom profiles.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Author: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copyright: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Support: %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CMigrateDialog</name>
<message>
<source>Files will be installed to (requires %1):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose directory where to install Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Not enough free disk space</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>COperationDialog</name>
<message>
<source>Confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Warning, this server doesn&apos;t support resume! If you stop download now, you won&apos;t be able to resume it later.
Are you sure to abort download?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%p% (%v/%m KiB)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download data required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloading %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extract data files required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extracting %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download client required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extract client files required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy data files required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copying %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy old profile to new location</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extract client to new location</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy installer to new location</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uninstall old client</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clean obsolete files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Deleting %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create default profile</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create shortcuts for profile %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete client files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to delete files for client %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adding profile %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Deleting profile %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to delete files for profile %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete downloaded files</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CProfilesDialog</name>
<message>
<source>Confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You&apos;re going to delete a profile, files won&apos;t be deleted and you&apos;ll have to do that manually.
Are you sure to delete this profile?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose Ryzom client executable to launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Executables (*.exe)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CProfilesModel</name>
<message>
<source>#%1: %2</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CSettingsDialog</name>
<message>
<source>Please choose directory where to install Ryzom</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CUninstallDialog</name>
<message>
<source>Component</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Client for %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Profile #%1: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded Files</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>InstallDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Welcome to Ryzom Installer!
This program will allow you to download, install, configure or manage Ryzom on your computer.
Just follow the different steps and make your choice between the different propositions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show advanced parameters (expert)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed from:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Old installation: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Another location: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Internet (%1 GiB to download)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed to (requires 10 GiB):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>c:\</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Do you prefer to use a 64 or 32 bits client?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>64 bits (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>32 bits</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Atys</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Play</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Configure</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>About Qt</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>About...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Uninstall</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MigrateDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Welcome to Ryzom Installer!
This program will migrate Ryzom version 2.1 to 3.0. Your files will be updated, cleaned and moved to a new location.
Just press Continue button and follow the different steps until everything is done.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show advanced parameters (expert)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed to (requires 10 GiB):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>c:\</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Do you prefer to use a 64 or 32 bits client?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>64 bits (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>32 bits</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Quit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OperationDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Operation progress</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProfilesDialog</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>List of profiles:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Profile:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Atys</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yubo</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Executable:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ryzom_client_r.exe</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Arguments:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Comments:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Directory:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>~/.ryzom/0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create shortcuts:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Desktop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start Menu</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QApplication</name>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to find ryzom_installer.ini</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Instalation and launcher tool for Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uninstall</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Silent mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to open %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to open output file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to write output file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>7zip decoder doesn&apos;t support this archive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to allocate memory</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to create directory %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to set permissions of %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>disk full</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unable to write %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unable to read %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>failed (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to unpack %1 to %2: %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to copy file %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<source>B</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>KiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>GiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>TiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PiB</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsDialog</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use 64 bits client</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Base location of Ryzom files:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Location of source Ryzom files:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>D:\Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>E:\Ryzom</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UninstallDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You&apos;re about to uninstall some or all components of Ryzom. Please check each component you want to remove (warning, it can&apos;t be reverted).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Components to remove</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uninstall</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -0,0 +1,744 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_US" sourcelanguage="en_US">
<context>
<name>CDownloader</name>
<message>
<source>File (%1B) is larger than expected (%2B)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You only have %1 bytes left on device, but %2 bytes are required.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to write file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Redirection URL is not defined</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Wrong status code: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Network error: %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CInstallDialog</name>
<message>
<source>Old installation: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Internet (%1 to download)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed to (requires %1):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose directory where is installed Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to find Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to find Ryzom in selected directory. Please choose another one or cancel.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose directory where to install Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Another location: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Undefined</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Not enough free disk space</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CMainWindow</name>
<message>
<source>About %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Program to install, download and manage Ryzom profiles.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Author: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copyright: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Support: %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CMigrateDialog</name>
<message>
<source>Files will be installed to (requires %1):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose directory where to install Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Not enough free disk space</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>COperationDialog</name>
<message>
<source>Confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Warning, this server doesn&apos;t support resume! If you stop download now, you won&apos;t be able to resume it later.
Are you sure to abort download?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%p% (%v/%m KiB)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download data required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloading %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extract data files required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extracting %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download client required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extract client files required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy data files required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copying %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy old profile to new location</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extract client to new location</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy installer to new location</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uninstall old client</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clean obsolete files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Deleting %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create default profile</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create shortcuts for profile %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete client files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to delete files for client %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adding profile %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Deleting profile %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to delete files for profile %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete downloaded files</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CProfilesDialog</name>
<message>
<source>Confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You&apos;re going to delete a profile, files won&apos;t be deleted and you&apos;ll have to do that manually.
Are you sure to delete this profile?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose Ryzom client executable to launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Executables (*.exe)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CProfilesModel</name>
<message>
<source>#%1: %2</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CSettingsDialog</name>
<message>
<source>Please choose directory where to install Ryzom</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CUninstallDialog</name>
<message>
<source>Component</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Client for %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Profile #%1: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded Files</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>InstallDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Welcome to Ryzom Installer!
This program will allow you to download, install, configure or manage Ryzom on your computer.
Just follow the different steps and make your choice between the different propositions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show advanced parameters (expert)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed from:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Old installation: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Another location: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Internet (%1 GiB to download)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed to (requires 10 GiB):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>c:\</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Do you prefer to use a 64 or 32 bits client?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>64 bits (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>32 bits</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Atys</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Play</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Configure</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>About Qt</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>About...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Uninstall</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MigrateDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Welcome to Ryzom Installer!
This program will migrate Ryzom version 2.1 to 3.0. Your files will be updated, cleaned and moved to a new location.
Just press Continue button and follow the different steps until everything is done.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show advanced parameters (expert)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed to (requires 10 GiB):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>c:\</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Do you prefer to use a 64 or 32 bits client?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>64 bits (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>32 bits</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Quit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OperationDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Operation progress</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProfilesDialog</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>List of profiles:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Profile:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Atys</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yubo</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Executable:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ryzom_client_r.exe</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Arguments:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Comments:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Directory:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>~/.ryzom/0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create shortcuts:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Desktop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start Menu</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QApplication</name>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to find ryzom_installer.ini</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Instalation and launcher tool for Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uninstall</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Silent mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to open %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to open output file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to write output file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>7zip decoder doesn&apos;t support this archive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to allocate memory</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to create directory %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to set permissions of %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>disk full</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unable to write %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unable to read %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>failed (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to unpack %1 to %2: %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to copy file %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<source>B</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>KiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>GiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>TiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PiB</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsDialog</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use 64 bits client</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Base location of Ryzom files:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Location of source Ryzom files:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>D:\Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>E:\Ryzom</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UninstallDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You&apos;re about to uninstall some or all components of Ryzom. Please check each component you want to remove (warning, it can&apos;t be reverted).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Components to remove</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uninstall</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -0,0 +1,744 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_US" sourcelanguage="en_US">
<context>
<name>CDownloader</name>
<message>
<source>File (%1B) is larger than expected (%2B)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You only have %1 bytes left on device, but %2 bytes are required.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to write file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Redirection URL is not defined</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Wrong status code: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Network error: %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CInstallDialog</name>
<message>
<source>Old installation: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Internet (%1 to download)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed to (requires %1):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose directory where is installed Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to find Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to find Ryzom in selected directory. Please choose another one or cancel.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose directory where to install Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Another location: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Undefined</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Not enough free disk space</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CMainWindow</name>
<message>
<source>About %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Program to install, download and manage Ryzom profiles.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Author: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copyright: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Support: %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CMigrateDialog</name>
<message>
<source>Files will be installed to (requires %1):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose directory where to install Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Not enough free disk space</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>COperationDialog</name>
<message>
<source>Confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Warning, this server doesn&apos;t support resume! If you stop download now, you won&apos;t be able to resume it later.
Are you sure to abort download?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%p% (%v/%m KiB)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download data required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloading %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extract data files required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extracting %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download client required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extract client files required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy data files required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copying %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy old profile to new location</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extract client to new location</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy installer to new location</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uninstall old client</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clean obsolete files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Deleting %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create default profile</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create shortcuts for profile %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete client files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to delete files for client %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adding profile %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Deleting profile %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to delete files for profile %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete downloaded files</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CProfilesDialog</name>
<message>
<source>Confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You&apos;re going to delete a profile, files won&apos;t be deleted and you&apos;ll have to do that manually.
Are you sure to delete this profile?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose Ryzom client executable to launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Executables (*.exe)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CProfilesModel</name>
<message>
<source>#%1: %2</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CSettingsDialog</name>
<message>
<source>Please choose directory where to install Ryzom</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CUninstallDialog</name>
<message>
<source>Component</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Client for %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Profile #%1: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded Files</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>InstallDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Welcome to Ryzom Installer!
This program will allow you to download, install, configure or manage Ryzom on your computer.
Just follow the different steps and make your choice between the different propositions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show advanced parameters (expert)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed from:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Old installation: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Another location: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Internet (%1 GiB to download)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed to (requires 10 GiB):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>c:\</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Do you prefer to use a 64 or 32 bits client?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>64 bits (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>32 bits</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Atys</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Play</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Configure</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>About Qt</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>About...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Uninstall</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MigrateDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Welcome to Ryzom Installer!
This program will migrate Ryzom version 2.1 to 3.0. Your files will be updated, cleaned and moved to a new location.
Just press Continue button and follow the different steps until everything is done.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show advanced parameters (expert)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed to (requires 10 GiB):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>c:\</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Do you prefer to use a 64 or 32 bits client?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>64 bits (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>32 bits</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Quit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OperationDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Operation progress</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProfilesDialog</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>List of profiles:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Profile:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Atys</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yubo</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Executable:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ryzom_client_r.exe</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Arguments:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Comments:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Directory:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>~/.ryzom/0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create shortcuts:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Desktop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start Menu</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QApplication</name>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to find ryzom_installer.ini</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Instalation and launcher tool for Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uninstall</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Silent mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to open %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to open output file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to write output file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>7zip decoder doesn&apos;t support this archive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to allocate memory</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to create directory %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to set permissions of %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>disk full</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unable to write %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unable to read %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>failed (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to unpack %1 to %2: %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to copy file %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<source>B</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>KiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>GiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>TiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PiB</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsDialog</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use 64 bits client</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Base location of Ryzom files:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Location of source Ryzom files:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>D:\Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>E:\Ryzom</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UninstallDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You&apos;re about to uninstall some or all components of Ryzom. Please check each component you want to remove (warning, it can&apos;t be reverted).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Components to remove</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uninstall</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -0,0 +1,744 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_US" sourcelanguage="en_US">
<context>
<name>CDownloader</name>
<message>
<source>File (%1B) is larger than expected (%2B)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You only have %1 bytes left on device, but %2 bytes are required.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to write file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Redirection URL is not defined</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Wrong status code: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Network error: %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CInstallDialog</name>
<message>
<source>Old installation: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Internet (%1 to download)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed to (requires %1):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose directory where is installed Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to find Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to find Ryzom in selected directory. Please choose another one or cancel.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose directory where to install Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Another location: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Undefined</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Not enough free disk space</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CMainWindow</name>
<message>
<source>About %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Program to install, download and manage Ryzom profiles.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Author: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copyright: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Support: %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CMigrateDialog</name>
<message>
<source>Files will be installed to (requires %1):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose directory where to install Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Not enough free disk space</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>COperationDialog</name>
<message>
<source>Confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Warning, this server doesn&apos;t support resume! If you stop download now, you won&apos;t be able to resume it later.
Are you sure to abort download?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%p% (%v/%m KiB)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download data required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloading %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extract data files required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extracting %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download client required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extract client files required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy data files required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copying %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy old profile to new location</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extract client to new location</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy installer to new location</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uninstall old client</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clean obsolete files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Deleting %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create default profile</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create shortcuts for profile %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete client files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to delete files for client %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adding profile %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Deleting profile %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to delete files for profile %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete downloaded files</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CProfilesDialog</name>
<message>
<source>Confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You&apos;re going to delete a profile, files won&apos;t be deleted and you&apos;ll have to do that manually.
Are you sure to delete this profile?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose Ryzom client executable to launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Executables (*.exe)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CProfilesModel</name>
<message>
<source>#%1: %2</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CSettingsDialog</name>
<message>
<source>Please choose directory where to install Ryzom</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CUninstallDialog</name>
<message>
<source>Component</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Client for %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Profile #%1: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded Files</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>InstallDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Welcome to Ryzom Installer!
This program will allow you to download, install, configure or manage Ryzom on your computer.
Just follow the different steps and make your choice between the different propositions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show advanced parameters (expert)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed from:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Old installation: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Another location: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Internet (%1 GiB to download)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed to (requires 10 GiB):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>c:\</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Do you prefer to use a 64 or 32 bits client?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>64 bits (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>32 bits</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Atys</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Play</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Configure</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>About Qt</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>About...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Uninstall</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MigrateDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Welcome to Ryzom Installer!
This program will migrate Ryzom version 2.1 to 3.0. Your files will be updated, cleaned and moved to a new location.
Just press Continue button and follow the different steps until everything is done.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show advanced parameters (expert)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed to (requires 10 GiB):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>c:\</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Do you prefer to use a 64 or 32 bits client?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>64 bits (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>32 bits</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Quit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OperationDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Operation progress</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProfilesDialog</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>List of profiles:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Profile:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Atys</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yubo</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Executable:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ryzom_client_r.exe</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Arguments:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Comments:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Directory:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>~/.ryzom/0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create shortcuts:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Desktop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start Menu</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QApplication</name>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to find ryzom_installer.ini</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Instalation and launcher tool for Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uninstall</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Silent mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to open %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to open output file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to write output file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>7zip decoder doesn&apos;t support this archive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to allocate memory</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to create directory %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to set permissions of %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>disk full</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unable to write %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unable to read %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>failed (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to unpack %1 to %2: %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to copy file %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<source>B</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>KiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>GiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>TiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PiB</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsDialog</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use 64 bits client</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Base location of Ryzom files:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Location of source Ryzom files:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>D:\Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>E:\Ryzom</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UninstallDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You&apos;re about to uninstall some or all components of Ryzom. Please check each component you want to remove (warning, it can&apos;t be reverted).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Components to remove</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uninstall</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -0,0 +1,744 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_US" sourcelanguage="en_US">
<context>
<name>CDownloader</name>
<message>
<source>File (%1B) is larger than expected (%2B)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You only have %1 bytes left on device, but %2 bytes are required.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to write file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Redirection URL is not defined</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Wrong status code: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Network error: %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CInstallDialog</name>
<message>
<source>Old installation: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Internet (%1 to download)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed to (requires %1):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose directory where is installed Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to find Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to find Ryzom in selected directory. Please choose another one or cancel.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose directory where to install Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Another location: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Undefined</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Not enough free disk space</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CMainWindow</name>
<message>
<source>About %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Program to install, download and manage Ryzom profiles.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Author: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copyright: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Support: %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CMigrateDialog</name>
<message>
<source>Files will be installed to (requires %1):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose directory where to install Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Not enough free disk space</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You don&apos;t have enough free space on this disk, please make more space or choose a directory on another disk.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>COperationDialog</name>
<message>
<source>Confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Warning, this server doesn&apos;t support resume! If you stop download now, you won&apos;t be able to resume it later.
Are you sure to abort download?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%p% (%v/%m KiB)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download data required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloading %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extract data files required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extracting %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download client required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extract client files required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy data files required by server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copying %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy old profile to new location</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extract client to new location</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy installer to new location</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uninstall old client</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>An old version of Ryzom has been detected on this system, would you like to uninstall it to save space disk?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clean obsolete files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Deleting %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create default profile</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create shortcuts for profile %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete client files</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to delete files for client %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adding profile %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Deleting profile %1...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to delete files for profile %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete downloaded files</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CProfilesDialog</name>
<message>
<source>Confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You&apos;re going to delete a profile, files won&apos;t be deleted and you&apos;ll have to do that manually.
Are you sure to delete this profile?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please choose Ryzom client executable to launch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Executables (*.exe)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CProfilesModel</name>
<message>
<source>#%1: %2</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CSettingsDialog</name>
<message>
<source>Please choose directory where to install Ryzom</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CUninstallDialog</name>
<message>
<source>Component</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Client for %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Profile #%1: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded Files</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>InstallDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Welcome to Ryzom Installer!
This program will allow you to download, install, configure or manage Ryzom on your computer.
Just follow the different steps and make your choice between the different propositions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show advanced parameters (expert)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed from:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Old installation: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Another location: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Internet (%1 GiB to download)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed to (requires 10 GiB):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>c:\</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Do you prefer to use a 64 or 32 bits client?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>64 bits (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>32 bits</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Atys</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Play</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Configure</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>About Qt</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>About...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Uninstall</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MigrateDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Welcome to Ryzom Installer!
This program will migrate Ryzom version 2.1 to 3.0. Your files will be updated, cleaned and moved to a new location.
Just press Continue button and follow the different steps until everything is done.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show advanced parameters (expert)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Files will be installed to (requires 10 GiB):</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>c:\</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Do you prefer to use a 64 or 32 bits client?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>64 bits (recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>32 bits</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Quit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OperationDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Operation progress</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ProfilesDialog</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>List of profiles:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Profile:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Server:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Atys</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yubo</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Executable:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ryzom_client_r.exe</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Arguments:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Comments:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Directory:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>~/.ryzom/0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Create shortcuts:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Desktop</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start Menu</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QApplication</name>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to find ryzom_installer.ini</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Instalation and launcher tool for Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uninstall</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Silent mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to open %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to open output file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to write output file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>7zip decoder doesn&apos;t support this archive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to allocate memory</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to create directory %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to set permissions of %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>disk full</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unable to write %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unable to read %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>failed (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to unpack %1 to %2: %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to copy file %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<source>B</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>KiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>GiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>TiB</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PiB</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsDialog</name>
<message>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use 64 bits client</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Base location of Ryzom files:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Browse...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Location of source Ryzom files:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>D:\Ryzom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>E:\Ryzom</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UninstallDialog</name>
<message>
<source>Ryzom Installer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>You&apos;re about to uninstall some or all components of Ryzom. Please check each component you want to remove (warning, it can&apos;t be reverted).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Components to remove</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uninstall</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -0,0 +1,9 @@
<RCC>
<qresource prefix="/translations">
<file>ryzom_installer_de.qm</file>
<file>ryzom_installer_en.qm</file>
<file>ryzom_installer_es.qm</file>
<file>ryzom_installer_fr.qm</file>
<file>ryzom_installer_ru.qm</file>
</qresource>
</RCC>

@ -6,7 +6,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>400</width> <width>428</width>
<height>150</height> <height>150</height>
</rect> </rect>
</property> </property>
@ -15,25 +15,36 @@
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<layout class="QFormLayout" name="formLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="3" column="0">
<widget class="QCheckBox" name="use64bitsClientsCheckBox">
<property name="text">
<string>Use 64 bits client</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="installationDirectoryLabelTitle">
<property name="text">
<string>Base location of Ryzom files:</string>
</property>
</widget>
</item>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="label_2"> <widget class="QLabel" name="languageLabel">
<property name="text"> <property name="text">
<string>Language</string> <string>Language</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="1"> <item row="2" column="2">
<widget class="QComboBox" name="languageComboBox"/> <widget class="QPushButton" name="oldDirectoryButton">
</item>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text"> <property name="text">
<string>Base location of Ryzom files: %1</string> <string>Browse...</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item row="1" column="2">
<widget class="QPushButton" name="installationDirectoryButton"> <widget class="QPushButton" name="installationDirectoryButton">
<property name="text"> <property name="text">
<string>Browse...</string> <string>Browse...</string>
@ -41,26 +52,29 @@
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item row="2" column="0">
<widget class="QLabel" name="label_3"> <widget class="QLabel" name="oldDirectoryLabelTitle">
<property name="text"> <property name="text">
<string>Location of source Ryzom files: %1</string> <string>Location of source Ryzom files:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="1"> <item row="1" column="1">
<widget class="QPushButton" name="pushButton_2"> <widget class="QLabel" name="installationDirectoryLabel">
<property name="text"> <property name="text">
<string>Browse...</string> <string>D:\Ryzom</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="0"> <item row="2" column="1">
<widget class="QCheckBox" name="use64bitsClientsCheckBox"> <widget class="QLabel" name="oldDirectoryLabel">
<property name="text"> <property name="text">
<string>Use 64 bits client</string> <string>E:\Ryzom</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="2">
<widget class="QComboBox" name="languageComboBox"/>
</item>
</layout> </layout>
</item> </item>
<item> <item>

@ -49,8 +49,8 @@ if(APPLE)
SET(MACOSX_BUNDLE_BUNDLE_NAME "Georges Editor Qt") SET(MACOSX_BUNDLE_BUNDLE_NAME "Georges Editor Qt")
SET(MACOSX_BUNDLE_SHORT_VERSION_STRING "0.9") SET(MACOSX_BUNDLE_SHORT_VERSION_STRING "0.9")
SET(MACOSX_BUNDLE_BUNDLE_VERSION "0.9") SET(MACOSX_BUNDLE_BUNDLE_VERSION "0.9")
SET(MACOSX_BUNDLE_COPYRIGHT "Winchgate and The Ryzom Core Community") SET(MACOSX_BUNDLE_COPYRIGHT ${AUTHOR})
ENDIF(APPLE) ENDIF()
ADD_EXECUTABLE(georges_editor_qt WIN32 MACOSX_BUNDLE ${GEORGES_EDITOR_SRC} ${GEORGES_EDITOR_MOC_SRCS} ${GEORGES_EDITOR_RC_SRCS} ${GEORGES_EDITOR_UI_HDRS}) ADD_EXECUTABLE(georges_editor_qt WIN32 MACOSX_BUNDLE ${GEORGES_EDITOR_SRC} ${GEORGES_EDITOR_MOC_SRCS} ${GEORGES_EDITOR_RC_SRCS} ${GEORGES_EDITOR_UI_HDRS})
@ -68,6 +68,6 @@ NL_ADD_RUNTIME_FLAGS(georges_editor_qt)
IF(WITH_PCH) IF(WITH_PCH)
ADD_NATIVE_PRECOMPILED_HEADER(georges_editor_qt ${CMAKE_CURRENT_SOURCE_DIR}/stdpch.h ${CMAKE_CURRENT_SOURCE_DIR}/stdpch.cpp) ADD_NATIVE_PRECOMPILED_HEADER(georges_editor_qt ${CMAKE_CURRENT_SOURCE_DIR}/stdpch.h ${CMAKE_CURRENT_SOURCE_DIR}/stdpch.cpp)
ENDIF(WITH_PCH) ENDIF()
INSTALL(TARGETS georges_editor_qt RUNTIME DESTINATION ${RYZOM_BIN_PREFIX} COMPONENT runtime BUNDLE DESTINATION /Applications) INSTALL(TARGETS georges_editor_qt RUNTIME DESTINATION ${RYZOM_BIN_PREFIX} COMPONENT runtime BUNDLE DESTINATION /Applications)

@ -5,7 +5,7 @@ ADD_LIBRARY(georges_plugin_sound SHARED ${SRC})
INCLUDE_DIRECTORIES(georges_plugin_sound ${NEL_INCLUDE_DIR} ${DXSDK_INCLUDE_DIR}) INCLUDE_DIRECTORIES(georges_plugin_sound ${NEL_INCLUDE_DIR} ${DXSDK_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(georges_plugin_sound nelmisc nelgeorges nelsound nelligo nelsnd_lowlevel georges_dll ${DXSDK_DSOUND_LIBRARY} ${DXSDK_GUID_LIBRARY}) TARGET_LINK_LIBRARIES(georges_plugin_sound nelmisc nelgeorges nelsound nelligo nelsnd_lowlevel georges_dll ${DXSDK_DSOUND_LIBRARY})
NL_DEFAULT_PROPS(georges_plugin_sound "Ryzom, Tools, Georges: Georges Plugin Sound") NL_DEFAULT_PROPS(georges_plugin_sound "Ryzom, Tools, Georges: Georges Plugin Sound")
NL_ADD_RUNTIME_FLAGS(georges_plugin_sound) NL_ADD_RUNTIME_FLAGS(georges_plugin_sound)
NL_ADD_LIB_SUFFIX(georges_plugin_sound) NL_ADD_LIB_SUFFIX(georges_plugin_sound)

Loading…
Cancel
Save