Merge branch 'master' of git://github.com/siana/SingularityViewer

This commit is contained in:
Lirusaito
2012-03-23 17:20:04 -04:00
495 changed files with 22579 additions and 22393 deletions

View File

@@ -232,7 +232,6 @@ set(viewer_SOURCE_FILES
llfloaterlandmark.cpp
llfloatermap.cpp
llfloatermemleak.cpp
llfloatermessagelog.cpp
llfloatermodeluploadbase.cpp
llfloatermute.cpp
llfloaternamedesc.cpp
@@ -720,7 +719,6 @@ set(viewer_HEADER_FILES
llfloatermap.h
llfloatermemleak.h
llfloatermodeluploadbase.h
llfloatermessagelog.h
llfloatermute.h
llfloaternamedesc.h
llfloaternewim.h

View File

@@ -3941,7 +3941,29 @@
<key>Value</key>
<integer>0</integer>
</map>
<key>CurlUseMultipleThreads</key>
<key>CurlMaximumNumberOfHandles</key>
<map>
<key>Comment</key>
<string>Maximum number of handles curl can use (requires restart)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>S32</string>
<key>Value</key>
<integer>256</integer>
</map>
<key>CurlRequestTimeOut</key>
<map>
<key>Comment</key>
<string>Max idle time of a curl request before killed (requires restart)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>120.0</real>
</map>
<key>CurlUseMultipleThreads</key>
<map>
<key>Comment</key>
<string>Use background threads for executing curl_multi_perform (requires restart)</string>
@@ -6402,7 +6424,7 @@
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
<integer>0</integer>
</map>
<key>FlycamAbsolute</key>
<map>
@@ -6654,72 +6676,6 @@
<key>Value</key>
<real>0.5</real>
</map>
<key>FontMonospace</key>
<map>
<key>Comment</key>
<string>Name of monospace font that definitely exists (Truetype file name)</string>
<key>Persist</key>
<integer>0</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>DejaVuSansMono.ttf</string>
</map>
<key>FontSansSerif</key>
<map>
<key>Comment</key>
<string>Name of primary sans-serif font that definitely exists (Truetype file name)</string>
<key>Persist</key>
<integer>0</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>DroidSans.ttf</string>
</map>
<key>FontSansSerifBundledFallback</key>
<map>
<key>Comment</key>
<string>Name of secondary sans-serif font that definitely exists (Truetype file name)</string>
<key>Persist</key>
<integer>0</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>DejaVuSansCondensed.ttf</string>
</map>
<key>FontSansSerifBold</key>
<map>
<key>Comment</key>
<string>Name of bold font (Truetype file name)</string>
<key>Persist</key>
<integer>0</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>DroidSans-Bold.ttf</string>
</map>
<key>FontSansSerifFallback</key>
<map>
<key>Comment</key>
<string>Name of sans-serif font (Truetype file name)</string>
<key>Persist</key>
<integer>0</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string/>
</map>
<key>FontSansSerifFallbackScale</key>
<map>
<key>Comment</key>
<string>Scale of fallback font relative to huge font (fraction of huge font size)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>1.00</real>
</map>
<key>FontScreenDPI</key>
<map>
<key>Comment</key>
@@ -6731,61 +6687,6 @@
<key>Value</key>
<real>96.0</real>
</map>
<key>FontSizeHuge</key>
<map>
<key>Comment</key>
<string>Size of huge font (points, or 1/72 of an inch)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>14.0</real>
</map>
<key>FontSizeLarge</key>
<map>
<key>Comment</key>
<string>Size of large font (points, or 1/72 of an inch)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>11.0</real>
</map>
<key>FontSizeMedium</key>
<map>
<key>Comment</key>
<string>Size of medium font (points, or 1/72 of an inch)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>9.5</real>
</map>
<key>FontSizeMonospace</key>
<map>
<key>Comment</key>
<string>Size of monospaced font (points, or 1/72 of an inch)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>9.0</real>
</map>
<key>FontSizeSmall</key>
<map>
<key>Comment</key>
<string>Size of small font (points, or 1/72 of an inch)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>8.5</real>
</map>
<key>ForceNotecardDragCargoPermissive</key>
<map>
<key>Comment</key>

View File

@@ -145,7 +145,7 @@
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
<integer>0</integer>
</map>
<key>AscentShowSelfTagColor</key>
<map>

0
indra/newview/character/avatar_lad.xml Executable file → Normal file
View File

View File

@@ -256,7 +256,7 @@ static void request(const std::string &url,
LLPumpIO::chain_t chain;
LLURLRequest *req = new LLURLRequest(method, url);
req->checkRootCertificate(true);
req->setSSLVerifyCallback(LLHTTPClient::getCertVerifyCallback(), (void *)req);
/*
// Insert custom headers if the caller sent any

View File

@@ -633,7 +633,9 @@ bool LLAppViewer::init()
mAlloc.setProfilingEnabled(gSavedSettings.getBOOL("MemProfiling"));
// *NOTE:Mani - LLCurl::initClass is not thread safe.
// Called before threads are created.
LLCurl::initClass(gSavedSettings.getBOOL("CurlUseMultipleThreads"));
LLCurl::initClass(gSavedSettings.getF32("CurlRequestTimeOut"),
gSavedSettings.getS32("CurlMaximumNumberOfHandles"),
gSavedSettings.getBOOL("CurlUseMultipleThreads"));
LL_INFOS("InitInfo") << "LLCurl initialized." << LL_ENDL ;
initThreads();
@@ -2047,7 +2049,7 @@ bool LLAppViewer::initConfiguration()
gSavedSettings.setString("VersionChannelName", gVersionChannel);
#ifndef LL_RELEASE_FOR_DOWNLOAD
#if 0 //#ifndef LL_RELEASE_FOR_DOWNLOAD
// provide developer build only overrides for these control variables that are not
// persisted to settings.xml
LLControlVariable* c = gSavedSettings.getControl("ShowConsoleWindow");

View File

@@ -54,16 +54,12 @@
#include "llworld.h"
#include "llsdutil.h"
#include "llaudioengine.h"
#include "llstartup.h"
//<edit>
#include "llviewermenu.h"
//</edit>
#include "hippogridmanager.h"
// [RLVa:KB]
#include "rlvhandler.h"
@@ -264,6 +260,16 @@ void LLFloaterAvatarList::createInstance(bool visible)
sInstance->setVisible(FALSE);
gSavedSettings.setBOOL("ShowRadar", FALSE);
}
if(gHippoGridManager->getConnectedGrid()->isSecondLife()){
LLScrollListCtrl* list = sInstance->getChild<LLScrollListCtrl>("avatar_list");
list->getColumn(1)->setWidth(0);
list->getColumn(6)->setWidth(0);
list->getColumn(6)->mDynamicWidth = FALSE;
list->getColumn(6)->mRelWidth = 0;
list->getColumn(1)->mDynamicWidth = TRUE;
list->getColumn(1)->mRelWidth = -1;
list->updateLayout();
}
}
//static
void LLFloaterAvatarList::toggle(void*)
@@ -704,7 +710,7 @@ void LLFloaterAvatarList::refreshAvatarList()
LLVector3d delta = position - mypos;
F32 distance = (F32)delta.magVec();
if (position.mdV[VZ] == 0.0)
if (position.mdV[VZ] == 0.f || position.mdV[VZ] == 1020.f)
{
UnknownAltitude = true;
distance = 9000.0;

View File

@@ -1,957 +0,0 @@
// <edit>
#include "llviewerprecompiledheaders.h"
#include "llfloatermessagelog.h"
#include "lluictrlfactory.h"
#include "llworld.h"
#include "llnotificationsutil.h"
#include "llviewerregion.h"
#include "llscrolllistctrl.h"
#include "lltexteditor.h"
#include "llviewerwindow.h" // alertXml
#include "llmessagetemplate.h"
#include <boost/tokenizer.hpp>
#include "llmenugl.h"
#include "lleventtimer.h"
#include "llagent.h"
////////////////////////////////
// LLNetListItem
////////////////////////////////
LLNetListItem::LLNetListItem(LLUUID id)
: mID(id),
mAutoName(TRUE),
mName("No name"),
mPreviousRegionName(""),
mCircuitData(NULL)
{
}
////////////////////////////////
// LLFloaterMessageLogItem
////////////////////////////////
#define MAX_PACKET_LEN (0x2000)
LLTemplateMessageReader* LLFloaterMessageLogItem::sTemplateMessageReader = NULL;
LLFloaterMessageLogItem::LLFloaterMessageLogItem(LLMessageLogEntry entry)
: LLMessageLogEntry(entry.mType, entry.mFromHost, entry.mToHost, entry.mData, entry.mDataSize)
{
if(!sTemplateMessageReader)
{
sTemplateMessageReader = new LLTemplateMessageReader(gMessageSystem->mMessageNumbers);
}
mID.generate();
mSequenceID = 0;
if(mType == TEMPLATE)
{
BOOL decode_invalid = FALSE;
S32 decode_len = mDataSize;
std::vector<U8> DecodeBuffer(MAX_PACKET_LEN,0);
memcpy(&(DecodeBuffer[0]),&(mData[0]),decode_len);
U8* decodep = &(DecodeBuffer[0]);
mFlags = DecodeBuffer[0];
gMessageSystem->zeroCodeExpand(&decodep, &decode_len);
if(decode_len < 7)
decode_invalid = TRUE;
else
{
mSequenceID = ntohl(*((U32*)(&decodep[1])));
sTemplateMessageReader->clearMessage();
if(!sTemplateMessageReader->validateMessage(decodep, decode_len, mFromHost, TRUE))
decode_invalid = TRUE;
else
{
if(!sTemplateMessageReader->decodeData(decodep, mFromHost, TRUE))
decode_invalid = TRUE;
else
{
LLMessageTemplate* temp = sTemplateMessageReader->getTemplate();
mName = temp->mName;
mSummary = "";
if(mFlags)
{
mSummary.append(" [ ");
if(mFlags & LL_ZERO_CODE_FLAG)
mSummary.append(" Zer ");
if(mFlags & LL_RELIABLE_FLAG)
mSummary.append(" Rel ");
if(mFlags & LL_RESENT_FLAG)
mSummary.append(" Rsd ");
if(mFlags & LL_ACK_FLAG)
mSummary.append(" Ack ");
mSummary.append(" ] ");
}
LLMessageTemplate::message_block_map_t::iterator blocks_end = temp->mMemberBlocks.end();
for (LLMessageTemplate::message_block_map_t::iterator blocks_iter = temp->mMemberBlocks.begin();
blocks_iter != blocks_end; ++blocks_iter)
{
LLMessageBlock* block = (*blocks_iter);
const char* block_name = block->mName;
S32 num_blocks = sTemplateMessageReader->getNumberOfBlocks(block_name);
if(!num_blocks)
mSummary.append(" { } ");
else if(num_blocks > 1)
mSummary.append(llformat(" %s [ %d ] { ... } ", block_name, num_blocks));
else for(S32 i = 0; i < 1; i++)
{
mSummary.append(" { ");
LLMessageBlock::message_variable_map_t::iterator var_end = block->mMemberVariables.end();
for (LLMessageBlock::message_variable_map_t::iterator var_iter = block->mMemberVariables.begin();
var_iter != var_end; ++var_iter)
{
LLMessageVariable* variable = (*var_iter);
const char* var_name = variable->getName();
BOOL returned_hex;
std::string value = getString(sTemplateMessageReader, block_name, i, var_name, variable->getType(), returned_hex, TRUE);
mSummary.append(llformat(" %s=%s ", var_name, value.c_str()));
}
mSummary.append(" } ");
if(mSummary.length() > 255) break;
}
if(mSummary.length() > 255)
{
mSummary.append(" ... ");
break;
}
} // blocks_iter
} // decode_valid
}
}
if(decode_invalid)
{
mName = "Invalid";
mSummary = "";
for(S32 i = 0; i < mDataSize; i++)
mSummary.append(llformat("%02X ", mData[i]));
}
}
else // not template
{
mName = "SOMETHING ELSE";
mSummary = "TODO: SOMETHING ELSE";
}
}
LLFloaterMessageLogItem::~LLFloaterMessageLogItem()
{
}
BOOL LLFloaterMessageLogItem::isOutgoing()
{
return mFromHost == LLHost(16777343, gMessageSystem->getListenPort());
}
std::string LLFloaterMessageLogItem::getFull(BOOL show_header)
{
std::string full("");
if(mType == TEMPLATE)
{
BOOL decode_invalid = FALSE;
S32 decode_len = mDataSize;
std::vector<U8> DecodeBuffer(MAX_PACKET_LEN,0);
memcpy(&(DecodeBuffer[0]),&(mData[0]),decode_len);
U8* decodep = &(DecodeBuffer[0]);
gMessageSystem->zeroCodeExpand(&decodep, &decode_len);
if(decode_len < 7)
decode_invalid = TRUE;
else
{
sTemplateMessageReader->clearMessage();
if(!sTemplateMessageReader->validateMessage(decodep, decode_len, mFromHost, TRUE))
decode_invalid = TRUE;
else
{
if(!sTemplateMessageReader->decodeData(decodep, mFromHost, TRUE))
decode_invalid = TRUE;
else
{
LLMessageTemplate* temp = sTemplateMessageReader->getTemplate();
full.append(isOutgoing() ? "out " : "in ");
full.append(llformat("%s\n", temp->mName));
if(show_header)
{
full.append("[Header]\n");
full.append(llformat("SequenceID = %u\n", mSequenceID));
full.append(llformat("LL_ZERO_CODE_FLAG = %s\n", (mFlags & LL_ZERO_CODE_FLAG) ? "True" : "False"));
full.append(llformat("LL_RELIABLE_FLAG = %s\n", (mFlags & LL_RELIABLE_FLAG) ? "True" : "False"));
full.append(llformat("LL_RESENT_FLAG = %s\n", (mFlags & LL_RESENT_FLAG) ? "True" : "False"));
full.append(llformat("LL_ACK_FLAG = %s\n", (mFlags & LL_ACK_FLAG) ? "True" : "False"));
}
LLMessageTemplate::message_block_map_t::iterator blocks_end = temp->mMemberBlocks.end();
for (LLMessageTemplate::message_block_map_t::iterator blocks_iter = temp->mMemberBlocks.begin();
blocks_iter != blocks_end; ++blocks_iter)
{
LLMessageBlock* block = (*blocks_iter);
const char* block_name = block->mName;
S32 num_blocks = sTemplateMessageReader->getNumberOfBlocks(block_name);
for(S32 i = 0; i < num_blocks; i++)
{
full.append(llformat("[%s]\n", block->mName));
LLMessageBlock::message_variable_map_t::iterator var_end = block->mMemberVariables.end();
for (LLMessageBlock::message_variable_map_t::iterator var_iter = block->mMemberVariables.begin();
var_iter != var_end; ++var_iter)
{
LLMessageVariable* variable = (*var_iter);
const char* var_name = variable->getName();
BOOL returned_hex;
std::string value = getString(sTemplateMessageReader, block_name, i, var_name, variable->getType(), returned_hex);
if(returned_hex)
full.append(llformat("%s =| ", var_name));
else
full.append(llformat("%s = ", var_name));
// llformat has a 1024 char limit!?
full.append(value);
full.append("\n");
}
}
} // blocks_iter
} // decode_valid
}
}
if(decode_invalid)
{
full = isOutgoing() ? "out" : "in";
full.append("\n");
for(S32 i = 0; i < mDataSize; i++)
full.append(llformat("%02X ", mData[i]));
}
}
else // not template
{
full = "FIXME";
}
return full;
}
// static
std::string LLFloaterMessageLogItem::getString(LLTemplateMessageReader* readerp, const char* block_name, S32 block_num, const char* var_name, e_message_variable_type var_type, BOOL &returned_hex, BOOL summary_mode)
{
returned_hex = FALSE;
std::stringstream stream;
char* value;
U32 valueU32;
U16 valueU16;
LLVector3 valueVector3;
LLVector3d valueVector3d;
LLVector4 valueVector4;
LLQuaternion valueQuaternion;
LLUUID valueLLUUID;
switch(var_type)
{
case MVT_U8:
U8 valueU8;
readerp->getU8(block_name, var_name, valueU8, block_num);
stream << U32(valueU8);
break;
case MVT_U16:
readerp->getU16(block_name, var_name, valueU16, block_num);
stream << valueU16;
break;
case MVT_U32:
readerp->getU32(block_name, var_name, valueU32, block_num);
stream << valueU32;
break;
case MVT_U64:
U64 valueU64;
readerp->getU64(block_name, var_name, valueU64, block_num);
stream << valueU64;
break;
case MVT_S8:
S8 valueS8;
readerp->getS8(block_name, var_name, valueS8, block_num);
stream << S32(valueS8);
break;
case MVT_S16:
S16 valueS16;
readerp->getS16(block_name, var_name, valueS16, block_num);
stream << valueS16;
break;
case MVT_S32:
S32 valueS32;
readerp->getS32(block_name, var_name, valueS32, block_num);
stream << valueS32;
break;
/*case MVT_S64:
S64 valueS64;
readerp->getS64(block_name, var_name, valueS64, block_num);
stream << valueS64;
break;*/
case MVT_F32:
F32 valueF32;
readerp->getF32(block_name, var_name, valueF32, block_num);
stream << valueF32;
break;
case MVT_F64:
F64 valueF64;
readerp->getF64(block_name, var_name, valueF64, block_num);
stream << valueF64;
break;
case MVT_LLVector3:
readerp->getVector3(block_name, var_name, valueVector3, block_num);
//stream << valueVector3;
stream << "<" << valueVector3.mV[0] << ", " << valueVector3.mV[1] << ", " << valueVector3.mV[2] << ">";
break;
case MVT_LLVector3d:
readerp->getVector3d(block_name, var_name, valueVector3d, block_num);
//stream << valueVector3d;
stream << "<" << valueVector3d.mdV[0] << ", " << valueVector3d.mdV[1] << ", " << valueVector3d.mdV[2] << ">";
break;
case MVT_LLVector4:
readerp->getVector4(block_name, var_name, valueVector4, block_num);
//stream << valueVector4;
stream << "<" << valueVector4.mV[0] << ", " << valueVector4.mV[1] << ", " << valueVector4.mV[2] << ", " << valueVector4.mV[3] << ">";
break;
case MVT_LLQuaternion:
readerp->getQuat(block_name, var_name, valueQuaternion, block_num);
//stream << valueQuaternion;
stream << "<" << valueQuaternion.mQ[0] << ", " << valueQuaternion.mQ[1] << ", " << valueQuaternion.mQ[2] << ", " << valueQuaternion.mQ[3] << ">";
break;
case MVT_LLUUID:
readerp->getUUID(block_name, var_name, valueLLUUID, block_num);
stream << valueLLUUID;
break;
case MVT_BOOL:
BOOL valueBOOL;
readerp->getBOOL(block_name, var_name, valueBOOL, block_num);
stream << valueBOOL;
break;
case MVT_IP_ADDR:
readerp->getIPAddr(block_name, var_name, valueU32, block_num);
stream << LLHost(valueU32, 0).getIPString();
break;
case MVT_IP_PORT:
readerp->getIPPort(block_name, var_name, valueU16, block_num);
stream << valueU16;
case MVT_VARIABLE:
case MVT_FIXED:
default:
S32 size = readerp->getSize(block_name, block_num, var_name);
if(size)
{
value = new char[size + 1];
readerp->getBinaryData(block_name, var_name, value, size, block_num);
value[size] = '\0';
S32 readable = 0;
S32 unreadable = 0;
S32 end = (summary_mode && (size > 64)) ? 64 : size;
for(S32 i = 0; i < end; i++)
{
if(!value[i])
{
if(i != (end - 1))
{ // don't want null terminator hiding data
unreadable = S32_MAX;
break;
}
}
else if(value[i] < 0x20 || value[i] >= 0x7F)
{
if(summary_mode)
unreadable++;
else
{ // never want any wrong characters outside of summary mode
unreadable = S32_MAX;
break;
}
}
else readable++;
}
if(readable >= unreadable)
{
if(summary_mode && (size > 64))
{
for(S32 i = 60; i < 63; i++)
value[i] = '.';
value[63] = '\0';
}
stream << value;
delete[] value;
}
else
{
returned_hex = TRUE;
S32 end = (summary_mode && (size > 8)) ? 8 : size;
for(S32 i = 0; i < end; i++)
//stream << std::uppercase << std::hex << U32(value[i]) << " ";
stream << llformat("%02X ", (U8)value[i]);
if(summary_mode && (size > 8))
stream << " ... ";
}
}
break;
}
return stream.str();
}
LLMessageLogFilter::LLMessageLogFilter()
{
}
LLMessageLogFilter::~LLMessageLogFilter()
{
}
BOOL LLMessageLogFilter::set(std::string filter)
{
mPositiveNames.clear();
mNegativeNames.clear();
typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
boost::char_separator<char> sep(" ","",boost::keep_empty_tokens);
boost::tokenizer<boost::char_separator<char> > tokens(filter, sep);
boost::tokenizer<boost::char_separator<char> >::iterator end = tokens.end();
for(boost::tokenizer<boost::char_separator<char> >::iterator iter = tokens.begin(); iter != end; ++iter)
{
std::string token = (*iter);
LLStringUtil::trim(token);
LLStringUtil::toLower(token);
BOOL negative = token.find("!") == 0;
if(negative)
{
token = token.substr(1);
mNegativeNames.push_back(token);
}
else
mPositiveNames.push_back(token);
}
return TRUE;
}
////////////////////////////////
// LLMessageLogFilterApply
////////////////////////////////
LLMessageLogFilterApply::LLMessageLogFilterApply()
: LLEventTimer(0.1f),
mFinished(FALSE),
mProgress(0)
{
mIter = LLFloaterMessageLog::sMessageLogEntries.begin();
}
void LLMessageLogFilterApply::cancel()
{
mFinished = TRUE;
}
BOOL LLMessageLogFilterApply::tick()
{
std::deque<LLMessageLogEntry>::iterator end = LLFloaterMessageLog::sMessageLogEntries.end();
if(mIter == end || !LLFloaterMessageLog::sInstance)
{
mFinished = TRUE;
if(LLFloaterMessageLog::sInstance)
{
if(LLFloaterMessageLog::sInstance->mMessageLogFilterApply == this)
{
LLFloaterMessageLog::sInstance->stopApplyingFilter();
}
}
return TRUE;
}
for(S32 i = 0; i < 256; i++)
{
if(mIter == end)
{
mFinished = TRUE;
if(LLFloaterMessageLog::sInstance)
{
if(LLFloaterMessageLog::sInstance->mMessageLogFilterApply == this)
{
LLFloaterMessageLog::sInstance->stopApplyingFilter();
//we're done messing with the deque, push all queued items to the main deque
std::deque<LLMessageLogEntry>::iterator queueIter = mQueuedMessages.begin();
std::deque<LLMessageLogEntry>::iterator queueEnd = mQueuedMessages.end();
while(queueIter != queueEnd)
{
LLFloaterMessageLog::sInstance->conditionalLog(LLFloaterMessageLogItem((*queueIter)));
++queueIter;
}
mQueuedMessages.clear();
}
}
return TRUE;
}
LLFloaterMessageLog::sInstance->conditionalLog(LLFloaterMessageLogItem((*mIter)));
mIter++;
mProgress++;
}
LLFloaterMessageLog::sInstance->updateFilterStatus();
return FALSE;
}
////////////////////////////////
// LLFloaterMessageLog
////////////////////////////////
LLFloaterMessageLog* LLFloaterMessageLog::sInstance;
std::list<LLNetListItem*> LLFloaterMessageLog::sNetListItems;
std::deque<LLMessageLogEntry> LLFloaterMessageLog::sMessageLogEntries;
std::vector<LLFloaterMessageLogItem> LLFloaterMessageLog::sFloaterMessageLogItems;
LLMessageLogFilter LLFloaterMessageLog::sMessageLogFilter = LLMessageLogFilter();
std::string LLFloaterMessageLog::sMessageLogFilterString("!StartPingCheck !CompletePingCheck !PacketAck !SimulatorViewerTimeMessage !SimStats !AgentUpdate !AgentAnimation !AvatarAnimation !ViewerEffect !CoarseLocationUpdate !LayerData !CameraConstraint !ObjectUpdateCached !RequestMultipleObjects !ObjectUpdate !ObjectUpdateCompressed !ImprovedTerseObjectUpdate !KillObject !ImagePacket !SendXferPacket !ConfirmXferPacket !TransferPacket !SoundTrigger !AttachedSound !PreloadSound");
BOOL LLFloaterMessageLog::sBusyApplyingFilter = FALSE;
LLFloaterMessageLog::LLFloaterMessageLog()
: LLFloater(),
LLEventTimer(1.0f),
mNetInfoMode(NI_NET),
mMessageLogFilterApply(NULL)
{
sInstance = this;
LLMessageLog::setCallback(onLog);
sMessageLogEntries = LLMessageLog::getDeque();
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_message_log.xml");
}
LLFloaterMessageLog::~LLFloaterMessageLog()
{
LLMessageLog::setCallback(NULL);
stopApplyingFilter();
sInstance = NULL;
sNetListItems.clear();
sMessageLogEntries.clear();
sFloaterMessageLogItems.clear();
}
// static
void LLFloaterMessageLog::show()
{
if(!sInstance) sInstance = new LLFloaterMessageLog();
sInstance->open();
}
BOOL LLFloaterMessageLog::postBuild()
{
childSetCommitCallback("net_list", onCommitNetList, this);
childSetCommitCallback("message_log", onCommitMessageLog, this);
childSetAction("filter_choice_btn", onClickFilterChoice, this);
childSetAction("filter_apply_btn", onClickFilterApply, this);
childSetCommitCallback("filter_edit", onCommitFilter, this);
childSetAction("clear_log_btn", onClickClearLog, this);
childSetText("filter_edit", sMessageLogFilterString);
refreshNetList();
refreshNetInfo(TRUE);
startApplyingFilter(sMessageLogFilterString, TRUE);
return TRUE;
}
BOOL LLFloaterMessageLog::tick()
{
refreshNetList();
refreshNetInfo(FALSE);
return FALSE;
}
LLNetListItem* LLFloaterMessageLog::findNetListItem(LLHost host)
{
std::list<LLNetListItem*>::iterator end = sNetListItems.end();
for(std::list<LLNetListItem*>::iterator iter = sNetListItems.begin(); iter != end; ++iter)
if((*iter)->mCircuitData && (*iter)->mCircuitData->getHost() == host)
return (*iter);
return NULL;
}
LLNetListItem* LLFloaterMessageLog::findNetListItem(LLUUID id)
{
std::list<LLNetListItem*>::iterator end = sNetListItems.end();
for(std::list<LLNetListItem*>::iterator iter = sNetListItems.begin(); iter != end; ++iter)
if((*iter)->mID == id)
return (*iter);
return NULL;
}
void LLFloaterMessageLog::refreshNetList()
{
LLScrollListCtrl* scrollp = getChild<LLScrollListCtrl>("net_list");
// Update circuit data of net list items
std::vector<LLCircuitData*> circuits = gMessageSystem->getCircuit()->getCircuitDataList();
std::vector<LLCircuitData*>::iterator circuits_end = circuits.end();
for(std::vector<LLCircuitData*>::iterator iter = circuits.begin(); iter != circuits_end; ++iter)
{
LLNetListItem* itemp = findNetListItem((*iter)->getHost());
if(!itemp)
{
LLUUID id; id.generate();
itemp = new LLNetListItem(id);
sNetListItems.push_back(itemp);
}
itemp->mCircuitData = (*iter);
}
// Clear circuit data of items whose circuits are gone
std::list<LLNetListItem*>::iterator items_end = sNetListItems.end();
for(std::list<LLNetListItem*>::iterator iter = sNetListItems.begin(); iter != items_end; ++iter)
{
if(std::find(circuits.begin(), circuits.end(), (*iter)->mCircuitData) == circuits.end())
(*iter)->mCircuitData = NULL;
}
// Remove net list items that are totally useless now
for(std::list<LLNetListItem*>::iterator iter = sNetListItems.begin(); iter != sNetListItems.end();)
{
if((*iter)->mCircuitData == NULL)
iter = sNetListItems.erase(iter);
else ++iter;
}
// Update names of net list items
items_end = sNetListItems.end();
for(std::list<LLNetListItem*>::iterator iter = sNetListItems.begin(); iter != items_end; ++iter)
{
LLNetListItem* itemp = (*iter);
if(itemp->mAutoName)
{
if(itemp->mCircuitData)
{
LLViewerRegion* regionp = LLWorld::getInstance()->getRegion(itemp->mCircuitData->getHost());
if(regionp)
{
std::string name = regionp->getName();
if(name == "") name = llformat("%s (awaiting region name)", itemp->mCircuitData->getHost().getString().c_str());
itemp->mName = name;
itemp->mPreviousRegionName = name;
}
else
{
itemp->mName = itemp->mCircuitData->getHost().getString();
if(itemp->mPreviousRegionName != "")
itemp->mName.append(llformat(" (was %s)", itemp->mPreviousRegionName.c_str()));
}
}
else
{
// an item just for an event queue, not handled yet
itemp->mName = "Something else";
}
}
}
// Rebuild scroll list from scratch
LLUUID selected_id = scrollp->getFirstSelected() ? scrollp->getFirstSelected()->getUUID() : LLUUID::null;
S32 scroll_pos = scrollp->getScrollPos();
scrollp->clearRows();
for(std::list<LLNetListItem*>::iterator iter = sNetListItems.begin(); iter != items_end; ++iter)
{
LLNetListItem* itemp = (*iter);
LLSD element;
element["id"] = itemp->mID;
LLSD& text_column = element["columns"][0];
text_column["column"] = "text";
text_column["value"] = itemp->mName + (itemp->mCircuitData->getHost() == gAgent.getRegionHost() ? " (main)" : "");
for(int i = 0; i < 2; i++)
{
LLSD& icon_column = element["columns"][i + 1];
icon_column["column"] = llformat("icon%d", i);
icon_column["type"] = "icon";
icon_column["value"] = "";
}
LLScrollListItem* scroll_itemp = scrollp->addElement(element);
BOOL has_live_circuit = itemp->mCircuitData && itemp->mCircuitData->isAlive();
if(has_live_circuit)
{
LLScrollListIcon* icon = (LLScrollListIcon*)scroll_itemp->getColumn(1);
icon->setValue("icon_net_close_circuit.tga");
icon->setClickCallback(onClickCloseCircuit, itemp);
}
else
{
LLScrollListIcon* icon = (LLScrollListIcon*)scroll_itemp->getColumn(1);
icon->setValue("icon_net_close_circuit_gray.tga");
icon->setClickCallback(NULL, NULL);
}
// Event queue isn't even supported yet... FIXME
LLScrollListIcon* icon = (LLScrollListIcon*)scroll_itemp->getColumn(2);
icon->setValue("icon_net_close_eventpoll_gray.tga");
icon->setClickCallback(NULL, NULL);
}
if(selected_id.notNull()) scrollp->selectByID(selected_id);
if(scroll_pos < scrollp->getItemCount()) scrollp->setScrollPos(scroll_pos);
}
void LLFloaterMessageLog::refreshNetInfo(BOOL force)
{
if(mNetInfoMode != NI_NET) return;
LLScrollListCtrl* scrollp = getChild<LLScrollListCtrl>("net_list");
LLScrollListItem* selected_itemp = scrollp->getFirstSelected();
if(selected_itemp)
{
if(!force) if(getChild<LLTextEditor>("net_info")->hasSelection()) return;
LLNetListItem* itemp = findNetListItem(selected_itemp->getUUID());
if(itemp)
{
std::string info(llformat("%s\n--------------------------------\n\n", itemp->mName.c_str()));
if(itemp->mCircuitData)
{
LLCircuitData* cdp = itemp->mCircuitData;
info.append("Circuit\n--------------------------------\n");
info.append(llformat(" * Host: %s\n", cdp->getHost().getString().c_str()));
S32 seconds = (S32)cdp->getAgeInSeconds();
S32 minutes = seconds / 60;
seconds = seconds % 60;
S32 hours = minutes / 60;
minutes = minutes % 60;
info.append(llformat(" * Age: %dh %dm %ds\n", hours, minutes, seconds));
info.append(llformat(" * Alive: %s\n", cdp->isAlive() ? "yes" : "no"));
info.append(llformat(" * Blocked: %s\n", cdp->isBlocked() ? "yes" : "no"));
info.append(llformat(" * Allow timeout: %s\n", cdp->getAllowTimeout() ? "yes" : "no"));
info.append(llformat(" * Trusted: %s\n", cdp->getTrusted() ? "yes" : "no"));
info.append(llformat(" * Ping delay: %d\n", cdp->getPingDelay()));
info.append(llformat(" * Packets out: %d\n", cdp->getPacketsOut()));
info.append(llformat(" * Bytes out: %d\n", cdp->getBytesOut()));
info.append(llformat(" * Packets in: %d\n", cdp->getPacketsIn()));
info.append(llformat(" * Bytes in: %d\n", cdp->getBytesIn()));
info.append(llformat(" * Endpoint ID: %s\n", cdp->getLocalEndPointID().asString().c_str()));
info.append(llformat(" * Remote ID: %s\n", cdp->getRemoteID().asString().c_str()));
info.append(llformat(" * Remote session ID: %s\n", cdp->getRemoteSessionID().asString().c_str()));
}
childSetText("net_info", info);
}
else childSetText("net_info", std::string(""));
}
else childSetText("net_info", std::string(""));
}
void LLFloaterMessageLog::setNetInfoMode(ENetInfoMode mode)
{
mNetInfoMode = mode;
if(mNetInfoMode == NI_NET)
refreshNetInfo(TRUE);
}
// static
void LLFloaterMessageLog::onLog(LLMessageLogEntry entry)
{
//don't mess with the queue while a filter's being applied, or face invalid iterators
if(!sBusyApplyingFilter)
{
sMessageLogEntries.push_back(entry);
conditionalLog(LLFloaterMessageLogItem(entry));
}
}
// static
void LLFloaterMessageLog::conditionalLog(LLFloaterMessageLogItem item)
{
if(!sBusyApplyingFilter)
sInstance->childSetText("log_status_text", llformat("Showing %d messages from %d", sFloaterMessageLogItems.size(), sMessageLogEntries.size()));
std::string find_name = item.mName;
LLStringUtil::toLower(find_name);
if(sMessageLogFilter.mPositiveNames.size())
if(std::find(sMessageLogFilter.mPositiveNames.begin(), sMessageLogFilter.mPositiveNames.end(), find_name) == sMessageLogFilter.mPositiveNames.end())
return;
if(std::find(sMessageLogFilter.mNegativeNames.begin(), sMessageLogFilter.mNegativeNames.end(), find_name) != sMessageLogFilter.mNegativeNames.end())
return;
sFloaterMessageLogItems.push_back(item); // moved from beginning...
BOOL outgoing = item.isOutgoing();
std::string net_name("\?\?\?");
if(item.mType == LLFloaterMessageLogItem::TEMPLATE)
{
LLHost find_host = outgoing ? item.mToHost : item.mFromHost;
net_name = find_host.getIPandPort();
std::list<LLNetListItem*>::iterator end = sNetListItems.end();
for(std::list<LLNetListItem*>::iterator iter = sNetListItems.begin(); iter != end; ++iter)
{
if((*iter)->mCircuitData->getHost() == find_host)
{
net_name = (*iter)->mName;
break;
}
}
}
LLSD element;
element["id"] = item.mID;
LLSD& sequence_column = element["columns"][0];
sequence_column["column"] = "sequence";
sequence_column["value"] = llformat("%u", item.mSequenceID);
LLSD& type_column = element["columns"][1];
type_column["column"] = "type";
type_column["value"] = item.mType == LLFloaterMessageLogItem::TEMPLATE ? "UDP" : "\?\?\?";
LLSD& direction_column = element["columns"][2];
direction_column["column"] = "direction";
direction_column["value"] = outgoing ? "to" : "from";
LLSD& net_column = element["columns"][3];
net_column["column"] = "net";
net_column["value"] = net_name;
LLSD& name_column = element["columns"][4];
name_column["column"] = "name";
name_column["value"] = item.mName;
/*
LLSD& zer_column = element["columns"][5];
zer_column["column"] = "flag_zer";
zer_column["type"] = "icon";
zer_column["value"] = (item.mFlags & LL_ZERO_CODE_FLAG) ? "flag_zer.tga" : "";
LLSD& rel_column = element["columns"][6];
rel_column["column"] = "flag_rel";
rel_column["type"] = "icon";
rel_column["value"] = (item.mFlags & LL_RELIABLE_FLAG) ? "flag_rel.tga" : "";
LLSD& rsd_column = element["columns"][7];
rsd_column["column"] = "flag_rsd";
rsd_column["type"] = "icon";
rsd_column["value"] = (item.mFlags & LL_RESENT_FLAG) ? "flag_rsd.tga" : "";
LLSD& ack_column = element["columns"][8];
ack_column["column"] = "flag_ack";
ack_column["type"] = "icon";
ack_column["value"] = (item.mFlags & LL_ACK_FLAG) ? "flag_ack.tga" : "";
*/
LLSD& summary_column = element["columns"][5];
summary_column["column"] = "summary";
summary_column["value"] = item.mSummary;
LLScrollListCtrl* scrollp = sInstance->getChild<LLScrollListCtrl>("message_log");
S32 scroll_pos = scrollp->getScrollPos();
scrollp->addElement(element);
if(scroll_pos > scrollp->getItemCount() - scrollp->getPageLines() - 4)
scrollp->setScrollPos(scrollp->getItemCount());
}
// static
void LLFloaterMessageLog::onCommitNetList(LLUICtrl* ctrl, void* user_data)
{
LLFloaterMessageLog* floaterp = (LLFloaterMessageLog*)user_data;
floaterp->setNetInfoMode(NI_NET);
floaterp->refreshNetInfo(TRUE);
}
// static
void LLFloaterMessageLog::onCommitMessageLog(LLUICtrl* ctrl, void* user_data)
{
LLFloaterMessageLog* floaterp = (LLFloaterMessageLog*)user_data;
LLScrollListCtrl* scrollp = floaterp->getChild<LLScrollListCtrl>("message_log");
LLScrollListItem* selected_itemp = scrollp->getFirstSelected();
if(!selected_itemp) return;
LLUUID id = selected_itemp->getUUID();
std::vector<LLFloaterMessageLogItem>::iterator end = sFloaterMessageLogItems.end();
for(std::vector<LLFloaterMessageLogItem>::iterator iter = sFloaterMessageLogItems.begin(); iter != end; ++iter)
{
if(iter->mID == id)
{
floaterp->setNetInfoMode(NI_LOG);
floaterp->childSetText("net_info", iter->getFull(FALSE));
break;
}
}
}
// static
BOOL LLFloaterMessageLog::onClickCloseCircuit(void* user_data)
{
LLNetListItem* itemp = (LLNetListItem*)user_data;
LLCircuitData* cdp = (LLCircuitData*)itemp->mCircuitData;
if(!cdp) return FALSE;
LLHost myhost = cdp->getHost();
LLSD args;
args["MESSAGE"] = "This will delete local circuit data.\nDo you want to tell the remote host to close the circuit too?";
LLSD payload;
payload["circuittoclose"] = myhost.getString();
LLNotificationsUtil::add("GenericAlertYesCancel", args, payload, onConfirmCloseCircuit);
return TRUE;
}
// static
bool LLFloaterMessageLog::onConfirmCloseCircuit(const LLSD& notification, const LLSD& response )
{
S32 option = LLNotification::getSelectedOption(notification, response);
LLCircuitData* cdp = gMessageSystem->mCircuitInfo.findCircuit(LLHost(notification["payload"]["circuittoclose"].asString()));
if(!cdp) return false;
LLViewerRegion* regionp = LLWorld::getInstance()->getRegion(cdp->getHost());
switch(option)
{
case 0: // yes
gMessageSystem->newMessageFast(_PREHASH_CloseCircuit);
gMessageSystem->sendReliable(cdp->getHost());
break;
case 2: // cancel
return false;
break;
case 1: // no
default:
break;
}
if(gMessageSystem->findCircuitCode(cdp->getHost()))
gMessageSystem->disableCircuit(cdp->getHost());
else
gMessageSystem->getCircuit()->removeCircuitData(cdp->getHost());
if(regionp)
{
LLHost myhost = regionp->getHost();
LLSD args;
args["MESSAGE"] = "That host had a region associated with it.\nDo you want to clean that up?";
LLSD payload;
payload["regionhost"] = myhost.getString();
LLNotificationsUtil::add("GenericAlertYesCancel", args, payload, onConfirmRemoveRegion);
}
return false;
}
// static
bool LLFloaterMessageLog::onConfirmRemoveRegion(const LLSD& notification, const LLSD& response )
{
S32 option = LLNotification::getSelectedOption(notification, response);
if(option == 0) // yes
LLWorld::getInstance()->removeRegion(LLHost(notification["payload"]["regionhost"].asString()));
return false;
}
// static
void LLFloaterMessageLog::onClickFilterApply(void* user_data)
{
LLFloaterMessageLog* floaterp = (LLFloaterMessageLog*)user_data;
floaterp->startApplyingFilter(floaterp->childGetValue("filter_edit"), FALSE);
}
void LLFloaterMessageLog::startApplyingFilter(std::string filter, BOOL force)
{
LLMessageLogFilter new_filter = LLMessageLogFilter();
sMessageLogFilterString = filter;
new_filter.set(sMessageLogFilterString);
if(!filter.length() || filter.at(filter.length()-1) != ' ')
childSetText("filter_edit", filter + " ");
if(force
|| (new_filter.mNegativeNames != sMessageLogFilter.mNegativeNames)
|| (new_filter.mPositiveNames != sMessageLogFilter.mPositiveNames))
{
stopApplyingFilter();
sMessageLogFilter = new_filter;
sFloaterMessageLogItems.clear();
getChild<LLScrollListCtrl>("message_log")->clearRows();
sBusyApplyingFilter = TRUE;
childSetVisible("message_log", false);
//childSetVisible("log_status_text", true);
mMessageLogFilterApply = new LLMessageLogFilterApply();
}
}
void LLFloaterMessageLog::stopApplyingFilter()
{
if(mMessageLogFilterApply)
{
if(!(mMessageLogFilterApply->mFinished))
mMessageLogFilterApply->cancel();
//delete mMessageLogFilterApply;
sBusyApplyingFilter = FALSE;
//childSetVisible("log_status_text", false);
childSetVisible("message_log", true);
childSetText("log_status_text", llformat("Showing %d messages from %d", sFloaterMessageLogItems.size(), sMessageLogEntries.size()));
}
}
void LLFloaterMessageLog::updateFilterStatus()
{
if(!mMessageLogFilterApply || !sBusyApplyingFilter) return;
S32 progress = mMessageLogFilterApply->mProgress;
S32 packets = sMessageLogEntries.size();
S32 matches = sFloaterMessageLogItems.size();
std::string text = llformat("Applying filter ( %d / %d ), %d matches ...", progress, packets, matches);
childSetText("log_status_text", text);
}
// static
void LLFloaterMessageLog::onCommitFilter(LLUICtrl* ctrl, void* user_data)
{
LLFloaterMessageLog* floaterp = (LLFloaterMessageLog*)user_data;
floaterp->startApplyingFilter(floaterp->childGetValue("filter_edit"), FALSE);
}
// static
void LLFloaterMessageLog::onClickClearLog(void* user_data)
{
LLFloaterMessageLog* floaterp = (LLFloaterMessageLog*)user_data;
floaterp->stopApplyingFilter();
floaterp->getChild<LLScrollListCtrl>("message_log")->clearRows();
floaterp->setNetInfoMode(NI_NET);
sMessageLogEntries.clear();
sFloaterMessageLogItems.clear();
}
// static
void LLFloaterMessageLog::onClickFilterChoice(void* user_data)
{
LLMenuGL* menu = new LLMenuGL(LLStringUtil::null);
menu->append(new LLMenuItemCallGL("No filter", onClickFilterMenu, NULL, (void*)""));
menu->append(new LLMenuItemCallGL("Fewer spammy messages", onClickFilterMenu, NULL, (void*)"!StartPingCheck !CompletePingCheck !PacketAck !SimulatorViewerTimeMessage !SimStats !AgentUpdate !AgentAnimation !AvatarAnimation !ViewerEffect !CoarseLocationUpdate !LayerData !CameraConstraint !ObjectUpdateCached !RequestMultipleObjects !ObjectUpdate !ObjectUpdateCompressed !ImprovedTerseObjectUpdate !KillObject !ImagePacket !SendXferPacket !ConfirmXferPacket !TransferPacket"));
menu->append(new LLMenuItemCallGL("Fewer spammy messages (minus sound crap)", onClickFilterMenu, NULL, (void*)"!StartPingCheck !CompletePingCheck !PacketAck !SimulatorViewerTimeMessage !SimStats !AgentUpdate !AgentAnimation !AvatarAnimation !ViewerEffect !CoarseLocationUpdate !LayerData !CameraConstraint !ObjectUpdateCached !RequestMultipleObjects !ObjectUpdate !ObjectUpdateCompressed !ImprovedTerseObjectUpdate !KillObject !ImagePacket !SendXferPacket !ConfirmXferPacket !TransferPacket !SoundTrigger !AttachedSound !PreloadSound"));
menu->append(new LLMenuItemCallGL("Object updates", onClickFilterMenu, NULL, (void*)"ObjectUpdateCached ObjectUpdate ObjectUpdateCompressed ImprovedTerseObjectUpdate KillObject RequestMultipleObjects"));
menu->append(new LLMenuItemCallGL("Abnormal", onClickFilterMenu, NULL, (void*)"Invalid TestMessage AddCircuitCode NeighborList AvatarTextureUpdate SimulatorMapUpdate SimulatorSetMap SubscribeLoad UnsubscribeLoad SimulatorReady SimulatorPresentAtLocation SimulatorLoad SimulatorShutdownRequest RegionPresenceRequestByRegionID RegionPresenceRequestByHandle RegionPresenceResponse UpdateSimulator LogDwellTime FeatureDisabled LogFailedMoneyTransaction UserReportInternal SetSimStatusInDatabase SetSimPresenceInDatabase OpenCircuit CloseCircuit DirFindQueryBackend DirPlacesQueryBackend DirClassifiedQueryBackend DirLandQueryBackend DirPopularQueryBackend GroupNoticeAdd DataHomeLocationRequest DataHomeLocationReply DerezContainer ObjectCategory ObjectExportSelected StateSave ReportAutosaveCrash AgentAlertMessage NearestLandingRegionRequest NearestLandingRegionReply NearestLandingRegionUpdated TeleportLandingStatusChanged ConfirmEnableSimulator KickUserAck SystemKickUser AvatarPropertiesRequestBackend UpdateParcel RemoveParcel MergeParcel LogParcelChanges CheckParcelSales ParcelSales StartAuction ConfirmAuctionStart CompleteAuction CancelAuction CheckParcelAuctions ParcelAuctions ChatPass EdgeDataPacket SimStatus ChildAgentUpdate ChildAgentAlive ChildAgentPositionUpdate ChildAgentDying ChildAgentUnknown AtomicPassObject KillChildAgents ScriptSensorRequest ScriptSensorReply DataServerLogout RequestInventoryAsset InventoryAssetResponse TransferInventory TransferInventoryAck EventLocationRequest EventLocationReply MoneyTransferBackend RoutedMoneyBalanceReply SetStartLocation NetTest SetCPURatio SimCrashed NameValuePair RemoveNameValuePair UpdateAttachment RemoveAttachment EmailMessageRequest EmailMessageReply InternalScriptMail ScriptDataRequest ScriptDataReply InviteGroupResponse TallyVotes LiveHelpGroupRequest LiveHelpGroupReply GroupDataUpdate LogTextMessage CreateTrustedCircuit ParcelRename SystemMessage RpcChannelRequest RpcChannelReply RpcScriptRequestInbound RpcScriptRequestInboundForward RpcScriptReplyInbound ScriptMailRegistration Error"));
menu->updateParent(LLMenuGL::sMenuContainer);
menu->setCanTearOff(FALSE);
LLView* buttonp = sInstance->getChild<LLView>("filter_choice_btn");
S32 x = buttonp->getRect().mLeft;
S32 y = buttonp->getRect().mBottom;
LLMenuGL::showPopup(sInstance, menu, x, y);
}
// static
void LLFloaterMessageLog::onClickFilterMenu(void* user_data)
{
std::string filter = std::string((char*)user_data);
sInstance->childSetText("filter_edit", filter);
sInstance->startApplyingFilter(filter, FALSE);
}
// </edit>

View File

@@ -1,96 +0,0 @@
// <edit>
#include "llfloater.h"
#include "llmessagelog.h"
#include "lltemplatemessagereader.h"
#include "lleventtimer.h"
class LLNetListItem
{
public:
LLNetListItem(LLUUID id);
LLUUID mID;
BOOL mAutoName;
std::string mName;
std::string mPreviousRegionName;
LLCircuitData* mCircuitData;
};
class LLFloaterMessageLogItem : public LLMessageLogEntry
{
public:
LLFloaterMessageLogItem(LLMessageLogEntry entry);
~LLFloaterMessageLogItem();
LLUUID mID;
U32 mSequenceID;
std::string mName;
std::string mSummary;
U32 mFlags;
std::string getFull(BOOL show_header = TRUE);
BOOL isOutgoing();
void refreshNetList();
private:
static LLTemplateMessageReader* sTemplateMessageReader;
static std::string getString(LLTemplateMessageReader* readerp, const char* block_name, S32 block_num, const char* var_name, e_message_variable_type var_type, BOOL &returned_hex, BOOL summary_mode = FALSE);
};
class LLMessageLogFilter
{
public:
LLMessageLogFilter();
~LLMessageLogFilter();
BOOL set(std::string filter);
std::list<std::string> mPositiveNames;
std::list<std::string> mNegativeNames;
};
class LLMessageLogFilterApply : public LLEventTimer
{
public:
LLMessageLogFilterApply();
void cancel();
BOOL tick();
S32 mProgress;
BOOL mFinished;
private:
std::deque<LLMessageLogEntry> mQueuedMessages;
std::deque<LLMessageLogEntry>::iterator mIter;
};
class LLFloaterMessageLog : public LLFloater, public LLEventTimer
{
public:
LLFloaterMessageLog();
~LLFloaterMessageLog();
static void show();
BOOL postBuild();
BOOL tick();
LLNetListItem* findNetListItem(LLHost host);
LLNetListItem* findNetListItem(LLUUID id);
void refreshNetList();
void refreshNetInfo(BOOL force);
enum ENetInfoMode { NI_NET, NI_LOG };
void setNetInfoMode(ENetInfoMode mode);
static void onLog(LLMessageLogEntry entry);
static void conditionalLog(LLFloaterMessageLogItem item);
static void onCommitNetList(LLUICtrl* ctrl, void* user_data);
static void onCommitMessageLog(LLUICtrl* ctrl, void* user_data);
static void onCommitFilter(LLUICtrl* ctrl, void* user_data);
static BOOL onClickCloseCircuit(void* user_data);
static bool onConfirmCloseCircuit(const LLSD& notification, const LLSD& response );
static bool onConfirmRemoveRegion(const LLSD& notification, const LLSD& response );
static void onClickFilterApply(void* user_data);
void startApplyingFilter(std::string filter, BOOL force);
void stopApplyingFilter();
void updateFilterStatus();
static BOOL sBusyApplyingFilter;
LLMessageLogFilterApply* mMessageLogFilterApply;
static void onClickClearLog(void* user_data);
static LLFloaterMessageLog* sInstance;
static std::list<LLNetListItem*> sNetListItems;
static std::deque<LLMessageLogEntry> sMessageLogEntries;
static std::vector<LLFloaterMessageLogItem> sFloaterMessageLogItems;
static LLMessageLogFilter sMessageLogFilter;
static std::string sMessageLogFilterString;
ENetInfoMode mNetInfoMode;
static void onClickFilterChoice(void* user_data);
static void onClickFilterMenu(void* user_data);
};
// </edit>

View File

@@ -387,6 +387,7 @@ void LLPreferenceCore::refreshEnabledGraphics()
LLFloaterPreference::LLFloaterPreference()
{
mExitWithoutSaving = false;
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_preferences.xml");
}
@@ -532,7 +533,10 @@ void LLFloaterPreference::onBtnApply( void* userdata )
void LLFloaterPreference::onClose(bool app_quitting)
{
LLPanelLogin::setAlwaysRefresh(false);
cancel(); // will be a no-op if OK or apply was performed just prior.
if (!mExitWithoutSaving)
{
cancel(); // will be a no-op if OK or apply was performed just prior.
}
LLFloater::onClose(app_quitting);
}
@@ -572,3 +576,10 @@ void LLFloaterPreference::switchTab(S32 i)
{
sInstance->mPreferenceCore->getTabContainer()->selectTab(i);
}
// static
void LLFloaterPreference::closeWithoutSaving()
{
sInstance->mExitWithoutSaving = true;
sInstance->close();
}

View File

@@ -124,6 +124,10 @@ public:
static void switchTab(S32 i);
// *HACK: Close without doing anything.
// This is used by the "reset all settings" button.
static void closeWithoutSaving();
protected:
LLPreferenceCore *mPreferenceCore;
@@ -133,6 +137,7 @@ protected:
LLButton *mOKBtn;
LLButton *mCancelBtn;
LLButton *mApplyBtn;
bool mExitWithoutSaving;
static void onClickAbout(void*);
static void onBtnOK(void*);

View File

@@ -43,6 +43,7 @@
#include "llviewercontrol.h"
#include "llagent.h"
#include "llfloaterpreference.h"
#include "llviewerregion.h"
#include "llavatarnamecache.h"
#include "llvoavatar.h"
@@ -109,6 +110,8 @@ BOOL LLPanelGeneral::postBuild()
childSetVisible("maturity_desired_combobox", can_choose);
childSetVisible("maturity_desired_textbox", !can_choose);
childSetAction("clear_settings", &onClickClearSettings, this);
return TRUE;
}
@@ -160,3 +163,44 @@ void LLPanelGeneral::cancel()
{
}
// static
void LLPanelGeneral::onClickClearSettings(void*)
{
if(gAgent.getID().notNull()) {
LLNotifications::instance().add("ResetAllSettingsPrompt", LLSD(), LLSD(), &callbackResetAllSettings);
}
else
{
LLNotifications::instance().add("ResetSystemSettingsPrompt", LLSD(), LLSD(), &callbackResetAllSettings);
}
}
// static
void LLPanelGeneral::callbackResetAllSettings(const LLSD& notification, const LLSD& response)
{
S32 option = LLNotification::getSelectedOption(notification, response);
if(option != 3) //At least some settings want to be removed
{
// We probably want to avoid altering this setting, so keep it across the reset.
std::string client_settings_file = gSavedSettings.getString("ClientSettingsFile");
if(option != 2)
{
gSavedSettings.resetToDefaults();
gSavedSettings.setString("ClientSettingsFile", client_settings_file);
gSavedSettings.saveToFile(client_settings_file, TRUE);
}
// Wipe user-specific settings for good measure and consistency.
// Obviously, we can only do this if we're actually logged in.
if(gAgent.getID().notNull() && (option != 1))
{
gSavedPerAccountSettings.resetToDefaults();
gSavedPerAccountSettings.saveToFile(gSavedSettings.getString("PerAccountSettingsFile"), TRUE);
}
LLNotifications::instance().add("ResetSettingsComplete");
// *HACK: Now close the floater without cancelling or applying.
// (the alternative route would be to add a method to every preference panel to handle this and update its UI)
LLFloaterPreference::closeWithoutSaving();
}
}

View File

@@ -46,6 +46,9 @@ public:
void apply();
void cancel();
static void onClickClearSettings(void*);
static void callbackResetAllSettings(const LLSD& notification, const LLSD& response);
};
#endif

View File

@@ -45,6 +45,8 @@
#include "llviewercontrol.h"
#include "llviewerwindow.h"
#include "llproxy.h"
bool LLPanelNetwork::sSocksSettingsChanged;
LLPanelNetwork::LLPanelNetwork()
@@ -132,7 +134,7 @@ void LLPanelNetwork::apply()
else
{
// Mark the socks class that it needs to update its connection
LLSocks::getInstance()->updated();
//LLSocks::getInstance()->updated();
}
}
}

View File

@@ -204,7 +204,7 @@
#include "llwlparammanager.h"
#include "llwaterparammanager.h"
#include "llagentlanguage.h"
#include "llsocks5.h"
#include "llproxy.h"
#include "jcfloaterareasearch.h"
// <edit>
@@ -440,6 +440,14 @@ bool idle_startup()
{
LLNotifications::instance().add(gViewerWindow->getInitAlert());
}
//-------------------------------------------------
// Init the SOCKS 5 proxy if the user has configured
// one. We need to do this early in case the user
// is using SOCKS for HTTP so we get the login
// screen and HTTP tables via SOCKS.
//-------------------------------------------------
LLStartUp::startLLProxy();
gSavedSettings.setS32("LastFeatureVersion", LLFeatureManager::getInstance()->getVersion());
@@ -634,15 +642,6 @@ bool idle_startup()
LL_INFOS("AppInit") << "Message System Initialized." << LL_ENDL;
//-------------------------------------------------
// Init the socks 5 proxy and open the control TCP
// connection if the user is using SOCKS5
// We need to do this early incase the user is using
// socks for http so we get the login screen via socks
//-------------------------------------------------
LLStartUp::handleSocksProxy(false);
//-------------------------------------------------
// Load file- and dirpicker {context, default path} map.
//-------------------------------------------------
@@ -944,25 +943,15 @@ bool idle_startup()
// Post login screen, we should see if any settings have changed that may
// require us to either start/stop or change the socks proxy. As various communications
// past this point may require the proxy to be up.
bool socks_enable_required = gSavedSettings.getBOOL("Socks5ProxyEnabled");
if ((LLSocks::getInstance()->isEnabled() != socks_enable_required) || LLSocks::getInstance()->needsUpdate())
if (!LLStartUp::startLLProxy())
{
if (socks_enable_required)
{
if (!LLStartUp::handleSocksProxy(false))
{
// Proxy start up failed, we should now bail the state machine
// HandleSocksProxy() will have reported an error to the user
// already, so we just go back to the login screen. The user
// could then change the perferences to fix the issue.
LLStartUp::setStartupState(STATE_LOGIN_SHOW);
return FALSE;
}
}
else
{
LLSocks::getInstance()->stopProxy();
}
// Proxy start up failed, we should now bail the state machine
// startLLProxy() will have reported an error to the user
// already, so we just go back to the login screen. The user
// could then change the preferences to fix the issue.
LLStartUp::setStartupState(STATE_LOGIN_SHOW);
return FALSE;
}
//reset the values that could have come in from a slurl
@@ -4067,6 +4056,7 @@ void apply_udp_blacklist(const std::string& csv)
}
/*
bool LLStartUp::handleSocksProxy(bool reportOK)
{
std::string httpProxyType = gSavedSettings.getString("Socks5HttpProxyType");
@@ -4157,3 +4147,164 @@ bool LLStartUp::handleSocksProxy(bool reportOK)
return true;
}
*/
/**
* Read all proxy configuration settings and set up both the HTTP proxy and
* SOCKS proxy as needed.
*
* Any errors that are encountered will result in showing the user a notification.
* When an error is encountered,
*
* @return Returns true if setup was successful, false if an error was encountered.
*/
bool LLStartUp::startLLProxy()
{
bool proxy_ok = true;
std::string httpProxyType = gSavedSettings.getString("Socks5HttpProxyType");
// Set up SOCKS proxy (if needed)
if (gSavedSettings.getBOOL("Socks5ProxyEnabled"))
{
// Determine and update LLProxy with the saved authentication system
std::string auth_type = gSavedSettings.getString("Socks5AuthType");
if (auth_type.compare("UserPass") == 0)
{
std::string socks_user = gSavedSettings.getString("Socks5Username");
std::string socks_password = gSavedSettings.getString("Socks5Password");
bool ok = LLProxy::getInstance()->setAuthPassword(socks_user, socks_password);
if (!ok)
{
LLNotificationsUtil::add("SOCKS_BAD_CREDS");
proxy_ok = false;
}
}
else if (auth_type.compare("None") == 0)
{
LLProxy::getInstance()->setAuthNone();
}
else
{
LL_WARNS("Proxy") << "Invalid SOCKS 5 authentication type."<< LL_ENDL;
// Unknown or missing setting.
gSavedSettings.setString("Socks5AuthType", "None");
LLProxy::getInstance()->setAuthNone();
}
if (proxy_ok)
{
// Start the proxy and check for errors
// If status != SOCKS_OK, stopSOCKSProxy() will already have been called when startSOCKSProxy() returns.
LLHost socks_host;
socks_host.setHostByName(gSavedSettings.getString("Socks5ProxyHost"));
socks_host.setPort(gSavedSettings.getU32("Socks5ProxyPort"));
int status = LLProxy::getInstance()->startSOCKSProxy(socks_host);
if (status != SOCKS_OK)
{
LLSD subs;
subs["HOST"] = gSavedSettings.getString("Socks5ProxyHost");
subs["PORT"] = (S32)gSavedSettings.getU32("Socks5ProxyPort");
std::string error_string;
switch(status)
{
case SOCKS_CONNECT_ERROR: // TCP Fail
error_string = "SOCKS_CONNECT_ERROR";
break;
case SOCKS_NOT_PERMITTED: // SOCKS 5 server rule set refused connection
error_string = "SOCKS_NOT_PERMITTED";
break;
case SOCKS_NOT_ACCEPTABLE: // Selected authentication is not acceptable to server
error_string = "SOCKS_NOT_ACCEPTABLE";
break;
case SOCKS_AUTH_FAIL: // Authentication failed
error_string = "SOCKS_AUTH_FAIL";
break;
case SOCKS_UDP_FWD_NOT_GRANTED: // UDP forward request failed
error_string = "SOCKS_UDP_FWD_NOT_GRANTED";
break;
case SOCKS_HOST_CONNECT_FAILED: // Failed to open a TCP channel to the socks server
error_string = "SOCKS_HOST_CONNECT_FAILED";
break;
case SOCKS_INVALID_HOST: // Improperly formatted host address or port.
error_string = "SOCKS_INVALID_HOST";
break;
default:
error_string = "SOCKS_UNKNOWN_STATUS"; // Something strange happened,
LL_WARNS("Proxy") << "Unknown return from LLProxy::startProxy(): " << status << LL_ENDL;
break;
}
LLNotificationsUtil::add(error_string, subs);
proxy_ok = false;
}
}
}
else
{
LLProxy::getInstance()->stopSOCKSProxy(); // ensure no UDP proxy is running and it's all cleaned up
}
if (proxy_ok)
{
// Determine the HTTP proxy type (if any)
if ((httpProxyType.compare("Web") == 0) && gSavedSettings.getBOOL("BrowserProxyEnabled"))
{
LLHost http_host;
http_host.setHostByName(gSavedSettings.getString("BrowserProxyAddress"));
http_host.setPort(gSavedSettings.getS32("BrowserProxyPort"));
if (!LLProxy::getInstance()->enableHTTPProxy(http_host, LLPROXY_HTTP))
{
LLSD subs;
subs["HOST"] = http_host.getIPString();
subs["PORT"] = (S32)http_host.getPort();
LLNotificationsUtil::add("PROXY_INVALID_HTTP_HOST", subs);
proxy_ok = false;
}
}
else if ((httpProxyType.compare("Socks") == 0) && gSavedSettings.getBOOL("Socks5ProxyEnabled"))
{
LLHost socks_host;
socks_host.setHostByName(gSavedSettings.getString("Socks5ProxyHost"));
socks_host.setPort(gSavedSettings.getU32("Socks5ProxyPort"));
if (!LLProxy::getInstance()->enableHTTPProxy(socks_host, LLPROXY_SOCKS))
{
LLSD subs;
subs["HOST"] = socks_host.getIPString();
subs["PORT"] = (S32)socks_host.getPort();
LLNotificationsUtil::add("PROXY_INVALID_SOCKS_HOST", subs);
proxy_ok = false;
}
}
else if (httpProxyType.compare("None") == 0)
{
LLProxy::getInstance()->disableHTTPProxy();
}
else
{
LL_WARNS("Proxy") << "Invalid other HTTP proxy configuration."<< LL_ENDL;
// Set the missing or wrong configuration back to something valid.
gSavedSettings.setString("HttpProxyType", "None");
LLProxy::getInstance()->disableHTTPProxy();
// Leave proxy_ok alone, since this isn't necessarily fatal.
}
}
return proxy_ok;
}

View File

@@ -127,7 +127,7 @@ public:
// *HACK: On startup, if we were passed a secondlife://app/do/foo
// command URL, store it for later processing.
static bool handleSocksProxy(bool reportOK = true);
static bool startLLProxy(); // Initialize the SOCKS 5 proxy
private:
static std::string startupStateToString(EStartupState state);

View File

@@ -753,7 +753,7 @@ LLTextureCache::~LLTextureCache()
//////////////////////////////////////////////////////////////////////////////
//virtual
S32 LLTextureCache::update(U32 max_time_ms)
S32 LLTextureCache::update(F32 max_time_ms)
{
static LLFrameTimer timer;
static const F32 MAX_TIME_INTERVAL = 300.f; //seconds.

View File

@@ -101,7 +101,7 @@ public:
LLTextureCache(bool threaded);
~LLTextureCache();
/*virtual*/ S32 update(U32 max_time_ms);
/*virtual*/ S32 update(F32 max_time_ms);
void purgeCache(ELLPath location);
void setReadOnly(BOOL read_only) ;

View File

@@ -1316,6 +1316,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
LLImageBase::TYPE_AVATAR_BAKE == mType);
#endif
if(cur_size > 0) offset--;
// Will call callbackHttpGet when curl request completes
std::vector<std::string> headers;
headers.push_back("Accept: image/x-j2c");
@@ -1460,11 +1461,14 @@ bool LLTextureFetchWorker::doWork(S32 param)
}
U8* buffer = (U8*)ALLOCATE_MEM(LLImageBase::getPrivatePool(), mBufferSize);
if (cur_size > 0)
{
if (cur_size > 0) {
memcpy(buffer, mFormattedImage->getData(), cur_size);
mBufferSize--;
if(mRequestedSize == 1) mRequestedDiscard = 0;
else memcpy(buffer + cur_size, mBuffer+1, mRequestedSize-1); // append
}
memcpy(buffer + cur_size, mBuffer, mRequestedSize); // append
else memcpy(buffer + cur_size, mBuffer, mRequestedSize); // append
// NOTE: setData releases current data and owns new data (buffer)
mFormattedImage->setData(buffer, mBufferSize);
// delete temp data
@@ -1820,7 +1824,11 @@ S32 LLTextureFetchWorker::callbackHttpGet(const LLChannelDescriptors& channels,
mBuffer = (U8*)ALLOCATE_MEM(LLImageBase::getPrivatePool(), data_size);
buffer->readAfter(channels.in(), NULL, mBuffer, data_size);
mBufferSize += data_size;
if (data_size < mRequestedSize && mRequestedDiscard == 0)
if(mFormattedImage.notNull() && mFormattedImage->getDataSize() > 0 && data_size == 1)
{
mHaveAllData = TRUE;
}
else if (data_size < mRequestedSize && mRequestedDiscard == 0)
{
mHaveAllData = TRUE;
}
@@ -2361,7 +2369,7 @@ void LLTextureFetch::commonUpdate()
// MAIN THREAD
//virtual
S32 LLTextureFetch::update(U32 max_time_ms)
S32 LLTextureFetch::update(F32 max_time_ms)
{
static LLCachedControl<F32> band_width(gSavedSettings,"ThrottleBandwidthKBPS");

View File

@@ -63,7 +63,7 @@ public:
class TFRequest;
/*virtual*/ S32 update(U32 max_time_ms);
/*virtual*/ S32 update(F32 max_time_ms);
void shutDownTextureCacheThread() ; //called in the main thread after the TextureCacheThread shuts down.
void shutDownImageDecodeThread() ; //called in the main thread after the ImageDecodeThread shuts down.

View File

@@ -245,7 +245,6 @@
// <edit>
#include "dofloaterhex.h"
#include "hgfloatertexteditor.h"
#include "llfloatermessagelog.h"
#include "llfloatervfs.h"
#include "llfloatervfsexplorer.h"
#include "shfloatermediaticker.h"
@@ -482,7 +481,7 @@ void handle_phantom_avatar(void*);
void handle_hide_typing_notification(void*);
void handle_close_all_notifications(void*);
void handle_reopen_with_hex_editor(void*);
void handle_open_message_log(void*);
//void handle_open_message_log(void*);
void handle_edit_ao(void*);
void handle_local_assets(void*);
void handle_vfs_explorer(void*);
@@ -822,7 +821,7 @@ void init_menus()
(void*)"ReSit"));
menu->appendSeparator();
menu->append(new LLMenuItemCallGL( "Object Area Search", &handle_area_search, NULL));
menu->append(new LLMenuItemCallGL( "Message Log", &handle_open_message_log, NULL));
//menu->append(new LLMenuItemCallGL( "Message Log", &handle_open_message_log, NULL));
menu->append(new LLMenuItemCallGL( "Sound Explorer",
&handle_sounds_explorer, NULL));
@@ -3764,10 +3763,10 @@ void handle_reopen_with_hex_editor(void*)
}
void handle_open_message_log(void*)
/*void handle_open_message_log(void*)
{
LLFloaterMessageLog::show();
}
}*/
void handle_edit_ao(void*)
{

View File

@@ -3235,7 +3235,7 @@ void LLViewerLODTexture::processTextureStats()
scaleDown() ;
}
// Limit the amount of GL memory bound each frame
if ( BYTES_TO_MEGA_BYTES(sBoundTextureMemoryInBytes) > sMaxBoundTextureMemInMegaBytes * texmem_middle_bound_scale &&
else if ( BYTES_TO_MEGA_BYTES(sBoundTextureMemoryInBytes) > sMaxBoundTextureMemInMegaBytes * texmem_middle_bound_scale &&
(!getBoundRecently() || mDesiredDiscardLevel >= mCachedRawDiscardLevel))
{
scaleDown() ;

View File

@@ -558,6 +558,7 @@ void LLViewerTextureList::removeImageFromList(LLViewerFetchedTexture *image)
S32 count = mImageList.erase(image) ;
if(count != 1)
{
llinfos << image->getID() << llendl ;
llerrs << "Error happens when remove image from mImageList: " << count << llendl ;
}
@@ -956,6 +957,8 @@ void LLViewerTextureList::decodeAllImages(F32 max_time)
image_list.push_back(imagep);
imagep->setInImageList(FALSE) ;
}
llassert_always(image_list.size() == mImageList.size()) ;
mImageList.clear();
for (std::vector<LLPointer<LLViewerFetchedTexture> >::iterator iter = image_list.begin();
iter != image_list.end(); ++iter)

View File

@@ -634,7 +634,9 @@ public:
addText(xpos, ypos, llformat("%d/%d Mesh HTTP Requests/Retries", LLMeshRepository::sHTTPRequestCount,
LLMeshRepository::sHTTPRetryCount));
ypos += y_inc;
addText(xpos, ypos, llformat("%d/%d Mesh LOD Pending/Processing", LLMeshRepository::sLODPending, LLMeshRepository::sLODProcessing));
ypos += y_inc;
addText(xpos, ypos, llformat("%.3f/%.3f MB Mesh Cache Read/Write ", LLMeshRepository::sCacheBytesRead/(1024.f*1024.f), LLMeshRepository::sCacheBytesWritten/(1024.f*1024.f)));
@@ -1070,7 +1072,8 @@ void LLViewerWindow::handleMouseMove(LLWindow *window, LLCoordGL pos, MASK mask
mWindow->showCursorFromMouseMove();
if (gAwayTimer.getElapsedTimeF32() > MIN_AFK_TIME)
if (gAwayTimer.getElapsedTimeF32() > MIN_AFK_TIME
&& !gDisconnected)
{
gAgent.clearAFK();
}

View File

@@ -84,6 +84,8 @@ class LLVOAvatar :
public LLViewerObject,
public LLCharacter
{
LOG_CLASS(LLVOAvatar);
public:
friend class LLVOAvatarSelf;
protected:

View File

@@ -39,6 +39,7 @@
class LLVOAvatarSelf :
public LLVOAvatar
{
LOG_CLASS(LLVOAvatarSelf);
/********************************************************************************
** **

View File

@@ -4244,6 +4244,7 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, std::
}
}
else if (gPipeline.canUseVertexShaders()
&& group->mSpatialPartition->mPartitionType != LLViewerRegion::PARTITION_HUD
&& LLPipeline::sRenderBump
&& te->getShiny())
{ //shiny

View File

@@ -71,7 +71,7 @@ struct LLWearableArrivedData
LLWearableList::~LLWearableList()
{
llassert_always(mList.empty()) ;
cleanup();
}
void LLWearableList::cleanup()

View File

@@ -124,6 +124,7 @@ void LLWLAnimator::update(LLWLParamSet& curParams)
// at the end of the interp cycle, force the end settings to get applied
curParams.setAll(mInterpEndWL->getAll());
}
LLWaterParamManager::getInstance()->mCurParams.setAll(mInterpEndWater->getAll());
mIsInterpolating = false;
mIsInterpolatingSky = false;
return;

View File

@@ -226,25 +226,19 @@ void LLXMLRPCTransaction::Impl::init(XMLRPC_REQUEST request, bool useGzip)
{
mCurlRequest = new LLCurlEasyRequest();
}
if (LLSocks::getInstance()->isHttpProxyEnabled())
if(!mCurlRequest->isValid())
{
std::string address = LLSocks::getInstance()->getHTTPProxy().getIPString();
U16 port = LLSocks::getInstance()->getHTTPProxy().getPort();
mCurlRequest->setoptString(CURLOPT_PROXY, address.c_str());
mCurlRequest->setopt(CURLOPT_PROXYPORT, port);
if (LLSocks::getInstance()->getHttpProxyType() == LLPROXY_SOCKS)
{
mCurlRequest->setopt(CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
if(LLSocks::getInstance()->getSelectedAuthMethod()==METHOD_PASSWORD)
mCurlRequest->setoptString(CURLOPT_PROXYUSERPWD,LLSocks::getInstance()->getProxyUserPwd());
}
else
{
mCurlRequest->setopt(CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
}
llwarns << "mCurlRequest is invalid." << llendl ;
delete mCurlRequest ;
mCurlRequest = NULL ;
return ;
}
LLProxy::getInstance()->applyProxySettings(mCurlRequest);
// mCurlRequest->setopt(CURLOPT_VERBOSE, 1); // usefull for debugging
mCurlRequest->setopt(CURLOPT_NOSIGNAL, 1);
mCurlRequest->setWriteCallback(&curlDownloadCallback, (void*)this);
@@ -293,10 +287,20 @@ LLXMLRPCTransaction::Impl::~Impl()
}
delete mCurlRequest;
mCurlRequest = NULL ;
}
bool LLXMLRPCTransaction::Impl::process()
{
if(!mCurlRequest || !mCurlRequest->isValid())
{
llwarns << "transaction failed." << llendl ;
delete mCurlRequest ;
mCurlRequest = NULL ;
return true ; //failed, quit.
}
switch(mStatus)
{
case LLXMLRPCTransaction::StatusComplete:
@@ -322,7 +326,7 @@ bool LLXMLRPCTransaction::Impl::process()
//const F32 MAX_PROCESSING_TIME = 0.05f;
//LLTimer timer;
mCurlRequest->perform();
mCurlRequest->wait();
/*while (mCurlRequest->perform() > 0)
{

View File

@@ -1021,10 +1021,12 @@ void LLPipeline::restoreGL()
BOOL LLPipeline::canUseVertexShaders()
{
static const std::string vertex_shader_enable_feature_string = "VertexShaderEnable";
if (sDisableShaders ||
!gGLManager.mHasVertexShader ||
!gGLManager.mHasFragmentShader ||
!LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable") ||
!LLFeatureManager::getInstance()->isFeatureAvailable(vertex_shader_enable_feature_string) ||
(assertInitialized() && mVertexShadersLoaded != 1) )
{
return FALSE;
@@ -5085,7 +5087,8 @@ void LLPipeline::setupHWLights(LLDrawPool* pool)
light_state->setSpotCutoff(90.f);
light_state->setSpotExponent(2.f);
light_state->setSpecular(LLColor4::black);
const LLColor4 specular(0.f, 0.f, 0.f, 0.f);
light_state->setSpecular(specular);
}
else // omnidirectional (point) light
{

View File

@@ -301,13 +301,12 @@ const char* RlvStrings::getStringFromReturnCode(ERlvCmdRet eRet)
return NULL;
}
// Checked: 2010-03-27 (RLVa-1.2.0b) | Modified: RLVa-1.2.0b
// Checked: 2012-02-25 (RLVa-1.4.5) | Modified: RLVa-1.4.5
std::string RlvStrings::getVersion(bool fLegacy /*=false*/)
{
return llformat("%s viewer v%d.%d.%d (%s %d.%d.%d.%d - RLVa %d.%d.%d)",
return llformat("%s viewer v%d.%d.%d (RLVa %d.%d.%d)",
( (!fLegacy) ? "RestrainedLove" : "RestrainedLife" ),
RLV_VERSION_MAJOR, RLV_VERSION_MINOR, RLV_VERSION_PATCH,
LLAppViewer::instance()->getSecondLifeTitle().c_str(), gVersionMajor, gVersionMinor, gVersionPatch, gVersionBuild,
RLVa_VERSION_MAJOR, RLVa_VERSION_MINOR, RLVa_VERSION_PATCH);
}

View File

@@ -1,3 +1,209 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<settings version = "101">
<!-- WINDOWS -->
<TitleBarFocusColor value="255, 255, 255, 30" /> <!-- Focused window title bar highlight, no equivalent for unfocused windows -->
<FloaterFocusBorderColor value="0, 0, 0, 80" />
<FloaterUnfocusBorderColor value="0, 0, 0, 80" />
<FocusBackgroundColor value="62, 62, 62, 255" /> <!-- Background color of focused floaters -->
<DefaultBackgroundColor value="62, 62, 62, 140" /> <!-- Background color for unfocused floaters -->
<ColorDropShadow value="0, 0, 0, 200" /> <!-- The drop shadow behind windows and menus -->
<DefaultHighlightDark value="26, 26, 26, 255" />
<DefaultHighlightLight value="115, 132, 155, 255" />
<DefaultShadowDark value="26, 26, 26, 255" />
<DefaultShadowLight value="0, 0, 0, 255" />
<!-- LABELS -->
<LabelDisabledColor value="147, 169, 213, 77" />
<LabelSelectedColor value="255, 255, 255, 255" />
<LabelSelectedDisabledColor value="164, 190, 237, 128" />
<LabelTextColor value="147, 169, 213, 255" />
<!-- LOGIN -->
<LoginProgressBarBgColor value="255, 255, 255, 255" />
<LoginProgressBarFgColor value="255, 255, 255, 255" />
<LoginProgressBoxBorderColor value="0, 30, 60, 0" />
<LoginProgressBoxCenterColor value="0, 0, 0, 200" />
<LoginProgressBoxShadowColor value="0, 0, 0, 200" />
<LoginProgressBoxTextColor value="255, 255, 255, 255"/>
<!-- BUTTONS -->
<ButtonLabelColor value="220, 220, 220, 255" /> <!-- Text labels for buttons, like the "OK" text -->
<ButtonLabelSelectedColor value="220, 220, 220, 255" />
<ButtonLabelDisabledColor value="147, 169, 213, 200" />
<ButtonLabelSelectedDisabledColor value="164, 190, 237, 200" />
<ButtonSelectedBgColor value="62, 62, 62, 255" />
<ButtonSelectedColor value="255, 255, 255, 255" />
<ButtonUnselectedBgColor value="62, 62, 62, 255" />
<ButtonUnselectedFgColor value="255, 255, 255, 255" />
<ButtonBorderColor value="239, 156, 0, 255" />
<ButtonFlashBgColor value="255, 190, 62, 127" />
<ButtonColor value="255, 255, 255, 255" /> <!-- Blended with button art, usually left as opaque white -->
<ButtonImageColor value="255, 255, 255, 255" /> <!-- Blended with button art, usually left as opaque white -->
<!-- SLIDERS -->
<SliderDisabledThumbColor value="0, 0, 0, 255" />
<SliderThumbCenterColor value="200, 200, 200, 255" />
<SliderThumbOutlineColor value="255, 255, 255, 255" />
<SliderTrackColor value="255, 255, 255, 255" />
<!-- TEXTFIELDS -->
<TextBgFocusColor value="200, 209, 204, 255" /> <!-- Text field background when receiving input (focused) -->
<TextBgReadOnlyColor value="62, 62, 62, 160" /> <!-- Text field background when read-only -->
<TextBgWriteableColor value="200, 209, 204, 230" /> <!-- Text field background when not receiving input (unfocused) -->
<TextCursorColor value="0, 0, 0, 255" />
<TextFgColor value="0, 0, 0, 255" />
<TextFgReadOnlyColor value="255, 255, 255, 200" />
<TextFgTentativeColor value="0, 0, 0, 128" />
<TextEmbeddedItemReadOnlyColor value="58, 147, 242, 255" /> <!-- i.e. About Land name that you don't own -->
<TextEmbeddedItemColor value="0, 0, 128, 255" />
<TextDefaultColor value="0, 20, 0, 255"/>
<TextLinkColor value="144, 165, 208, 255"/>
<TextLinkHoverColor value="255, 255, 255, 255"/>
<!-- LISTBOXES -->
<ScrollBgReadOnlyColor value="200, 209, 204, 255" />
<ScrollBgWriteableColor value="200, 209, 204, 255" />
<ScrollBGStripeColor value="100, 100, 100, 40" />
<ScrollDisabledColor value="128, 128, 128, 204" />
<ScrollSelectedBGColor value="100, 100, 188, 150" />
<ScrollSelectedFGColor value="0, 0, 0, 204" /> <!-- Text color -->
<ScrollUnselectedColor value="0, 0, 0, 204" /> <!-- Text color -->
<ScrollHighlightedColor value="183, 184, 188, 128" /> <!-- Hover color -->
<ScrollbarThumbColor value="60, 76, 124, 255" /> <!-- Scroll bar-->
<ScrollbarTrackColor value="153, 154, 158, 255" /> <!-- Scroll bar background-->
<!-- MENUS -->
<MenuBarBgColor value="62, 62, 62, 255" />
<MenuBarGodBgColor value="62, 128, 62, 255" />
<MenuNonProductionGodBgColor value="0, 128, 0, 255" />
<MenuNonProductionBgColor value="128, 0, 0, 255" />
<MenuDefaultBgColor value="0, 0, 0, 255" />
<MenuItemDisabledColor value="133, 133, 164, 128" /> <!-- Menu text color; also text color for pie menus and treeviews (like Inventory) -->
<MenuItemEnabledColor value="255, 255, 255, 255" /> <!-- Menu text color; also text color for pie menus and treeviews (like Inventory) -->
<MenuItemHighlightBgColor value="183, 184, 188, 100" />
<MenuItemHighlightFgColor value="255, 255, 255, 255" /> <!-- Highlighted menu text color; also treeview node selection highlight -->
<MenuPopupBgColor value="0, 0, 0, 255" />
<!-- PIE MENUS -->
<PieMenuBgColor value="62, 62, 62, 150" />
<PieMenuLineColor value="0, 0, 0, 128" />
<PieMenuSelectedColor value="183, 184, 188, 77" />
<!-- TOOLTIPS -->
<ToolTipBgColor value="183, 184, 188, 200" />
<ToolTipBorderColor value="171, 212, 245, 255" />
<ToolTipTextColor value="0, 0, 0, 255" />
<!-- NOTIFICATION POP-UPS -->
<NotifyBoxColor value="70, 170, 255, 255" />
<NotifyTextColor value="0, 0, 0, 255" />
<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- the background color of caution permissions prompts -->
<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
<GroupNotifyBoxColor value="70, 170, 255, 255" />
<GroupNotifyTextColor value="0, 30, 60, 255" />
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
<ChatHistoryBgColor value="0, 0, 0, 0" />
<ChatHistoryTextColor value="255, 255, 255, 255" />
<IMHistoryBgColor value="0, 30, 80, 200" />
<IMHistoryTextColor value="255, 255, 255, 255" />
<!-- IN-WORLD SELECTION -->
<SilhouetteParentColor value="255, 255, 0, 255" />
<SilhouetteChildColor value="32, 106, 196, 255" />
<HighlightParentColor value="171, 212, 245, 255" />
<HighlightChildColor value="171, 212, 245, 255" />
<HighlightInspectColor value="255, 0, 255, 255" />
<!-- EDIT MODE GRID -->
<GridFocusPointColor value="255, 255, 255, 128" />
<GridlineColor value="255, 255, 255, 255" />
<GridlineBGColor value="235, 235, 255, 200" />
<GridlineShadowColor value="0, 0, 0, 80" />
<!-- PROPERTY LINES -->
<PropertyColorAvail value="0, 0, 0, 0" />
<PropertyColorGroup value="0, 184, 184, 102" />
<PropertyColorOther value="255, 0, 0, 102" />
<PropertyColorSelf value="0, 255, 0, 102" />
<PropertyColorForSale value="255, 128, 0, 102" />
<PropertyColorAuction value="128, 0, 255, 102" /> <!-- Match the color on the world map -->
<!-- Icon Enable/Disable -->
<IconEnabledColor value="255, 255, 255, 255"/>
<IconDisabledColor value="147, 169, 213, 200"/>
<!-- MAP -->
<MapAvatar value="0, 255, 0, 255" />
<MapFriend value="255, 255, 0, 255" />
<!-- MINI-MAP -->
<NetMapBackgroundColor value="0, 0, 0, 77" />
<NetMapYouOwnAboveWater value="0, 255, 255, 255" />
<NetMapYouOwnBelowWater value="0, 200, 200, 255" />
<NetMapGroupOwnAboveWater value="255, 0, 255, 255" />
<NetMapGroupOwnBelowWater value="200, 0, 200, 255" />
<NetMapOtherOwnAboveWater value="60, 60, 60, 255" />
<NetMapOtherOwnBelowWater value="30, 30, 30, 255" />
<NetMapThisRegion value="255, 255, 255, 255" />
<NetMapLiveRegion value="204, 204, 204, 255" />
<NetMapDeadRegion value="255, 128, 128, 255" />
<NetMapFrustum value="255, 255, 255, 20" />
<NetMapFrustumRotating value="255, 255, 255, 51" />
<!-- HELP WINDOW -->
<HelpBgColor value="200, 209, 204, 255" />
<HelpFgColor value="0, 0, 0, 255" />
<HelpScrollTrackColor value="183, 184, 188, 255" />
<HelpScrollThumbColor value="80, 96, 124, 255" />
<HelpScrollHighlightColor value="115, 132, 155, 255" />
<HelpScrollShadowColor value="0, 0, 0, 255" />
<!-- MISC -->
<AvatarNameColor value="251, 175, 93, 255" /> <!-- Text color of avatar nametags -->
<FocusColor value="239, 156, 0, 255" /> <!-- Color of the glow around UI controls with keyboard focus -->
<FloaterButtonImageColor value="239, 156, 0, 255" /> <!-- The floater buttons (like the close box) are white images that receive this color. -->
<ButtonCautionImageColor value="255, 255, 255, 255" /> <!-- Match the caution dialog buttons to the default -->
<HealthTextColor value="255, 255, 255, 255" />
<MapAutopilotColor value="255, 128, 0, 255" />
<ContextSilhouetteColor value="239, 156, 0, 255" /> <!-- For "context" highlighting, i.e. pie menu -->
<ScriptBgReadOnlyColor value="100, 100, 100, 255" />
<ParcelTextColor value="144, 165, 208, 255" /> <!-- Parcel name on menu bar, normal state -->
<ParcelHoverColor value="255, 255, 255, 255" /> <!-- Parcel name on menu bar, hover state -->
<TimeTextColor value="255, 255, 255, 255" /> <!-- SL Time on menu bar -->
<BalanceTextColor value="0, 255, 0, 255" /> <!-- Linden dollar balance on menu bar -->
<HealthTextColor value="255, 255, 255, 255" /> <!-- Damage meter text on menu bar -->
<GroupOverTierColor value="110, 15, 15, 255" /> <!-- Warning text in Group Info window -->
<FilterBackgroundColor value="0, 0, 20, 255" /> <!-- Matching region of Inventory search text -->
<FilterTextColor value="255, 200, 70, 255" />
<InventoryItemSuffixColor value="191, 216, 216, 255" /> <!-- "worn", "no modify", etc-->
<InventorySearchStatusColor value="255, 255, 255, 255" />
<ConsoleBackground value="0, 0, 0, 255" />
<FolderViewLoadingMessageTextColor value="240, 165, 90, 255"/> <!-- "loading..." in the inv -->
<InventoryBackgroundColor value="62, 62, 62, 80"/>
<SHMediaTickerOscillatorColor value ="0, 0, 0, 191"/>
<ComboBoxBg value="255, 255, 255, 255"/>
<AvatarListTextDistNormalRange value="0, 0, 0, 255"/>
<AvatarListTextDistShoutRange value="0, 0, 0, 128"/>
<AvatarListTextDistOver value="128, 0, 0, 128"/>
<AvatarListTextAgeYoung value="255, 0, 0, 255"/>
<AvatarListTextAgeNormal value="0, 0, 0, 255"/>
<!-- Alert box colors -->
<AlertBoxColor value="62, 62, 62, 255" /> <!-- Warnings floaters, like when returning objects -->
<AlertTextColor value="147, 169, 213, 255" />
<AlertCautionBoxColor value="254, 209, 118, 255" /> <!-- Background color of caution alerts -->
<AlertCautionTextColor value="0, 0, 0, 255" /> <!-- Foreground color of the special title text in caution alerts -->
<!-- Multi sliders, as in the sky animation setting -->
<MultiSliderDisabledThumbColor value="0, 0, 0, 255"/>
<MultiSliderThumbCenterColor value="183, 184, 188, 255"/>
<MultiSliderThumbOutlineColor value="0, 0, 0, 255"/>
<MultiSliderTrackColor value="30, 30, 30, 255"/>
<MultiSliderThumbCenterSelectedColor value="255, 50, 50, 255"/>
<MultiSliderTriangleColor value="255, 255, 50, 255"/>
</settings>

View File

@@ -1,209 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<settings version = "101">
<!-- WINDOWS -->
<TitleBarFocusColor value="255, 255, 255, 30" /> <!-- Focused window title bar highlight, no equivalent for unfocused windows -->
<FloaterFocusBorderColor value="0, 0, 0, 80" />
<FloaterUnfocusBorderColor value="0, 0, 0, 80" />
<FocusBackgroundColor value="62, 62, 62, 255" /> <!-- Background color of focused floaters -->
<DefaultBackgroundColor value="62, 62, 62, 140" /> <!-- Background color for unfocused floaters -->
<ColorDropShadow value="0, 0, 0, 200" /> <!-- The drop shadow behind windows and menus -->
<DefaultHighlightDark value="26, 26, 26, 255" />
<DefaultHighlightLight value="115, 132, 155, 255" />
<DefaultShadowDark value="26, 26, 26, 255" />
<DefaultShadowLight value="0, 0, 0, 255" />
<!-- LABELS -->
<LabelDisabledColor value="147, 169, 213, 77" />
<LabelSelectedColor value="255, 255, 255, 255" />
<LabelSelectedDisabledColor value="164, 190, 237, 128" />
<LabelTextColor value="147, 169, 213, 255" />
<!-- LOGIN -->
<LoginProgressBarBgColor value="255, 255, 255, 255" />
<LoginProgressBarFgColor value="255, 255, 255, 255" />
<LoginProgressBoxBorderColor value="0, 30, 60, 0" />
<LoginProgressBoxCenterColor value="0, 0, 0, 200" />
<LoginProgressBoxShadowColor value="0, 0, 0, 200" />
<LoginProgressBoxTextColor value="255, 255, 255, 255"/>
<!-- BUTTONS -->
<ButtonLabelColor value="220, 220, 220, 255" /> <!-- Text labels for buttons, like the "OK" text -->
<ButtonLabelSelectedColor value="220, 220, 220, 255" />
<ButtonLabelDisabledColor value="147, 169, 213, 200" />
<ButtonLabelSelectedDisabledColor value="164, 190, 237, 200" />
<ButtonSelectedBgColor value="62, 62, 62, 255" />
<ButtonSelectedColor value="255, 255, 255, 255" />
<ButtonUnselectedBgColor value="62, 62, 62, 255" />
<ButtonUnselectedFgColor value="255, 255, 255, 255" />
<ButtonBorderColor value="239, 156, 0, 255" />
<ButtonFlashBgColor value="255, 190, 62, 127" />
<ButtonColor value="255, 255, 255, 255" /> <!-- Blended with button art, usually left as opaque white -->
<ButtonImageColor value="255, 255, 255, 255" /> <!-- Blended with button art, usually left as opaque white -->
<!-- SLIDERS -->
<SliderDisabledThumbColor value="0, 0, 0, 255" />
<SliderThumbCenterColor value="200, 200, 200, 255" />
<SliderThumbOutlineColor value="255, 255, 255, 255" />
<SliderTrackColor value="255, 255, 255, 255" />
<!-- TEXTFIELDS -->
<TextBgFocusColor value="200, 209, 204, 255" /> <!-- Text field background when receiving input (focused) -->
<TextBgReadOnlyColor value="62, 62, 62, 160" /> <!-- Text field background when read-only -->
<TextBgWriteableColor value="200, 209, 204, 230" /> <!-- Text field background when not receiving input (unfocused) -->
<TextCursorColor value="0, 0, 0, 255" />
<TextFgColor value="0, 0, 0, 255" />
<TextFgReadOnlyColor value="255, 255, 255, 200" />
<TextFgTentativeColor value="0, 0, 0, 128" />
<TextEmbeddedItemReadOnlyColor value="58, 147, 242, 255" /> <!-- i.e. About Land name that you don't own -->
<TextEmbeddedItemColor value="0, 0, 128, 255" />
<TextDefaultColor value="0, 20, 0, 255"/>
<TextLinkColor value="144, 165, 208, 255"/>
<TextLinkHoverColor value="255, 255, 255, 255"/>
<!-- LISTBOXES -->
<ScrollBgReadOnlyColor value="200, 209, 204, 255" />
<ScrollBgWriteableColor value="200, 209, 204, 255" />
<ScrollBGStripeColor value="100, 100, 100, 40" />
<ScrollDisabledColor value="128, 128, 128, 204" />
<ScrollSelectedBGColor value="100, 100, 188, 150" />
<ScrollSelectedFGColor value="0, 0, 0, 204" /> <!-- Text color -->
<ScrollUnselectedColor value="0, 0, 0, 204" /> <!-- Text color -->
<ScrollHighlightedColor value="183, 184, 188, 128" /> <!-- Hover color -->
<ScrollbarThumbColor value="60, 76, 124, 255" /> <!-- Scroll bar-->
<ScrollbarTrackColor value="153, 154, 158, 255" /> <!-- Scroll bar background-->
<!-- MENUS -->
<MenuBarBgColor value="62, 62, 62, 255" />
<MenuBarGodBgColor value="62, 128, 62, 255" />
<MenuNonProductionGodBgColor value="0, 128, 0, 255" />
<MenuNonProductionBgColor value="128, 0, 0, 255" />
<MenuDefaultBgColor value="0, 0, 0, 255" />
<MenuItemDisabledColor value="133, 133, 164, 128" /> <!-- Menu text color; also text color for pie menus and treeviews (like Inventory) -->
<MenuItemEnabledColor value="255, 255, 255, 255" /> <!-- Menu text color; also text color for pie menus and treeviews (like Inventory) -->
<MenuItemHighlightBgColor value="183, 184, 188, 100" />
<MenuItemHighlightFgColor value="255, 255, 255, 255" /> <!-- Highlighted menu text color; also treeview node selection highlight -->
<MenuPopupBgColor value="0, 0, 0, 255" />
<!-- PIE MENUS -->
<PieMenuBgColor value="62, 62, 62, 150" />
<PieMenuLineColor value="0, 0, 0, 128" />
<PieMenuSelectedColor value="183, 184, 188, 77" />
<!-- TOOLTIPS -->
<ToolTipBgColor value="183, 184, 188, 200" />
<ToolTipBorderColor value="171, 212, 245, 255" />
<ToolTipTextColor value="0, 0, 0, 255" />
<!-- NOTIFICATION POP-UPS -->
<NotifyBoxColor value="70, 170, 255, 255" />
<NotifyTextColor value="0, 0, 0, 255" />
<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- the background color of caution permissions prompts -->
<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
<GroupNotifyBoxColor value="70, 170, 255, 255" />
<GroupNotifyTextColor value="0, 30, 60, 255" />
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
<ChatHistoryBgColor value="0, 0, 0, 0" />
<ChatHistoryTextColor value="255, 255, 255, 255" />
<IMHistoryBgColor value="0, 30, 80, 200" />
<IMHistoryTextColor value="255, 255, 255, 255" />
<!-- IN-WORLD SELECTION -->
<SilhouetteParentColor value="255, 255, 0, 255" />
<SilhouetteChildColor value="32, 106, 196, 255" />
<HighlightParentColor value="171, 212, 245, 255" />
<HighlightChildColor value="171, 212, 245, 255" />
<HighlightInspectColor value="255, 0, 255, 255" />
<!-- EDIT MODE GRID -->
<GridFocusPointColor value="255, 255, 255, 128" />
<GridlineColor value="255, 255, 255, 255" />
<GridlineBGColor value="235, 235, 255, 200" />
<GridlineShadowColor value="0, 0, 0, 80" />
<!-- PROPERTY LINES -->
<PropertyColorAvail value="0, 0, 0, 0" />
<PropertyColorGroup value="0, 184, 184, 102" />
<PropertyColorOther value="255, 0, 0, 102" />
<PropertyColorSelf value="0, 255, 0, 102" />
<PropertyColorForSale value="255, 128, 0, 102" />
<PropertyColorAuction value="128, 0, 255, 102" /> <!-- Match the color on the world map -->
<!-- Icon Enable/Disable -->
<IconEnabledColor value="255, 255, 255, 255"/>
<IconDisabledColor value="147, 169, 213, 200"/>
<!-- MAP -->
<MapAvatar value="0, 255, 0, 255" />
<MapFriend value="255, 255, 0, 255" />
<!-- MINI-MAP -->
<NetMapBackgroundColor value="0, 0, 0, 77" />
<NetMapYouOwnAboveWater value="0, 255, 255, 255" />
<NetMapYouOwnBelowWater value="0, 200, 200, 255" />
<NetMapGroupOwnAboveWater value="255, 0, 255, 255" />
<NetMapGroupOwnBelowWater value="200, 0, 200, 255" />
<NetMapOtherOwnAboveWater value="60, 60, 60, 255" />
<NetMapOtherOwnBelowWater value="30, 30, 30, 255" />
<NetMapThisRegion value="255, 255, 255, 255" />
<NetMapLiveRegion value="204, 204, 204, 255" />
<NetMapDeadRegion value="255, 128, 128, 255" />
<NetMapFrustum value="255, 255, 255, 20" />
<NetMapFrustumRotating value="255, 255, 255, 51" />
<!-- HELP WINDOW -->
<HelpBgColor value="200, 209, 204, 255" />
<HelpFgColor value="0, 0, 0, 255" />
<HelpScrollTrackColor value="183, 184, 188, 255" />
<HelpScrollThumbColor value="80, 96, 124, 255" />
<HelpScrollHighlightColor value="115, 132, 155, 255" />
<HelpScrollShadowColor value="0, 0, 0, 255" />
<!-- MISC -->
<AvatarNameColor value="251, 175, 93, 255" /> <!-- Text color of avatar nametags -->
<FocusColor value="239, 156, 0, 255" /> <!-- Color of the glow around UI controls with keyboard focus -->
<FloaterButtonImageColor value="239, 156, 0, 255" /> <!-- The floater buttons (like the close box) are white images that receive this color. -->
<ButtonCautionImageColor value="255, 255, 255, 255" /> <!-- Match the caution dialog buttons to the default -->
<HealthTextColor value="255, 255, 255, 255" />
<MapAutopilotColor value="255, 128, 0, 255" />
<ContextSilhouetteColor value="239, 156, 0, 255" /> <!-- For "context" highlighting, i.e. pie menu -->
<ScriptBgReadOnlyColor value="100, 100, 100, 255" />
<ParcelTextColor value="144, 165, 208, 255" /> <!-- Parcel name on menu bar, normal state -->
<ParcelHoverColor value="255, 255, 255, 255" /> <!-- Parcel name on menu bar, hover state -->
<TimeTextColor value="255, 255, 255, 255" /> <!-- SL Time on menu bar -->
<BalanceTextColor value="0, 255, 0, 255" /> <!-- Linden dollar balance on menu bar -->
<HealthTextColor value="255, 255, 255, 255" /> <!-- Damage meter text on menu bar -->
<GroupOverTierColor value="110, 15, 15, 255" /> <!-- Warning text in Group Info window -->
<FilterBackgroundColor value="0, 0, 20, 255" /> <!-- Matching region of Inventory search text -->
<FilterTextColor value="255, 200, 70, 255" />
<InventoryItemSuffixColor value="191, 216, 216, 255" /> <!-- "worn", "no modify", etc-->
<InventorySearchStatusColor value="255, 255, 255, 255" />
<ConsoleBackground value="0, 0, 0, 255" />
<FolderViewLoadingMessageTextColor value="240, 165, 90, 255"/> <!-- "loading..." in the inv -->
<InventoryBackgroundColor value="62, 62, 62, 80"/>
<SHMediaTickerOscillatorColor value ="0, 0, 0, 191"/>
<ComboBoxBg value="255, 255, 255, 255"/>
<AvatarListTextDistNormalRange value="0, 0, 0, 255"/>
<AvatarListTextDistShoutRange value="0, 0, 0, 128"/>
<AvatarListTextDistOver value="128, 0, 0, 128"/>
<AvatarListTextAgeYoung value="255, 0, 0, 255"/>
<AvatarListTextAgeNormal value="0, 0, 0, 255"/>
<!-- Alert box colors -->
<AlertBoxColor value="62, 62, 62, 255" /> <!-- Warnings floaters, like when returning objects -->
<AlertTextColor value="147, 169, 213, 255" />
<AlertCautionBoxColor value="254, 209, 118, 255" /> <!-- Background color of caution alerts -->
<AlertCautionTextColor value="0, 0, 0, 255" /> <!-- Foreground color of the special title text in caution alerts -->
<!-- Multi sliders, as in the sky animation setting -->
<MultiSliderDisabledThumbColor value="0, 0, 0, 255"/>
<MultiSliderThumbCenterColor value="183, 184, 188, 255"/>
<MultiSliderThumbOutlineColor value="0, 0, 0, 255"/>
<MultiSliderTrackColor value="30, 30, 30, 255"/>
<MultiSliderThumbCenterSelectedColor value="255, 50, 50, 255"/>
<MultiSliderTriangleColor value="255, 255, 50, 255"/>
</settings>

View File

@@ -7032,6 +7032,65 @@ Your shape, skin, hair or eyes might be defect.
yestext="OK"/>
</notification>
<notification
icon="alertmodal.tga"
label="All settings reset"
name="ResetSettingsComplete"
type="alertmodal">
Settings have been reset. You should relog to ensure this takes full effect.
</notification>
<notification
icon="alertmodal.tga"
label="Reset all settings"
name="ResetSystemSettingsPrompt"
type="alertmodal">
Resetting all settings may be helpful if you are experiencing problems; however, you will need to redo any changes you have made to the default configuration.
Would you like to reset system settings?
<form>
<button
index="0"
name="all"
text="OK"/>
<button
default="true"
index="3"
name="cancel"
text="Cancel"/>
</form>
</notification>
<notification
icon="alertmodal.tga"
label="Reset all settings"
name="ResetAllSettingsPrompt"
type="alertmodal">
Resetting all settings may be helpful if you are experiencing problems; however, you will need to redo any changes you have made to the default configuration.
Which settings would you like to reset?
<form>
<button
index="0"
name="all"
text="ALL"/>
<button
index="1"
name="system"
text="System"/>
<button
index="2"
name="user"
text="User"/>
<button
default="true"
index="3"
name="cancel"
text="Cancel"/>
</form>
</notification>
</notifications>

View File

@@ -67,5 +67,6 @@
<combo_item name="Alwayssend" value="Always send">Always send</combo_item>
<combo_item name="Neversend" value="Never send">Never send</combo_item>
</combo_box>
<check_box bottom="-385" height="16" initial_value="false" label="Share language with objects" left="101" name="language_is_public" tool_tip="This lets in-world objects know your preferred language."/>
<check_box bottom="-385" height="16" initial_value="false" label="Share language with objects" left="101" name="language_is_public" tool_tip="This lets in-world objects know your preferred language."/>
<button bottom="-425" height="25" label="Reset All Settings" name="clear_settings" width="200" />
</panel>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<alerts>
</alerts>
<!-- This file is no longer used. Please see notifications.xml and make your changes there. -->
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<alerts>
</alerts>
<!-- This file is no longer used. Please see notifications.xml and make your changes there. -->

View File

@@ -1,99 +1,99 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater can_close="true" can_drag_on_left="false" can_minimize="true"
can_resize="false" height="440" min_height="100" min_width="100"
name="floater_about" rect_control="FloaterAboutRect"
title="About Singularity Viewer" width="470">
<tab_container
follows="all"
bottom="10"
left="10"
height="405"
width="450"
name="about_tab"
tab_position="top">
<panel
border="true"
height="386"
label="Info"
help_topic="about_support_tab"
name="support_panel">
<text_editor
parse_urls="true"
follows="top|left"
font="SansSerif"
height="343"
bg_readonly_color="Transparent"
left="1"
max_length="65536"
name="support_editor"
top="-1"
bottom="28"
width="446"
word_wrap="true" />
<button
follows="left|top"
label="Copy to Clipboard"
name="copy_btn"
right="-5"
bottom="0"
top_pad="5"
height="25"
width="180" />
</panel>
<panel
border="true"
label="Credits"
height="386"
help_topic="about_credits_tab"
name="credits_panel">
<text_editor
enabled="false"
follows="left|top"
bg_readonly_color="Transparent"
left="1"
text_color="LtGray"
max_length="65536"
name="credits_editor"
top="-1"
bottom="0"
width="446"
word_wrap="true">
Singularity Viewer is developed and maintained by Siana Gearz, Shyotl Kuhr, Aleric Inglewood and Narv Czervik, with contributions by Henri Beauchamp, Kitty Barnett, Thickbrick Sleaford, Zauber Parecelsus, Wolfspirit Magic and others. Singularity is based upon Ascent source code. Credits for Ascent include Hg Beeks, Charley Levenque, Hazim Gazov, Zwagoth Klaar, Qarl Fizz, and others. Ascent is based upon the Inertia source code.
Singularity Viewer includes source code contributions of the following residents: Able Whitman, Adam Marker, Agathos Frascati, Aimee Trescothick, Alejandro Rosenthal, Aleric Inglewood, Alissa Sabre, Angus Boyd, Ann Congrejo, Argent Stonecutter, Asuka Neely, Balp Allen, Benja Kepler, Biancaluce Robbiani, Blakar Ogre, blino Nakamura, Boroondas Gupte, Bulli Schumann, bushing Spatula, Carjay McGinnis, Catherine Pfeffer, Celierra Darling, Cron Stardust, Dale Glass, Drewan Keats, Dylan Haskell, Dzonatas Sol, Eddy Stryker, EponymousDylan Ra, Eva Nowicka, Farallon Greyskin, Feep Larsson, Flemming Congrejo, Fluf Fredriksson, Fractured Crystal, Fremont Cunningham, Geneko Nemeth, Gigs Taggart, Ginko Bayliss, Grazer Kline, Gudmund Shepherd, Hamncheese Omlet, HappySmurf Papp, Henri Beauchamp, Hikkoshi Sakai, Hiro Sommambulist, Hoze Menges, Ian Kas, Irene Muni, Iskar Ariantho, Jacek Antonelli, JB Kraft, Joghert LeSabre, Kage Pixel, Ken March, Kerutsen Sellery, Khyota Wulluf, Kunnis Basiat, Lisa Lowe, Lockhart Cordoso, maciek marksman, Magnus Balczo, Malwina Dollinger, march Korda, Matthew Dowd, McCabe Maxsted, Michelle2 Zenovka, Mm Alder, Mr Greggan, Nicholaz Beresford, Nounouch Hapmouche, Patric Mills, Paul Churchill, Paula Innis, Peekay Semyorka, Peter Lameth, Pf Shan, princess niven, Renault Clio, Ringo Tuxing, Robin Cornelius, Ryozu Kojima, Salahzar Stenvaag, Sammy Frederix, Scrippy Scofield, Seg Baphomet, Sergen Davies, SignpostMarv Martin, Simon Nolan, SpacedOut Frye, Sporked Friis, Stevex Janus, Still Defiant, Strife Onizuka, Tayra Dagostino, TBBle Kurosawa, Teardrops Fall, tenebrous pau, Tharax Ferraris, Thickbrick Sleaford, Thraxis Epsilon, tiamat bingyi, TraductoresAnonimos Alter, Tue Torok, Vadim Bigbear, Vixen Heron, Whoops Babii, Wilton Lundquist, Zarkonnen Decosta, Zi Ree, Zipherius Turas
Second Life is brought to you by Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les, Michon, Jenelle, Geo, Siz, Shapiro, Pete, Calyle, Selene, Allen, Phoebe, Goldin, Kimmora, Dakota, Slaton, Lindquist, Zoey, Hari, Othello, Rohit, Sheldon, Petra, Viale, Gordon, Kaye, Pink, Ferny, Emerson, Davy, Bri, Chan, Juan, Robert, Terrence, Nathan, Carl and many others.
Linden Lab would like to thank the following residents: able whitman, Adeon Writer, adonaira aabye, Aeron Kohime, Agathos Frascati, Aimee Trescothick, Aleric Inglewood, Alissa Sabre, Aminom Marvin, Angela Talamasca, Aralara Rajal, Armin Weatherwax, Ashrilyn Hayashida, Athanasius Skytower, Aura Dirval, Barney Boomslang, Biancaluce Robbiani, Biker Offcourse, Borg Capalini, Bulli Schumann, catherine pfeffer, Chalice Yao, Corre Porta, Court Goodman, Cummere Mayo, Dale Innis, Darien Caldwell, Darjeeling Schoonhoven, Daten Thielt, dimentox travanti, Dirk Talamasca, Drew Dwi, Duckless Vandyke, Elanthius Flagstaff, Electro Burnstein, emiley tomsen, Escort DeFarge, Eva Rau, Ezian Ecksol, Fire Centaur, Fluf Fredriksson, Francisco Koolhoven, Frontera Thor, Frungi Stastny, Gally Young, gearsawe stonecutter, Gigs Taggart, Gordon Wendt, Gudmund Shepherd, Gypsy Paz, Harleen Gretzky, Henri Beauchamp, Inma Rau, Irene Muni, Iskar Ariantho, Jacek Antonelli, JB Kraft, Jessicka Graves, Joeseph Albanese, Joshua Philgarlic, Khyota Wulluf, kirstenlee Cinquetti, Latif Khalifa, Lex Neva, Lilibeth Andree, Lisa Lowe, Lunita Savira, Loosey Demonia, lum pfohl, Marcos Fonzarelli, MartinRJ Fayray, Marusame Arai, Matthew Dowd, Maya Remblai, McCabe Maxsted, Meghan Dench, Melchoir Tokhes, Menos Short, Michelle2 Zenovka, Mimika Oh, Minerva Memel, Mm Alder, Ochi Wolfe, Omei Turnbull, Pesho Replacement, Phantom Ninetails, phoenixflames kukulcan, Polo Gufler, prez pessoa, princess niven, Prokofy Neva, Qie Niangao, Rem Beattie, RodneyLee Jessop, Saijanai Kuhn, Seg Baphomet, Sergen Davies, Shirley Marquez, SignpostMarv Martin, Sindy Tsure, Sira Arbizu, Skips Jigsaw, Sougent Harrop, Spritely Pixel, Squirrel Wood, StarSong Bright, Subversive Writer, Sugarcult Dagger, Sylumm Grigorovich, Tammy Nowotny, Tanooki Darkes, Tayra Dagostino, Theoretical Chemistry, Thickbrick Sleaford, valerie rosewood, Vex Streeter, Vixen Heron, Whoops Babii, Winter Ventura, Xiki Luik, Yann Dufaux, Yina Yao, Yukinoroh Kamachi, Zolute Infinity, Zwagoth Klaar
3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
APR Copyright (C) 2000-2004 The Apache Software Foundation
cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se)
DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc.
expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org).
GL Copyright (C) 1999-2004 Brian Paul.
Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)
jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
ogg/vorbis Copyright (C) 2001, Xiphophorus
OpenSSL Copyright (C) 1998-2002 The OpenSSL Project.
SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler.
google-perftools Copyright (c) 2005, Google Inc.
All rights reserved. See licenses.txt for details.
Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
To be a success in business, be daring, be first, be different. --Henry Marchant</text_editor>
</panel>
</tab_container>
<string name="you_are_at">
You are at [POSITION]
</string>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater can_close="true" can_drag_on_left="false" can_minimize="true"
can_resize="false" height="440" min_height="100" min_width="100"
name="floater_about" rect_control="FloaterAboutRect"
title="About Singularity Viewer" width="470">
<tab_container
follows="all"
bottom="10"
left="10"
height="405"
width="450"
name="about_tab"
tab_position="top">
<panel
border="true"
height="386"
label="Info"
help_topic="about_support_tab"
name="support_panel">
<text_editor
parse_urls="true"
follows="top|left"
font="SansSerif"
height="343"
bg_readonly_color="Transparent"
left="1"
max_length="65536"
name="support_editor"
top="-1"
bottom="28"
width="446"
word_wrap="true" />
<button
follows="left|top"
label="Copy to Clipboard"
name="copy_btn"
right="-5"
bottom="0"
top_pad="5"
height="25"
width="180" />
</panel>
<panel
border="true"
label="Credits"
height="386"
help_topic="about_credits_tab"
name="credits_panel">
<text_editor
enabled="false"
follows="left|top"
bg_readonly_color="Transparent"
left="1"
text_color="LtGray"
max_length="65536"
name="credits_editor"
top="-1"
bottom="0"
width="446"
word_wrap="true">
Singularity Viewer is developed and maintained by Siana Gearz, Shyotl Kuhr, Aleric Inglewood and Narv Czervik, with contributions by Henri Beauchamp, Kitty Barnett, Thickbrick Sleaford, Zauber Parecelsus, Wolfspirit Magic and others. Singularity is based upon Ascent source code. Credits for Ascent include Hg Beeks, Charley Levenque, Hazim Gazov, Zwagoth Klaar, Qarl Fizz, and others. Ascent is based upon the Inertia source code.
Singularity Viewer includes source code contributions of the following residents: Able Whitman, Adam Marker, Agathos Frascati, Aimee Trescothick, Alejandro Rosenthal, Aleric Inglewood, Alissa Sabre, Angus Boyd, Ann Congrejo, Argent Stonecutter, Asuka Neely, Balp Allen, Benja Kepler, Biancaluce Robbiani, Blakar Ogre, blino Nakamura, Boroondas Gupte, Bulli Schumann, bushing Spatula, Carjay McGinnis, Catherine Pfeffer, Celierra Darling, Cron Stardust, Dale Glass, Drewan Keats, Dylan Haskell, Dzonatas Sol, Eddy Stryker, EponymousDylan Ra, Eva Nowicka, Farallon Greyskin, Feep Larsson, Flemming Congrejo, Fluf Fredriksson, Fractured Crystal, Fremont Cunningham, Geneko Nemeth, Gigs Taggart, Ginko Bayliss, Grazer Kline, Gudmund Shepherd, Hamncheese Omlet, HappySmurf Papp, Henri Beauchamp, Hikkoshi Sakai, Hiro Sommambulist, Hoze Menges, Ian Kas, Irene Muni, Iskar Ariantho, Jacek Antonelli, JB Kraft, Joghert LeSabre, Kage Pixel, Ken March, Kerutsen Sellery, Khyota Wulluf, Kunnis Basiat, Lisa Lowe, Lockhart Cordoso, maciek marksman, Magnus Balczo, Malwina Dollinger, march Korda, Matthew Dowd, McCabe Maxsted, Michelle2 Zenovka, Mm Alder, Mr Greggan, Nicholaz Beresford, Nounouch Hapmouche, Patric Mills, Paul Churchill, Paula Innis, Peekay Semyorka, Peter Lameth, Pf Shan, princess niven, Renault Clio, Ringo Tuxing, Robin Cornelius, Ryozu Kojima, Salahzar Stenvaag, Sammy Frederix, Scrippy Scofield, Seg Baphomet, Sergen Davies, SignpostMarv Martin, Simon Nolan, SpacedOut Frye, Sporked Friis, Stevex Janus, Still Defiant, Strife Onizuka, Tayra Dagostino, TBBle Kurosawa, Teardrops Fall, tenebrous pau, Tharax Ferraris, Thickbrick Sleaford, Thraxis Epsilon, tiamat bingyi, TraductoresAnonimos Alter, Tue Torok, Vadim Bigbear, Vixen Heron, Whoops Babii, Wilton Lundquist, Zarkonnen Decosta, Zi Ree, Zipherius Turas
Second Life is brought to you by Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les, Michon, Jenelle, Geo, Siz, Shapiro, Pete, Calyle, Selene, Allen, Phoebe, Goldin, Kimmora, Dakota, Slaton, Lindquist, Zoey, Hari, Othello, Rohit, Sheldon, Petra, Viale, Gordon, Kaye, Pink, Ferny, Emerson, Davy, Bri, Chan, Juan, Robert, Terrence, Nathan, Carl and many others.
Linden Lab would like to thank the following residents: able whitman, Adeon Writer, adonaira aabye, Aeron Kohime, Agathos Frascati, Aimee Trescothick, Aleric Inglewood, Alissa Sabre, Aminom Marvin, Angela Talamasca, Aralara Rajal, Armin Weatherwax, Ashrilyn Hayashida, Athanasius Skytower, Aura Dirval, Barney Boomslang, Biancaluce Robbiani, Biker Offcourse, Borg Capalini, Bulli Schumann, catherine pfeffer, Chalice Yao, Corre Porta, Court Goodman, Cummere Mayo, Dale Innis, Darien Caldwell, Darjeeling Schoonhoven, Daten Thielt, dimentox travanti, Dirk Talamasca, Drew Dwi, Duckless Vandyke, Elanthius Flagstaff, Electro Burnstein, emiley tomsen, Escort DeFarge, Eva Rau, Ezian Ecksol, Fire Centaur, Fluf Fredriksson, Francisco Koolhoven, Frontera Thor, Frungi Stastny, Gally Young, gearsawe stonecutter, Gigs Taggart, Gordon Wendt, Gudmund Shepherd, Gypsy Paz, Harleen Gretzky, Henri Beauchamp, Inma Rau, Irene Muni, Iskar Ariantho, Jacek Antonelli, JB Kraft, Jessicka Graves, Joeseph Albanese, Joshua Philgarlic, Khyota Wulluf, kirstenlee Cinquetti, Latif Khalifa, Lex Neva, Lilibeth Andree, Lisa Lowe, Lunita Savira, Loosey Demonia, lum pfohl, Marcos Fonzarelli, MartinRJ Fayray, Marusame Arai, Matthew Dowd, Maya Remblai, McCabe Maxsted, Meghan Dench, Melchoir Tokhes, Menos Short, Michelle2 Zenovka, Mimika Oh, Minerva Memel, Mm Alder, Ochi Wolfe, Omei Turnbull, Pesho Replacement, Phantom Ninetails, phoenixflames kukulcan, Polo Gufler, prez pessoa, princess niven, Prokofy Neva, Qie Niangao, Rem Beattie, RodneyLee Jessop, Saijanai Kuhn, Seg Baphomet, Sergen Davies, Shirley Marquez, SignpostMarv Martin, Sindy Tsure, Sira Arbizu, Skips Jigsaw, Sougent Harrop, Spritely Pixel, Squirrel Wood, StarSong Bright, Subversive Writer, Sugarcult Dagger, Sylumm Grigorovich, Tammy Nowotny, Tanooki Darkes, Tayra Dagostino, Theoretical Chemistry, Thickbrick Sleaford, valerie rosewood, Vex Streeter, Vixen Heron, Whoops Babii, Winter Ventura, Xiki Luik, Yann Dufaux, Yina Yao, Yukinoroh Kamachi, Zolute Infinity, Zwagoth Klaar
3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
APR Copyright (C) 2000-2004 The Apache Software Foundation
cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se)
DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc.
expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org).
GL Copyright (C) 1999-2004 Brian Paul.
Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)
jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
ogg/vorbis Copyright (C) 2001, Xiphophorus
OpenSSL Copyright (C) 1998-2002 The OpenSSL Project.
SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler.
google-perftools Copyright (c) 2005, Google Inc.
All rights reserved. See licenses.txt for details.
Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
To be a success in business, be daring, be first, be different. --Henry Marchant</text_editor>
</panel>
</tab_container>
<string name="you_are_at">
You are at [POSITION]
</string>
</floater>

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="active_speakers" title="Intervenants actifs">
<panel name="active_speakers_panel">
<scroll_list name="speakers_list">
<column label="Nom" name="speaker_name"/>
</scroll_list>
<panel name="volume_container">
<button name="mute_btn" tool_tip="Ignorer ce résident"/>
</panel>
</panel>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="active_speakers" title="Intervenants actifs">
<panel name="active_speakers_panel">
<scroll_list name="speakers_list">
<column label="Nom" name="speaker_name"/>
</scroll_list>
<panel name="volume_container">
<button name="mute_btn" tool_tip="Ignorer ce résident"/>
</panel>
</panel>
</floater>

View File

@@ -1,165 +1,165 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Animation Preview" title="">
<text name="name_label">
Nom :
</text>
<text name="description_label">
Description :
</text>
<spinner label="Priorité" name="priority" tool_tip="Contrôle quelles animations peuvent êtres écrasées par cette animation."/>
<text name="preview_label" width="110">
Prévisualiser pendant
</text>
<combo_box label="" name="preview_base_anim" tool_tip="Utilisez cette option pour tester votre animation pendant que votre avatar fait des choses banales." left_delta="116" width="124">
<combo_item name="Standing">
Debout
</combo_item>
<combo_item name="Walking">
En train de marcher
</combo_item>
<combo_item name="Sitting">
Assis
</combo_item>
<combo_item name="Flying">
En train de voler
</combo_item>
</combo_box>
<check_box left="6" label="Boucle" name="loop_check" tool_tip="Joue cette animation en boucle."/>
<spinner left="76" label_width="55" width="105" label="Début (%)" name="loop_in_point" tool_tip="Définit le moment de l&apos;animation où la boucle repart."/>
<spinner left="195" label="Fin (%)" name="loop_out_point" tool_tip="Définit le moment de l&apos;animation où la boucle finit."/>
<text name="hand_label" width="110">
Mouvement de main
</text>
<combo_box label="" name="hand_pose_combo" tool_tip="Contrôle le mouvement des mains au cours de l&apos;animation" left_delta="116" width="124">
<combo_item name="Spread">
Doigts écartés
</combo_item>
<combo_item name="Relaxed">
Détendues
</combo_item>
<combo_item name="PointBoth">
Pointer (les deux)
</combo_item>
<combo_item name="Fist">
Poing
</combo_item>
<combo_item name="RelaxedLeft">
Détendue (gauche)
</combo_item>
<combo_item name="PointLeft">
Pointer (gauche)
</combo_item>
<combo_item name="FistLeft">
Poing (gauche)
</combo_item>
<combo_item name="RelaxedRight">
Détendue (droite)
</combo_item>
<combo_item name="PointRight">
Pointer (droite)
</combo_item>
<combo_item name="FistRight">
Poing (droite)
</combo_item>
<combo_item name="SaluteRight">
Saluer (droite)
</combo_item>
<combo_item name="Typing">
Taper
</combo_item>
<combo_item name="PeaceRight">
Paix (main droite)
</combo_item>
</combo_box>
<text name="emote_label">
Expression
</text>
<combo_box label="" name="emote_combo" tool_tip="Contrôle l&apos;expression du visage au cours de l&apos;animation." left_delta="116" width="124">
<combo_item name="[None]">
[None]
</combo_item>
<combo_item name="Aaaaah">
Aaaaah
</combo_item>
<combo_item name="Afraid">
Effrayé
</combo_item>
<combo_item name="Angry">
En colère
</combo_item>
<combo_item name="BigSmile">
Grand sourire
</combo_item>
<combo_item name="Bored">
Ennui
</combo_item>
<combo_item name="Cry">
Pleurer
</combo_item>
<combo_item name="Disdain">
Mépris
</combo_item>
<combo_item name="Embarrassed">
Gêne
</combo_item>
<combo_item name="Frown">
Froncer les sourcils
</combo_item>
<combo_item name="Kiss">
Embrasser
</combo_item>
<combo_item name="Laugh">
Rire
</combo_item>
<combo_item name="Plllppt">
Plllppt
</combo_item>
<combo_item name="Repulsed">
Dégoût
</combo_item>
<combo_item name="Sad">
Triste
</combo_item>
<combo_item name="Shrug">
Hausser les épaules
</combo_item>
<combo_item name="Smile">
Sourire
</combo_item>
<combo_item name="Surprise">
Surprise
</combo_item>
<combo_item name="Wink">
Clin d&apos;œil
</combo_item>
<combo_item name="Worry">
Soucis
</combo_item>
</combo_box>
<spinner label_width="65" label="Transition &#10;début (s)" name="ease_in_time" tool_tip="Durée (en secondes) pendant laquelle l&apos;animation s&apos;intègre au mouvement."/>
<spinner label_width="65" left="160" width="125" label="Transition &#10;fin (s)" name="ease_out_time" tool_tip="Durée (en secondes) pendant laquelle l&apos;animation disparaît du mouvement."/>
<button label="" name="play_btn" tool_tip="Jouer/Arrêter votre animation." bottom_delta="-48"/>
<button label="" name="stop_btn" tool_tip="Arrêter le playback"/>
<slider label="" name="playback_slider"/>
<text name="bad_animation_text">
Impossible de lire le fichier d&apos;animation.
Nous recommandons les fichiers BVH extraits de
Poser 4.
</text>
<button label="Annuler" name="cancel_btn"/>
<button label="Charger ([UPLOADFEE])" name="ok_btn"/>
<string name="failed_to_initialize">
Echec de l&apos;initialisation du mouvement
</string>
<string name="anim_too_long">
Le fichier d&apos;animation fait [LENGTH] secondes.
La longueur maximale est de [MAX_LENGTH] secondes.
</string>
<string name="failed_file_read">
Impossible de lire le fichier d&apos;animation.
[STATUS]
</string>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Animation Preview" title="">
<text name="name_label">
Nom :
</text>
<text name="description_label">
Description :
</text>
<spinner label="Priorité" name="priority" tool_tip="Contrôle quelles animations peuvent êtres écrasées par cette animation."/>
<text name="preview_label" width="110">
Prévisualiser pendant
</text>
<combo_box label="" name="preview_base_anim" tool_tip="Utilisez cette option pour tester votre animation pendant que votre avatar fait des choses banales." left_delta="116" width="124">
<combo_item name="Standing">
Debout
</combo_item>
<combo_item name="Walking">
En train de marcher
</combo_item>
<combo_item name="Sitting">
Assis
</combo_item>
<combo_item name="Flying">
En train de voler
</combo_item>
</combo_box>
<check_box left="6" label="Boucle" name="loop_check" tool_tip="Joue cette animation en boucle."/>
<spinner left="76" label_width="55" width="105" label="Début (%)" name="loop_in_point" tool_tip="Définit le moment de l&apos;animation où la boucle repart."/>
<spinner left="195" label="Fin (%)" name="loop_out_point" tool_tip="Définit le moment de l&apos;animation où la boucle finit."/>
<text name="hand_label" width="110">
Mouvement de main
</text>
<combo_box label="" name="hand_pose_combo" tool_tip="Contrôle le mouvement des mains au cours de l&apos;animation" left_delta="116" width="124">
<combo_item name="Spread">
Doigts écartés
</combo_item>
<combo_item name="Relaxed">
Détendues
</combo_item>
<combo_item name="PointBoth">
Pointer (les deux)
</combo_item>
<combo_item name="Fist">
Poings
</combo_item>
<combo_item name="RelaxedLeft">
Détendue (gauche)
</combo_item>
<combo_item name="PointLeft">
Pointer (gauche)
</combo_item>
<combo_item name="FistLeft">
Poing gauche
</combo_item>
<combo_item name="RelaxedRight">
Détendue (droite)
</combo_item>
<combo_item name="PointRight">
Pointer (droite)
</combo_item>
<combo_item name="FistRight">
Poing droit
</combo_item>
<combo_item name="SaluteRight">
Saluer (droite)
</combo_item>
<combo_item name="Typing">
Taper
</combo_item>
<combo_item name="PeaceRight">
Paix (droite)
</combo_item>
</combo_box>
<text name="emote_label">
Expression
</text>
<combo_box label="" name="emote_combo" tool_tip="Contrôle l&apos;expression du visage au cours de l&apos;animation." left_delta="116" width="124">
<combo_item name="[None]">
[None]
</combo_item>
<combo_item name="Aaaaah">
Aaaaah
</combo_item>
<combo_item name="Afraid">
Effrayé
</combo_item>
<combo_item name="Angry">
En colère
</combo_item>
<combo_item name="BigSmile">
Grand sourire
</combo_item>
<combo_item name="Bored">
Ennui
</combo_item>
<combo_item name="Cry">
Pleurer
</combo_item>
<combo_item name="Disdain">
Mépris
</combo_item>
<combo_item name="Embarrassed">
Gêne
</combo_item>
<combo_item name="Frown">
Froncer les sourcils
</combo_item>
<combo_item name="Kiss">
Embrasser
</combo_item>
<combo_item name="Laugh">
Rire
</combo_item>
<combo_item name="Plllppt">
Plllppt
</combo_item>
<combo_item name="Repulsed">
Dégoût
</combo_item>
<combo_item name="Sad">
Triste
</combo_item>
<combo_item name="Shrug">
Hausser les épaules
</combo_item>
<combo_item name="Smile">
Sourire
</combo_item>
<combo_item name="Surprise">
Surprise
</combo_item>
<combo_item name="Wink">
Clin d&apos;œil
</combo_item>
<combo_item name="Worry">
Soucis
</combo_item>
</combo_box>
<spinner label_width="65" label="Transition &#10;début (s)" name="ease_in_time" tool_tip="Durée (en secondes) pendant laquelle l&apos;animation s&apos;intègre au mouvement."/>
<spinner label_width="65" left="160" width="125" label="Transition &#10;fin (s)" name="ease_out_time" tool_tip="Durée (en secondes) pendant laquelle l&apos;animation disparaît du mouvement."/>
<button label="" name="play_btn" tool_tip="Jouer/Arrêter votre animation." bottom_delta="-48"/>
<button label="" name="stop_btn" tool_tip="Arrêter le playback"/>
<slider label="" name="playback_slider"/>
<text name="bad_animation_text">
Impossible de lire le fichier d&apos;animation.
Nous recommandons les fichiers BVH extraits de
Poser 4.
</text>
<button label="Annuler" name="cancel_btn"/>
<button label="Charger ([UPLOADFEE])" name="ok_btn"/>
<string name="failed_to_initialize">
Echec de l&apos;initialisation du mouvement
</string>
<string name="anim_too_long">
Le fichier d&apos;animation fait [LENGTH] secondes.
La longueur maximale est de [MAX_LENGTH] secondes.
</string>
<string name="failed_file_read">
Impossible de lire le fichier d&apos;animation.
[STATUS]
</string>
</floater>

View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="area search" title="Recherche d&apos;objets par zone"
min_width="425" min_height="250" width="600" height="400" rect_control="FloaterAreaSearchRect"
can_resize="true" can_minimize="true" can_close="true" can_drag_on_left="false">
<text name="name_label" bottom="-35" follows="top|left" height="15" left="12">
Recherche par Nom:
</text>
<text name="desc_label" bottom_delta="0" follows="top|left" height="15" left="218">
Recherche par Description:
</text>
<line_editor name="Name query chunk" tool_tip=""
bevel_style="in" border_style="line" border_thickness="1"
height="20" width="200" left="10" bottom_delta="-20" follows="left|top"
font="SansSerifSmall" max_length="256" mouse_opaque="true" />
<line_editor name="Description query chunk" tool_tip=""
bevel_style="in" border_style="line" border_thickness="1"
height="20" width="200" left_delta="206" bottom_delta="0" follows="left|top"
font="SansSerifSmall" max_length="256" mouse_opaque="true" spell_check="true" />
<text name="owner_label" bottom_delta="-20" follows="top|left" height="15" left="12">
Recherche par Propriétaire:
</text>
<text name="group_label" bottom_delta="0" follows="top|left" height="15" left="218">
Recherche par Groupe:
</text>
<line_editor name="Owner query chunk" tool_tip=""
bevel_style="in" border_style="line" border_thickness="1"
height="20" width="200" left="10" bottom_delta="-20" follows="left|top"
font="SansSerifSmall" max_length="256" mouse_opaque="true" />
<line_editor name="Group query chunk" tool_tip=""
bevel_style="in" border_style="line" border_thickness="1"
height="20" width="200" left_delta="206" bottom_delta="0" follows="left|top"
font="SansSerifSmall" max_length="256" mouse_opaque="true" />
<scroll_list name="result_list"
left="10" right="-10" top="-103" bottom="32"
follows="left|top|bottom|right" can_resize="true"
column_padding="0" draw_heading="true" multi_select="false" search_column="1">
<column name="Name" label="Nom" dynamicwidth="true" tool_tip="Double click pour botenir la position"/>
<column name="Description" label="Description" dynamicwidth="true" tool_tip="Double click pour botenir la position"/>
<column name="Owner" label="Propriétaire" dynamicwidth="true" tool_tip="Double click pour botenir la position"/>
<column name="Group" label="Groupe" dynamicwidth="true" tool_tip="Double click pour botenir la position"/>
</scroll_list>
<button name="Refresh" label="Rafraichir" font="SansSerif" mouse_opaque="true"
height="20" width="80" left="10" bottom="6" follows="left|bottom"/>
<button name="Stop" label="Stop" font="SansSerif" mouse_opaque="true"
height="20" width="80" left_delta="85" bottom="6" follows="left|bottom"/>
<text name="counter"
height="15" width="220" left_delta="85" bottom="9" follows="left|bottom">
Liste/Attente/Total
</text>
</floater>

View File

@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="floater_auction" title="Commencer la vente de terrain Linden">
<check_box label="Inclure le marquage de sélection jaune" name="fence_check" />
<combo_box name="saletype_combo">
<combo_item name="Auction">
Enchères
</combo_item>
<combo_item name="FirstLand">
Premier terrain
</combo_item>
</combo_box>
<button label="Capture d&apos;écran" label_selected="Capture d&apos;écran"
name="snapshot_btn" width="110" />
<button label="OK" label_selected="OK" name="ok_btn" left_delta="114"/>
<text name="already for sale">
Vous ne pouvez pas mettre aux enchères des parcelles déjà en vente.
</text>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="floater_auction" title="Commencer la vente de terrain Linden">
<check_box label="Inclure le marquage de sélection jaune" name="fence_check" />
<combo_box name="saletype_combo">
<combo_item name="Auction">
Enchères
</combo_item>
<combo_item name="FirstLand">
Premier terrain
</combo_item>
</combo_box>
<button label="Capture d&apos;écran" label_selected="Capture d&apos;écran"
name="snapshot_btn" width="110" />
<button label="OK" label_selected="OK" name="ok_btn" left_delta="114"/>
<text name="already for sale">
Vous ne pouvez pas mettre aux enchères des parcelles déjà en vente.
</text>
</floater>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="Volume" title="Volume">
<panel label="Volume" name="Volume Panel" />
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="Volume" title="Volume">
<panel label="Volume" name="Volume Panel" />
</floater>

View File

@@ -1,42 +1,42 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="avatarpicker" title="Choisir le résident">
<tab_container name="ResidentChooserTabs">
<panel label="Rechercher" name="SearchPanel">
<text name="InstructSearchResidentName">
Saisissez une partie du nom du résident :
</text>
<button label="Trouver" label_selected="Trouver" name="Find"/>
</panel>
<panel label="Cartes de visite" name="CallingCardsPanel">
<text name="InstructSelectCallingCard">
Sélectionnez une carte de visite :
</text>
</panel>
<panel label="Près de moi" name="NearMePanel">
<text name="InstructSelectResident">
Choisir un résident
près de vous :
</text>
<button font="SansSerifSmall" label="Rafraîchir la liste" label_selected="Rafraîchir la liste" name="Refresh" left_delta="10" width="105"/>
<slider label="Distance" name="near_me_range" bottom_delta="-36"/>
<text name="meters">
mètres
</text>
<scroll_list bottom_delta="-169" height="159" name="NearMe" />
</panel>
</tab_container>
<button label="Sélectionner" label_selected="Sélectionner" name="Select"/>
<button label="Annuler" label_selected="Annuler" name="Cancel"/>
<string name="not_found">
&apos;[TEXT]&apos; introuvable
</string>
<string name="no_one_near">
Il n'y a personne près de vous
</string>
<string name="no_results">
Aucun résultat
</string>
<string name="searching">
Recherche...
</string>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="avatarpicker" title="Choisir le résident">
<tab_container name="ResidentChooserTabs">
<panel label="Rechercher" name="SearchPanel">
<text name="InstructSearchResidentName">
Saisissez une partie du nom du résident :
</text>
<button label="Trouver" label_selected="Trouver" name="Find"/>
</panel>
<panel label="Cartes de visite" name="CallingCardsPanel">
<text name="InstructSelectCallingCard">
Sélectionnez une carte de visite :
</text>
</panel>
<panel label="Près de moi" name="NearMePanel">
<text name="InstructSelectResident">
Choisir un résident
près de vous :
</text>
<button font="SansSerifSmall" label="Rafraîchir la liste" label_selected="Rafraîchir la liste" name="Refresh" left_delta="10" width="105"/>
<slider label="Distance" name="near_me_range" bottom_delta="-36"/>
<text name="meters">
mètres
</text>
<scroll_list bottom_delta="-169" height="159" name="NearMe" />
</panel>
</tab_container>
<button label="Sélectionner" label_selected="Sélectionner" name="Select"/>
<button label="Annuler" label_selected="Annuler" name="Cancel"/>
<string name="not_found">
&apos;[TEXT]&apos; introuvable
</string>
<string name="no_one_near">
Il n'y a personne près de vous
</string>
<string name="no_results">
Aucun résultat
</string>
<string name="searching">
Recherche...
</string>
</floater>

View File

@@ -1,31 +1,31 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="avatar_texture_debug" title="Textures de l&apos;avatar">
<text name="label">
Textures fixées
</text>
<text name="composite_label">
Textures composées
</text>
<button label="Vider ces ID dans la console" label_selected="Vider" name="Dump" left="-185" width="175"/>
<texture_picker label="Cheveux" name="hair-baked"/>
<texture_picker label="Cheveux" name="hair"/>
<texture_picker label="Tête" name="head-baked"/>
<texture_picker label="Maquillage" name="head bodypaint"/>
<texture_picker label="Yeux" name="eyes-baked"/>
<texture_picker label="Œil" name="iris"/>
<texture_picker label="Haut du corps" name="upper-baked"/>
<texture_picker label="Tatouage (haut du corps)" name="upper bodypaint"/>
<texture_picker label="Tee Shirt" name="undershirt"/>
<texture_picker label="Gants" name="gloves"/>
<texture_picker label="Chemise" name="shirt"/>
<texture_picker label="Veste (haut)" name="upper jacket"/>
<texture_picker label="Bas du corps" name="lower-baked"/>
<texture_picker label="Tatouage (bas du corps)" name="lower bodypaint"/>
<texture_picker label="culotte" name="underpants"/>
<texture_picker label="Chaussettes" name="socks"/>
<texture_picker label="Chaussures" name="shoes"/>
<texture_picker label="Pantalon" name="pants"/>
<texture_picker label="Veste" name="lower jacket"/>
<texture_picker label="Jupe" name="skirt-baked"/>
<texture_picker label="Jupe" name="skirt"/>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="avatar_texture_debug" title="Textures de l&apos;avatar">
<text name="label">
Textures fixées
</text>
<text name="composite_label">
Textures composées
</text>
<button label="Vider ces ID dans la console" label_selected="Vider" name="Dump" left="-185" width="175"/>
<texture_picker label="Cheveux" name="hair-baked"/>
<texture_picker label="Cheveux" name="hair"/>
<texture_picker label="Tête" name="head-baked"/>
<texture_picker label="Maquillage" name="head bodypaint"/>
<texture_picker label="Yeux" name="eyes-baked"/>
<texture_picker label="Œil" name="iris"/>
<texture_picker label="Haut du corps" name="upper-baked"/>
<texture_picker label="Tatouage (haut du corps)" name="upper bodypaint"/>
<texture_picker label="Tee Shirt" name="undershirt"/>
<texture_picker label="Gants" name="gloves"/>
<texture_picker label="Chemise" name="shirt"/>
<texture_picker label="Veste (haut)" name="upper jacket"/>
<texture_picker label="Bas du corps" name="lower-baked"/>
<texture_picker label="Tatouage (bas du corps)" name="lower bodypaint"/>
<texture_picker label="culotte" name="underpants"/>
<texture_picker label="Chaussettes" name="socks"/>
<texture_picker label="Chaussures" name="shoes"/>
<texture_picker label="Pantalon" name="pants"/>
<texture_picker label="Veste" name="lower jacket"/>
<texture_picker label="Jupe" name="skirt-baked"/>
<texture_picker label="Jupe" name="skirt"/>
</floater>

View File

@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="beacons" title="Balises">
<panel name="beacons_panel">
<check_box label="Objets scriptés avec Toucher uniquement" name="touch_only"/>
<check_box label="Objets scriptés" name="scripted"/>
<check_box label="Objets physiques" name="physical"/>
<check_box label="Sources sonores" name="sounds"/>
<check_box label="Sources de particules" name="particles"/>
<check_box label="Mettre en surbrillance" name="highlights"/>
<check_box label="Montrer les balises" name="beacons"/>
<text name="beacon_width_label">
Largeur de la balise :
</text>
</panel>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="beacons" title="Balises">
<panel name="beacons_panel">
<check_box label="Objets scriptés avec Toucher uniquement" name="touch_only"/>
<check_box label="Objets scriptés" name="scripted"/>
<check_box label="Objets physiques" name="physical"/>
<check_box label="Sources sonores" name="sounds"/>
<check_box label="Sources de particules" name="particles"/>
<check_box label="Mettre en surbrillance" name="highlights"/>
<check_box label="Montrer les balises" name="beacons"/>
<text name="beacon_width_label">
Largeur de la balise :
</text>
</panel>
</floater>

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="build options floater" title="Options de la grille">
<spinner label="Unité (mètres)" name="GridResolution" />
<spinner label="Mesures (mètres)" name="GridDrawSize" />
<check_box label="Activer la fixation des sous-unités" name="GridSubUnit" />
<check_box label="Afficher les sections transversales" name="GridCrossSection" />
<slider label="Opacité de la grille" name="GridOpacity" />
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="build options floater" title="Options de la grille">
<spinner label="Unité (mètres)" name="GridResolution" />
<spinner label="Mesures (mètres)" name="GridDrawSize" />
<check_box label="Activer la fixation des sous-unités" name="GridSubUnit" />
<check_box label="Afficher les sections transversales" name="GridCrossSection" />
<slider label="Opacité de la grille" name="GridOpacity" />
</floater>

View File

@@ -1,44 +1,44 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="floaterbulkperms" title="Changement des droits relatifs au contenu">
<text name="applyto">
Types de contenu
</text>
<check_box label="Animation" name="check_animation"/>
<check_box label="Parties du corps" name="check_bodypart"/>
<check_box label="Habits" name="check_clothing"/>
<check_box label="Gestes" name="check_gesture"/>
<check_box label="Repères" name="check_landmark"/>
<check_box label="Notes" name="check_notecard"/>
<check_box label="Objets" name="check_object"/>
<check_box label="Scripts" name="check_script"/>
<check_box label="Sons" name="check_sound"/>
<check_box label="Textures" name="check_texture"/>
<button label="Tout cocher" label_selected="Tout" name="check_all"/>
<button label="Tout décocher" label_selected="Aucun" name="check_none"/>
<text name="newperms">
Nouveaux droits
</text>
<check_box label="Partager avec le groupe" name="share_with_group"/>
<check_box label="Autoriser tout le monde à copier" name="everyone_copy"/>
<text name="NextOwnerLabel">
Le prochain propriétaire pourra :
</text>
<check_box label="Modifier" name="next_owner_modify"/>
<check_box label="Copier" name="next_owner_copy"/>
<check_box label="Revendre/Donner" name="next_owner_transfer"/>
<button label="Aide" name="help"/>
<button label="Appliquer" name="apply"/>
<button label="Fermer" name="close"/>
<string name="nothing_to_modify_text">
La sélection contient des contenus non modifiables.
</string>
<string name="status_text">
Permissions paramétrées sur [NAME]
</string>
<string name="start_text">
Demande de changement des droits lancée...
</string>
<string name="done_text">
Demande de changement des droits finie.
</string>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="floaterbulkperms" title="Changement des droits relatifs au contenu">
<text name="applyto">
Types de contenu
</text>
<check_box label="Animation" name="check_animation"/>
<check_box label="Parties du corps" name="check_bodypart"/>
<check_box label="Habits" name="check_clothing"/>
<check_box label="Gestes" name="check_gesture"/>
<check_box label="Repères" name="check_landmark"/>
<check_box label="Notes" name="check_notecard"/>
<check_box label="Objets" name="check_object"/>
<check_box label="Scripts" name="check_script"/>
<check_box label="Sons" name="check_sound"/>
<check_box label="Textures" name="check_texture"/>
<button label="Tout cocher" label_selected="Tout" name="check_all"/>
<button label="Tout décocher" label_selected="Aucun" name="check_none"/>
<text name="newperms">
Nouveaux droits
</text>
<check_box label="Partager avec le groupe" name="share_with_group"/>
<check_box label="Autoriser tout le monde à copier" name="everyone_copy"/>
<text name="NextOwnerLabel">
Le prochain propriétaire pourra :
</text>
<check_box label="Modifier" name="next_owner_modify"/>
<check_box label="Copier" name="next_owner_copy"/>
<check_box label="Revendre/Donner" name="next_owner_transfer"/>
<button label="Aide" name="help"/>
<button label="Appliquer" name="apply"/>
<button label="Fermer" name="close"/>
<string name="nothing_to_modify_text">
La sélection contient des contenus non modifiables.
</string>
<string name="status_text">
Permissions paramétrées sur [NAME]
</string>
<string name="start_text">
Demande de changement des droits lancée...
</string>
<string name="done_text">
Demande de changement des droits finie.
</string>
</floater>

View File

@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="floater_bumps" title="Collisions, coups et bousculades">
<text name="none_detected">
Aucun détecté
</text>
<text name="bump">
[TIME] [NAME] est entré en collision avec vous
</text>
<text name="llpushobject">
[TIME] [NAME] vous a bousculé avec un script
</text>
<text name="selected_object_collide">
[TIME] [NAME] vous a donné un coup avec un objet
</text>
<text name="scripted_object_collide">
[TIME] [NAME] vous a donné un coup avec un objet scripté
</text>
<text name="physical_object_collide">
[TIME] [NAME] vous a donné un coup avec un objet physique
</text>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="floater_bumps" title="Collisions, coups et bousculades">
<text name="none_detected">
Aucun détecté
</text>
<text name="bump">
[TIME] [NAME] est entré en collision avec vous
</text>
<text name="llpushobject">
[TIME] [NAME] vous a bousculé avec un script
</text>
<text name="selected_object_collide">
[TIME] [NAME] vous a donné un coup avec un objet
</text>
<text name="scripted_object_collide">
[TIME] [NAME] vous a donné un coup avec un objet scripté
</text>
<text name="physical_object_collide">
[TIME] [NAME] vous a donné un coup avec un objet physique
</text>
</floater>

View File

@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="floater_buy_contents" title="Acheter ce contenu">
<text name="contains_text">
[NAME] contient :
</text>
<text name="buy_text">
Acheter [AMOUNT] L$ à [NAME] ?
</text>
<button label="Annuler" label_selected="Annuler" name="cancel_btn"/>
<button label="Acheter" label_selected="Acheter" name="buy_btn"/>
<check_box label="Porter maintenant" name="wear_check"/>
<string name="no_copy_text">
(pas de copie)
</string>
<string name="no_modify_text">
(pas de modification)
</string>
<string name="no_transfer_text">
(pas de transfert)
</string>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="floater_buy_contents" title="Acheter ce contenu">
<text name="contains_text">
[NAME] contient :
</text>
<text name="buy_text">
Acheter [AMOUNT] L$ à [NAME] ?
</text>
<button label="Annuler" label_selected="Annuler" name="cancel_btn"/>
<button label="Acheter" label_selected="Acheter" name="buy_btn"/>
<check_box label="Porter maintenant" name="wear_check"/>
<string name="no_copy_text">
(pas de copie)
</string>
<string name="no_modify_text">
(pas de modification)
</string>
<string name="no_transfer_text">
(pas de transfert)
</string>
</floater>

View File

@@ -1,69 +1,69 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="buy currency" title="Acheter des L$">
<text left="5" name="info_buying">
Achat de L$ :
</text>
<text left="5" name="info_cannot_buy" right="-5">
Impossible d&apos;acheter maintenant :
</text>
<text left="5" name="info_need_more" right="-5">
Vous avez besoin de plus de devises:
</text>
<text name="error_message">
Quelque chose ne va pas.
</text>
<button label="Aller sur le site" name="error_web"/>
<text name="contacting">
En train de contacter le Lindex...
</text>
<text name="buy_action_unknown" right="-5">
Acheter des L$ sur le marché du LindeX
</text>
<text name="buy_action">
[NAME] L$ [PRICE]
</text>
<text name="currency_action">
Acheter
</text>
<line_editor name="currency_amt" width="65">
1234
</line_editor>
<text name="currency_est" width="138" left_delta="68">
L$ pour environ [USD] US$
</text>
<text name="getting_data" width="138">
Obtention des données...
</text>
<text name="balance_label">
Actuellement, vous avez
</text>
<text name="balance_amount">
[AMT] L$
</text>
<text name="buying_label">
Vous achetez
</text>
<text name="buying_amount">
[AMT] L$
</text>
<text name="total_label">
Votre solde sera de
</text>
<text name="total_amount">
[AMT] L$
</text>
<text name="purchase_warning_repurchase" height="48" bottom_delta="-64" right="-10">
En confirmant cette transaction, vous achetez
uniquement les devises. Vous devrez recommencer
cette opération.
</text>
<text name="purchase_warning_notenough" bottom_delta="16">
Vous n&apos;achetez pas assez de devises.
Veuillez saisir un montant plus élevé.
</text>
<button label="Acheter" name="buy_btn"/>
<button label="Annuler" name="cancel_btn"/>
<string name="buy_currency">
Acheter [LINDENS] L$ pour environ [USD] US$
</string>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="buy currency" title="Acheter des L$">
<text left="5" name="info_buying">
Achat de L$ :
</text>
<text left="5" name="info_cannot_buy" right="-5">
Impossible d&apos;acheter maintenant :
</text>
<text left="5" name="info_need_more" right="-5">
Vous avez besoin de plus de devises:
</text>
<text name="error_message">
Quelque chose ne va pas.
</text>
<button label="Aller sur le site" name="error_web"/>
<text name="contacting">
En train de contacter le Lindex...
</text>
<text name="buy_action_unknown" right="-5">
Acheter des L$ sur le marché du LindeX
</text>
<text name="buy_action">
[NAME] L$ [PRICE]
</text>
<text name="currency_action">
Acheter
</text>
<line_editor name="currency_amt" width="65">
1234
</line_editor>
<text name="currency_est" width="138" left_delta="68">
L$ pour environ [USD] US$
</text>
<text name="getting_data" width="138">
Obtention des données...
</text>
<text name="balance_label">
Actuellement, vous avez
</text>
<text name="balance_amount">
[AMT] L$
</text>
<text name="buying_label">
Vous achetez
</text>
<text name="buying_amount">
[AMT] L$
</text>
<text name="total_label">
Votre solde sera de
</text>
<text name="total_amount">
[AMT] L$
</text>
<text name="purchase_warning_repurchase" height="48" bottom_delta="-64" right="-10">
En confirmant cette transaction, vous achetez
uniquement les devises. Vous devrez recommencer
cette opération.
</text>
<text name="purchase_warning_notenough" bottom_delta="16">
Vous n&apos;achetez pas assez de devises.
Veuillez saisir un montant plus élevé.
</text>
<button label="Acheter" name="buy_btn"/>
<button label="Annuler" name="cancel_btn"/>
<string name="buy_currency">
Acheter [LINDENS] L$ pour environ [USD] US$
</string>
</floater>

View File

@@ -1,243 +1,243 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="buy land" title="Acheter le terrain">
<text name="region_name_label">
Région :
</text>
<text name="region_name_text">
(inconnue)
</text>
<text name="region_type_label">
Type :
</text>
<text name="region_type_text">
(inconnu)
</text>
<text name="estate_name_label">
Domaine :
</text>
<text name="estate_name_text">
(inconnu)
</text>
<text name="estate_owner_label">
Propriétaire :
</text>
<text name="estate_owner_text">
(inconnu)
</text>
<text name="resellable_changeable_label">
Terrain acheté dans cette région :
</text>
<text name="resellable_clause">
Peut être revendu ou pas.
</text>
<text name="changeable_clause">
Peut être fusionné/divisé ou pas.
</text>
<text name="covenant_text">
Vous devez accepter le règlement du domaine :
</text>
<text left="470" name="covenant_timestamp_text"/>
<text_editor name="covenant_editor">
Chargement...
</text_editor>
<check_box label="J&apos;accepte le règlement ci-dessus." name="agree_covenant"/>
<text name="info_parcel_label">
Parcelle :
</text>
<text name="info_parcel">
Scotopteryx 138,204
</text>
<text name="info_size_label">
Taille :
</text>
<text name="info_size">
1024 m²
</text>
<text name="info_price_label">
Prix :
</text>
<text name="info_price">
1500 L$
(1,1 L$/m²)
vendu avec objets
</text>
<text name="info_action" width="380">
Si vous achetez ce terrain :
</text>
<text name="error_message">
Quelque chose ne va pas.
</text>
<button label="Aller sur le site" name="error_web"/>
<text name="account_action">
Vous passerez à un compte Premium.
</text>
<text name="account_reason">
Seuls les membres Premium peuvent posséder du terrain.
</text>
<combo_box name="account_level">
<combo_item name="US$9.95/month,billedmonthly">
9,95 US$/mois, facturation mensuelle
</combo_item>
<combo_item name="US$7.50/month,billedquarterly">
7,50 US$/mois, facturation trimestrielle
</combo_item>
<combo_item name="US$6.00/month,billedannually">
6,00 US$/mois, facturation annuelle
</combo_item>
</combo_box>
<text name="land_use_action">
Augmentez vos frais d&apos;occupation de terrain à 40 US$/mois.
</text>
<text name="land_use_reason">
Vous êtes propriétaire de 1 309 m² de terrain.
Cette parcelle fait 512 m².
</text>
<text name="purchase_action">
Payez au résident X 4 000 L$ pour le terrain
</text>
<text name="currency_reason">
Vous avez 2 100 L$.
</text>
<text name="currency_action">
Acheter des L$
</text>
<line_editor name="currency_amt">
1000
</line_editor>
<text name="currency_est">
pour environ [AMOUNT2] US$
</text>
<text name="currency_balance">
Vous avez 2 100 L$.
</text>
<check_box label="Supprimer [AMOUNT] mètres carrés de votre contribution au groupe." name="remove_contribution"/>
<button label="Acheter" name="buy_btn"/>
<button label="Annuler" name="cancel_btn"/>
<string name="can_resell">
Peut être revendu.
</string>
<string name="can_not_resell">
Ne peut pas être revendu.
</string>
<string name="can_change">
Peut être fusionné ou divisé.
</string>
<string name="can_not_change">
Ne peut pas être fusionné ou divisé.
</string>
<string name="cant_buy_for_group">
Vous n&apos;avez pas la permission d&apos;acheter de terrain pour votre groupe.
</string>
<string name="no_land_selected">
Aucun terrain sélectionné.
</string>
<string name="multiple_parcels_selected">
Vous avez sélectionné plusieurs parcelles.
Sélectionnez une zone plus petite.
</string>
<string name="no_permission">
Vous n&apos;avez pas la permission d&apos;acheter de terrain pour votre groupe.
</string>
<string name="parcel_not_for_sale">
La parcelle sélectionnée n&apos;est pas à vendre.
</string>
<string name="group_already_owns">
La parcelle appartient déjà au groupe.
</string>
<string name="you_already_own">
La parcelle vous appartient déjà.
</string>
<string name="set_to_sell_to_other">
La parcelle sélectionnée doit déjà être vendue à quelqu&apos;un d&apos;autre.
</string>
<string name="no_public_land">
Il n&apos;y a pas de terrain public dans cette zone.
</string>
<string name="not_owned_by_you">
Le terrain sélectionné appartient à quelqu&apos;un d&apos;autre.
Sélectionnez une zone plus petite.
</string>
<string name="processing">
Achat en cours de traitement...
(Veuillez patienter quelques instants.)
</string>
<string name="fetching_error">
Une erreur s&apos;est produite pendant le traitement de l&apos;achat du terrain.
</string>
<string name="buying_will">
Si vous achetez ce terrain :
</string>
<string name="buying_for_group">
Si vous achetez le terrain pour le groupe :
</string>
<string name="cannot_buy_now">
Impossible d&apos;acheter maintenant :
</string>
<string name="not_for_sale">
Pas à vendre :
</string>
<string name="none_needed">
aucun besoin
</string>
<string name="must_upgrade">
Pour posséder du terrain, vous devez avoir un niveau de compte supérieur.
</string>
<string name="cant_own_land">
Avec votre compte, vous pouvez posséder du terrain.
</string>
<string name="land_holdings">
Vous possédez un terrain de [BUYER] m².
</string>
<string name="pay_to_for_land">
Payez [AMOUNT] L$ à [SELLER] pour ce terrain
</string>
<string name="buy_for_US">
Acheter [AMOUNT] L$ pour environ [AMOUNT2] US$,
</string>
<string name="parcel_meters">
Cette parcelle fait [AMOUNT] m².
</string>
<string name="premium_land">
Ce terrain est premium et les frais associés sont ceux d&apos;un terrain de [AMOUNT] m².
</string>
<string name="discounted_land">
Ce terrain est en solde et les frais associés sont ceux d&apos;un terrain de [AMOUNT] m².
</string>
<string name="meters_supports_object">
[AMOUNT] m²
peuvent contenir [AMOUNT2] prims
</string>
<string name="sold_with_objects">
vendu avec objets
</string>
<string name="sold_without_objects">
objets non inclus
</string>
<string name="info_price_string">
[PRICE] L$
([PRICE_PER_SQM] L$/m²)
[SOLD_WITH_OBJECTS]
</string>
<string name="insufficient_land_credits">
Ce groupe, [GROUP], aura besoin de suffisamment de crédit pour payer les frais d&apos;occupation de terrain avant que l&apos;achat de cette parcelle ne soit finalisé.
</string>
<string name="have_enough_lindens">
Vous avez [AMOUNT] L$, ce qui est suffisant pour acheter ce terrain.
</string>
<string name="not_enough_lindens">
Vous n&apos;avez que [AMOUNT] L$ et vous avez besoin de [AMOUNT2] L$ de plus.
</string>
<string name="balance_left">
Après cet achat, il vous restera [AMOUNT] L$.
</string>
<string name="balance_needed">
Pour avoir les moyens d&apos;acquérir ce terrain, vous devez acheter au moins [AMOUNT] L$.
</string>
<string name="no_parcel_selected">
(aucune parcelle sélectionnée)
</string>
<string name="buy_currency">
Acheter [LINDENS] L$ pour environ [USD] US$
</string>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="buy land" title="Acheter le terrain">
<text name="region_name_label">
Région :
</text>
<text name="region_name_text">
(inconnue)
</text>
<text name="region_type_label">
Type :
</text>
<text name="region_type_text">
(inconnu)
</text>
<text name="estate_name_label">
Domaine :
</text>
<text name="estate_name_text">
(inconnu)
</text>
<text name="estate_owner_label">
Propriétaire :
</text>
<text name="estate_owner_text">
(inconnu)
</text>
<text name="resellable_changeable_label">
Terrain acheté dans cette région :
</text>
<text name="resellable_clause">
Peut être revendu ou pas.
</text>
<text name="changeable_clause">
Peut être fusionné/divisé ou pas.
</text>
<text name="covenant_text">
Vous devez accepter le règlement du domaine :
</text>
<text left="470" name="covenant_timestamp_text"/>
<text_editor name="covenant_editor">
Chargement...
</text_editor>
<check_box label="J&apos;accepte le règlement ci-dessus." name="agree_covenant"/>
<text name="info_parcel_label">
Parcelle :
</text>
<text name="info_parcel">
Scotopteryx 138,204
</text>
<text name="info_size_label">
Taille :
</text>
<text name="info_size">
1024 m²
</text>
<text name="info_price_label">
Prix :
</text>
<text name="info_price">
1500 L$
(1,1 L$/m²)
vendu avec objets
</text>
<text name="info_action" width="380">
Si vous achetez ce terrain :
</text>
<text name="error_message">
Quelque chose ne va pas.
</text>
<button label="Aller sur le site" name="error_web"/>
<text name="account_action">
Vous passerez à un compte Premium.
</text>
<text name="account_reason">
Seuls les membres Premium peuvent posséder du terrain.
</text>
<combo_box name="account_level">
<combo_item name="US$9.95/month,billedmonthly">
9,95 US$/mois, facturation mensuelle
</combo_item>
<combo_item name="US$7.50/month,billedquarterly">
7,50 US$/mois, facturation trimestrielle
</combo_item>
<combo_item name="US$6.00/month,billedannually">
6,00 US$/mois, facturation annuelle
</combo_item>
</combo_box>
<text name="land_use_action">
Augmentez vos frais d&apos;occupation de terrain à 40 US$/mois.
</text>
<text name="land_use_reason">
Vous êtes propriétaire de 1 309 m² de terrain.
Cette parcelle fait 512 m².
</text>
<text name="purchase_action">
Payez au résident X 4 000 L$ pour le terrain
</text>
<text name="currency_reason">
Vous avez 2 100 L$.
</text>
<text name="currency_action">
Acheter des L$
</text>
<line_editor name="currency_amt">
1000
</line_editor>
<text name="currency_est">
pour environ [AMOUNT2] US$
</text>
<text name="currency_balance">
Vous avez 2 100 L$.
</text>
<check_box label="Supprimer [AMOUNT] mètres carrés de votre contribution au groupe." name="remove_contribution"/>
<button label="Acheter" name="buy_btn"/>
<button label="Annuler" name="cancel_btn"/>
<string name="can_resell">
Peut être revendu.
</string>
<string name="can_not_resell">
Ne peut pas être revendu.
</string>
<string name="can_change">
Peut être fusionné ou divisé.
</string>
<string name="can_not_change">
Ne peut pas être fusionné ou divisé.
</string>
<string name="cant_buy_for_group">
Vous n&apos;avez pas la permission d&apos;acheter de terrain pour votre groupe.
</string>
<string name="no_land_selected">
Aucun terrain sélectionné.
</string>
<string name="multiple_parcels_selected">
Vous avez sélectionné plusieurs parcelles.
Sélectionnez une zone plus petite.
</string>
<string name="no_permission">
Vous n&apos;avez pas la permission d&apos;acheter de terrain pour votre groupe.
</string>
<string name="parcel_not_for_sale">
La parcelle sélectionnée n&apos;est pas à vendre.
</string>
<string name="group_already_owns">
La parcelle appartient déjà au groupe.
</string>
<string name="you_already_own">
La parcelle vous appartient déjà.
</string>
<string name="set_to_sell_to_other">
La parcelle sélectionnée doit déjà être vendue à quelqu&apos;un d&apos;autre.
</string>
<string name="no_public_land">
Il n&apos;y a pas de terrain public dans cette zone.
</string>
<string name="not_owned_by_you">
Le terrain sélectionné appartient à quelqu&apos;un d&apos;autre.
Sélectionnez une zone plus petite.
</string>
<string name="processing">
Achat en cours de traitement...
(Veuillez patienter quelques instants.)
</string>
<string name="fetching_error">
Une erreur s&apos;est produite pendant le traitement de l&apos;achat du terrain.
</string>
<string name="buying_will">
Si vous achetez ce terrain :
</string>
<string name="buying_for_group">
Si vous achetez le terrain pour le groupe :
</string>
<string name="cannot_buy_now">
Impossible d&apos;acheter maintenant :
</string>
<string name="not_for_sale">
Pas à vendre :
</string>
<string name="none_needed">
aucun besoin
</string>
<string name="must_upgrade">
Pour posséder du terrain, vous devez avoir un niveau de compte supérieur.
</string>
<string name="cant_own_land">
Avec votre compte, vous pouvez posséder du terrain.
</string>
<string name="land_holdings">
Vous possédez un terrain de [BUYER] m².
</string>
<string name="pay_to_for_land">
Payez [AMOUNT] L$ à [SELLER] pour ce terrain
</string>
<string name="buy_for_US">
Acheter [AMOUNT] L$ pour environ [AMOUNT2] US$,
</string>
<string name="parcel_meters">
Cette parcelle fait [AMOUNT] m².
</string>
<string name="premium_land">
Ce terrain est premium et les frais associés sont ceux d&apos;un terrain de [AMOUNT] m².
</string>
<string name="discounted_land">
Ce terrain est en solde et les frais associés sont ceux d&apos;un terrain de [AMOUNT] m².
</string>
<string name="meters_supports_object">
[AMOUNT] m²
peuvent contenir [AMOUNT2] prims
</string>
<string name="sold_with_objects">
vendu avec objets
</string>
<string name="sold_without_objects">
objets non inclus
</string>
<string name="info_price_string">
[PRICE] L$
([PRICE_PER_SQM] L$/m²)
[SOLD_WITH_OBJECTS]
</string>
<string name="insufficient_land_credits">
Ce groupe, [GROUP], aura besoin de suffisamment de crédit pour payer les frais d&apos;occupation de terrain avant que l&apos;achat de cette parcelle ne soit finalisé.
</string>
<string name="have_enough_lindens">
Vous avez [AMOUNT] L$, ce qui est suffisant pour acheter ce terrain.
</string>
<string name="not_enough_lindens">
Vous n&apos;avez que [AMOUNT] L$ et vous avez besoin de [AMOUNT2] L$ de plus.
</string>
<string name="balance_left">
Après cet achat, il vous restera [AMOUNT] L$.
</string>
<string name="balance_needed">
Pour avoir les moyens d&apos;acquérir ce terrain, vous devez acheter au moins [AMOUNT] L$.
</string>
<string name="no_parcel_selected">
(aucune parcelle sélectionnée)
</string>
<string name="buy_currency">
Acheter [LINDENS] L$ pour environ [USD] US$
</string>
</floater>

View File

@@ -1,26 +1,26 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="contents" title="Acheter une copie de l&apos;objet">
<text name="contents_text">
et ses contenus :
</text>
<text name="buy_text">
Acheter pour [AMOUNT] L$ à [NAME] ?
</text>
<button label="Annuler" label_selected="Annuler" name="cancel_btn"/>
<button label="Acheter" label_selected="Acheter" name="buy_btn"/>
<string name="title_buy_text">
Acheter
</string>
<string name="title_buy_copy_text">
Acheter une copie
</string>
<string name="no_copy_text">
(pas de copie)
</string>
<string name="no_modify_text">
(pas de modification)
</string>
<string name="no_transfer_text">
(pas de transfert)
</string>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="contents" title="Acheter une copie de l&apos;objet">
<text name="contents_text">
et ses contenus :
</text>
<text name="buy_text">
Acheter pour [AMOUNT] L$ à [NAME] ?
</text>
<button label="Annuler" label_selected="Annuler" name="cancel_btn"/>
<button label="Acheter" label_selected="Acheter" name="buy_btn"/>
<string name="title_buy_text">
Acheter
</string>
<string name="title_buy_copy_text">
Acheter une copie
</string>
<string name="no_copy_text">
(pas de copie)
</string>
<string name="no_modify_text">
(pas de modification)
</string>
<string name="no_transfer_text">
(pas de transfert)
</string>
</floater>

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="move floater">
<string name="rotate_tooltip">
Faire tourner la caméra autour du point central
</string>
<string name="zoom_tooltip">
Zoomer en direction du point central
</string>
<string name="move_tooltip">
Déplacer la caméra vers le haut et le bas, la gauche et la droite
</string>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="move floater">
<string name="rotate_tooltip">
Faire tourner la caméra autour du point central
</string>
<string name="zoom_tooltip">
Zoomer en direction du point central
</string>
<string name="move_tooltip">
Déplacer la caméra vers le haut et le bas, la gauche et la droite
</string>
</floater>

View File

@@ -1,98 +1,98 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="chat floater" title="Chat local">
<string name="ringing">
Connexion au chat vocal du Monde en cours…
</string>
<string name="connected">
Connecté(e)
</string>
<string name="unavailable">
Voix non disponible à l&apos;endroit où vous êtes
</string>
<string name="hang_up">
Déconnecté du chat vocal
</string>
<string name="voice_icon">
icn_voice-localchat.tga
</string>
<string name="IM_logging_string">
-- Archivage des IM activé --
</string>
<string name="IM_end_log_string">
- Fin de l&apos;archivage --
</string>
<string name="ScriptQuestionCautionChatGranted">
&apos;[OBJECTNAME]&apos;, un objet appartenant à [OWNERNAME], situé dans [REGIONNAME] à [REGIONPOS], a reçu le droit de : [PERMISSIONS].
</string>
<string name="ScriptQuestionCautionChatDenied">
&apos;[OBJECTNAME]&apos;, un objet appartenant à [OWNERNAME], situé dans [REGIONNAME] à [REGIONPOS], n&apos;a pas reçu le droit de : [PERMISSIONS].
</string>
<string name="ScriptTakeMoney">
Débiter vos Linden dollars (L$)
</string>
<string name="ActOnControlInputs">
Utiliser vos touches de commandes
</string>
<string name="RemapControlInputs">
Reconfigurer vos touches de commandes
</string>
<string name="AnimateYourAvatar">
Animer votre avatar
</string>
<string name="AttachToYourAvatar">
Attacher à votre avatar
</string>
<string name="ReleaseOwnership">
Passer l&apos;objet dans le domaine public (sans propriétaire)
</string>
<string name="LinkAndDelink">
Lier et délier d&apos;autres objets
</string>
<string name="AddAndRemoveJoints">
Créer et supprimer des liens avec d&apos;autres objets
</string>
<string name="ChangePermissions">
Modifier ses droits
</string>
<string name="TrackYourCamera">
Suivre votre caméra
</string>
<string name="ControlYourCamera">
Contrôler votre caméra
</string>
<layout_stack name="panels">
<layout_panel name="im_contents_panel">
<combo_box label="Gestures" name="Gesture">
<combo_item name="Gestures">
Gestures
</combo_item>
</combo_box>
<check_box label="Afficher le texte ignoré" name="show mutes"/>
<check_box bottom_delta="-15" enabled="true" follows="left|top" font="SansSerifSmall"
height="20" initial_value="false" label="Traduire le Chat" left_delta="0"
name="translate chat" radio_style="false" width="100" />
<button bottom_delta="8" left_delta="180" follows="left|top" font="SansSerifSmall"
height="20" width="100" label="Historique" name="chat_history_open"
tool_top="Click here to open chat history in external editor." />
<button label="&lt; &lt;" label_selected="&gt; &gt;" name="toggle_active_speakers_btn" tool_tip="Cliquez ici pour voir la liste des participants actifs dans cette session IM."/>
<panel name="chat_panel">
<string name="gesture_label">
Gestures
</string>
<line_editor label="Cliquer ici pour chatter." name="Chat Editor"/>
<flyout_button label="Dire" name="Say" tool_tip="(Entrée)">
<flyout_button_item name="shout_item">
Crier
</flyout_button_item>
<flyout_button_item name="say_item">
Dire
</flyout_button_item>
<flyout_button_item name="whisper_item">
Chuchoter
</flyout_button_item>
</flyout_button>
</panel>
</layout_panel>
</layout_stack>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="chat floater" title="Chat local">
<string name="ringing">
Connexion au chat vocal du Monde en cours…
</string>
<string name="connected">
Connecté(e)
</string>
<string name="unavailable">
Voix non disponible à l&apos;endroit où vous êtes
</string>
<string name="hang_up">
Déconnecté du chat vocal
</string>
<string name="voice_icon">
icn_voice-localchat.tga
</string>
<string name="IM_logging_string">
-- Archivage des IM activé --
</string>
<string name="IM_end_log_string">
- Fin de l&apos;archivage --
</string>
<string name="ScriptQuestionCautionChatGranted">
&apos;[OBJECTNAME]&apos;, un objet appartenant à [OWNERNAME], situé dans [REGIONNAME] à [REGIONPOS], a reçu le droit de : [PERMISSIONS].
</string>
<string name="ScriptQuestionCautionChatDenied">
&apos;[OBJECTNAME]&apos;, un objet appartenant à [OWNERNAME], situé dans [REGIONNAME] à [REGIONPOS], n&apos;a pas reçu le droit de : [PERMISSIONS].
</string>
<string name="ScriptTakeMoney">
Débiter vos Linden dollars (L$)
</string>
<string name="ActOnControlInputs">
Utiliser vos touches de commandes
</string>
<string name="RemapControlInputs">
Reconfigurer vos touches de commandes
</string>
<string name="AnimateYourAvatar">
Animer votre avatar
</string>
<string name="AttachToYourAvatar">
Attacher à votre avatar
</string>
<string name="ReleaseOwnership">
Passer l&apos;objet dans le domaine public (sans propriétaire)
</string>
<string name="LinkAndDelink">
Lier et délier d&apos;autres objets
</string>
<string name="AddAndRemoveJoints">
Créer et supprimer des liens avec d&apos;autres objets
</string>
<string name="ChangePermissions">
Modifier ses droits
</string>
<string name="TrackYourCamera">
Suivre votre caméra
</string>
<string name="ControlYourCamera">
Contrôler votre caméra
</string>
<layout_stack name="panels">
<layout_panel name="im_contents_panel">
<combo_box label="Gestures" name="Gesture">
<combo_item name="Gestures">
Gestures
</combo_item>
</combo_box>
<check_box label="Afficher le texte ignoré" name="show mutes"/>
<check_box bottom_delta="-15" enabled="true" follows="left|top" font="SansSerifSmall"
height="20" initial_value="false" label="Traduire le Chat" left_delta="0"
name="translate chat" radio_style="false" width="100" />
<button bottom_delta="8" left_delta="180" follows="left|top" font="SansSerifSmall"
height="20" width="100" label="Historique" name="chat_history_open"
tool_top="Click here to open chat history in external editor." />
<button label="&lt; &lt;" label_selected="&gt; &gt;" name="toggle_active_speakers_btn" tool_tip="Cliquez ici pour voir la liste des participants actifs dans cette session IM."/>
<panel name="chat_panel">
<string name="gesture_label">
Gestures
</string>
<line_editor label="Cliquer ici pour chatter." name="Chat Editor"/>
<flyout_button label="Dire" name="Say" tool_tip="(Entrée)">
<flyout_button_item name="shout_item">
Crier
</flyout_button_item>
<flyout_button_item name="say_item">
Dire
</flyout_button_item>
<flyout_button_item name="whisper_item">
Chuchoter
</flyout_button_item>
</flyout_button>
</panel>
</layout_panel>
</layout_stack>
</floater>

View File

@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<multi_floater name="floater_chatterbox" title="Communiquer" />
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<multi_floater name="floater_chatterbox" title="Communiquer" />

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="groups" title="Groupes">
<text name="groupdesc">
Choisissez un groupe :
</text>
<button label="OK" label_selected="OK" name="OK" />
<button label="Annuler" label_selected="Annuler" name="Cancel" />
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="groups" title="Groupes">
<text name="groupdesc">
Choisissez un groupe :
</text>
<button label="OK" label_selected="OK" name="OK" />
<button label="Annuler" label_selected="Annuler" name="Cancel" />
</floater>

View File

@@ -1,32 +1,32 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="ColorPicker" title="Choix de texture et de couleur">
<text name="r_val_text">
Rouge :
</text>
<text name="g_val_text">
Vert :
</text>
<text name="b_val_text">
Bleu :
</text>
<text name="h_val_text">
Teinte :
</text>
<text name="s_val_text">
Sat :
</text>
<text name="l_val_text">
Lum :
</text>
<check_box label="Application auto" left="4" name="apply_immediate" width="108"/>
<button label="" label_selected="" left_delta="138" name="color_pipette"/>
<button label="Annuler" label_selected="Annuler" name="cancel_btn"/>
<button label="Sélectionner" label_selected="Sélectionner" name="select_btn"/>
<text left="8" name="Current color:">
Couleur actuelle :
</text>
<text left="8" name="(Drag below to save.)" width="114">
(Faire glisser dessous
pour enregistrer.)
</text>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="ColorPicker" title="Choix de texture et de couleur">
<text name="r_val_text">
Rouge :
</text>
<text name="g_val_text">
Vert :
</text>
<text name="b_val_text">
Bleu :
</text>
<text name="h_val_text">
Teinte :
</text>
<text name="s_val_text">
Sat :
</text>
<text name="l_val_text">
Lum :
</text>
<check_box label="Application auto" left="4" name="apply_immediate" width="108"/>
<button label="" label_selected="" left_delta="138" name="color_pipette"/>
<button label="Annuler" label_selected="Annuler" name="cancel_btn"/>
<button label="Sélectionner" label_selected="Sélectionner" name="select_btn"/>
<text left="8" name="Current color:">
Couleur actuelle :
</text>
<text left="8" name="(Drag below to save.)" width="114">
(Faire glisser dessous
pour enregistrer.)
</text>
</floater>

View File

@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="modal container" title=" ">
<button label="Continuer" label_selected="Continuer" name="Continue" />
<button label="Annuler" label_selected="Annuler" name="Cancel" />
<text name="tos_heading">
Veuillez lire le message suivant avec attention.
</text>
<text_editor name="tos_text">
TOS_TEXT
</text_editor>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="modal container" title=" ">
<button label="Continuer" label_selected="Continuer" name="Continue" />
<button label="Annuler" label_selected="Annuler" name="Cancel" />
<text name="tos_heading">
Veuillez lire le message suivant avec attention.
</text>
<text_editor name="tos_text">
TOS_TEXT
</text_editor>
</floater>

File diff suppressed because it is too large Load Diff

View File

@@ -1,97 +1,97 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="Day Cycle Floater" title="Editeur du cycle du jour">
<tab_container name="Day Cycle Tabs">
<panel label="Cycle du jour" name="Day Cycle">
<button label="?" name="WLDayCycleHelp" />
<text name="WL12am">
Minuit
</text>
<text name="WL3am">
3h
</text>
<text name="WL6am">
6h
</text>
<text name="WL9amHash">
9h
</text>
<text name="WL12pmHash">
Midi
</text>
<text name="WL3pm">
15h
</text>
<text name="WL6pm">
18h
</text>
<text name="WL9pm">
21h
</text>
<text name="WL12am2">
Minuit
</text>
<text name="WL12amHash">
|
</text>
<text name="WL3amHash">
I
</text>
<text name="WL6amHash">
|
</text>
<text name="WL9amHash2">
I
</text>
<text name="WL12pmHash2">
|
</text>
<text name="WL3pmHash">
I
</text>
<text name="WL6pmHash">
|
</text>
<text name="WL9pmHash">
I
</text>
<text name="WL12amHash2">
|
</text>
<button label="Ajouter clé" label_selected="Ajouter clé" name="WLAddKey" width="89" bottom="-45" />
<button label="Supprimer clé" label_selected="Supprimer clé" name="WLDeleteKey" width="89" bottom="-70" />
<text name="WLCurKeyFrameText">
Réglages des images-clés :
</text>
<text name="WLCurKeyTimeText">
Heure de la clé :
</text>
<spinner label="Heure" name="WLCurKeyHour" />
<spinner label="Min" name="WLCurKeyMin" />
<text name="WLCurKeyTimeText2">
Préréglages clés :
</text>
<combo_box label="Préréglage" name="WLKeyPresets" />
<text name="DayCycleText">
Snap :
</text>
<combo_box label="5 min" name="WLSnapOptions" />
<text name="DayCycleText2">
Durée du cycle :
</text>
<spinner label="Heure" name="WLLengthOfDayHour" />
<spinner label="Min" name="WLLengthOfDayMin" />
<spinner label="S" name="WLLengthOfDaySec" label_width="10" width="50" left_delta="75"/>
<text name="DayCycleText3">
Prévisualiser :
</text>
<button label="Jouer" label_selected="Jouer" name="WLAnimSky" />
<button label="Stop !" label_selected="Stop" name="WLStopAnimSky" />
<button label="Utiliser heure domaine" label_selected="Aller heure domaine"
name="WLUseLindenTime" />
<button label="Enregistrer jour test" label_selected="Enregistrer jour test"
name="WLSaveDayCycle" />
<button label="Charger jour test" label_selected="Charger jour test"
name="WLLoadDayCycle" />
</panel>
</tab_container>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="Day Cycle Floater" title="Editeur du cycle du jour">
<tab_container name="Day Cycle Tabs">
<panel label="Cycle du jour" name="Day Cycle">
<button label="?" name="WLDayCycleHelp" />
<text name="WL12am">
Minuit
</text>
<text name="WL3am">
3h
</text>
<text name="WL6am">
6h
</text>
<text name="WL9amHash">
9h
</text>
<text name="WL12pmHash">
Midi
</text>
<text name="WL3pm">
15h
</text>
<text name="WL6pm">
18h
</text>
<text name="WL9pm">
21h
</text>
<text name="WL12am2">
Minuit
</text>
<text name="WL12amHash">
|
</text>
<text name="WL3amHash">
I
</text>
<text name="WL6amHash">
|
</text>
<text name="WL9amHash2">
I
</text>
<text name="WL12pmHash2">
|
</text>
<text name="WL3pmHash">
I
</text>
<text name="WL6pmHash">
|
</text>
<text name="WL9pmHash">
I
</text>
<text name="WL12amHash2">
|
</text>
<button label="Ajouter clé" label_selected="Ajouter clé" name="WLAddKey" width="89" bottom="-45" />
<button label="Supprimer clé" label_selected="Supprimer clé" name="WLDeleteKey" width="89" bottom="-70" />
<text name="WLCurKeyFrameText">
Réglages des images-clés :
</text>
<text name="WLCurKeyTimeText">
Heure de la clé :
</text>
<spinner label="Heure" name="WLCurKeyHour" />
<spinner label="Min" name="WLCurKeyMin" />
<text name="WLCurKeyTimeText2">
Préréglages clés :
</text>
<combo_box label="Préréglage" name="WLKeyPresets" />
<text name="DayCycleText">
Snap :
</text>
<combo_box label="5 min" name="WLSnapOptions" />
<text name="DayCycleText2">
Durée du cycle :
</text>
<spinner label="Heure" name="WLLengthOfDayHour" />
<spinner label="Min" name="WLLengthOfDayMin" />
<spinner label="S" name="WLLengthOfDaySec" label_width="10" width="50" left_delta="75"/>
<text name="DayCycleText3">
Prévisualiser :
</text>
<button label="Jouer" label_selected="Jouer" name="WLAnimSky" />
<button label="Stop !" label_selected="Stop" name="WLStopAnimSky" />
<button label="Utiliser heure domaine" label_selected="Aller heure domaine"
name="WLUseLindenTime" />
<button label="Enregistrer jour test" label_selected="Enregistrer jour test"
name="WLSaveDayCycle" />
<button label="Charger jour test" label_selected="Charger jour test"
name="WLLoadDayCycle" />
</panel>
</tab_container>
</floater>

View File

@@ -1,3 +1,3 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="floater_device_settings"
title="Paramètres du matériel utilisé pour le chat vocal" />
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="floater_device_settings"
title="Paramètres du matériel utilisé pour le chat vocal" />

View File

@@ -1,427 +1,427 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="directory" title="Rechercher dans Second Life">
<tab_container name="Directory Tabs">
<panel label="Tout" name="find_all_panel">
<string name="searching_text">
Recherche en cours...
</string>
<string name="not_found_text">
Aucun résultat.
</string>
<text name="find" width="63">
Trouver :
</text>
<line_editor label="Rechercher" name="search_editor" tool_tip="Rechercher dans Second Life"/>
<button label="Précédente" name="back_btn" width="82"/>
<button label="Suivante" left="316" name="forward_btn" width="77"/>
<button label="Rechercher" name="search_btn"/>
<combo_box name="Category">
<combo_item name="AnyCategory">
Toutes catégories
</combo_item>
<combo_item name="Events">
Événements
</combo_item>
<combo_item name="Groups">
Groupes
</combo_item>
<combo_item name="People">
Résidents
</combo_item>
<combo_item name="Places">
Lieux
</combo_item>
<combo_item name="Wiki">
Wiki
</combo_item>
</combo_box>
<check_box label="Contenu PG" name="incpg"/>
<check_box label="Contenu Mature" name="incmature"/>
<check_box label="Contenu Adult" name="incadult"/>
<button label="?" label_selected="?" name="?"/>
<string name="loading_text">
Chargement en cours...
</string>
<string name="done_text">
Fini
</string>
<string name="redirect_404_url">
http://secondlife.com/app/search/notfound.html
</string>
<string name="default_search_page">
http://secondlife.com/app/search/index.php?
</string>
</panel>
<panel label="Petites annonces" name="classified_panel">
<string name="searching_text">
Recherche en cours...
</string>
<string name="not_found_text">
Aucun résultat.
</string>
<text name="find" width="63">
Trouver :
</text>
<line_editor name="name"/>
<check_box label="Contenu PG" name="incpg"/>
<check_box label="Contenu Mature" name="incmature"/>
<check_box label="Contenu Adult" name="incadult"/>
<combo_box name="Category">
<combo_item name="AnyCategory">
Toutes catégories
</combo_item>
<combo_item name="Shopping">
Shopping
</combo_item>
<combo_item name="LandRental">
Terrains à louer
</combo_item>
<combo_item name="PropertyRental">
Propriétés à louer
</combo_item>
<combo_item name="SpecialAttraction">
Divertissements
</combo_item>
<combo_item name="NewProducts">
Nouveaux produits
</combo_item>
<combo_item name="Employment">
Emplois
</combo_item>
<combo_item name="Wanted">
Offres
</combo_item>
<combo_item name="Service">
Services
</combo_item>
<combo_item name="Personal">
Rencontres
</combo_item>
</combo_box>
<button label="Parcourir" label_selected="Parcourir" name="Browse"/>
<button label="Rechercher" label_selected="Rechercher" name="Search" width="85"/>
<button label="Passer une annonce…" label_selected="Passer une annonce…" name="Place an Ad..."/>
<button label="Supprimer" label_selected="Supprimer" name="Delete"/>
<scroll_list name="results">
<column label="" name="icon"/>
<column label="" name="type"/>
<column label="Nom" name="name"/>
<column label="Prix" name="price"/>
</scroll_list>
<button label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;"/>
<button label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev"/>
</panel>
<panel label="Événements" name="events_panel">
<string name="searching_text">
Recherche en cours...
</string>
<string name="not_found_text">
Aucun résultat.
</string>
<text name="text2">
Trouver :
</text>
<line_editor name="event_search_text"/>
<radio_group name="date_mode">
<radio_item name="current">
En cours et futurs
</radio_item>
<radio_item name="date">
Date
</radio_item>
</radio_group>
<button label="&lt;&lt;" label_selected="&lt;&lt;" name="&lt;&lt;" tool_tip="Revenir en arrière d&apos;un jour"/>
<text name="date_text">
6/6
</text>
<button label="&gt;&gt;" label_selected="&gt;&gt;" name="&gt;&gt;" tool_tip="Avancer d&apos;un jour"/>
<button bottom="-62" label="Aujourd&apos;hui" label_selected="Aujourd&apos;hui" left_delta="-72" name="Today" tool_tip="Afficher les événements qui ont lieu aujourd&apos;hui" width="95"/>
<text name="text">
Catégorie :
</text>
<combo_box name="category combo" width="175">
<combo_item name="All">
Toutes catégories
</combo_item>
<combo_item name="Discussion">
Discussions
</combo_item>
<combo_item name="Sports">
Sports
</combo_item>
<combo_item name="LiveMusic">
Musique live
</combo_item>
<combo_item name="Commercial">
Publicités
</combo_item>
<combo_item name="Nightlife/Entertainment">
Divertissements/Soirées
</combo_item>
<combo_item name="Games/Contests">
Jeux/Compétitions
</combo_item>
<combo_item name="Pageants">
Concours
</combo_item>
<combo_item name="Education">
Éducation
</combo_item>
<combo_item name="ArtsandCulture">
Arts et Culture
</combo_item>
<combo_item name="Charity/SupportGroups">
Groupes d&apos;entraide/Caritatif
</combo_item>
<combo_item name="Miscellaneous">
Divers
</combo_item>
</combo_box>
<check_box label="Contenu PG" name="incpg"/>
<check_box label="Contenu Mature" name="incmature"/>
<check_box label="Contenu Adult" name="incadult"/>
<button label="Rechercher" label_selected="Rechercher" name="Search" tool_tip="Rechercher"/>
<button label="Supprimer" label_selected="Supprimer" name="Delete"/>
<scroll_list name="results">
<column label="" name="icon"/>
<column label="" name="type"/>
<column label="Nom" name="name"/>
<column label="Heure (Californie)" name="date" width="115"/>
<column label="" name="event_id"/>
<column label="Heure" name="time"/>
</scroll_list>
<button label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;"/>
<button label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev"/>
</panel>
<panel label="À la Une" name="showcase_panel">
<string name="searching_text">
Recherche en cours...
</string>
<string name="not_found_text">
Aucun résultat.
</string>
<button label="Précédente" name="back_btn" width="82"/>
<button label="Suivante" left_delta="87" name="forward_btn" width="82"/>
<string name="loading_text">
Chargement en cours...
</string>
<string name="done_text">
Fini
</string>
<string name="redirect_404_url">
http://secondlife.com/app/search/notfound.html
</string>
<string name="default_search_page">
http://secondlife.com/app/showcase/index.php?
</string>
</panel>
<panel label="Terrains à vendre" name="land_sales_panel">
<string name="searching_text">
Recherche en cours...
</string>
<string name="not_found_text">
Aucun résultat.
</string>
<string name="land_help_text">
Vous pouvez acheter un terrain directement en dollars Linden (L$) ou aux enchères (en L$ ou US$).
Pour acheter directement, visitez le terrain et cliquez sur le nom de l&apos;endroit dans la barre de titre.
</string>
<text name="find">
Trouver :
</text>
<check_box label="Contenu PG" name="incpg" left="450"/>
<check_box label="Contenu Mature" name="incmature" left="450"/>
<check_box label="Contenu Adult" name="incadult" left="450"/>
<combo_box left="298" name="type" width="145">
<combo_item name="AllTypes">
Tous types
</combo_item>
<combo_item name="Auction">
Enchères
</combo_item>
<combo_item name="MainlandSales">
À vendre - Continent
</combo_item>
<combo_item name="EstateSales">
À vendre - Région privée
</combo_item>
</combo_box>
<check_box label="Prix &#8804; " name="pricecheck"/>
<text left="186" name="pricecheck_symbol">
L$
</text>
<check_box label="Surface &#8805; " name="areacheck" width="90"/>
<text left="186" name="areacheck_symbol">
m²
</text>
<line_editor left="130" name="priceedit"/>
<line_editor left="130" name="areaedit"/>
<button label="Rechercher" label_selected="Rechercher" name="Search" width="85"/>
<scroll_list name="results">
<column label="" name="icon"/>
<column label="" name="type"/>
<column label="Nom" name="name"/>
<column label="Type" name="landtype"/>
<column label="Prix en L$" name="price" width="75"/>
<column label="Surface" name="area" width="65"/>
<column label="L$/m²" name="per_meter"/>
</scroll_list>
<button label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;"/>
<button label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev"/>
</panel>
<panel label="Lieux" name="places_panel">
<string name="searching_text">
Recherche en cours...
</string>
<string name="not_found_text">
Aucun résultat.
</string>
<text name="find">
Trouver :
</text>
<line_editor name="name"/>
<check_box label="Contenu PG" name="incpg"/>
<check_box label="Contenu Mature" name="incmature"/>
<check_box label="Contenu Adult" name="incadult"/>
<combo_box name="Category">
<combo_item name="AnyCategory">
Toutes catégories
</combo_item>
<combo_item name="LindenLocation">
Appartenant aux Lindens
</combo_item>
<combo_item name="Arts&amp;Culture">
Art et Culture
</combo_item>
<combo_item name="Business">
Affaires
</combo_item>
<combo_item name="Educational">
Éducation
</combo_item>
<combo_item name="Gaming">
Jeux
</combo_item>
<combo_item name="Hangout">
Favoris
</combo_item>
<combo_item name="NewcomerFriendly">
Accueil pour les nouveaux
</combo_item>
<combo_item name="Parks&amp;Nature">
Parcs et Nature
</combo_item>
<combo_item name="Residential">
Résidentiel
</combo_item>
<combo_item name="Shopping">
Shopping
</combo_item>
<combo_item name="Other">
Autre
</combo_item>
</combo_box>
<combo_box name="Category_Adult">
<combo_item name="AnyCategory">
Toutes catégories
</combo_item>
<combo_item name="LindenLocation">
Appartenant aux Lindens
</combo_item>
<combo_item name="Adult">
Adult
</combo_item>
<combo_item name="Arts&amp;Culture">
Art et Culture
</combo_item>
<combo_item name="Business">
Affaires
</combo_item>
<combo_item name="Educational">
Éducation
</combo_item>
<combo_item name="Gaming">
Jeux
</combo_item>
<combo_item name="Hangout">
Favoris
</combo_item>
<combo_item name="NewcomerFriendly">
Accueil pour les nouveaux
</combo_item>
<combo_item name="Parks&amp;Nature">
Parcs et Nature
</combo_item>
<combo_item name="Residential">
Résidentiel
</combo_item>
<combo_item name="Shopping">
Shopping
</combo_item>
<combo_item name="Other">
Autre
</combo_item>
</combo_box>
<button label="Rechercher" label_selected="Rechercher" name="Search"/>
<scroll_list name="results">
<column label="" name="icon"/>
<column label="" name="type"/>
<column label="Nom" name="name"/>
<column label="Trafic" name="dwell"/>
</scroll_list>
<button label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;"/>
<button label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev"/>
</panel>
<panel label="Résidents" name="people_panel">
<string name="searching_text">
Recherche en cours...
</string>
<string name="not_found_text">
Aucun résultat.
</string>
<text name="find">
Trouver :
</text>
<line_editor name="name"/>
<button label="Rechercher" label_selected="Rechercher" name="Search"/>
<scroll_list name="results" width="286">
<column label="" name="icon"/>
<column label="" name="type"/>
<column label="Nom" name="name" width="234"/>
</scroll_list>
<button right="290" label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;"/>
<button right="204" label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev"/>
</panel>
<panel label="Groupes" name="groups_panel">
<string name="searching_text">
Recherche en cours...
</string>
<string name="not_found_text">
Aucun résultat.
</string>
<text name="find">
Trouver :
</text>
<line_editor label="Rechercher" name="search_editor" tool_tip="Rechercher dans Second Life"/>
<button label="Précédente" name="back_btn" width="82"/>
<button label="Suivante" left="316" name="forward_btn" width="77"/>
<button label="Rechercher" name="search_btn"/>
<check_box label="Contenu PG" name="incpg"/>
<check_box label="Contenu Mature" name="incmature"/>
<check_box label="Contenu Adult" name="incadult"/>
<string name="loading_text">
Chargement en cours...
</string>
<string name="done_text">
Fini
</string>
<string name="redirect_404_url">
http://secondlife.com/app/search/notfound.html
</string>
<string name="default_search_page">
http://secondlife.com/app/search/index_groups.php?
</string>
</panel>
</tab_container>
<panel left="310" name="Panel Avatar" width="470" />
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="directory" title="Rechercher dans Second Life">
<tab_container name="Directory Tabs">
<panel label="Tout" name="find_all_panel">
<string name="searching_text">
Recherche en cours...
</string>
<string name="not_found_text">
Aucun résultat.
</string>
<text name="find" width="63">
Trouver :
</text>
<line_editor label="Rechercher" name="search_editor" tool_tip="Rechercher dans Second Life"/>
<button label="." name="back_btn" width="20"/>
<button label="." left="316" name="forward_btn" width="20"/>
<button label="Rechercher" name="search_btn"/>
<combo_box name="Category">
<combo_item name="AnyCategory">
Toutes catégories
</combo_item>
<combo_item name="Events">
Événements
</combo_item>
<combo_item name="Groups">
Groupes
</combo_item>
<combo_item name="People">
Résidents
</combo_item>
<combo_item name="Places">
Lieux
</combo_item>
<combo_item name="Wiki">
Wiki
</combo_item>
</combo_box>
<check_box label="Contenu PG" name="incpg"/>
<check_box label="Contenu Mature" name="incmature"/>
<check_box label="Contenu Adult" name="incadult"/>
<button label="?" label_selected="?" name="?"/>
<string name="loading_text">
Chargement en cours...
</string>
<string name="done_text">
Fini
</string>
<string name="redirect_404_url">
http://secondlife.com/app/search/notfound.html
</string>
<string name="default_search_page">
http://secondlife.com/app/search/index.php?
</string>
</panel>
<panel label="Petites annonces" name="classified_panel">
<string name="searching_text">
Recherche en cours...
</string>
<string name="not_found_text">
Aucun résultat.
</string>
<text name="find" width="63">
Trouver :
</text>
<line_editor name="name"/>
<check_box label="Contenu PG" name="incpg"/>
<check_box label="Contenu Mature" name="incmature"/>
<check_box label="Contenu Adult" name="incadult"/>
<combo_box name="Category">
<combo_item name="AnyCategory">
Toutes catégories
</combo_item>
<combo_item name="Shopping">
Shopping
</combo_item>
<combo_item name="LandRental">
Terrains à louer
</combo_item>
<combo_item name="PropertyRental">
Propriétés à louer
</combo_item>
<combo_item name="SpecialAttraction">
Divertissements
</combo_item>
<combo_item name="NewProducts">
Nouveaux produits
</combo_item>
<combo_item name="Employment">
Emplois
</combo_item>
<combo_item name="Wanted">
Offres
</combo_item>
<combo_item name="Service">
Services
</combo_item>
<combo_item name="Personal">
Rencontres
</combo_item>
</combo_box>
<button label="Parcourir" label_selected="Parcourir" name="Browse"/>
<button label="Rechercher" label_selected="Rechercher" name="Search" width="85"/>
<button label="Passer une annonce…" label_selected="Passer une annonce…" name="Place an Ad..."/>
<button label="Supprimer" label_selected="Supprimer" name="Delete"/>
<scroll_list name="results">
<column label="" name="icon"/>
<column label="" name="type"/>
<column label="Nom" name="name"/>
<column label="Prix" name="price"/>
</scroll_list>
<button label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;"/>
<button label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev"/>
</panel>
<panel label="Événements" name="events_panel">
<string name="searching_text">
Recherche en cours...
</string>
<string name="not_found_text">
Aucun résultat.
</string>
<text name="text2">
Trouver :
</text>
<line_editor name="event_search_text"/>
<radio_group name="date_mode">
<radio_item name="current">
En cours et futurs
</radio_item>
<radio_item name="date">
Date
</radio_item>
</radio_group>
<button label="&lt;&lt;" label_selected="&lt;&lt;" name="&lt;&lt;" tool_tip="Revenir en arrière d&apos;un jour"/>
<text name="date_text">
6/6
</text>
<button label="&gt;&gt;" label_selected="&gt;&gt;" name="&gt;&gt;" tool_tip="Avancer d&apos;un jour"/>
<button bottom="-62" label="Aujourd&apos;hui" label_selected="Aujourd&apos;hui" left_delta="-72" name="Today" tool_tip="Afficher les événements qui ont lieu aujourd&apos;hui" width="95"/>
<text name="text">
Catégorie :
</text>
<combo_box name="category combo" width="175">
<combo_item name="All">
Toutes catégories
</combo_item>
<combo_item name="Discussion">
Discussions
</combo_item>
<combo_item name="Sports">
Sports
</combo_item>
<combo_item name="LiveMusic">
Musique live
</combo_item>
<combo_item name="Commercial">
Publicités
</combo_item>
<combo_item name="Nightlife/Entertainment">
Divertissements/Soirées
</combo_item>
<combo_item name="Games/Contests">
Jeux/Compétitions
</combo_item>
<combo_item name="Pageants">
Concours
</combo_item>
<combo_item name="Education">
Éducation
</combo_item>
<combo_item name="ArtsandCulture">
Arts et Culture
</combo_item>
<combo_item name="Charity/SupportGroups">
Groupes d&apos;entraide/Caritatif
</combo_item>
<combo_item name="Miscellaneous">
Divers
</combo_item>
</combo_box>
<check_box label="Contenu PG" name="incpg"/>
<check_box label="Contenu Mature" name="incmature"/>
<check_box label="Contenu Adult" name="incadult"/>
<button label="Rechercher" label_selected="Rechercher" name="Search" tool_tip="Rechercher"/>
<button label="Supprimer" label_selected="Supprimer" name="Delete"/>
<scroll_list name="results">
<column label="" name="icon"/>
<column label="" name="type"/>
<column label="Nom" name="name"/>
<column label="Heure (Californie)" name="date" width="115"/>
<column label="" name="event_id"/>
<column label="Heure" name="time"/>
</scroll_list>
<button label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;"/>
<button label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev"/>
</panel>
<panel label="À la Une" name="showcase_panel">
<string name="searching_text">
Recherche en cours...
</string>
<string name="not_found_text">
Aucun résultat.
</string>
<button label="Précédente" name="back_btn" width="82"/>
<button label="Suivante" left_delta="87" name="forward_btn" width="82"/>
<string name="loading_text">
Chargement en cours...
</string>
<string name="done_text">
Fini
</string>
<string name="redirect_404_url">
http://secondlife.com/app/search/notfound.html
</string>
<string name="default_search_page">
http://secondlife.com/app/showcase/index.php?
</string>
</panel>
<panel label="Terrains à vendre" name="land_sales_panel">
<string name="searching_text">
Recherche en cours...
</string>
<string name="not_found_text">
Aucun résultat.
</string>
<string name="land_help_text">
Vous pouvez acheter un terrain directement en dollars Linden (L$) ou aux enchères (en L$ ou US$).
Pour acheter directement, visitez le terrain et cliquez sur le nom de l&apos;endroit dans la barre de titre.
</string>
<text name="find">
Trouver :
</text>
<check_box label="Contenu PG" name="incpg" left="450"/>
<check_box label="Contenu Mature" name="incmature" left="450"/>
<check_box label="Contenu Adult" name="incadult" left="450"/>
<combo_box left="298" name="type" width="145">
<combo_item name="AllTypes">
Tous types
</combo_item>
<combo_item name="Auction">
Enchères
</combo_item>
<combo_item name="MainlandSales">
À vendre - Continent
</combo_item>
<combo_item name="EstateSales">
À vendre - Région privée
</combo_item>
</combo_box>
<check_box label="Prix &#8804; " name="pricecheck"/>
<text left="186" name="pricecheck_symbol">
L$
</text>
<check_box label="Surface &#8805; " name="areacheck" width="90"/>
<text left="186" name="areacheck_symbol">
m²
</text>
<line_editor left="130" name="priceedit"/>
<line_editor left="130" name="areaedit"/>
<button label="Rechercher" label_selected="Rechercher" name="Search" width="85"/>
<scroll_list name="results">
<column label="" name="icon"/>
<column label="" name="type"/>
<column label="Nom" name="name"/>
<column label="Type" name="landtype"/>
<column label="Prix en L$" name="price" width="75"/>
<column label="Surface" name="area" width="65"/>
<column label="L$/m²" name="per_meter"/>
</scroll_list>
<button label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;"/>
<button label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev"/>
</panel>
<panel label="Lieux" name="places_panel">
<string name="searching_text">
Recherche en cours...
</string>
<string name="not_found_text">
Aucun résultat.
</string>
<text name="find">
Trouver :
</text>
<line_editor name="name"/>
<check_box label="Contenu PG" name="incpg"/>
<check_box label="Contenu Mature" name="incmature"/>
<check_box label="Contenu Adult" name="incadult"/>
<combo_box name="Category">
<combo_item name="AnyCategory">
Toutes catégories
</combo_item>
<combo_item name="LindenLocation">
Appartenant aux Lindens
</combo_item>
<combo_item name="Arts&amp;Culture">
Art et Culture
</combo_item>
<combo_item name="Business">
Affaires
</combo_item>
<combo_item name="Educational">
Éducation
</combo_item>
<combo_item name="Gaming">
Jeux
</combo_item>
<combo_item name="Hangout">
Favoris
</combo_item>
<combo_item name="NewcomerFriendly">
Accueil pour les nouveaux
</combo_item>
<combo_item name="Parks&amp;Nature">
Parcs et Nature
</combo_item>
<combo_item name="Residential">
Résidentiel
</combo_item>
<combo_item name="Shopping">
Shopping
</combo_item>
<combo_item name="Other">
Autre
</combo_item>
</combo_box>
<combo_box name="Category_Adult">
<combo_item name="AnyCategory">
Toutes catégories
</combo_item>
<combo_item name="LindenLocation">
Appartenant aux Lindens
</combo_item>
<combo_item name="Adult">
Adult
</combo_item>
<combo_item name="Arts&amp;Culture">
Art et Culture
</combo_item>
<combo_item name="Business">
Affaires
</combo_item>
<combo_item name="Educational">
Éducation
</combo_item>
<combo_item name="Gaming">
Jeux
</combo_item>
<combo_item name="Hangout">
Favoris
</combo_item>
<combo_item name="NewcomerFriendly">
Accueil pour les nouveaux
</combo_item>
<combo_item name="Parks&amp;Nature">
Parcs et Nature
</combo_item>
<combo_item name="Residential">
Résidentiel
</combo_item>
<combo_item name="Shopping">
Shopping
</combo_item>
<combo_item name="Other">
Autre
</combo_item>
</combo_box>
<button label="Rechercher" label_selected="Rechercher" name="Search"/>
<scroll_list name="results">
<column label="" name="icon"/>
<column label="" name="type"/>
<column label="Nom" name="name"/>
<column label="Trafic" name="dwell"/>
</scroll_list>
<button label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;"/>
<button label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev"/>
</panel>
<panel label="Résidents" name="people_panel">
<string name="searching_text">
Recherche en cours...
</string>
<string name="not_found_text">
Aucun résultat.
</string>
<text name="find">
Trouver :
</text>
<line_editor name="name"/>
<button label="Rechercher" label_selected="Rechercher" name="Search"/>
<scroll_list name="results" width="286">
<column label="" name="icon"/>
<column label="" name="type"/>
<column label="Nom" name="name" width="234"/>
</scroll_list>
<button right="290" label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;"/>
<button right="204" label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev"/>
</panel>
<panel label="Groupes" name="groups_panel">
<string name="searching_text">
Recherche en cours...
</string>
<string name="not_found_text">
Aucun résultat.
</string>
<text name="find">
Trouver :
</text>
<line_editor label="Rechercher" name="search_editor" tool_tip="Rechercher dans Second Life"/>
<button label="Précédente" name="back_btn" width="82"/>
<button label="Suivante" left="316" name="forward_btn" width="77"/>
<button label="Rechercher" name="search_btn"/>
<check_box label="Contenu PG" name="incpg"/>
<check_box label="Contenu Mature" name="incmature"/>
<check_box label="Contenu Adult" name="incadult"/>
<string name="loading_text">
Chargement en cours...
</string>
<string name="done_text">
Fini
</string>
<string name="redirect_404_url">
http://secondlife.com/app/search/notfound.html
</string>
<string name="default_search_page">
http://secondlife.com/app/search/index_groups.php?
</string>
</panel>
</tab_container>
<panel left="310" name="Panel Avatar" width="470" />
</floater>

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater can_close="true" can_drag_on_left="false" can_minimize="false"
can_resize="false" enabled="true" height="220"
mouse_opaque="true" name="Display Name" title="CHANGE DISPLAY NAME" width="400">
<text length="1" bottom_delta="-50" font="SansSerif" height="25" left="20" text_color="AlertTextColor" name="lockout_text" visible="true" width="360"
wrap="true">
Prochain changement possible: [TIME].
</text>
<text left="20" bottom_delta="-20" width="360" height="18" font="SansSerif" name="set_name_label">
Nouveau Display Name:
</text>
<line_editor max_length="31" name="display_name_editor" width="300" height="20" left="50" bottom_delta="-20" />
<text left="20" bottom_delta="-25" width="360" height="18" font="SansSerif" name="name_confirm_label">
Ecrivez le Display Name a nouveau pour confirmer:
</text>
<line_editor max_length="31" width="300" name="display_name_confirm" height="20" bottom_delta="-20" left="50" />
<button height="20" bottom_delta="-28" label="Sauver" font="SansSerif" left="20" name="save_btn" tool_tip="Save your new Display Name" width="113" />
<button height="20" bottom_delta="0" label="Recommencer" font="SansSerif" left_delta="123" name="reset_btn" tool_tip="Make Display Name the same as Username" width="113" />
<button height="20" bottom_delta="0" label="Annuler" font="SansSerif" left_delta="123" name="cancel_btn" tool_tip="Cancel and close this Dialog" width="113" />
<text left="20" bottom_delta="-25" width="360" height="18" font="SansSerif" name="name_confirm_label">
Le nom que vous ajoutez a votre avatar est le Display Name.
</text>
<text left="20" bottom_delta="-18" width="360" height="18" font="SansSerif" name="name_confirm_label">
Ecrivez le Display Name a nouveau pour confirmer.
</text>
</floater>

View File

@@ -1,27 +1,27 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Environment Editor Floater" title="Éditeur d&apos;environnement">
<text bottom="-45" name="EnvTimeText">
Heure de la
journée
</text>
<text bottom_delta="-36" name="EnvTimeText2">
Midi
</text>
<text name="EnvCloudText">
Couverture
nuageuse
</text>
<text bottom="-45" name="EnvWaterColorText">
Couleur de
l&apos;eau
</text>
<color_swatch name="EnvWaterColor" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs"/>
<text name="EnvWaterFogText">
Brouillard
dans l&apos;eau
</text>
<button bottom="-144" label="Utiliser heure du domaine" name="EnvUseEstateTimeButton" width="145"/>
<button label="Ciel avancé" name="EnvAdvancedSkyButton" width="145" left="162" />
<button label="Eau avancée" name="EnvAdvancedWaterButton" width="145" left="316"/>
<button label="?" name="EnvSettingsHelpButton"/>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Environment Editor Floater" title="Éditeur d&apos;environnement">
<text bottom="-45" name="EnvTimeText">
Heure de la
journée
</text>
<text bottom_delta="-36" name="EnvTimeText2">
Midi
</text>
<text name="EnvCloudText">
Couverture
nuageuse
</text>
<text bottom="-45" name="EnvWaterColorText">
Couleur de
l&apos;eau
</text>
<color_swatch name="EnvWaterColor" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs"/>
<text name="EnvWaterFogText">
Brouillard
dans l&apos;eau
</text>
<button bottom="-144" label="Utiliser heure du domaine" name="EnvUseEstateTimeButton" width="145"/>
<button label="Ciel avancé" name="EnvAdvancedSkyButton" width="145" left="162" />
<button label="Eau avancée" name="EnvAdvancedWaterButton" width="145" left="316"/>
<button label="?" name="EnvSettingsHelpButton"/>
</floater>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="contents" title="Test de la police">
<text name="linea">
OverrideTest, Times-BOLD doit être sélectionné ici. (De default/xui/fr)
</text>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="contents" title="Test de la police">
<text name="linea">
OverrideTest, Times-BOLD doit être sélectionné ici. (De default/xui/fr)
</text>
</floater>

View File

@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="gestures" title="Gestures utilisées">
<text name="help_label">
Double-cliquez sur une gesture pour jouer les animations
et les sons.
</text>
<scroll_list bottom_delta="-385" height="360" name="gesture_list">
<column label="Déclencheur" name="trigger" width="85" />
<column label="Touche" name="shortcut" />
<column label="" name="key" />
<column label="Nom" name="name" width="145"/>
</scroll_list>
<button label="Nouveau" name="new_gesture_btn" />
<button label="Inventaire" name="inventory_btn" />
<button label="Modifier" name="edit_btn" />
<button label="Jouer" name="play_btn" />
<button label="Stop" name="stop_btn" />
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="gestures" title="Gestures utilisées">
<text name="help_label">
Double-cliquez sur une gesture pour jouer les animations
et les sons.
</text>
<scroll_list bottom_delta="-385" height="360" name="gesture_list">
<column label="Déclencheur" name="trigger" width="85" />
<column label="Touche" name="shortcut" />
<column label="" name="key" />
<column label="Nom" name="name" width="145"/>
</scroll_list>
<button label="Nouveau" name="new_gesture_btn" />
<button label="Inventaire" name="inventory_btn" />
<button label="Modifier" name="edit_btn" />
<button label="Jouer" name="play_btn" />
<button label="Stop" name="stop_btn" />
</floater>

View File

@@ -1,111 +1,111 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="godtools floater" title="Outils divins">
<tab_container name="GodTools Tabs">
<panel label="Grille" name="grid">
<button label="Éjecter tous" label_selected="Éjecter tous" name="Kick all users" width="175" />
<button label="Vider le cache cartographique de la région" label_selected="Vider le cache cartographique de la région" name="Flush This Region&apos;s Map Visibility Caches" width="285"/>
</panel>
<panel label="Région" name="region">
<text name="Sim Name:" width="70">
Nom du sim :
</text>
<line_editor left="85" name="region name" width="198" />
<check_box label="Initiation" name="check prelude" tool_tip="Définir cette région comme zone d&apos;initiation."/>
<check_box label="Soleil fixe" name="check fixed sun" tool_tip="Définir la position du soleil (comme dans Région et Domaine &gt; Terrain.)"/>
<check_box label="Réinitialiser le domicile &#10;à la téléportation" name="check reset home" tool_tip="Lorsqu&apos;un résident se téléporte à l&apos;extérieur, réinitialise son domicile à la position de sa destination." height="32"/>
<check_box label="Visible" name="check visible" tool_tip="Cochez pour rendre la région visible aux non-admins." bottom_delta="-32"/>
<check_box label="Dégâts" name="check damage" tool_tip="Cochez pour activer les dégâts dans cette région."/>
<check_box label="Bloquer le suivi de trafic" name="block dwell" tool_tip="Cochez pour que la région ne comptabilise pas le trafic."/>
<check_box label="Interdire le terraformage" name="block terraform" tool_tip="Cochez pour empêcher les personnes de terraformer leur terrain"/>
<check_box label="Bac à sable" name="is sandbox" tool_tip="Basculer cette région en bac à sable."/>
<button label="Figer le terrain" label_selected="Figer le terrain" name="Bake Terrain" tool_tip="Enregistrer le terrain actuel comme terrain par défaut." width="118" />
<button label="Rétablir le terrain" label_selected="Rétablir le terrain" name="Revert Terrain" tool_tip="Remplacer le terrain actuel avec le terrain par défaut." width="118" />
<button label="Échanger le terrain" label_selected="Échanger le terrain" name="Swap Terrain" tool_tip="Échangez le terrain actuel avec le terrain par défaut." width="118" />
<text name="estate id">
ID du domaine :
</text>
<text name="parent id">
ID parent :
</text>
<line_editor name="parentestate" tool_tip="Il s&apos;agit du domaine parent de cette région"/>
<text name="Grid Pos: ">
Position sur la grille :
</text>
<line_editor name="gridposx" tool_tip="Position x de cette région sur la grille" left_delta="120" width="35"/>
<line_editor name="gridposy" tool_tip="Position y de cette région sur la grille" left_delta="40" width="35" />
<text name="Redirect to Grid: ">
Rediriger vers la grille :
</text>
<line_editor left_delta="120" name="redirectx" width="35" />
<line_editor left_delta="40" name="redirecty" width="35" />
<spinner left="320" name="billable factor" width="70" />
<text name="billable factor text" font="SansSerifSmall" left_delta="-120" width="120">
Facteur de facturation :
</text>
<spinner left="320" name="land cost" width="70" />
<text name="land cost text" left_delta="-120">
L$ par m² :
</text>
<button label="Rafraîchir" label_selected="Rafraîchir" name="Refresh" tool_tip="Cliquez ici pour rafraîchir les informations ci-dessus."/>
<button label="Appliquer" label_selected="Appliquer" name="Apply" tool_tip="Cliquez ici pour appliquer les modifications effectuées ci-dessus."/>
<button label="Sélectionner une région" label_selected="Sélectionner une région" name="Select Region" tool_tip="Sélectionnez une région entière à l&apos;aide de l&apos;outil Terrain." width="140" left="136"/>
<button label="Sauvegarde automatique" label_selected="Sauvegarde automatique" name="Autosave now" tool_tip="Sauvegarde automatique au format gzip." width="140" left="136"/>
</panel>
<panel label="Objets" name="objects">
<text name="Sim Name:" width="70">
Nom du sim :
</text>
<text name="region name" left_delta="75">
Welsh
</text>
<check_box label="Désactiver les &#10;scripts" name="disable scripts" tool_tip="Cochez pour désactiver tous les scripts dans cette région"/>
<check_box label="Désactiver les &#10;collisions" name="disable collisions" tool_tip="Cochez pour désactiver les collisions entre non-avatars dans cette région"/>
<check_box label="Désactiver la &#10;physique" name="disable physics" tool_tip="Cochez pour désactiver tous les effets liés à la physique dans cette région"/>
<button label="Appliquer" label_selected="Appliquer" name="Apply" tool_tip="Cliquez ici pour appliquer les modifications effectuées ci-dessus." bottom="-85"/>
<button label="Définir la cible" label_selected="Définir la cible" name="Set Target" tool_tip="Définir l&apos;avatar cible pour la suppression de l&apos;objet."/>
<text name="target_avatar_name">
(aucune cible)
</text>
<button label="Supprimer tous les objets scriptés de la cible sur les terrains des autres" label_selected="Supprimer tous les objets scriptés de la cible sur les terrains des autres" name="Delete Target&apos;s Scripted Objects On Others Land" tool_tip="Supprimer tous les objets scriptés appartenant à la cible sur les terrains ne lui appartenant pas. Les objets non copiables seront renvoyés."/>
<button label="Supprimer les objets scriptés de la cible sur *tous* les terrains" label_selected="Supprimer les objets scriptés de la cible sur *tous* les terrains" name="Delete Target&apos;s Scripted Objects On *Any* Land" tool_tip="Supprimer les objets scriptés appartenant à la cible dans cette région. Les objets non copiables seront renvoyés."/>
<button label="Supprimer *tous* les objets de la cible" label_selected="Supprimer *tous* les objets de la cible" name="Delete *ALL* Of Target&apos;s Objects" tool_tip="Supprimer tous les objets appartenant à la cible dans cette région. Les objets non copiables seront renvoyés."/>
<button width="300" label="Afficher les collisions les plus consommatrices" label_selected="Afficher les collisions les plus consommatrices" name="Get Top Colliders" tool_tip="Dresse une liste des objets avec les callbacks les plus fréquents. "/>
<button width="300" label="Afficher les objets scriptés les plus consommateurs" label_selected="Afficher les objets scriptés les plus consommateurs" name="Get Top Scripts" tool_tip="Dresse une liste des objets qui passent le plus de temps à exécuter des scripts."/>
<button width="300" label="Résumé des scripts" label_selected="Résumé des scripts" name="Scripts digest" tool_tip="Dresse une liste des scripts et de leurs occurrences."/>
</panel>
<panel label="Requête" name="request">
<text name="Destination:">
Destination :
</text>
<combo_box name="destination">
<combo_item name="Selection">
Sélection
</combo_item>
<combo_item name="AgentRegion">
Région de l&apos;avatar
</combo_item>
</combo_box>
<text name="Request:">
Requête :
</text>
<combo_box name="request">
<combo_item name="colliders&lt;steps&gt;">
Objets responsables de collisions : étapes
</combo_item>
<combo_item name="scripts&lt;count&gt;,&lt;optionalpattern&gt;">
Nombre de scripts et schéma optionnel
</combo_item>
<combo_item name="objects&lt;pattern&gt;">
Schéma des objets
</combo_item>
<combo_item name="rez&lt;asset_id&gt;">
rezzer &lt;asset_id&gt;
</combo_item>
</combo_box>
<text name="Parameter:">
Paramètre :
</text>
<button label="Effectuer la requête" label_selected="Effectuer la requête" name="Make Request" width="140"/>
</panel>
</tab_container>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="godtools floater" title="Outils divins">
<tab_container name="GodTools Tabs">
<panel label="Grille" name="grid">
<button label="Éjecter tous" label_selected="Éjecter tous" name="Kick all users" width="175" />
<button label="Vider le cache cartographique de la région" label_selected="Vider le cache cartographique de la région" name="Flush This Region&apos;s Map Visibility Caches" width="285"/>
</panel>
<panel label="Région" name="region">
<text name="Sim Name:" width="70">
Nom du sim :
</text>
<line_editor left="85" name="region name" width="198" />
<check_box label="Initiation" name="check prelude" tool_tip="Définir cette région comme zone d&apos;initiation."/>
<check_box label="Soleil fixe" name="check fixed sun" tool_tip="Définir la position du soleil (comme dans Région et Domaine &gt; Terrain.)"/>
<check_box label="Réinitialiser le domicile &#10;à la téléportation" name="check reset home" tool_tip="Lorsqu&apos;un résident se téléporte à l&apos;extérieur, réinitialise son domicile à la position de sa destination." height="32"/>
<check_box label="Visible" name="check visible" tool_tip="Cochez pour rendre la région visible aux non-admins." bottom_delta="-32"/>
<check_box label="Dégâts" name="check damage" tool_tip="Cochez pour activer les dégâts dans cette région."/>
<check_box label="Bloquer le suivi de trafic" name="block dwell" tool_tip="Cochez pour que la région ne comptabilise pas le trafic."/>
<check_box label="Interdire le terraformage" name="block terraform" tool_tip="Cochez pour empêcher les personnes de terraformer leur terrain"/>
<check_box label="Bac à sable" name="is sandbox" tool_tip="Basculer cette région en bac à sable."/>
<button label="Figer le terrain" label_selected="Figer le terrain" name="Bake Terrain" tool_tip="Enregistrer le terrain actuel comme terrain par défaut." width="118" />
<button label="Rétablir le terrain" label_selected="Rétablir le terrain" name="Revert Terrain" tool_tip="Remplacer le terrain actuel avec le terrain par défaut." width="118" />
<button label="Échanger le terrain" label_selected="Échanger le terrain" name="Swap Terrain" tool_tip="Échangez le terrain actuel avec le terrain par défaut." width="118" />
<text name="estate id">
ID du domaine :
</text>
<text name="parent id">
ID parent :
</text>
<line_editor name="parentestate" tool_tip="Il s&apos;agit du domaine parent de cette région"/>
<text name="Grid Pos: ">
Position sur la grille :
</text>
<line_editor name="gridposx" tool_tip="Position x de cette région sur la grille" left_delta="120" width="35"/>
<line_editor name="gridposy" tool_tip="Position y de cette région sur la grille" left_delta="40" width="35" />
<text name="Redirect to Grid: ">
Rediriger vers la grille :
</text>
<line_editor left_delta="120" name="redirectx" width="35" />
<line_editor left_delta="40" name="redirecty" width="35" />
<spinner left="320" name="billable factor" width="70" />
<text name="billable factor text" font="SansSerifSmall" left_delta="-120" width="120">
Facteur de facturation :
</text>
<spinner left="320" name="land cost" width="70" />
<text name="land cost text" left_delta="-120">
L$ par m² :
</text>
<button label="Rafraîchir" label_selected="Rafraîchir" name="Refresh" tool_tip="Cliquez ici pour rafraîchir les informations ci-dessus."/>
<button label="Appliquer" label_selected="Appliquer" name="Apply" tool_tip="Cliquez ici pour appliquer les modifications effectuées ci-dessus."/>
<button label="Sélectionner une région" label_selected="Sélectionner une région" name="Select Region" tool_tip="Sélectionnez une région entière à l&apos;aide de l&apos;outil Terrain." width="140" left="136"/>
<button label="Sauvegarde automatique" label_selected="Sauvegarde automatique" name="Autosave now" tool_tip="Sauvegarde automatique au format gzip." width="140" left="136"/>
</panel>
<panel label="Objets" name="objects">
<text name="Sim Name:" width="70">
Nom du sim :
</text>
<text name="region name" left_delta="75">
Welsh
</text>
<check_box label="Désactiver les &#10;scripts" name="disable scripts" tool_tip="Cochez pour désactiver tous les scripts dans cette région"/>
<check_box label="Désactiver les &#10;collisions" name="disable collisions" tool_tip="Cochez pour désactiver les collisions entre non-avatars dans cette région"/>
<check_box label="Désactiver la &#10;physique" name="disable physics" tool_tip="Cochez pour désactiver tous les effets liés à la physique dans cette région"/>
<button label="Appliquer" label_selected="Appliquer" name="Apply" tool_tip="Cliquez ici pour appliquer les modifications effectuées ci-dessus." bottom="-85"/>
<button label="Définir la cible" label_selected="Définir la cible" name="Set Target" tool_tip="Définir l&apos;avatar cible pour la suppression de l&apos;objet."/>
<text name="target_avatar_name">
(aucune cible)
</text>
<button label="Supprimer tous les objets scriptés de la cible sur les terrains des autres" label_selected="Supprimer tous les objets scriptés de la cible sur les terrains des autres" name="Delete Target&apos;s Scripted Objects On Others Land" tool_tip="Supprimer tous les objets scriptés appartenant à la cible sur les terrains ne lui appartenant pas. Les objets non copiables seront renvoyés."/>
<button label="Supprimer les objets scriptés de la cible sur *tous* les terrains" label_selected="Supprimer les objets scriptés de la cible sur *tous* les terrains" name="Delete Target&apos;s Scripted Objects On *Any* Land" tool_tip="Supprimer les objets scriptés appartenant à la cible dans cette région. Les objets non copiables seront renvoyés."/>
<button label="Supprimer *tous* les objets de la cible" label_selected="Supprimer *tous* les objets de la cible" name="Delete *ALL* Of Target&apos;s Objects" tool_tip="Supprimer tous les objets appartenant à la cible dans cette région. Les objets non copiables seront renvoyés."/>
<button width="300" label="Afficher les collisions les plus consommatrices" label_selected="Afficher les collisions les plus consommatrices" name="Get Top Colliders" tool_tip="Dresse une liste des objets avec les callbacks les plus fréquents. "/>
<button width="300" label="Afficher les objets scriptés les plus consommateurs" label_selected="Afficher les objets scriptés les plus consommateurs" name="Get Top Scripts" tool_tip="Dresse une liste des objets qui passent le plus de temps à exécuter des scripts."/>
<button width="300" label="Résumé des scripts" label_selected="Résumé des scripts" name="Scripts digest" tool_tip="Dresse une liste des scripts et de leurs occurrences."/>
</panel>
<panel label="Requête" name="request">
<text name="Destination:">
Destination :
</text>
<combo_box name="destination">
<combo_item name="Selection">
Sélection
</combo_item>
<combo_item name="AgentRegion">
Région de l&apos;avatar
</combo_item>
</combo_box>
<text name="Request:">
Requête :
</text>
<combo_box name="request">
<combo_item name="colliders&lt;steps&gt;">
Objets responsables de collisions : étapes
</combo_item>
<combo_item name="scripts&lt;count&gt;,&lt;optionalpattern&gt;">
Nombre de scripts et schéma optionnel
</combo_item>
<combo_item name="objects&lt;pattern&gt;">
Schéma des objets
</combo_item>
<combo_item name="rez&lt;asset_id&gt;">
rezzer &lt;asset_id&gt;
</combo_item>
</combo_box>
<text name="Parameter:">
Paramètre :
</text>
<button label="Effectuer la requête" label_selected="Effectuer la requête" name="Make Request" width="140"/>
</panel>
</tab_container>
</floater>

View File

@@ -1,261 +1,261 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="groupinfo" title="Les Linden – Profil du groupe">
<tab_container name="tab">
<panel label="Général" name="gen">
<text name="title_box">
Profil du groupe
</text>
<text name="txt">
Les groupes sont un moyen divertissant de collaborer avec vos amis.
</text>
<text name="txt2">
Les groupes vous permettent d&apos;avoir un titre, un logo et de voter.
</text>
<text name="txt3">
Tout le monde peut créer un groupe. Chaque résident peut appartenir jusqu&apos;à 15 groupes.
</text>
<text name="txt4">
Pour rester actif, un groupe doit avoir au moins 3 membres.
</text>
<text name="group_create_text">
La création d&apos;un groupe coûte 100 L$.
</text>
<text name="lbl">
Nom :
</text>
<text name="founder_label">
Fondateur :
</text>
<text name="lbl2">
Charte :
</text>
<check_box label="Afficher dans la liste du groupe" name="sho"/>
<check_box label="Afficher les membres dans la liste du groupe" name="sho_mem"/>
<check_box label="Publier sur le web." name="allow_publish" tool_tip="Publiez votre profil sur le web."/>
<button label="?" label_selected="?" name="publish_help_btn"/>
<check_box label="Mature" name="mature" tool_tip="Les informations de votre profil sont considérées comme « mature »."/>
</panel>
<panel label="Titres" name="tit">
<text name="txt">
Titres de groupe
</text>
<text name="txt2">
Les groupes peuvent avoir des officiers et des membres avec des titres particuliers.
</text>
<text name="txt3">
Ces titres apparaissent devant leur nom dans le Monde, les chats et les IM.
</text>
<text name="lbl">
Titre de l&apos;officier :
</text>
<text name="lbl2">
Titre du membre :
</text>
<text name="lbl3">
Pour créer le logo du groupe, faites glisser une texture depuis votre inventaire.
</text>
<texture_picker name="insig" tool_tip="Cliquez pour sélectionner une image"/>
</panel>
<panel label="Membres" name="mem">
<text name="txt">
Membres du groupe
</text>
<text name="txt2">
Officiers et membres du groupe actuel.
</text>
<text name="txt3">
Cliquez sur le nom d&apos;un membre pour voir son profil.
</text>
<text name="lbl">
Officiers :
</text>
<text name="members_label">
Membres :
</text>
<button label="Expulser le membre" label_selected="Expulser le membre" name="eject_member_btn"/>
</panel>
<panel label="Vote" name="voting">
<tab_container name="tab">
<panel label="Élection" name="recall">
<text name="txt">
Élections
</text>
<text name="instructions">
Pour commencer une nouvelle élection, cliquez sur Lancer l&apos;élection.
Les candidats incluent tous les membres qui ne sont pas officiers.
</text>
<text name="lbl">
Candidats :
</text>
<button label="Vote" label_selected="Voter" name="btn_vote"/>
<button label="M&apos;abstenir" label_selected="M&apos;abstenir" name="btn_abstain"/>
<button label="Lancer l&apos;élection" label_selected="Lancer l&apos;élection" name="btn_start_election"/>
<text name="lbl2">
Quorum :
</text>
<spinner name="quorum" tool_tip="Nombre total de votants nécessaires pour que les résultats de l&apos;élection soient valides."/>
<text name="quorum_text">
sur un total de 111 membres.
</text>
<text name="lbl3">
Majorité :
</text>
<radio_group name="majority" tool_tip="Majorité de tous les votes nécessaires pour remporter l&apos;élection.">
<radio_item name="radio">
Majorité simple
</radio_item>
<radio_item name="radio2">
Majorité des 2/3
</radio_item>
<radio_item name="radio3">
Unanimité
</radio_item>
</radio_group>
<text name="duration_lbl">
Durée :
</text>
<spinner name="duration" tool_tip="Durée de l&apos;élection (en nombre de jours)."/>
<text name="duration_days">
jours
</text>
<text name="start_lbl">
Début de l&apos;élection :
</text>
<text name="end_lbl">
Fin de l&apos;élection :
</text>
</panel>
<panel label="Proposition" name="panel_group_proposals">
<text name="txt">
Propositions du groupe
</text>
<text name="instructions">
Il n&apos;y a aucune proposition active. Cliquez sur Créer une proposition pour créer une nouvelle proposition.
</text>
<text name="proposal_lbl">
Propositions :
</text>
<button label="Oui" label_selected="Oui" name="btn_yes"/>
<button label="Non" label_selected="Non" name="btn_no"/>
<button label="M&apos;abstenir" label_selected="M&apos;abstenir" name="btn_abstain"/>
<button label="Afficher la liste" label_selected="Afficher la liste" name="btn_view_list"/>
<button label="Afficher l&apos;objet" label_selected="Afficher l&apos;objet" name="btn_view_item"/>
<button label="Créer une proposition" label_selected="Créer une proposition" name="btn_proposal"/>
<button label="Soumettre" label_selected="Soumettre" name="btn_submit"/>
<text name="quorum_lbl">
Quorum :
</text>
<spinner name="quorum" tool_tip="Nombre total de votants nécessaires pour que les résultats de l&apos;élection soient valides."/>
<text name="quorum_text">
sur un total de 111 membres.
</text>
<text name="majority_lbl">
Majorité :
</text>
<radio_group name="majority" tool_tip="Majorité de tous les votes nécessaires pour remporter l&apos;élection.">
<radio_item name="radio">
Majorité simple
</radio_item>
<radio_item name="radio2">
Majorité des 2/3
</radio_item>
<radio_item name="radio3">
Unanimité
</radio_item>
</radio_group>
<text name="duration_lbl">
Durée :
</text>
<spinner name="duration" tool_tip="Durée de l&apos;élection (en nombre de jours)."/>
<text name="duration_text">
jours
</text>
<text name="start_lbl">
Début :
</text>
<text name="end_lbl">
Fin :
</text>
</panel>
<panel label="Historique" name="History">
<text name="txt">
Historique des votes
</text>
<text name="instructions">
Vous pouvez afficher les anciens résultats en sélectionnant le vote et
</text>
<text name="instructions2">
en cliquant sur Afficher l&apos;objet.
</text>
<text name="history_list_lbl">
Anciens votes :
</text>
<text name="vote_text_lbl">
Résultats du vote :
</text>
<button label="Afficher la liste" label_selected="Afficher la liste" name="btn_view_list"/>
<button label="Afficher l&apos;objet" label_selected="Afficher l&apos;objet" name="btn_view_item"/>
</panel>
</tab_container>
</panel>
<panel label="Invitation" name="inv">
<text name="txt">
Invitations
</text>
<text name="txt2">
Les invitations sont envoyées par messagerie instantanée.
</text>
<text name="txt3">
Pour ajouter des résidents, cliquez sur Ajouter.
</text>
<text name="lbl">
Officiers :
</text>
<button label="Ajouter un officier..." label_selected="Ajouter un officier..." name="add_officer_btn"/>
<button label="Supprimer la sélection" label_selected="Supprimer la sélection" name="remove_officer_btn"/>
<text name="lbl2">
Membres :
</text>
<button label="Ajouter un membre..." label_selected="Ajouter un membre..." name="add_member_btn"/>
<button label="Supprimer la sélection" label_selected="Supprimer la sélection" name="remove_member_btn"/>
<text name="lbl3">
Frais d&apos;inscription :
</text>
<check_box label="Inscription libre (sans invitation)" name="open"/>
</panel>
<panel label="Terrain" name="land">
<text name="txt">
Terrain du groupe
</text>
<text name="lbl">
Total des contributions :
</text>
<button label="Carte..." label_selected="Carte..." name="map_btn"/>
<text name="lbl2">
Superficie déjà utilisée :
</text>
<text name="lbl3">
Superficie disponible :
</text>
<button label="Définir la contribution" label_selected="Définir la contribution" name="set_contrib_btn"/>
<text name="warning_label">
Avertissement : ce groupe a trop de terrain. Les membres du groupe doivent faire une contribution plus importante.
</text>
</panel>
<panel label="Argent" name="mon">
<tab_container name="group money history tab">
<panel label="Planification" name="money panel"/>
<panel label="Détails" name="money panel2">
<button label="&lt; Plus tôt" label_selected="&lt; Plus tôt" name="&lt; Earlier" tool_tip="Reculer dans le temps"/>
<button label="Plus tard &gt;" label_selected="Plus tard &gt;" name="Later &gt;" tool_tip="Avancer dans le temps"/>
</panel>
<panel label="Ventes" name="money panel3">
<button label="&lt; Plus tôt" label_selected="&lt; Plus tôt" name="&lt; Earlier" tool_tip="Reculer dans le temps"/>
<button label="Plus tard &gt;" label_selected="Plus tard &gt;" name="Later &gt;" tool_tip="Avancer dans le temps"/>
</panel>
</tab_container>
</panel>
</tab_container>
<button label="OK" label_selected="OK" name="OK"/>
<button label="Annuler" label_selected="Annuler" name="Cancel"/>
</floater>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="groupinfo" title="Les Linden – Profil du groupe">
<tab_container name="tab">
<panel label="Général" name="gen">
<text name="title_box">
Profil du groupe
</text>
<text name="txt">
Les groupes sont un moyen divertissant de collaborer avec vos amis.
</text>
<text name="txt2">
Les groupes vous permettent d&apos;avoir un titre, un logo et de voter.
</text>
<text name="txt3">
Tout le monde peut créer un groupe. Chaque résident peut appartenir jusqu&apos;à 15 groupes.
</text>
<text name="txt4">
Pour rester actif, un groupe doit avoir au moins 3 membres.
</text>
<text name="group_create_text">
La création d&apos;un groupe coûte 100 L$.
</text>
<text name="lbl">
Nom :
</text>
<text name="founder_label">
Fondateur :
</text>
<text name="lbl2">
Charte :
</text>
<check_box label="Afficher dans la liste du groupe" name="sho"/>
<check_box label="Afficher les membres dans la liste du groupe" name="sho_mem"/>
<check_box label="Publier sur le web." name="allow_publish" tool_tip="Publiez votre profil sur le web."/>
<button label="?" label_selected="?" name="publish_help_btn"/>
<check_box label="Mature" name="mature" tool_tip="Les informations de votre profil sont considérées comme « mature »."/>
</panel>
<panel label="Titres" name="tit">
<text name="txt">
Titres de groupe
</text>
<text name="txt2">
Les groupes peuvent avoir des officiers et des membres avec des titres particuliers.
</text>
<text name="txt3">
Ces titres apparaissent devant leur nom dans le Monde, les chats et les IM.
</text>
<text name="lbl">
Titre de l&apos;officier :
</text>
<text name="lbl2">
Titre du membre :
</text>
<text name="lbl3">
Pour créer le logo du groupe, faites glisser une texture depuis votre inventaire.
</text>
<texture_picker name="insig" tool_tip="Cliquez pour sélectionner une image"/>
</panel>
<panel label="Membres" name="mem">
<text name="txt">
Membres du groupe
</text>
<text name="txt2">
Officiers et membres du groupe actuel.
</text>
<text name="txt3">
Cliquez sur le nom d&apos;un membre pour voir son profil.
</text>
<text name="lbl">
Officiers :
</text>
<text name="members_label">
Membres :
</text>
<button label="Expulser le membre" label_selected="Expulser le membre" name="eject_member_btn"/>
</panel>
<panel label="Vote" name="voting">
<tab_container name="tab">
<panel label="Élection" name="recall">
<text name="txt">
Élections
</text>
<text name="instructions">
Pour commencer une nouvelle élection, cliquez sur Lancer l&apos;élection.
Les candidats incluent tous les membres qui ne sont pas officiers.
</text>
<text name="lbl">
Candidats :
</text>
<button label="Vote" label_selected="Voter" name="btn_vote"/>
<button label="M&apos;abstenir" label_selected="M&apos;abstenir" name="btn_abstain"/>
<button label="Lancer l&apos;élection" label_selected="Lancer l&apos;élection" name="btn_start_election"/>
<text name="lbl2">
Quorum :
</text>
<spinner name="quorum" tool_tip="Nombre total de votants nécessaires pour que les résultats de l&apos;élection soient valides."/>
<text name="quorum_text">
sur un total de 111 membres.
</text>
<text name="lbl3">
Majorité :
</text>
<radio_group name="majority" tool_tip="Majorité de tous les votes nécessaires pour remporter l&apos;élection.">
<radio_item name="radio">
Majorité simple
</radio_item>
<radio_item name="radio2">
Majorité des 2/3
</radio_item>
<radio_item name="radio3">
Unanimité
</radio_item>
</radio_group>
<text name="duration_lbl">
Durée :
</text>
<spinner name="duration" tool_tip="Durée de l&apos;élection (en nombre de jours)."/>
<text name="duration_days">
jours
</text>
<text name="start_lbl">
Début de l&apos;élection :
</text>
<text name="end_lbl">
Fin de l&apos;élection :
</text>
</panel>
<panel label="Proposition" name="panel_group_proposals">
<text name="txt">
Propositions du groupe
</text>
<text name="instructions">
Il n&apos;y a aucune proposition active. Cliquez sur Créer une proposition pour créer une nouvelle proposition.
</text>
<text name="proposal_lbl">
Propositions :
</text>
<button label="Oui" label_selected="Oui" name="btn_yes"/>
<button label="Non" label_selected="Non" name="btn_no"/>
<button label="M&apos;abstenir" label_selected="M&apos;abstenir" name="btn_abstain"/>
<button label="Afficher la liste" label_selected="Afficher la liste" name="btn_view_list"/>
<button label="Afficher l&apos;objet" label_selected="Afficher l&apos;objet" name="btn_view_item"/>
<button label="Créer une proposition" label_selected="Créer une proposition" name="btn_proposal"/>
<button label="Soumettre" label_selected="Soumettre" name="btn_submit"/>
<text name="quorum_lbl">
Quorum :
</text>
<spinner name="quorum" tool_tip="Nombre total de votants nécessaires pour que les résultats de l&apos;élection soient valides."/>
<text name="quorum_text">
sur un total de 111 membres.
</text>
<text name="majority_lbl">
Majorité :
</text>
<radio_group name="majority" tool_tip="Majorité de tous les votes nécessaires pour remporter l&apos;élection.">
<radio_item name="radio">
Majorité simple
</radio_item>
<radio_item name="radio2">
Majorité des 2/3
</radio_item>
<radio_item name="radio3">
Unanimité
</radio_item>
</radio_group>
<text name="duration_lbl">
Durée :
</text>
<spinner name="duration" tool_tip="Durée de l&apos;élection (en nombre de jours)."/>
<text name="duration_text">
jours
</text>
<text name="start_lbl">
Début :
</text>
<text name="end_lbl">
Fin :
</text>
</panel>
<panel label="Historique" name="History">
<text name="txt">
Historique des votes
</text>
<text name="instructions">
Vous pouvez afficher les anciens résultats en sélectionnant le vote et
</text>
<text name="instructions2">
en cliquant sur Afficher l&apos;objet.
</text>
<text name="history_list_lbl">
Anciens votes :
</text>
<text name="vote_text_lbl">
Résultats du vote :
</text>
<button label="Afficher la liste" label_selected="Afficher la liste" name="btn_view_list"/>
<button label="Afficher l&apos;objet" label_selected="Afficher l&apos;objet" name="btn_view_item"/>
</panel>
</tab_container>
</panel>
<panel label="Invitation" name="inv">
<text name="txt">
Invitations
</text>
<text name="txt2">
Les invitations sont envoyées par messagerie instantanée.
</text>
<text name="txt3">
Pour ajouter des résidents, cliquez sur Ajouter.
</text>
<text name="lbl">
Officiers :
</text>
<button label="Ajouter un officier..." label_selected="Ajouter un officier..." name="add_officer_btn"/>
<button label="Supprimer la sélection" label_selected="Supprimer la sélection" name="remove_officer_btn"/>
<text name="lbl2">
Membres :
</text>
<button label="Ajouter un membre..." label_selected="Ajouter un membre..." name="add_member_btn"/>
<button label="Supprimer la sélection" label_selected="Supprimer la sélection" name="remove_member_btn"/>
<text name="lbl3">
Frais d&apos;inscription :
</text>
<check_box label="Inscription libre (sans invitation)" name="open"/>
</panel>
<panel label="Terrain" name="land">
<text name="txt">
Terrain du groupe
</text>
<text name="lbl">
Total des contributions :
</text>
<button label="Carte..." label_selected="Carte..." name="map_btn"/>
<text name="lbl2">
Superficie déjà utilisée :
</text>
<text name="lbl3">
Superficie disponible :
</text>
<button label="Définir la contribution" label_selected="Définir la contribution" name="set_contrib_btn"/>
<text name="warning_label">
Avertissement : ce groupe a trop de terrain. Les membres du groupe doivent faire une contribution plus importante.
</text>
</panel>
<panel label="Argent" name="mon">
<tab_container name="group money history tab">
<panel label="Planification" name="money panel"/>
<panel label="Détails" name="money panel2">
<button label="&lt; Plus tôt" label_selected="&lt; Plus tôt" name="&lt; Earlier" tool_tip="Reculer dans le temps"/>
<button label="Plus tard &gt;" label_selected="Plus tard &gt;" name="Later &gt;" tool_tip="Avancer dans le temps"/>
</panel>
<panel label="Ventes" name="money panel3">
<button label="&lt; Plus tôt" label_selected="&lt; Plus tôt" name="&lt; Earlier" tool_tip="Reculer dans le temps"/>
<button label="Plus tard &gt;" label_selected="Plus tard &gt;" name="Later &gt;" tool_tip="Avancer dans le temps"/>
</panel>
</tab_container>
</panel>
</tab_container>
<button label="OK" label_selected="OK" name="OK"/>
<button label="Annuler" label_selected="Annuler" name="Cancel"/>
</floater>

Some files were not shown because too many files have changed in this diff Show More