Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm
commit
1bdfb7df70
|
|
@ -1084,11 +1084,11 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>082cf96b1fa31030fa9d47113e8574c3</string>
|
||||
<string>fec86a4837ae9c6932c10af11851c4d0</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>file:///opt/firestorm/fmodstudio-2.02.08-darwin64-4.tar.bz2</string>
|
||||
<string>file:///opt/firestorm/fmodstudio-2.02.09-darwin64-5.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin</string>
|
||||
|
|
@ -1158,9 +1158,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>5818ed2d9b29bad00878f3e26b09b7f9</string>
|
||||
<string>6fdcfcc9aa1d01164c0f7ca5590859bb</string>
|
||||
<key>url</key>
|
||||
<string>http://3p.firestormviewer.org/fontconfig-2.11.0-linux64-180841833.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/fontconfig-2.12.6-linux64-223020909.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -1200,9 +1200,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>0dab99c682433145aa8f5e26d8940afd</string>
|
||||
<string>41db760508e6b48ae3a291ad2d1aef3d</string>
|
||||
<key>url</key>
|
||||
<string>http://3p.firestormviewer.org/freetype-2.4.4.180841832-linux64-180841832.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/freetype-2.8.1.223020901-linux64-223020901.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
|
|||
|
|
@ -238,6 +238,7 @@ Ansariel Hiller
|
|||
SL-15226
|
||||
SL-15227
|
||||
SL-15398
|
||||
SL-18432
|
||||
Aralara Rajal
|
||||
Arare Chantilly
|
||||
CHUIBUG-191
|
||||
|
|
|
|||
|
|
@ -253,7 +253,7 @@ elseif(LINUX)
|
|||
libopenjp2.so
|
||||
libuuid.so.16
|
||||
libuuid.so.16.0.22
|
||||
libfontconfig.so.1.8.0
|
||||
libfontconfig.so.1.10.1
|
||||
libfontconfig.so.1
|
||||
libaprutil-1.so.0
|
||||
libapr-1.so.0
|
||||
|
|
|
|||
|
|
@ -66,6 +66,15 @@ public:
|
|||
LLSD asLLSD() const;
|
||||
void fromLLSD(const LLSD& material_data);
|
||||
|
||||
bool isEmpty() const
|
||||
{
|
||||
if( mNormalID.notNull() || mSpecularID.notNull() ) //|| mDiffuseAlphaMode != DIFFUSE_ALPHA_MODE_BLEND)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
const LLUUID& getNormalID() const;
|
||||
void setNormalID(const LLUUID& normal_id);
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
6.6.6
|
||||
6.6.7
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -55,6 +55,10 @@ exportMutliArchDRIPath() {
|
|||
## driver bug, try enabling this option and report whether it helps:
|
||||
#export LL_ATI_MOUSE_CURSOR_BUG=x
|
||||
|
||||
## Help fontconfig find its default configuration file, otherwise the viewer will stall
|
||||
## with Fontconfig error: Cannot load default config file
|
||||
export FONTCONFIG_PATH=/etc/fonts
|
||||
|
||||
if [ "`uname -m`" = "x86_64" ]; then
|
||||
echo '64-bit Linux detected.'
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -803,7 +803,7 @@ void LLAvatarTracker::processNotify(LLMessageSystem* msg, bool online)
|
|||
// we were tracking someone who went offline
|
||||
deleteTrackingData();
|
||||
}
|
||||
}
|
||||
// } <FS:Beq/> [FIRE-32324] least invasive change move this brace after the if. LL fix should follow sometime soon
|
||||
//[FIX FIRE-3522 : SJ] Notify Online/Offline to Nearby Chat even if chat_notify isnt true
|
||||
|
||||
// <FS:PP> Attempt to speed up things a little
|
||||
|
|
@ -815,6 +815,7 @@ void LLAvatarTracker::processNotify(LLMessageSystem* msg, bool online)
|
|||
// Look up the name of this agent for the notification
|
||||
LLAvatarNameCache::get(agent_id,boost::bind(&on_avatar_name_cache_notify,_1, _2, online, payload));
|
||||
}
|
||||
} // <FS:Beq/> [FIRE-32324] least invasive change move this brace after the if
|
||||
|
||||
mModifyMask |= LLFriendObserver::ONLINE;
|
||||
instance().notifyObservers();
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@
|
|||
#include "fsperfstats.h" // <FS:Beq> performance stats support
|
||||
|
||||
BOOL LLDrawPoolAlpha::sShowDebugAlpha = FALSE;
|
||||
BOOL LLDrawPoolAlpha::sShowDebugAlphaRigged = FALSE;
|
||||
|
||||
#define current_shader (LLGLSLShader::sCurBoundShaderPtr)
|
||||
|
||||
|
|
@ -300,15 +301,17 @@ void LLDrawPoolAlpha::renderDebugAlpha()
|
|||
|
||||
gGL.diffuseColor4f(0, 1, 0, 1);
|
||||
pushBatches(LLRenderPass::PASS_INVISIBLE, LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0, FALSE);
|
||||
|
||||
// <FS:Beq> FIRE-32132 et al. Allow rigged mesh transparency highlights to be toggled
|
||||
if (sShowDebugAlphaRigged)
|
||||
{
|
||||
// </FS:Beq>
|
||||
gHighlightProgram.mRiggedVariant->bind();
|
||||
gGL.diffuseColor4f(1, 0, 0, 1);
|
||||
|
||||
gGL.diffuseColor4f(0, 1, 0, 1);// <FS:Beq/> FIRE-32132 et al. (can plain PASS_ALPHA_MASK_RIGGED exist?) paint it green if so.
|
||||
pushRiggedBatches(LLRenderPass::PASS_ALPHA_MASK_RIGGED, LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0, FALSE);
|
||||
pushRiggedBatches(LLRenderPass::PASS_ALPHA_INVISIBLE_RIGGED, LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0, FALSE);
|
||||
|
||||
// Material alpha mask
|
||||
gGL.diffuseColor4f(0, 0, 1, 1);
|
||||
gGL.diffuseColor4f(0, 1, 1, 1);// <FS:Beq/> FIRE-32132 et al. Allow rigged mesh transparency highlights to be toggled
|
||||
pushRiggedBatches(LLRenderPass::PASS_MATERIAL_ALPHA_MASK_RIGGED, LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0, FALSE);
|
||||
pushRiggedBatches(LLRenderPass::PASS_NORMMAP_MASK_RIGGED, LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0, FALSE);
|
||||
pushRiggedBatches(LLRenderPass::PASS_SPECMAP_MASK_RIGGED, LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0, FALSE);
|
||||
|
|
@ -317,6 +320,9 @@ void LLDrawPoolAlpha::renderDebugAlpha()
|
|||
|
||||
gGL.diffuseColor4f(0, 1, 0, 1);
|
||||
pushRiggedBatches(LLRenderPass::PASS_INVISIBLE_RIGGED, LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0, FALSE);
|
||||
// <FS:Beq> FIRE-32132 et al. Allow rigged mesh transparency highlights to be toggled
|
||||
}
|
||||
// </FS:Beq>
|
||||
LLGLSLShader::sCurBoundShaderPtr->unbind();
|
||||
}
|
||||
}
|
||||
|
|
@ -344,16 +350,6 @@ void LLDrawPoolAlpha::renderAlphaHighlight(U32 mask)
|
|||
for (LLSpatialGroup::drawmap_elem_t::iterator k = draw_info.begin(); k != draw_info.end(); ++k)
|
||||
{
|
||||
LLDrawInfo& params = **k;
|
||||
// <FS:Beq> Capture render times
|
||||
if(params.mFace)
|
||||
{
|
||||
LLViewerObject* vobj = (LLViewerObject *)params.mFace->getViewerObject();
|
||||
if(vobj->isAttachment())
|
||||
{
|
||||
trackAttachments( vobj, params.mFace->isState(LLFace::RIGGED), &ratPtr );
|
||||
}
|
||||
}
|
||||
// </FS:Beq>
|
||||
|
||||
if (params.mParticle)
|
||||
{
|
||||
|
|
@ -361,7 +357,30 @@ void LLDrawPoolAlpha::renderAlphaHighlight(U32 mask)
|
|||
}
|
||||
|
||||
bool rigged = (params.mAvatar != nullptr);
|
||||
// <FS:Beq> Capture render times
|
||||
if(params.mFace)
|
||||
{
|
||||
LLViewerObject* vobj = (LLViewerObject *)params.mFace->getViewerObject();
|
||||
if(vobj->isAttachment())
|
||||
{
|
||||
trackAttachments( vobj, rigged, &ratPtr );
|
||||
}
|
||||
}
|
||||
// </FS:Beq>
|
||||
gHighlightProgram.bind(rigged);
|
||||
// <FS:Beq> FIRE-32132 et al. Allow rigged mesh transparency highlights to be toggled
|
||||
if (rigged && !sShowDebugAlphaRigged)
|
||||
{
|
||||
// if we don't want to show rigged alpha highlights then skip
|
||||
continue;
|
||||
}
|
||||
else if (rigged && sShowDebugAlphaRigged)
|
||||
{
|
||||
// if we do and this is rigged then use a different colour
|
||||
gGL.diffuseColor4f(1, 0.5, 0, 1);
|
||||
}
|
||||
else // NB dangling else to drop through to "normal behaviour"
|
||||
// </FS:Beq>
|
||||
gGL.diffuseColor4f(1, 0, 0, 1);
|
||||
|
||||
if (rigged)
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ public:
|
|||
bool uploadMatrixPalette(const LLDrawInfo& params);
|
||||
|
||||
static BOOL sShowDebugAlpha;
|
||||
static BOOL sShowDebugAlphaRigged;
|
||||
|
||||
private:
|
||||
LLGLSLShader* target_shader;
|
||||
|
|
|
|||
|
|
@ -67,6 +67,8 @@
|
|||
#include "llviewercontrol.h" // for gSavedSettings
|
||||
#include "llvoavatarself.h"
|
||||
|
||||
#include "aoengine.h" // <FS:Zi> FIRE-32315: Animation preview sometimes fails when FS AO is enabled
|
||||
|
||||
S32 LLFloaterBvhPreview::sOwnAvatarInstanceCount = 0; // <FS> Preview on own avatar
|
||||
|
||||
const S32 PREVIEW_BORDER_WIDTH = 2;
|
||||
|
|
@ -137,6 +139,13 @@ LLFloaterBvhPreview::LLFloaterBvhPreview(const std::string& filename) :
|
|||
if (mUseOwnAvatar)
|
||||
{
|
||||
sOwnAvatarInstanceCount++;
|
||||
|
||||
// // Switch FS AO off during preview
|
||||
mAOEnabled = gSavedPerAccountSettings.getBOOL("UseAO");
|
||||
if (mAOEnabled)
|
||||
{
|
||||
AOEngine::getInstance()->enable(false);
|
||||
}
|
||||
}
|
||||
// </FS>
|
||||
|
||||
|
|
@ -535,6 +544,12 @@ LLFloaterBvhPreview::~LLFloaterBvhPreview()
|
|||
gAgentAvatarp->startDefaultMotions();
|
||||
gAgentAvatarp->startMotion(ANIM_AGENT_STAND);
|
||||
}
|
||||
|
||||
// Switch FS AO back on if it was disabled during preview
|
||||
if (mAOEnabled)
|
||||
{
|
||||
AOEngine::getInstance()->enable(true);
|
||||
}
|
||||
}
|
||||
// </FS>
|
||||
|
||||
|
|
|
|||
|
|
@ -158,6 +158,9 @@ protected:
|
|||
|
||||
// <FS:Sei> FIRE-17277: Allow entering Loop In/Loop Out as frames
|
||||
S32 mNumFrames;
|
||||
|
||||
// <FS:Zi> FIRE-32315: Animation preview sometimes fails when FS AO is enabled
|
||||
bool mAOEnabled;
|
||||
};
|
||||
|
||||
#endif // LL_LLFLOATERBVHPREVIEW_H
|
||||
|
|
|
|||
|
|
@ -51,7 +51,9 @@
|
|||
|
||||
// The minor cardinal direction labels are hidden if their height is more
|
||||
// than this proportion of the map.
|
||||
const F32 MAP_MINOR_DIR_THRESHOLD = 0.035f;
|
||||
// <FS:Ansariel> FIRE-32341: Make minor directions visible at reasonable mini map size again
|
||||
//const F32 MAP_MINOR_DIR_THRESHOLD = 0.035f;
|
||||
const F32 MAP_MINOR_DIR_THRESHOLD = 0.07f;
|
||||
|
||||
const S32 MAP_PADDING_LEFT = 0;
|
||||
const S32 MAP_PADDING_TOP = 2;
|
||||
|
|
|
|||
|
|
@ -467,26 +467,8 @@ void LLLoginInstance::handleLoginFailure(const LLSD& event)
|
|||
|
||||
LLSD args(llsd::map( "MESSAGE", LLTrans::getString(response["message_id"]) ));
|
||||
LLSD payload;
|
||||
LLNotificationsUtil::add("PromptMFAToken", args, payload, [=](LLSD const & notif, LLSD const & response) {
|
||||
bool continue_clicked = response["continue"].asBoolean();
|
||||
std::string token = response["token"].asString();
|
||||
LL_DEBUGS("LLLogin") << "PromptMFAToken: response: " << response << " continue_clicked" << continue_clicked << LL_ENDL;
|
||||
|
||||
// strip out whitespace - SL-17034/BUG-231938
|
||||
token = boost::regex_replace(token, boost::regex("\\s"), "");
|
||||
|
||||
if (continue_clicked && !token.empty())
|
||||
{
|
||||
LL_INFOS("LLLogin") << "PromptMFAToken: token submitted" << LL_ENDL;
|
||||
|
||||
// Set the request data to true and retry login.
|
||||
mRequestData["params"]["token"] = token;
|
||||
reconnect();
|
||||
} else {
|
||||
LL_INFOS("LLLogin") << "PromptMFAToken: no token, attemptComplete" << LL_ENDL;
|
||||
attemptComplete();
|
||||
}
|
||||
});
|
||||
LLNotificationsUtil::add("PromptMFAToken", args, payload,
|
||||
boost::bind(&LLLoginInstance::handleMFAChallenge, this, _1, _2));
|
||||
}
|
||||
else if( reason_response == "key"
|
||||
|| reason_response == "presence"
|
||||
|
|
@ -563,23 +545,59 @@ void LLLoginInstance::handleIndeterminate(const LLSD& event)
|
|||
|
||||
bool LLLoginInstance::handleTOSResponse(bool accepted, const std::string& key)
|
||||
{
|
||||
if(accepted)
|
||||
{
|
||||
LL_INFOS("LLLogin") << "LLLoginInstance::handleTOSResponse: accepted" << LL_ENDL;
|
||||
if(accepted)
|
||||
{
|
||||
LL_INFOS("LLLogin") << "LLLoginInstance::handleTOSResponse: accepted " << LL_ENDL;
|
||||
|
||||
// Set the request data to true and retry login.
|
||||
mRequestData["params"][key] = true;
|
||||
reconnect();
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_INFOS("LLLogin") << "LLLoginInstance::handleTOSResponse: attemptComplete" << LL_ENDL;
|
||||
// Set the request data to true and retry login.
|
||||
mRequestData["params"][key] = true;
|
||||
|
||||
attemptComplete();
|
||||
}
|
||||
if (!mRequestData["params"]["token"].asString().empty())
|
||||
{
|
||||
// SL-18511 this TOS failure happened while we are in the middle of an MFA challenge/response.
|
||||
// the previously entered token is very likely expired, so prompt again
|
||||
LLSD args(llsd::map( "MESSAGE", LLTrans::getString("LoginFailedAuthenticationMFARequired") ));
|
||||
LLSD payload;
|
||||
LLNotificationsUtil::add("PromptMFAToken", args, payload,
|
||||
boost::bind(&LLLoginInstance::handleMFAChallenge, this, _1, _2));
|
||||
}
|
||||
else
|
||||
{
|
||||
reconnect();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_INFOS("LLLogin") << "LLLoginInstance::handleTOSResponse: attemptComplete" << LL_ENDL;
|
||||
|
||||
LLEventPumps::instance().obtain(TOS_REPLY_PUMP).stopListening(TOS_LISTENER_NAME);
|
||||
return true;
|
||||
attemptComplete();
|
||||
}
|
||||
|
||||
LLEventPumps::instance().obtain(TOS_REPLY_PUMP).stopListening(TOS_LISTENER_NAME);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool LLLoginInstance::handleMFAChallenge(LLSD const & notif, LLSD const & response)
|
||||
{
|
||||
bool continue_clicked = response["continue"].asBoolean();
|
||||
std::string token = response["token"].asString();
|
||||
LL_DEBUGS("LLLogin") << "PromptMFAToken: response: " << response << " continue_clicked" << continue_clicked << LL_ENDL;
|
||||
|
||||
// strip out whitespace - SL-17034/BUG-231938
|
||||
token = boost::regex_replace(token, boost::regex("\\s"), "");
|
||||
|
||||
if (continue_clicked && !token.empty())
|
||||
{
|
||||
LL_INFOS("LLLogin") << "PromptMFAToken: token submitted" << LL_ENDL;
|
||||
|
||||
// Set the request data to true and retry login.
|
||||
mRequestData["params"]["token"] = token;
|
||||
reconnect();
|
||||
} else {
|
||||
LL_INFOS("LLLogin") << "PromptMFAToken: no token, attemptComplete" << LL_ENDL;
|
||||
attemptComplete();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
std::string construct_start_string()
|
||||
|
|
|
|||
|
|
@ -87,6 +87,7 @@ private:
|
|||
void syncWithUpdater(ResponsePtr resp, const LLSD& notification, const LLSD& response);
|
||||
|
||||
bool handleTOSResponse(bool v, const std::string& key);
|
||||
bool handleMFAChallenge(LLSD const & notif, LLSD const & response);
|
||||
|
||||
void attemptComplete() { mAttemptComplete = true; } // In the future an event?
|
||||
|
||||
|
|
|
|||
|
|
@ -2509,14 +2509,17 @@ void LLModelPreview::genMeshOptimizerLODs(S32 which_lod, S32 meshopt_mode, U32 d
|
|||
{
|
||||
// <FS:Beq> Log things properly
|
||||
// LL_INFOS() << "Generating lod " << which_lod << " using meshoptimizer" << LL_ENDL;
|
||||
std::ostringstream out;
|
||||
out << "Generating lod " << which_lod << " using meshoptimizer";
|
||||
LL_INFOS("MeshUpload") << out.str() << LL_ENDL;
|
||||
LLFloaterModelPreview::addStringToLog(out, false);
|
||||
{
|
||||
std::ostringstream out;
|
||||
out << "Generating lod " << which_lod << " using meshoptimizer";
|
||||
LL_INFOS("MeshUpload") << out.str() << LL_ENDL;
|
||||
LLFloaterModelPreview::addStringToLog(out, false);
|
||||
}
|
||||
// </FS:Beq>
|
||||
// Allow LoD from -1 to LLModel::LOD_PHYSICS
|
||||
if (which_lod < -1 || which_lod > LLModel::NUM_LODS - 1)
|
||||
{
|
||||
// std::ostringstream out; // <FS:Beq/> already instantiated
|
||||
std::ostringstream out;
|
||||
out << "Invalid level of detail: " << which_lod;
|
||||
LL_WARNS() << out.str() << LL_ENDL;
|
||||
LLFloaterModelPreview::addStringToLog(out, true); // <FS:Beq/> if you don't flash the log tab on error when do you?
|
||||
|
|
@ -2726,7 +2729,11 @@ void LLModelPreview::genMeshOptimizerLODs(S32 which_lod, S32 meshopt_mode, U32 d
|
|||
// (indices_decimator / res_ratio) by itself is likely to overshoot to a differend
|
||||
// side due to overal lack of precision, and we don't need an ideal result, which
|
||||
// likely does not exist, just a better one, so a partial correction is enough.
|
||||
F32 sloppy_decimator = indices_decimator * (indices_decimator / sloppy_ratio + 1) / 2;
|
||||
F32 sloppy_decimator{indices_decimator};
|
||||
// if(sloppy_ratio > 0)
|
||||
// {
|
||||
sloppy_decimator = indices_decimator * (indices_decimator / sloppy_ratio + 1) / 2;
|
||||
// }
|
||||
sloppy_ratio = genMeshOptimizerPerModel(base, target_model, sloppy_decimator, lod_error_threshold, MESH_OPTIMIZER_NO_TOPOLOGY);
|
||||
}
|
||||
|
||||
|
|
@ -2777,12 +2784,16 @@ void LLModelPreview::genMeshOptimizerLODs(S32 which_lod, S32 meshopt_mode, U32 d
|
|||
// << " lod " << which_lod
|
||||
// << " resulting ratio " << precise_ratio
|
||||
// << " simplified using per model method." << LL_ENDL;
|
||||
out << "Model " << target_model->getName()
|
||||
<< " lod " << which_lod
|
||||
<< " resulting ratio " << precise_ratio
|
||||
<< " simplified using per model method.";
|
||||
LL_INFOS() << out.str() << LL_ENDL;
|
||||
LLFloaterModelPreview::addStringToLog(out, false);
|
||||
{
|
||||
std::ostringstream out;
|
||||
out << "Model " << target_model->getName()
|
||||
<< " lod " << which_lod
|
||||
<< " resulting ratio " << precise_ratio
|
||||
<< " simplified using per model method.";
|
||||
LL_INFOS() << out.str() << LL_ENDL;
|
||||
LLFloaterModelPreview::addStringToLog(out, false);
|
||||
}
|
||||
// </FS:Beq>
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -2791,12 +2802,14 @@ void LLModelPreview::genMeshOptimizerLODs(S32 which_lod, S32 meshopt_mode, U32 d
|
|||
// << " lod " << which_lod
|
||||
// << " resulting ratio " << sloppy_ratio
|
||||
// << " sloppily simplified using per model method." << LL_ENDL;
|
||||
std::ostringstream out;
|
||||
out << "Model " << target_model->getName()
|
||||
<< " lod " << which_lod
|
||||
<< " resulting ratio " << sloppy_ratio
|
||||
<< " sloppily simplified using per model method.";
|
||||
LL_INFOS() << out.str() << LL_ENDL;
|
||||
LLFloaterModelPreview::addStringToLog(out, false);
|
||||
// </FS:Beq>
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -2806,12 +2819,14 @@ void LLModelPreview::genMeshOptimizerLODs(S32 which_lod, S32 meshopt_mode, U32 d
|
|||
// << " lod " << which_lod
|
||||
// << " resulting ratio " << precise_ratio
|
||||
// << " simplified using per model method." << LL_ENDL;
|
||||
std::ostringstream out;
|
||||
out << "Bad MeshOptimisation result for Model " << target_model->getName()
|
||||
<< " lod " << which_lod
|
||||
<< " resulting ratio " << precise_ratio
|
||||
<< " simplified using per model method.";
|
||||
LL_WARNS() << out.str() << LL_ENDL;
|
||||
LLFloaterModelPreview::addStringToLog(out, true);
|
||||
// </FS:Beq>
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3278,7 +3293,6 @@ void LLModelPreview::updateStatusMessages()
|
|||
out << "Loader returned errors, model can't be uploaded";
|
||||
LL_INFOS() << out.str() << LL_ENDL;
|
||||
LLFloaterModelPreview::addStringToLog(out, true);
|
||||
out.str("");
|
||||
// </FS:Beq>
|
||||
}
|
||||
|
||||
|
|
@ -3296,7 +3310,6 @@ void LLModelPreview::updateStatusMessages()
|
|||
out << "Invalid rig, there might be issues with uploading Joint positions";
|
||||
LL_INFOS() << out.str() << LL_ENDL;
|
||||
LLFloaterModelPreview::addStringToLog(out, true);
|
||||
out.str("");
|
||||
// </FS:Beq>
|
||||
}
|
||||
}
|
||||
|
|
@ -3861,7 +3874,6 @@ void LLModelPreview::createPreviewAvatar(void)
|
|||
out << "Failed to create preview avatar for upload model window";
|
||||
LL_INFOS() << out.str() << LL_ENDL;
|
||||
LLFloaterModelPreview::addStringToLog(out, true);
|
||||
out.str("");
|
||||
// </FS:Beq>
|
||||
}
|
||||
}
|
||||
|
|
@ -3964,6 +3976,7 @@ void LLModelPreview::lookupLODModelFiles(S32 lod)
|
|||
out << "Auto Loading LOD" << next_lod << " from " << lod_filename;
|
||||
LL_INFOS() << out.str() << LL_ENDL;
|
||||
LLFloaterModelPreview::addStringToLog(out, true);
|
||||
out.str("");
|
||||
// </FS:Beq>
|
||||
LLFloaterModelPreview* fmp = LLFloaterModelPreview::sInstance;
|
||||
if (fmp)
|
||||
|
|
|
|||
|
|
@ -1697,6 +1697,9 @@ void LLNetMap::createParcelImage()
|
|||
|
||||
BOOL LLNetMap::handleMouseDown(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
// <FS:Ansariel> FIRE-32339: Mini map can't be dragged anymore
|
||||
if (!(mask & MASK_SHIFT)) return FALSE;
|
||||
|
||||
// Start panning
|
||||
gFocusMgr.setMouseCapture(this);
|
||||
|
||||
|
|
@ -1881,10 +1884,10 @@ BOOL LLNetMap::handleRightMouseDown(S32 x, S32 y, MASK mask)
|
|||
menu->buildDrawLabels();
|
||||
menu->updateParent(LLMenuGL::sMenuContainer);
|
||||
// [SL:KB] - Patch: World-MiniMap | Checked: 2012-07-08 (Catznip-3.3)
|
||||
menu->setItemVisible("Stop tracking", LLTracker::isTracking(0));
|
||||
menu->setItemVisible("Stop Tracking", LLTracker::isTracking(0));
|
||||
menu->setItemVisible("Stop Tracking Separator", LLTracker::isTracking(0));
|
||||
// [/SL:KB]
|
||||
// menu->setItemEnabled("Stop tracking", LLTracker::isTracking(0));
|
||||
// menu->setItemEnabled("Stop Tracking", LLTracker::isTracking(0));
|
||||
LLMenuGL::showPopup(this, menu, x, y);
|
||||
}
|
||||
return TRUE;
|
||||
|
|
|
|||
|
|
@ -275,7 +275,7 @@ public:
|
|||
return lhs->mAvatarp < rhs->mAvatarp;
|
||||
}
|
||||
|
||||
return lhs->mRenderOrder < rhs->mRenderOrder;
|
||||
return lhs->mRenderOrder > rhs->mRenderOrder;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -524,7 +524,11 @@ LLSD LLNewFileResourceUploadInfo::exportTempFile()
|
|||
{
|
||||
errorMessage = "Failed reading animation file";
|
||||
}
|
||||
|
||||
delete motionp; // <FS:Ansariel> Memory leak fix
|
||||
}
|
||||
|
||||
delete[] buffer; // <FS:Ansariel> Memory leak fix
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -10997,6 +10997,26 @@ class LLViewCheckHighlightTransparent : public view_listener_t
|
|||
return new_value;
|
||||
}
|
||||
};
|
||||
// <FS:Beq> FIRE-32132 et al. Allow rigged mesh transparency highlights to be toggled
|
||||
class LLViewHighlightTransparentRigged : public view_listener_t
|
||||
{
|
||||
bool handleEvent(const LLSD& userdata)
|
||||
{
|
||||
LLDrawPoolAlpha::sShowDebugAlphaRigged = !LLDrawPoolAlpha::sShowDebugAlphaRigged;
|
||||
gPipeline.resetVertexBuffers();
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
class LLViewCheckHighlightTransparentRigged : public view_listener_t
|
||||
{
|
||||
bool handleEvent(const LLSD& userdata)
|
||||
{
|
||||
bool new_value = LLDrawPoolAlpha::sShowDebugAlphaRigged;
|
||||
return new_value;
|
||||
}
|
||||
};
|
||||
// </FS:Beq>
|
||||
|
||||
class LLViewBeaconWidth : public view_listener_t
|
||||
{
|
||||
|
|
@ -12019,6 +12039,7 @@ void initialize_menus()
|
|||
view_listener_t::addMenu(new LLViewLookAtLastChatter(), "View.LookAtLastChatter");
|
||||
view_listener_t::addMenu(new LLViewShowHoverTips(), "View.ShowHoverTips");
|
||||
view_listener_t::addMenu(new LLViewHighlightTransparent(), "View.HighlightTransparent");
|
||||
view_listener_t::addMenu(new LLViewHighlightTransparentRigged(), "View.HighlightTransparentRigged"); // <FS:Beq/> FIRE-32132 et al. Allow rigged mesh transparency highlights to be toggled
|
||||
view_listener_t::addMenu(new LLViewToggleRenderType(), "View.ToggleRenderType");
|
||||
view_listener_t::addMenu(new LLViewShowHUDAttachments(), "View.ShowHUDAttachments");
|
||||
view_listener_t::addMenu(new LLZoomer(1.2f), "View.ZoomOut");
|
||||
|
|
@ -12035,6 +12056,7 @@ void initialize_menus()
|
|||
view_listener_t::addMenu(new LLViewCheckJoystickFlycam(), "View.CheckJoystickFlycam");
|
||||
view_listener_t::addMenu(new LLViewCheckShowHoverTips(), "View.CheckShowHoverTips");
|
||||
view_listener_t::addMenu(new LLViewCheckHighlightTransparent(), "View.CheckHighlightTransparent");
|
||||
view_listener_t::addMenu(new LLViewCheckHighlightTransparentRigged(), "View.CheckHighlightTransparentRigged");// <FS:Beq/> FIRE-32132 et al. Allow rigged mesh transparency highlights to be toggled
|
||||
view_listener_t::addMenu(new LLViewCheckRenderType(), "View.CheckRenderType");
|
||||
view_listener_t::addMenu(new LLViewStatusAway(), "View.Status.CheckAway");
|
||||
view_listener_t::addMenu(new LLViewStatusDoNotDisturb(), "View.Status.CheckDoNotDisturb");
|
||||
|
|
|
|||
|
|
@ -835,6 +835,13 @@ public:
|
|||
ypos += y_inc;
|
||||
}
|
||||
|
||||
// <FS:Beq> FIRE-32311 - Only show particle text when showing render debug info (relocate pre-existing change by Liny)
|
||||
if (LLPipeline::toggleRenderTypeControlNegated(LLPipeline::RENDER_TYPE_PARTICLES))
|
||||
{
|
||||
addText(xpos, ypos, particle_hiding);
|
||||
ypos += y_inc;
|
||||
}
|
||||
// </FS:Beq>
|
||||
LLVertexBuffer::sBindCount = LLImageGL::sBindCount =
|
||||
LLVertexBuffer::sSetCount = LLImageGL::sUniqueCount =
|
||||
gPipeline.mNumVisibleNodes = LLPipeline::sVisibleLightCount = 0;
|
||||
|
|
@ -932,14 +939,6 @@ public:
|
|||
}
|
||||
// </FS:PP>
|
||||
|
||||
// <FS:LO> pull the text saying if particles are hidden out from beacons
|
||||
if (LLPipeline::toggleRenderTypeControlNegated(LLPipeline::RENDER_TYPE_PARTICLES))
|
||||
{
|
||||
addText(xpos, ypos, particle_hiding);
|
||||
ypos += y_inc;
|
||||
}
|
||||
// </FS:LO>
|
||||
|
||||
// only display these messages if we are actually rendering beacons at this moment
|
||||
// <FS:LO> Always show the beacon text regardless if the floater is visible
|
||||
// <FS:Ansa> ...and if we want to see it
|
||||
|
|
|
|||
|
|
@ -5375,21 +5375,22 @@ LLControlAVBridge::LLControlAVBridge(LLDrawable* drawablep, LLViewerRegion* regi
|
|||
|
||||
bool can_batch_texture(LLFace* facep)
|
||||
{
|
||||
// <FS:Beq> fix batching when materials disabled and alpha none/masked.
|
||||
if (facep->getTextureEntry()->getBumpmap())
|
||||
{ //bump maps aren't worked into texture batching yet
|
||||
return false;
|
||||
}
|
||||
|
||||
// <FS:Beq> fix batching when materials disabled and alpha none/masked.
|
||||
// if (facep->getTextureEntry()->getMaterialParams().notNull())
|
||||
// { //materials don't work with texture batching yet
|
||||
// return false;
|
||||
// }
|
||||
const auto te = facep->getTextureEntry();
|
||||
if (LLPipeline::sRenderDeferred && te )
|
||||
if ( LLPipeline::sRenderDeferred && te )
|
||||
{
|
||||
auto mat = te->getMaterialParams();
|
||||
if(mat.notNull() && (mat->getNormalID() != LLUUID::null || mat->getSpecularID() != LLUUID::null || (te->getAlpha() >0.f && te->getAlpha() < 1.f ) ) )
|
||||
// if(mat.notNull() && (mat->getNormalID() != LLUUID::null || mat->getSpecularID() != LLUUID::null || (te->getAlpha() >0.f && te->getAlpha() < 1.f ) ) )
|
||||
if( mat.notNull() && ( !mat->isEmpty() || ( (te->getAlpha() >0.f && te->getAlpha() < 1.f ) && mat->getDiffuseAlphaMode() != LLMaterial::DIFFUSE_ALPHA_MODE_BLEND) ) )
|
||||
{
|
||||
// we have a materials block but we cannot batch materials.
|
||||
// however, materials blocks can and do exist due to alpha masking and those are batchable,
|
||||
|
|
@ -5582,6 +5583,11 @@ void LLVolumeGeometryManager::registerFace(LLSpatialGroup* group, LLFace* facep,
|
|||
|
||||
U32 shader_mask = 0xFFFFFFFF; //no shader
|
||||
|
||||
if(mat && mat->isEmpty() && mat->getDiffuseAlphaMode() == LLMaterial::DIFFUSE_ALPHA_MODE_BLEND)
|
||||
{
|
||||
mat = nullptr;
|
||||
}
|
||||
|
||||
if (mat)
|
||||
{
|
||||
if (type == LLRenderPass::PASS_ALPHA)
|
||||
|
|
@ -5836,7 +5842,7 @@ static inline void add_face(T*** list, U32* count, T* face)
|
|||
{
|
||||
if (count[1] < MAX_FACE_COUNT)
|
||||
{
|
||||
//face->setDrawOrderIndex(count[1]);
|
||||
face->setDrawOrderIndex(count[1]);
|
||||
list[1][count[1]++] = face;
|
||||
}
|
||||
}
|
||||
|
|
@ -5844,36 +5850,12 @@ static inline void add_face(T*** list, U32* count, T* face)
|
|||
{
|
||||
if (count[0] < MAX_FACE_COUNT)
|
||||
{
|
||||
//face->setDrawOrderIndex(count[0]);
|
||||
face->setDrawOrderIndex(count[0]);
|
||||
list[0][count[0]++] = face;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// return index into linkset for given object (0 for root prim)
|
||||
U32 get_linkset_index(LLVOVolume* vobj)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_DRAWABLE;
|
||||
if (vobj->isRootEdit())
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
LLViewerObject* root = vobj->getRootEdit();
|
||||
U32 idx = 1;
|
||||
for (const auto& child : root->getChildren())
|
||||
{
|
||||
if (child == vobj)
|
||||
{
|
||||
return idx;
|
||||
}
|
||||
++idx;
|
||||
}
|
||||
|
||||
llassert(false);
|
||||
return idx; //should never get here
|
||||
}
|
||||
|
||||
void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_VOLUME;
|
||||
|
|
@ -6081,8 +6063,6 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
|
|||
{
|
||||
avatar->addAttachmentOverridesForObject(vobj, NULL, false);
|
||||
}
|
||||
|
||||
U32 linkset_index = get_linkset_index(vobj);
|
||||
|
||||
// Standard rigged mesh attachments:
|
||||
bool rigged = !vobj->isAnimatedObject() && skinInfo && vobj->isAttachment();
|
||||
|
|
@ -6103,9 +6083,6 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
|
|||
continue;
|
||||
}
|
||||
|
||||
// order by linkset index first and face index second
|
||||
facep->setDrawOrderIndex(linkset_index * 100 + i);
|
||||
|
||||
//ALWAYS null out vertex buffer on rebuild -- if the face lands in a render
|
||||
// batch, it will recover its vertex buffer reference from the spatial group
|
||||
facep->setVertexBuffer(NULL);
|
||||
|
|
@ -6130,6 +6107,11 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
|
|||
if (facep->isState(LLFace::RIGGED))
|
||||
{
|
||||
//face is not rigged but used to be, remove from rigged face pool
|
||||
LLDrawPoolAvatar* pool = (LLDrawPoolAvatar*)facep->getPool();
|
||||
if (pool)
|
||||
{
|
||||
pool->removeFace(facep);
|
||||
}
|
||||
facep->clearState(LLFace::RIGGED);
|
||||
facep->mAvatar = NULL;
|
||||
facep->mSkinInfo = NULL;
|
||||
|
|
@ -6604,14 +6586,6 @@ struct CompareBatchBreakerRigged
|
|||
}
|
||||
};
|
||||
|
||||
struct CompareDrawOrder
|
||||
{
|
||||
bool operator()(const LLFace* const& lhs, const LLFace* const& rhs)
|
||||
{
|
||||
return lhs->getDrawOrderIndex() < rhs->getDrawOrderIndex();
|
||||
}
|
||||
};
|
||||
|
||||
U32 LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFace** faces, U32 face_count, BOOL distance_sort, BOOL batch_textures, BOOL rigged)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_VOLUME;
|
||||
|
|
@ -6655,11 +6629,6 @@ U32 LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFace
|
|||
//sort faces by things that break batches, including avatar and mesh id
|
||||
std::sort(faces, faces + face_count, CompareBatchBreakerRigged());
|
||||
}
|
||||
else
|
||||
{
|
||||
// preserve legacy draw order for rigged faces
|
||||
std::sort(faces, faces + face_count, CompareDrawOrder());
|
||||
}
|
||||
}
|
||||
else if (!distance_sort)
|
||||
{
|
||||
|
|
@ -6716,10 +6685,10 @@ U32 LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFace
|
|||
LLMaterialPtr mat = te->getMaterialParams();
|
||||
LLMaterialID matId = te->getMaterialID();
|
||||
|
||||
if (distance_sort)
|
||||
{
|
||||
tex = NULL;
|
||||
}
|
||||
// if (distance_sort)
|
||||
// {
|
||||
// tex = NULL;
|
||||
// }
|
||||
|
||||
if (last_tex == tex)
|
||||
{
|
||||
|
|
@ -6804,7 +6773,11 @@ U32 LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFace
|
|||
|
||||
tex = facep->getTexture();
|
||||
|
||||
if (texture_count < MAX_TEXTURE_COUNT)
|
||||
// <FS:Beq> Quick hack test of proper batching logic
|
||||
// if (texture_count < MAX_TEXTURE_COUNT)
|
||||
// only add to the batch if this is a new texture
|
||||
if (cur_tex == texture_count && texture_count < MAX_TEXTURE_COUNT)
|
||||
// </FS:Beq>
|
||||
{
|
||||
texture_list[texture_count++] = tex;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -321,6 +321,7 @@
|
|||
<menu_item_check label="Partikel ausblenden" name="Hide Particles"/>
|
||||
<menu_item_check label="Auswahl ausblenden" name="Hide Selected"/>
|
||||
<menu_item_check label="Durchsichtig hervorheben" name="Highlight Transparent"/>
|
||||
<menu_item_check label="- Durchsichtige geriggte Netze einschließen" name="Include Transparent Rigged"/>
|
||||
<menu_item_check label="Fadenkreuz für Mouselook anzeigen" name="ShowCrosshairs"/>
|
||||
<menu label="Schwebe-Tipps" name="Hover Tips">
|
||||
<menu_item_check label="Tipps anzeigen" name="Show Tips"/>
|
||||
|
|
|
|||
|
|
@ -42,16 +42,16 @@
|
|||
name="RegionNameMsg">
|
||||
Region: [REGION_NAME]
|
||||
</floater.string>
|
||||
<floater.string
|
||||
<floater.string
|
||||
name="ToolTipHintMsg">
|
||||
Double-click to open map
|
||||
</floater.string>
|
||||
<floater.string
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="AltToolTipHintMsg">
|
||||
Double-click to teleport
|
||||
</floater.string>
|
||||
<floater.string name="mini_map_caption">
|
||||
Mini-map
|
||||
</floater.string>
|
||||
<floater.string name="mini_map_caption">
|
||||
Mini-map
|
||||
</floater.string>
|
||||
<net_map
|
||||
bg_color="Transparent"
|
||||
|
|
|
|||
|
|
@ -851,10 +851,10 @@
|
|||
<combo_item name="physics_medium"> Medium </combo_item>
|
||||
<combo_item name="physics_low"> Low </combo_item>
|
||||
<combo_item name="physics_lowest"> Lowest </combo_item>
|
||||
<combo_item name="physics_bounding_box"> Bounding Box </combo_item>
|
||||
<combo_item name="physics_cube"> Cube </combo_item>
|
||||
<combo_item name="physics_hex"> Hexagon </combo_item>
|
||||
<combo_item name="physics_ud"> User Defined </combo_item>
|
||||
<combo_item name="physics_bounding_box"> Bounding Box </combo_item>
|
||||
<combo_item name="load_from_file"> From file </combo_item>
|
||||
</combo_box>
|
||||
<line_editor
|
||||
|
|
|
|||
|
|
@ -762,6 +762,25 @@
|
|||
function="Inventory.DoToSelected"
|
||||
parameter="delete_system_folder" />
|
||||
</menu_item_call>
|
||||
<menu_item_separator
|
||||
layout="topleft"
|
||||
name="Subfolder Separator" />
|
||||
<menu_item_call
|
||||
label="Create Folder From Selected"
|
||||
layout="topleft"
|
||||
name="New folder from selected">
|
||||
<menu_item_call.on_click
|
||||
function="Inventory.DoToSelected"
|
||||
parameter="new_folder_from_selected" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Ungroup Folder Items"
|
||||
layout="topleft"
|
||||
name="Ungroup folder items">
|
||||
<menu_item_call.on_click
|
||||
function="Inventory.DoToSelected"
|
||||
parameter="ungroup_folder_items" />
|
||||
</menu_item_call>
|
||||
<menu_item_separator
|
||||
layout="topleft" />
|
||||
<menu_item_separator
|
||||
|
|
@ -989,25 +1008,6 @@
|
|||
function="Inventory.DoToSelected"
|
||||
parameter="apply_settings_parcel" />
|
||||
</menu_item_call>
|
||||
<menu_item_separator
|
||||
layout="topleft"
|
||||
name="Subfolder Separator" />
|
||||
<menu_item_call
|
||||
label="Create folder from selected"
|
||||
layout="topleft"
|
||||
name="New folder from selected">
|
||||
<menu_item_call.on_click
|
||||
function="Inventory.DoToSelected"
|
||||
parameter="new_folder_from_selected" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Ungroup folder items"
|
||||
layout="topleft"
|
||||
name="Ungroup folder items">
|
||||
<menu_item_call.on_click
|
||||
function="Inventory.DoToSelected"
|
||||
parameter="ungroup_folder_items" />
|
||||
</menu_item_call>
|
||||
<menu_item_separator
|
||||
layout="topleft"
|
||||
name="Marketplace Separator" />
|
||||
|
|
|
|||
|
|
@ -2971,6 +2971,16 @@
|
|||
<menu_item_check.on_click
|
||||
function="View.HighlightTransparent" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
label="- include Rigged Transparent"
|
||||
name="Include Transparent Rigged"
|
||||
shortcut="control|alt|shift|T"
|
||||
use_mac_ctrl="true">
|
||||
<menu_item_check.on_check
|
||||
function="View.CheckHighlightTransparentRigged" />
|
||||
<menu_item_check.on_click
|
||||
function="View.HighlightTransparentRigged" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
label="Show Mouselook Crosshairs"
|
||||
name="ShowCrosshairs">
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@
|
|||
<columns name="date" label="Date"/>
|
||||
</fs_scroll_list>
|
||||
<button name="remove_btn" label="Supprimer la sélection des éléments blacklistés" height="23" width="320"/>
|
||||
<button name="remove_temp_btn" label="Supprimer temporairement"/>
|
||||
<button name="remove_temp_btn" label="Suppr. temporairement"/>
|
||||
<button name="play_btn" label="Jouer le son" tool_tip="Lecture du son sélectionné ; un seul élément sonore à la fois peut être sélectionné pour la lecture.." width="120" />
|
||||
<button name="stop_btn" label="Ne pas jouer" tool_tip="Arrête la lecture du son en cours." width="120" />
|
||||
<button name="close_btn" label="Fermer"/>
|
||||
</floater>
|
||||
|
|
|
|||
|
|
@ -1,30 +1,48 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="Map">
|
||||
<floater.string name="ParcelSalePriceMsg">
|
||||
Prix : L$[PRICE] (L$[PRICE_PER_SQM]/m²)
|
||||
</floater.string>
|
||||
<floater.string name="ParcelSaleAreaMsg">
|
||||
Surface : [AREA]m²
|
||||
</floater.string>
|
||||
<floater.string name="ParcelOwnerMsg">
|
||||
Propriétaire : [PARCEL_OWNER]
|
||||
</floater.string>
|
||||
<floater.string name="RegionNameMsg">
|
||||
Région : [REGION_NAME]
|
||||
</floater.string>
|
||||
<floater.string name="ToolTipHintMsg">
|
||||
Double-cliquez pour ouvrir la carte
|
||||
</floater.string>
|
||||
<floater.string name="AltToolTipHintMsg">
|
||||
Double-clicquez pour vous téléporter
|
||||
</floater.string>
|
||||
<floater.string name="mini_map_caption">
|
||||
Mini-carte
|
||||
Mini-carte
|
||||
</floater.string>
|
||||
<text label="N" name="floater_map_north">
|
||||
N
|
||||
N
|
||||
</text>
|
||||
<text label="E" name="floater_map_east">
|
||||
E
|
||||
E
|
||||
</text>
|
||||
<text label="O" name="floater_map_west">
|
||||
O
|
||||
O
|
||||
</text>
|
||||
<text label="S" name="floater_map_south">
|
||||
S
|
||||
S
|
||||
</text>
|
||||
<text label="SE" name="floater_map_southeast">
|
||||
SE
|
||||
SE
|
||||
</text>
|
||||
<text label="NE" name="floater_map_northeast">
|
||||
NE
|
||||
NE
|
||||
</text>
|
||||
<text label="SO" name="floater_map_southwest">
|
||||
SO
|
||||
SO
|
||||
</text>
|
||||
<text label="NO" name="floater_map_northwest">
|
||||
NO
|
||||
NO
|
||||
</text>
|
||||
</floater>
|
||||
|
|
|
|||
|
|
@ -162,6 +162,9 @@
|
|||
<combo_item name="physics_lowest">
|
||||
Le plus faible
|
||||
</combo_item>
|
||||
<combo_item name="physics_bounding_box">
|
||||
Boîte englobante
|
||||
</combo_item>
|
||||
<combo_item name="physics_cube">
|
||||
Cube
|
||||
</combo_item>
|
||||
|
|
@ -317,8 +320,9 @@
|
|||
</text>
|
||||
<line_editor name="suf_physics" tool_tip="Le suffixe utilisé pour identifier le fichier physique sur le disque et les modèles dans un fichier."/>
|
||||
<text name="mesh_preview_ud_preset_label">
|
||||
Physique prédéfini par l'utilisateur :
|
||||
Physique prédéf. par l'utilisateur :
|
||||
</text>
|
||||
<button label="Parcourir..." label_selected="Parcourir..." name="set_user_def_phys"/>
|
||||
<line_editor name="ud_physics" tool_tip="Chemin d'accès complet à une définition de maillage Collada simple à utiliser pour le physique."/>
|
||||
<button label_selected="Parcourir" name="set_user_def_phys"/>
|
||||
<text name="mesh_preview_colors_label">
|
||||
|
|
@ -329,6 +333,7 @@
|
|||
</text>
|
||||
<color_swatch label="Arrière-plan" tool_tip="Couleur d'arrière-plan pour l'uploader" name="mesh_preview_canvas_color"/>
|
||||
<color_swatch label="Arêtes du modèle" tool_tip="Couleur des arêtes du modèle dans l'aperçu de l'uploader" name="mesh_preview_edge_color"/>
|
||||
<color_swatch label="Lumière ambiante" tool_tip="Niveau de lumière ambiante dans la fenêtre d'aperçu (affecte également l'aperçu des animations, etc.)" name="preview_ambient_color"/>
|
||||
<text name="physics_settings_label">
|
||||
Physiques :
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,65 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater name="gui_preview_tool" title="Outil de prévisualisation de XUI">
|
||||
<string name="ExternalEditorNotSet">
|
||||
Sélectionnez un éditeur en définissant la variable d'environnement LL_XUI_EDITOR
|
||||
ou le paramètre ExternalEditor
|
||||
ou en spécifiant son chemin dans le champ "Editor Path".
|
||||
</string>
|
||||
<panel name="main_panel">
|
||||
<text name="select_language_label">
|
||||
Langue principale :
|
||||
</text>
|
||||
<combo_box name="language_select_combo">
|
||||
<combo_box.item label="en" name="item1" value="en"/>
|
||||
</combo_box>
|
||||
<button label="Afficher" label_selected="Afficher" name="display_floater" tool_tip="Afficher le flotteur XUI défini par le fichier XML sélectionné"/>
|
||||
<button label="Masquer" label_selected="Masquer" name="close_displayed_floater" tool_tip="Ferme le flotteur actuellement affiché, s'il existe."/>
|
||||
<button label="Modifier..." label_selected="Modifier..." name="edit_floater" tool_tip="Modifie le flotteur XUI défini par le fichier XML sélectionné (ouvre un éditeur externe). Ouvre la version anglaise si aucune version localisée n'existe."/>
|
||||
<button label="Enregistrer" label_selected="Enregistrer" name="save_floater" tool_tip="Enregistrer le flotteur XUI défini par le fichier XML sélectionné"/>
|
||||
<button label="Tout enregistrer" label_selected="Tout enreg." name="save_all_floaters" tool_tip="Sauvegarder tous les flotteurs XUI définis par la langue sélectionnée"/>
|
||||
<button label="> >" label_selected="< <" name="toggle_overlap_panel" tool_tip="Basculez la mise en évidence et le panneau d'affichage des éléments qui se chevauchent ; cliquez avec le bouton droit de la souris sur un élément pour le sélectionner pour cette fonctionnalité. L'élément sélectionné est marqué par un rectangle rouge."/>
|
||||
<text name="select_language_label_2">
|
||||
Langue secondaire :
|
||||
</text>
|
||||
<combo_box name="language_select_combo_2">
|
||||
<combo_box.item label="en" name="item1" value="en" />
|
||||
</combo_box>
|
||||
<button label="Afficher" name="display_floater_2" tool_tip="Afficher le flotteur XUI défini par le fichier XML sélectionné"/>
|
||||
<button label="Masquer" name="close_displayed_floater_2" tool_tip="Ferme le flotteur actuellement affiché, s'il existe."/>
|
||||
<button label="Exporter le schéma" name="export_schema"/>
|
||||
<button label="Rafraîchir" name="refresh_btn"/>
|
||||
<check_box label="Aff. les rectangles" name="show_rectangles"/>
|
||||
<scroll_list label="Nom" name="name_list">
|
||||
<scroll_list.columns label="Titre" name="title_column"/>
|
||||
<scroll_list.columns label="Fichier" name="file_column"/>
|
||||
<scroll_list.columns label="Nœud de premier niveau" name="top_level_node_column"/>
|
||||
</scroll_list>
|
||||
<panel name="editor_panel">
|
||||
<text name="editor_path_label">
|
||||
Accès à l'éditeur :
|
||||
</text>
|
||||
<line_editor name="executable_path_field" tool_tip="Le chemin complet vers un éditeur (exécutable) pour éditer les fichiers XML des flotteurs (les guillemets ne sont pas nécessaires)."/>
|
||||
<button label="Parcourir..." label_selected="Parcourir..." name="browse_for_executable" tool_tip="Browse for an editor (executable) to edit floater XML files"/>
|
||||
<text name="executable_args_label">
|
||||
Args de l'éditeur :
|
||||
</text>
|
||||
<line_editor name="executable_args_field" tool_tip="Arguments de la ligne de commande de l'éditeur ; utilisez '%FILE%' pour faire référence au fichier cible ; 'VotreProgramme.exe NomDeFichier.xml' sera exécuté si ce champ est vide."/>
|
||||
</panel>
|
||||
<panel name="vlt_panel">
|
||||
<text name="diff_file_label">
|
||||
Fich. delta :
|
||||
</text>
|
||||
<line_editor name="vlt_diff_path_field" tool_tip="Le chemin d'accès complet à un fichier de différence de localisation XML D0 ou D1 généré par le Viewer Localization Toolkit."/>
|
||||
<button label="Parcourir..." label_selected="Parcourir..." name="browse_for_vlt_diffs" tool_tip="Recherche d'un fichier de différence D0 ou D1 généré par le VLT pour mettre en évidence les fichiers et les éléments modifiés."/>
|
||||
<button label="Mises en évidence des différences" label_selected="Ne pus mettre en évidence les différences" name="toggle_vlt_diff_highlight" tool_tip="Mise en évidence des fichiers et des éléments contenant des données de localisation modifiées."/>
|
||||
</panel>
|
||||
</panel>
|
||||
<scroll_container name="overlap_scroll">
|
||||
<panel name="overlap_dummy_panel">
|
||||
<overlap_panel label="Overlap Panel" name="overlap_panel" tool_tip="Ce panneau affiche l'élément actuellement sélectionné et tous les éléments qui le recouvrent, séparés par des lignes horizontales."/>
|
||||
<text name="overlap_panel_label">
|
||||
Éléments superposés :
|
||||
</text>
|
||||
</panel>
|
||||
</scroll_container>
|
||||
</floater>
|
||||
|
|
@ -40,10 +40,10 @@
|
|||
<menu_item_call label="Suivre" name="Start Tracking"/>
|
||||
<menu_item_call label="Arrêter de suivre" name="Stop Tracking"/>
|
||||
<menu label="Zoom" name="Minimap Zoom">
|
||||
<menu_item_call label="Proche" name="Zoom Close"/>
|
||||
<menu_item_call label="Moyen" name="Zoom Medium"/>
|
||||
<menu_item_call label="Distant" name="Zoom Far"/>
|
||||
<menu_item_call label="Par défaut" name="Zoom Default"/>
|
||||
<menu_item_check label="Trés proche" name="Zoom very close"/>
|
||||
<menu_item_check label="Proche" name="Zoom close"/>
|
||||
<menu_item_check label="Moyen" name="Zoom medium"/>
|
||||
<menu_item_check label="Distant" name="Zoom far"/>
|
||||
</menu>
|
||||
<menu label="Afficher" name="Minimap Show">
|
||||
<menu_item_check label="Objets" name="Objects"/>
|
||||
|
|
|
|||
|
|
@ -290,6 +290,7 @@
|
|||
<menu_item_check label="Masquer les particules" name="Hide Particles"/>
|
||||
<menu_item_check label="Masquer la sélection" name="Hide Selected"/>
|
||||
<menu_item_check label="Mettre la transparence en surbrillance" name="Highlight Transparent"/>
|
||||
<menu_item_check label="- Inclure les transparents riggés" name="Include Transparent Rigged"/>
|
||||
<menu_item_check label="Afficher le réticule de la vue subjective" name="ShowCrosshairs"/>
|
||||
<menu label="Conseils" name="Hover Tips">
|
||||
<menu_item_check label="Afficher les conseils" name="Show Tips"/>
|
||||
|
|
@ -477,6 +478,9 @@
|
|||
<menu_item_check label="Interpolation ping des positions des objets" name="Ping Interpolate Object Positions"/>
|
||||
<menu_item_call label="Abandonner un paquet" name="Drop a Packet"/>
|
||||
</menu>
|
||||
<menu label="Cache" name="Cache">
|
||||
<menu_item_call label="Purger le cache du disque" name="Purge Disk Cache"/>
|
||||
</menu>
|
||||
<menu_item_call label="Dump caméra scriptée" name="Dump Scripted Camera"/>
|
||||
<menu label="Enregistreur" name="Recorder">
|
||||
<menu_item_call label="Commencer la lecture" name="Start Playback"/>
|
||||
|
|
|
|||
|
|
@ -16,5 +16,5 @@
|
|||
<slider name="volume_slider" tool_tip="Volume de la voix"/>
|
||||
<button name="info_btn" tool_tip="Plus d'informations"/>
|
||||
<button name="profile_btn" tool_tip="Voir le profil"/>
|
||||
<output_monitor name="speaking_indicator" tool_tip="Indique que l'avatar est à portée de voix ainsi que son volume sonore s'il parle"/>
|
||||
<output_monitor name="speaking_indicator" tool_tip="Volume de la voix"/>
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
<combo_box.item label="Toutes catégories" name="any"/>
|
||||
<combo_box.item label="Discussions" name="discussion"/>
|
||||
<combo_box.item label="Sports" name="sports"/>
|
||||
<combo_box.item label="DJ en direct" name="dj" />
|
||||
<combo_box.item label="Musique" name="music"/>
|
||||
<combo_box.item label="Commercial" name="commercial"/>
|
||||
<combo_box.item label="Clubbing/Divertissement" name="nightlife"/>
|
||||
|
|
|
|||
|
|
@ -6306,12 +6306,6 @@ Essayez avec le chemin d'accès à l'éditeur entre guillemets doubles
|
|||
<string name="UnknownPosition">
|
||||
(position inconnue)
|
||||
</string>
|
||||
<string name="NetMapDoubleClickShowWorldMapToolTipMsg">
|
||||
[AGENT][REGION](Double clic pour ouvrir la carte, Maj-glisser pour vous déplacer)
|
||||
</string>
|
||||
<string name="NetMapDoubleClickTeleportToolTipMsg">
|
||||
[REGION](Double clic pour vous téléporter, Maj-glisser pour vous déplacer)
|
||||
</string>
|
||||
<string name="Collision_Bump">
|
||||
[NAME] vous avez été heurté.
|
||||
</string>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="Map">
|
||||
<floater.string name="ParcelSalePriceMsg">
|
||||
Cena: [PRICE]L$ ([PRICE_PER_SQM]L$/m²)
|
||||
</floater.string>
|
||||
<floater.string name="ParcelSaleAreaMsg">
|
||||
Obszar: [AREA]m²
|
||||
</floater.string>
|
||||
<floater.string name="ParcelOwnerMsg">
|
||||
Właściciel: [PARCEL_OWNER]
|
||||
</floater.string>
|
||||
<floater.string name="ToolTipHintMsg">
|
||||
Podwójny klik by otworzyć mapę
|
||||
</floater.string>
|
||||
<floater.string name="AltToolTipHintMsg">
|
||||
Podwójny klik by teleportować
|
||||
</floater.string>
|
||||
<floater.string name="mini_map_caption">
|
||||
Minimapa
|
||||
</floater.string>
|
||||
|
|
|
|||
|
|
@ -131,6 +131,7 @@
|
|||
<combo_item name="physics_cube"> Sześcian </combo_item>
|
||||
<combo_item name="physics_hex"> Heksagon </combo_item>
|
||||
<combo_item name="physics_ud"> Użytkownika </combo_item>
|
||||
<combo_item name="physics_bounding_box"> Bryła brzegowa </combo_item>
|
||||
<combo_item name="load_from_file">Z pliku</combo_item>
|
||||
</combo_box>
|
||||
<button name="physics_browse" label="Przeglądaj"/>
|
||||
|
|
|
|||
|
|
@ -40,10 +40,10 @@
|
|||
<menu_item_call label="Zacznij śledzić" name="Start Tracking"/>
|
||||
<menu_item_call label="Przestań śledzić" name="Stop Tracking"/>
|
||||
<menu label="Powiększenie" name="Minimap Zoom">
|
||||
<menu_item_call label="Duże" name="Zoom Close"/>
|
||||
<menu_item_call label="Średnie" name="Zoom Medium"/>
|
||||
<menu_item_call label="Małe" name="Zoom Far"/>
|
||||
<menu_item_call label="Domyślne" name="Zoom Default"/>
|
||||
<menu_item_check label="Bardzo duże" name="Zoom very close" />
|
||||
<menu_item_check label="Duże" name="Zoom close"/>
|
||||
<menu_item_check label="Średnie (domyślne)" name="Zoom medium"/>
|
||||
<menu_item_check label="Małe" name="Zoom far"/>
|
||||
</menu>
|
||||
<menu label="Pokaż" name="Minimap Show">
|
||||
<menu_item_check label="Obiekty" name="Objects"/>
|
||||
|
|
@ -55,14 +55,17 @@
|
|||
<menu_item_check label="Tekstury terenu" name="Terrain Textures"/>
|
||||
<menu_item_check label="Tekstury mapy świata" name="World Map Textures"/>
|
||||
</menu>
|
||||
<menu_item_check label="Obracaj mapę" name="Rotate Map"/>
|
||||
<menu_item_check label="Autocentrowanie" name="Auto Center"/>
|
||||
<menu_item_check label="Północ na górze" name="North at top" />
|
||||
<menu_item_check label="Kamera na górze" name="Camera at top" />
|
||||
<menu_item_check label="Autocentrowanie mapy" name="Auto-center map" />
|
||||
<menu_item_call label="Centruj mapę" name="Re-center map" />
|
||||
<menu label="Pierścienie zasięgu czatu" name="Chat Distance Rings Menu">
|
||||
<menu_item_check label="Pokaż pierścienie zasięgu" name="Chat Distance Rings" />
|
||||
<menu_item_check label="Pierścień zasięgu szeptu" name="Whisper Distance Ring" />
|
||||
<menu_item_check label="Pierścień zasięgu czatu" name="Chat Distance Ring" />
|
||||
<menu_item_check label="Pierścień zasięgu krzyku" name="Shout Distance Ring" />
|
||||
</menu>
|
||||
<menu_item_call label="Profil miejsca" name="Place Profile"/>
|
||||
<menu_item_call label="Mapa świata" name="World Map"/>
|
||||
<menu_item_call label="O działce" name="About Land" />
|
||||
<menu_item_call label="Profil miejsca" name="Place Profile" />
|
||||
<menu_item_call label="Mapa świata" name="World Map" />
|
||||
</menu>
|
||||
|
|
|
|||
|
|
@ -337,6 +337,7 @@
|
|||
<menu_item_check label="Ukryj cząsteczki" name="Hide Particles"/>
|
||||
<menu_item_check label="Ukryj zaznaczone" name="Hide Selected"/>
|
||||
<menu_item_check label="Pokaż przezroczyste obiekty" name="Highlight Transparent"/>
|
||||
<menu_item_check label="- pokaż riggowaną przezroczystość" name="Include Transparent Rigged" />
|
||||
<menu_item_check label="Pokaż celownik myszki" name="ShowCrosshairs"/>
|
||||
<menu label="Chmurki pomocy" name="Hover Tips">
|
||||
<menu_item_check label="Pokazuj chmurki pomocy" name="Show Tips"/>
|
||||
|
|
@ -522,6 +523,9 @@
|
|||
<menu_item_check label="Pinguj pozycje interpolowanych obiektów" name="Ping Interpolate Object Positions"/>
|
||||
<menu_item_call label="Zagub pakiet" name="Drop a Packet" shortcut=""/>
|
||||
</menu>
|
||||
<menu label="Pamięć podręczna" name="Cache">
|
||||
<menu_item_call label="Wyczyść pamięć podręczną dysku" name="Purge Disk Cache" />
|
||||
</menu>
|
||||
<menu_item_call label="Zrzut oskryptowanej kamery" name="Dump Scripted Camera"/>
|
||||
<menu label="Nagrywanie" name="Recorder">
|
||||
<menu_item_call label="Rozpocznij nagrywanie zdarzeń" name="Start event recording"/>
|
||||
|
|
|
|||
|
|
@ -20,5 +20,5 @@
|
|||
<slider name="volume_slider" tool_tip="Siła głosu"/>
|
||||
<button name="info_btn" tool_tip="Więcej informacji"/>
|
||||
<button name="profile_btn" tool_tip="Zobacz profil"/>
|
||||
<output_monitor name="speaking_indicator" tool_tip="Awatar jest w zasięgu czatu głosowego, siła głosu podczas mówienia"/>
|
||||
<output_monitor name="speaking_indicator" tool_tip="Siła głosu"/>
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -5747,12 +5747,6 @@ Spróbuj załączyć ścieżkę do edytora w cytowaniu.
|
|||
<string name="UnknownPosition">
|
||||
(nieznana pozycja)
|
||||
</string>
|
||||
<string name="NetMapDoubleClickShowWorldMapToolTipMsg">
|
||||
[AGENT][REGION](Kliknij dwa razy by otworzyć Mapę, przeciągaj z shiftem by zmienić skalę)
|
||||
</string>
|
||||
<string name="NetMapDoubleClickTeleportToolTipMsg">
|
||||
[REGION](Kliknij dwa razy by teleportować, przeciągaj z shiftem by przesunąć)
|
||||
</string>
|
||||
<string name="Collision_Bump">
|
||||
[NAME] zderzył/a się z Tobą.
|
||||
</string>
|
||||
|
|
|
|||
|
|
@ -22,11 +22,35 @@
|
|||
<!-- RLVa shows the anonymized name on the regular tooltip when @shownames=n restricted (rather than show the avatar inspector) -->
|
||||
<floater.string
|
||||
name="ToolTipMsg">
|
||||
[AGENT][REGION] (Double-click to open Map, shift-drag to pan)
|
||||
[AGENT][PARCEL_NAME_MSG][PARCEL_SALE_PRICE_MSG][PARCEL_SALE_AREA_MSG][PARCEL_OWNER_MSG][REGION_NAME_MSG][TOOL_TIP_HINT_MSG]
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="ParcelNameMsg">
|
||||
[PARCEL_NAME]
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="ParcelSalePriceMsg">
|
||||
Price: L$[PRICE] (L$[PRICE_PER_SQM]/m²)
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="ParcelSaleAreaMsg">
|
||||
Area: [AREA]m²
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="ParcelOwnerMsg">
|
||||
Owner: [PARCEL_OWNER]
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="RegionNameMsg">
|
||||
Region: [REGION_NAME]
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="AltToolTipMsg">
|
||||
[REGION] (Double-click to teleport, shift-drag to pan)
|
||||
name="ToolTipHintMsg">
|
||||
Double-click to open map
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="AltToolTipHintMsg">
|
||||
Double-click to teleport
|
||||
</floater.string>
|
||||
<floater.string name="mini_map_caption">
|
||||
MINIMAP
|
||||
|
|
|
|||
|
|
@ -21,11 +21,35 @@
|
|||
<!-- RLVa shows the anonymized name on the regular tooltip when @shownames=n restricted (rather than show the avatar inspector) -->
|
||||
<floater.string
|
||||
name="ToolTipMsg">
|
||||
[AGENT][REGION] (Double-click to open Map, shift-drag to pan)
|
||||
[AGENT][PARCEL_NAME_MSG][PARCEL_SALE_PRICE_MSG][PARCEL_SALE_AREA_MSG][PARCEL_OWNER_MSG][REGION_NAME_MSG][TOOL_TIP_HINT_MSG]
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="ParcelNameMsg">
|
||||
[PARCEL_NAME]
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="ParcelSalePriceMsg">
|
||||
Price: L$[PRICE] (L$[PRICE_PER_SQM]/m²)
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="ParcelSaleAreaMsg">
|
||||
Area: [AREA]m²
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="ParcelOwnerMsg">
|
||||
Owner: [PARCEL_OWNER]
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="RegionNameMsg">
|
||||
Region: [REGION_NAME]
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="AltToolTipMsg">
|
||||
[REGION] (Double-click to teleport, shift-drag to pan)
|
||||
name="ToolTipHintMsg">
|
||||
Double-click to open map
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="AltToolTipHintMsg">
|
||||
Double-click to teleport
|
||||
</floater.string>
|
||||
<floater.string name="mini_map_caption">
|
||||
MINIMAP
|
||||
|
|
|
|||
|
|
@ -21,14 +21,38 @@
|
|||
<!-- RLVa shows the anonymized name on the regular tooltip when @shownames=n restricted (rather than show the avatar inspector) -->
|
||||
<floater.string
|
||||
name="ToolTipMsg">
|
||||
[AGENT][REGION](Double-click to open Map, shift-drag to pan)
|
||||
[AGENT][PARCEL_NAME_MSG][PARCEL_SALE_PRICE_MSG][PARCEL_SALE_AREA_MSG][PARCEL_OWNER_MSG][REGION_NAME_MSG][TOOL_TIP_HINT_MSG]
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="ParcelNameMsg">
|
||||
[PARCEL_NAME]
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="ParcelSalePriceMsg">
|
||||
Price: L$[PRICE] (L$[PRICE_PER_SQM]/m²)
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="ParcelSaleAreaMsg">
|
||||
Area: [AREA]m²
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="ParcelOwnerMsg">
|
||||
Owner: [PARCEL_OWNER]
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="RegionNameMsg">
|
||||
Region: [REGION_NAME]
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="AltToolTipMsg">
|
||||
[REGION](Double-click to teleport, shift-drag to pan)
|
||||
name="ToolTipHintMsg">
|
||||
Double-click to open map
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="AltToolTipHintMsg">
|
||||
Double-click to teleport
|
||||
</floater.string>
|
||||
<floater.string name="mini_map_caption">
|
||||
MINIMAP
|
||||
Mini-map
|
||||
</floater.string>
|
||||
<net_map
|
||||
bg_color="Transparent"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="Display Name" title="Modifier le nom d'affichage'">
|
||||
<text name="info_text">
|
||||
Le nom que vous avez donné à votre avatar s'appelle le nom d'affichage. Vous pouvez le changer une fois par semaine.
|
||||
</text>
|
||||
<text name="lockout_text" value=" Vous ne pouvez pas changer votre nom d'affichage en : [TIME]." />
|
||||
<text name="set_name_label">
|
||||
Nouveau nom :
|
||||
</text>
|
||||
<text name="name_confirm_label">
|
||||
Confirmer :
|
||||
</text>
|
||||
<button label="Enregistrer" name="save_btn" tool_tip="Enregistrez votre nouveau nom d'affichage"/>
|
||||
<button label="Réinitialiser" name="reset_btn" tool_tip="Faites en sorte que le nom affiché soit le même que le nom du compte de l'utilisateur."/>
|
||||
<button label="Annuler" name="cancel_btn"/>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="floater_voice_controls" title="Commutateurs vocaux">
|
||||
<string name="title_nearby">
|
||||
Conversations vocales à proximité
|
||||
</string>
|
||||
<string name="title_group">
|
||||
Conversation vocale de groupe [GROUP]
|
||||
</string>
|
||||
<string name="title_adhoc">
|
||||
Conférence
|
||||
</string>
|
||||
<string name="title_peer_2_peer">
|
||||
Conversation vocale avec [NAME]
|
||||
</string>
|
||||
<string name="no_one_near">
|
||||
Personne à proximité n'a de communications vocales actives
|
||||
</string>
|
||||
<layout_stack name="my_call_stack">
|
||||
<layout_panel name="leave_call_panel">
|
||||
<layout_stack name="voice_effect_and_leave_call_stack">
|
||||
<layout_panel name="leave_call_btn_panel">
|
||||
<button label="Finir conversation" name="leave_call_btn"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
<slider name="volume_slider" tool_tip="Volume de la voix" />
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<floater name="floater_people" title="Personnes">
|
||||
<panel_container name="main_panel">
|
||||
<panel name="panel_group_info_sidetray" label="Profil du groupe"/>
|
||||
<panel name="panel_block_list_sidetray" label="Résidents et objets bloqués"/>
|
||||
<panel name="panel_group_creation_sidetray" label="Créer un groupe"/>
|
||||
</panel_container>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="block_list_panel">
|
||||
<block_list name="blocked" tool_tip="Liste des personnes bloquées" />
|
||||
<text name="block_limit">
|
||||
Bloqués : [COUNT] ([LIMIT] max.)
|
||||
</text>
|
||||
<layout_stack name="block_list_sidetray_main">
|
||||
<layout_panel name="back_button_container">
|
||||
<button tool_tip="Retour" name="back"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="block_list_blocklaypanels">
|
||||
<layout_stack name="block_list_blocklaystack">
|
||||
<layout_panel name="block_panels_btnsort">
|
||||
<menu_button label="Trier..." name="view_btn" tool_tip="Options de tri" />
|
||||
</layout_panel>
|
||||
<layout_panel name="block_panels_btnpersonobject">
|
||||
<menu_button label="Bloquer..." name="plus_btn" tool_tip="Sélectionnez l'objet ou le résident à bloquer" />
|
||||
</layout_panel>
|
||||
<layout_panel name="block_panels_btnunblock">
|
||||
<button label="Débloquer..." name="unblock_btn" tool_tip="Retirer un résident ou un objet de la liste de blocage" />
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<panel name="block_list_panel">
|
||||
<fs_scroll_list name="block_list">
|
||||
<fs_scroll_list.columns name="item_name" label="Nom" />
|
||||
<fs_scroll_list.columns name="item_type" label="Type" />
|
||||
</fs_scroll_list>
|
||||
<text name="block_limit">
|
||||
Bloqués : [COUNT] ([LIMIT] max.)
|
||||
</text>
|
||||
<layout_stack name="block_list_sidetray_main">
|
||||
<layout_panel name="back_button_container">
|
||||
<button tool_tip="Retour" name="back" />
|
||||
</layout_panel>
|
||||
<layout_panel name="block_list_blocklaypanels">
|
||||
<layout_stack name="block_list_blocklaystack">
|
||||
<layout_panel name="block_panels_btnsort">
|
||||
<menu_button label="Trier..." name="view_btn" tool_tip="Options de tri" />
|
||||
</layout_panel>
|
||||
<layout_panel name="block_panels_btnpersonobject">
|
||||
<menu_button label="Bloquer..." name="plus_btn" tool_tip="Sélectionnez le résident ou l'objet à bloquer"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="block_panels_btnunblock">
|
||||
<button label="Débloquer..." name="unblock_btn" tool_tip="Retirer un résident ou un objet de la liste des éléments bloquées" />
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<panel name="panel_radar">
|
||||
<string name="TypingColumnIcon" value="radarbox_p"/>
|
||||
<string name="MiniMapToolTipMsg" value="[REGION] (Un double-clic permet d'ouvrir la carte, un glissement avec Maj permet de déplacer la carte.)"/>
|
||||
<string name="AltMiniMapToolTipMsg" value="[REGION] (Un double-clic permet de se téléporter, un glissement avec Maj permet de déplacer la carte.)"/>
|
||||
<string name="avatar_name_count" value="Nom [[TOTAL]/[IN_REGION]/[IN_CHAT_RANGE]]"/>
|
||||
<panel name="nearby_panel">
|
||||
<layout_stack name="radar_ls">
|
||||
<layout_panel name="radarlayout">
|
||||
<radar_list name="radar_list">
|
||||
<radar_list.columns label="Nom" name="name" tool_tip="[TOTAL] avatars, [IN_REGION] dans la même région, [IN_CHAT_RANGE] dans le rayon de discussion"/>
|
||||
<radar_list.columns name="voice_level" tool_tip="Conversations vocales"/>
|
||||
<radar_list.columns name="in_region" tool_tip="Il se trouve dans la même région (vert) ou dans la même parcelle (vert-jaune)."/>
|
||||
<radar_list.columns name="typing_status" tool_tip="Il est en train d'écrire"/>
|
||||
<radar_list.columns name="sitting_status" tool_tip="Il est assis"/>
|
||||
<radar_list.columns name="flags" tool_tip="Statut des informations de paiement"/>
|
||||
<radar_list.columns name="has_notes" tool_tip="L'avatar a des notes"/>
|
||||
<radar_list.columns label="Âge" name="age"/>
|
||||
<radar_list.columns label="Heure" name="seen"/>
|
||||
<radar_list.columns label="Distance" name="range"/>
|
||||
</radar_list>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</panel>
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="panel_group_notify">
|
||||
<text name="group_notice" value="Notice de groupe" />
|
||||
<text name="title" value="Nom de l'expéditeur / Nom du groupe" />
|
||||
<text name="attachment_label" value="Jointe :" />
|
||||
<panel name="attachment_container">
|
||||
<text name="attachment" value="Pièce jointe" />
|
||||
</panel>
|
||||
<button label="Annonces" name="btn_notices" />
|
||||
<button label="Discussions" name="btn_groupchat" />
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,109 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel label="Objets" name="main inventory panel">
|
||||
<panel.string name="ItemcountFetching">
|
||||
Récupération de [ITEM_COUNT] éléments... [FILTER]
|
||||
</panel.string>
|
||||
<panel.string name="ItemcountCompleted">
|
||||
[ITEM_COUNT] éléments [FILTER]
|
||||
</panel.string>
|
||||
<panel.string name="ItemcountUnknown">
|
||||
Récupéré [ITEM_COUNT] éléments [FILTER]
|
||||
</panel.string>
|
||||
<menu_bar name="inventory_menu_bar">
|
||||
<menu label="Inventaire" name="inventory_inventory_menu">
|
||||
<menu_item_call name="inventory_open" label="Ouvrir" />
|
||||
<menu_item_call name="inventory_share" label="Partager" />
|
||||
<menu_item_call name="replace_links" label="Remplacer les liens" />
|
||||
<menu_item_call name="inventory_new_window" label="Nouvelle fenêtre" />
|
||||
<menu_item_check name="Protected Folders" label="Dossiers protégés" />
|
||||
<menu_item_check name="add_inv_toggle" label="Ajouter des objets en double-cliquant" />
|
||||
<menu_item_check name="add_invclothing_toggle" label="Ajouter des vêtements en double-cliquant" />
|
||||
<menu_item_call name="inventory_show_filters" label="Afficher les filtres" />
|
||||
<menu_item_call name="inventory_reset_filters" label="Réinitialiser les filtres" />
|
||||
<menu_item_call name="inventory_close_all_folders" label="Fermer tous les dossiers" />
|
||||
<menu_item_call name="inventory_empty_trash" label="Vider la poubelle" />
|
||||
</menu>
|
||||
<menu label="Créer" name="inventory_create_menu">
|
||||
<menu_item_call name="inventory_new_folder" label="Nouveau dossier" />
|
||||
<menu_item_call name="inventory_new_script" label="Nouveau script" />
|
||||
<menu_item_call name="inventory_new_note" label="Nouvelle notę" />
|
||||
<menu_item_call name="inventory_new_gesture" label="Nouveau geste" />
|
||||
<menu name="inventory_new_clothes" label="Nouveaux vêtements">
|
||||
<menu_item_call name="inventory_new_shirt" label="Nouvelle chemise" />
|
||||
<menu_item_call name="inventory_new_pants" label="Nouveaux pantalons" />
|
||||
<menu_item_call name="inventory_new_shoes" label="Nouvelles chaussures" />
|
||||
<menu_item_call name="inventory_new_socks" label="Nouvelles chaussettes" />
|
||||
<menu_item_call name="inventory_new_jacket" label="Nouvelle veste" />
|
||||
<menu_item_call name="inventory_new_skirt" label="Nouvelle jupe" />
|
||||
<menu_item_call name="inventory_new_gloves" label="Nouveaux gants" />
|
||||
<menu_item_call name="inventory_new_undershirt" label="Nouveau tee-shirt" />
|
||||
<menu_item_call name="inventory_new_underpants" label="Nouveau caleçon" />
|
||||
<menu_item_call name="inventory_new_tattoo" label="Nouveau tatouage" />
|
||||
<menu_item_call name="inventory_new_alpha" label="Nouvelle couche alpha" />
|
||||
<menu_item_call name="inventory_new_universal" label="Nouvelle couche universelle" />
|
||||
<menu_item_call name="inventory_new_physics" label="Nouvelle physique" />
|
||||
</menu>
|
||||
<menu name="inventory_new_body_parts" label="Nouvelles parties du corps">
|
||||
<menu_item_call name="inventory_new_shape" label="Nouvelle silhouette" />
|
||||
<menu_item_call name="inventory_new_skin" label="Nouvelle peau" />
|
||||
<menu_item_call name="inventory_new_hair" label="Nouveaux cheveux" />
|
||||
<menu_item_call name="inventory_new_eyes" label="Nouveaux yeux" />
|
||||
</menu>
|
||||
<menu label="Nouvel environnement" name="New Settings">
|
||||
<menu_item_call label="Nouveau ciel" name="New Sky" />
|
||||
<menu_item_call label="Nouvelle eau" name="New Water" />
|
||||
<menu_item_call label="Nouveau cycle du jour" name="New Day Cycle" />
|
||||
</menu>
|
||||
</menu>
|
||||
<menu label="Tri" name="inventory_sort_menu">
|
||||
<menu_item_check name="inventory_sort_by_name" label="Par nom" />
|
||||
<menu_item_check name="inventory_sort_by_date" label="Par date" />
|
||||
<menu_item_check name="inventory_sort_folders_by_name" label="Les dossiers toujours par nom" />
|
||||
<menu_item_check name="inventory_sort_system_on_top" label="Les dossiers systèmes en haut" />
|
||||
</menu>
|
||||
<menu label="Recherche" name="inventory_search_menu">
|
||||
<menu_item_check name="inventory_search_by_name" label="Par nom" />
|
||||
<menu_item_check name="inventory_search_by_creator" label="Par créateur" />
|
||||
<menu_item_check name="inventory_search_by_description" label="Par description" />
|
||||
<menu_item_check name="inventory_search_by_uuid" label="Par UUID" />
|
||||
<menu_item_check name="inventory_search_by_all" label="Par tous" />
|
||||
<menu_item_check name="inventory_filter_show_links" label="Afficher les liens" />
|
||||
<menu_item_check name="inventory_filter_only_links" label="Afficher seulement les liens" />
|
||||
<menu_item_check name="inventory_filter_hide_links" label="Cacher les liens" />
|
||||
<menu_item_check name="inventory_filter_only_modify" label="Modifiables uniquement" />
|
||||
<menu_item_check name="inventory_filter_only_copy" label="Seulement copiables" />
|
||||
<menu_item_check name="inventory_filter_only_transfer" label="Seulement transférables" />
|
||||
<menu_item_check name="inventory_show_partial_results" label="Afficher les résultats partiels de la recherche" />
|
||||
</menu>
|
||||
</menu_bar>
|
||||
<filter_editor label="Inventaire de filtres" name="inventory search editor" tool_tip="Saisissez un ou plusieurs mots à rechercher, en les séparant par un signe '+' "/>
|
||||
<button name="collapse_btn" label="Fermer"/>
|
||||
<button name="expand_btn" label="Ouvrir" />
|
||||
<text name="filter_label" value="Filtre :"/>
|
||||
<combo_box name="filter_combo_box">
|
||||
<combo_box.item value="filter_type_all" label="Tous les types" />
|
||||
<combo_box.item value="filter_type_animations" label="Animations" />
|
||||
<combo_box.item value="filter_type_calling_cards" label="Cartes de visite" />
|
||||
<combo_box.item value="filter_type_clothing" label="Vêtements/parties du corps" />
|
||||
<combo_box.item value="filter_type_gestures" label="Gestes" />
|
||||
<combo_box.item value="filter_type_landmarks" label="Repères" />
|
||||
<combo_box.item value="filter_type_notecards" label="Notes" />
|
||||
<combo_box.item value="filter_type_objects" label="Objets" />
|
||||
<combo_box.item value="filter_type_scripts" label="Scripts" />
|
||||
<combo_box.item value="filter_type_sounds" label="Sons" />
|
||||
<combo_box.item value="filter_type_textures" label="Textures" />
|
||||
<combo_box.item value="filter_type_snapshots" label="Photos" />
|
||||
<combo_box.item value="filter_type_meshes" label="Meshes" />
|
||||
<combo_box.item value="filter_type_settings" label="Environnements" />
|
||||
<combo_box.item value="filter_type_custom" label="Filtres personnalisés..." />
|
||||
</combo_box>
|
||||
<menu_button tool_tip="Afficher les options d'affichage de la recherche" name="options_visibility_btn" />
|
||||
<tab_container name="inventory filter tabs">
|
||||
<inventory_panel label="Tous" name="All Items"/>
|
||||
<recent_inventory_panel label="Les plus récents" name="Recent Items"/>
|
||||
<worn_inventory_panel label="Portés" name="Worn Items"/>
|
||||
</tab_container>
|
||||
<text name="ItemcountText" tool_tip="[ITEMS] éléments, [CATEGORIES] dossiers">
|
||||
Éléments
|
||||
</text>
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel label="Personnes" name="people_panel">
|
||||
<string name="no_recent_people" value="Aucun appel récent. Vous voulez rencontrer des gens ? Essayez d'utiliser le [secondlife:///app/search/people Moteur de recherche] ou la [secondlife:///app/worldmap Carte du monde]." />
|
||||
<string name="no_filtered_recent_people" value="Vous n'avez pas trouvé ce que vous cherchiez ? Essayez d'utiliser le [secondlife:///app/search/people/[SEARCH_TERM] Moteur de recherche]." />
|
||||
<string name="no_one_near" value="Il n'y a personne autour. Vous voulez rencontrer des gens ? Essayez d'utiliser le [secondlife:///app/search/people Moteur de recherche] ou la [secondlife:///app/worldmap Carte du monde]." />
|
||||
<string name="no_one_filtered_near" value="Vous n'avez pas trouvé ce que vous cherchiez ? Essayez d'utiliser le [secondlife:///app/search/people/[SEARCH_TERM] Moteur de recherche]." />
|
||||
<string name="no_friends_online" value="Aucun ami en ligne" />
|
||||
<string name="no_friends" value="Pas d'amis" />
|
||||
<string name="no_friends_msg">
|
||||
Recherchez des amis avec le [secondlife:///app/search/people Moteur de recherche] ou cliquez avec le bouton droit de la souris sur le résident et proposez-lui de faire connaissance..
|
||||
Vous voulez rencontrer des gens ? Essayez d'utiliser la [secondlife:///app/worldmap Carte du monde].
|
||||
</string>
|
||||
<string name="no_filtered_friends_msg">
|
||||
Vous n'avez pas trouvé ce que vous cherchiez ? Essayez d'utiliser le [secondlife:///app/search/people/[SEARCH_TERM] Moteur de recherche].
|
||||
</string>
|
||||
<string name="people_filter_label" value="Filtrer les personnes" />
|
||||
<string name="groups_filter_label" value="Filtrer les groupes" />
|
||||
<string name="no_filtered_groups_msg" value="Vous n'avez pas trouvé ce que vous cherchiez ? Essayez d'utiliser le [secondlife:///app/search/groups/[SEARCH_TERM] Moteur de recherche]." />
|
||||
<string name="no_groups_msg" value="Vous voulez rejoindre un groupe ? Essayez d'utiliser le [secondlife:///app/search/groups Moteur de recherche]." />
|
||||
<string name="MiniMapToolTipMsg" value="[REGION] (Un double-clic permet d'ouvrir la carte, glisser avec Maj permet de déplacer la carte.)" />
|
||||
<string name="AltMiniMapToolTipMsg" value="[REGION] (Double-clic pour se téléporter, glisser avec Maj permet de déplacer la carte.)" />
|
||||
<string name="GroupCountWithInfo" value="Vous appartenez à [COUNT] et vous pouvez encore rejoindre [REMAINING]. [secondlife:/// En savoir plus?]" />
|
||||
<string name="avatar_name_count" value="Nom [[TOTAL] / [IN_REGION] / [IN_CHAT_RANGE]]" />
|
||||
<panel.string name="empty_list">
|
||||
Cet ensemble de contacts est vide.
|
||||
</panel.string>
|
||||
<panel.string name="no_sets">
|
||||
Pas d'ensembles.
|
||||
</panel.string>
|
||||
<panel.string name="all_sets">
|
||||
Tous les ensembles
|
||||
</panel.string>
|
||||
<panel.string name="pseudonyms">
|
||||
Alias
|
||||
</panel.string>
|
||||
<tab_container name="tabs">
|
||||
<panel label="Proche" name="nearby_panel">
|
||||
<tab_container name="tabcont_radarpeople_main">
|
||||
<panel name="panel_radar" label="Liste" />
|
||||
<panel name="radarmap_options_panel" label="Options">
|
||||
<scroll_container label="Options" name="radarmap_options_scroll_container">
|
||||
<container_view name="radarmap_options_container_view" label="Options">
|
||||
<panel name="radarmap_options_scrolled_panel">
|
||||
<check_box label="Afficher la mini-carte au-dessus du radar" name="ShowRadarMinimap"/>
|
||||
<check_box label="Afficher les avatars bloqués et en liste noire" name="FSRadarShowMutedAndDerendered"/>
|
||||
<check_box label="Signaler une entrée du champ de vision" name="RadarReportDrawRangeEnter"/>
|
||||
<check_box label="Signaler une sortie du champ de vision" name="RadarReportDrawRangeLeaving"/>
|
||||
<check_box label="Signaler les entrées dans le rayon de discussion" name="RadarReportChatRangeEnter"/>
|
||||
<check_box label="Signaler ceux qui sortent du rayon de discussion" name="RadarReportChatRangeLeave"/>
|
||||
<check_box label="Signaler ceux qui rentrent dans votre région" name="RadarReportSimRangeEnter"/>
|
||||
<check_box label="Signaler ceux qui quittent votre région" name="RadarReportSimRangeLeave"/>
|
||||
<check_box label="Signaler les alertes d'entrée aux scripts" name="RadarEnterChannelAlert"/>
|
||||
<check_box label="Signaler les alertes de sorties aux scripts" name="RadarLeaveChannelAlert"/>
|
||||
<check_box label="Améliorer le radar avec LSL Bridge" tool_tip="Si cette option est activée, les fonctions radar responsables de la détermination de la position des avatars à haute altitude sont assistées par le pont LSL-Bridge, en particulier lorsqu'ils se trouvent au-delà de la distance d'affichage'." name="FSRadarEnhanceByBridge"/>
|
||||
<check_box label="Colorez les noms en fonction de la distance" name="FSRadarColorNamesByDistance"/>
|
||||
<check_box label="Distance limite :" tool_tip="Limite les résultats à une distance spécifique" name="LimitRadarByRange" />
|
||||
<text name="radarmap_range_label" value="Format des noms sur le radar :"/>
|
||||
<combo_box name="RadarNameFormat">
|
||||
<combo_box.item name="RadarNameFormat_display" label="Nom d'affichage seulement" />
|
||||
<combo_box.item name="RadarNameFormat_user" label="Nom du compte seulement" />
|
||||
<combo_box.item name="RadarNameFormat_displayuser" label="Nom d'affichage (Nom du compte)" />
|
||||
<combo_box.item name="RadarNameFormat_userdisplay" label="Nom du compte (Nom d'affichage)" />
|
||||
</combo_box>
|
||||
<text name="columns_label" value="Colonnes visibles :" />
|
||||
<check_box label="Conversations vocales" name="column_voice" />
|
||||
<check_box label="Temps" name="column_seen" />
|
||||
<check_box label="Âge" name="column_age" />
|
||||
<check_box label="Dans la même région" name="column_region" />
|
||||
<check_box label="En train d'écrire" name="column_typing_status" />
|
||||
<check_box label="Assis" name="column_sitting_status" />
|
||||
<check_box label="Informations de paiement" name="column_flags" />
|
||||
<check_box label="Notes" name="notes_flags" />
|
||||
</panel>
|
||||
</container_view>
|
||||
</scroll_container>
|
||||
</panel>
|
||||
</tab_container>
|
||||
</panel>
|
||||
<panel label="Récents" name="recent_panel" />
|
||||
<panel label="Bloqués" name="blocked_panel" />
|
||||
</tab_container>
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<panel name="panel_pick_info">
|
||||
<panel.string name="location_notice">
|
||||
(sera mis à jour après l'enregistrement)
|
||||
</panel.string>
|
||||
<layout_stack name="main_pick_stack">
|
||||
<layout_panel name="main_pick_lp">
|
||||
<line_editor name="pick_location">
|
||||
Chargement...
|
||||
</line_editor>
|
||||
<layout_stack name="actions_stack">
|
||||
<layout_panel name="map_btn_lp">
|
||||
<button name="show_on_map_btn" label="Sur la carte" />
|
||||
</layout_panel>
|
||||
<layout_panel name="tp_btn_lp">
|
||||
<button name="teleport_btn" label="Téléportation" />
|
||||
</layout_panel>
|
||||
<layout_panel name="set_to_curr_location_btn_lp">
|
||||
<button name="set_to_curr_location_btn" label="Définir le lieu" tool_tip="Régler sur l'emplacement actuel" />
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</layout_panel>
|
||||
<layout_panel name="save_changes_lp">
|
||||
<layout_stack name="save_changes_stack">
|
||||
<layout_panel name="create_btn_lp">
|
||||
<button name="create_changes_btn" label="Créer" />
|
||||
</layout_panel>
|
||||
<layout_panel name="save_btn_lp">
|
||||
<button name="save_changes_btn" label="Enregistrer" />
|
||||
</layout_panel>
|
||||
<layout_panel name="cancel_btn_lp">
|
||||
<button name="cancel_changes_btn" label="Annuler" />
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<panel name="panel_profile" label="Profil">
|
||||
<string name="status_online">
|
||||
En ligne
|
||||
</string>
|
||||
<string name="status_offline">
|
||||
Hors ligne
|
||||
</string>
|
||||
<string name="status_unknown">
|
||||
Inconnu
|
||||
</string>
|
||||
<string name="no_partner_text" value="Aucun" />
|
||||
<string name="no_group_text" value="Aucun" />
|
||||
<string name="age_format">
|
||||
Anniversaire : [REG_DATE]
|
||||
([AGE])
|
||||
</string>
|
||||
<string name="FSDev" value=" Développeur" />
|
||||
<string name="FSSupp" value=" Support" />
|
||||
<string name="FSQualityAssurance" value=" Chasseur de bogues" />
|
||||
<string name="texture_picker_label" value="Photo du profil" />
|
||||
<text name="name_label" value="Nom :" />
|
||||
<button name="set_name" label="Nom :" tool_tip="Définir le nom d'affichage'" />
|
||||
<panel name="name_holder">
|
||||
<text_editor name="complete_name" value="(chargement en cours...)" />
|
||||
<menu_button name="copy_btn" tool_tip="Options de copie" />
|
||||
</panel>
|
||||
<text name="Key:" value="Clé :" />
|
||||
<layout_stack name="imagepositioner">
|
||||
<layout_panel name="image_action_panel">
|
||||
<menu_button name="image_action_btn" tool_tip="Effectue des actions liées à la photo du profil" />
|
||||
</layout_panel>
|
||||
<layout_panel name="label_stack">
|
||||
<icon tool_tip="Mes amis peuvent voir si je suis connecté" name="can_see_online" />
|
||||
<icon tool_tip="Mes amis ne peuvent pas voir si je suis connecté" name="cant_see_online" />
|
||||
<icon tool_tip="Mes amis peuvent me voir sur la carte" name="can_see_on_map" />
|
||||
<icon tool_tip="Mes amis ne peuvent pas me voir sur la carte" name="cant_see_on_map" />
|
||||
<icon tool_tip="Mes amis peuvent modifier mes objets" name="can_edit_objects" />
|
||||
<icon tool_tip="Mes amis ne peuvent pas modifier mes objets" name="cant_edit_objects" />
|
||||
<text_editor name="user_age" value="(chargement en cours...)" />
|
||||
<text name="label2" value="Compte :" />
|
||||
<text name="partner_label" value="Partenaire :"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
<text name="Groups:" value="Groupes :" />
|
||||
<button name="group_invite" tool_tip="Inviter dans le groupe" />
|
||||
<text name="About:" value="Info :" />
|
||||
<text name="Give item:" value="Donner :" />
|
||||
<text name="Give inventory" tool_tip="Déposez ici des objets pour les donner à cette personne.">
|
||||
Déposez des objets ici.
|
||||
</text>
|
||||
<layout_stack name="buttonstack">
|
||||
<layout_panel name="left_buttonstack">
|
||||
<button name="show_on_map_btn" label="Trouver sur la carte" tool_tip="Trouver un résident sur la carte" label_selected="Trouver sur la carte" />
|
||||
<button name="pay" label="Payer" tool_tip="Payer ce résident" label_selected="Payer" />
|
||||
</layout_panel>
|
||||
<layout_panel name="middle_buttonstack">
|
||||
<button name="teleport" label="Prop. téléportation" tool_tip="Proposer une téléportation au résident" label_selected="Proposer une téléportation" />
|
||||
<button name="im" label="Discussion privée (IM)" tool_tip="Commencer une nouvelle discussion privée (IM)" label_selected="Discussion privée (IM)" />
|
||||
</layout_panel>
|
||||
<layout_panel name="right_buttonstack">
|
||||
<button name="add_friend" label="Ajouter un ami" tool_tip="Proposer son amitié au résident" label_selected="Ajouter un ami" />
|
||||
<button name="remove_friend" label="Interr. amitié" tool_tip="Mettre fin à l'amitié avec le résident" label_selected="Interr. amitié" />
|
||||
<button name="block" label="Bloquer" tool_tip="Bloquer ce résident" />
|
||||
<button name="unblock" label="Débloquer" tool_tip="Débloquer ce résident" />
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
<check_box name="show_in_search" label="Afficher dans la recherche" tool_tip="Laissez les autres vous voir dans les résultats de recherche" />
|
||||
<button name="save_description_changes" label="Enregistrer" />
|
||||
<button name="discard_description_changes" label="Annuler" />
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<toolbar_view name="toolbar view">
|
||||
<layout_stack name="bottom_toolbar_stack">
|
||||
<layout_panel name="bottom_chat_bar_panel">
|
||||
<layout_stack name="chat_bar_utility_bar_stack">
|
||||
<layout_panel name="chat_panel">
|
||||
<layout_stack name="bottom_chat_stack">
|
||||
<layout_panel name="bottom_chat_bar_panel">
|
||||
<button name="local_chat_button" tool_tip="Afficher/masquer la fenêtre de discussion à proximité (CTRL+H)" label="Discussion à proximité" width="92" />
|
||||
<fs_nearby_chat_control name="default_chat_bar" label="Pour une discussion à proximité" />
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</layout_panel>
|
||||
<layout_panel name="utility_bar_layout_panel">
|
||||
<panel name="utility_bar_panel">
|
||||
<button name="utility_parcel_audio_stream_button" tool_tip="Lecture/arrêt de la musique en continu sur le terrain" />
|
||||
<button name="utility_parcel_media_button" tool_tip="Lecture/Pause du média de la parcelle" />
|
||||
<slider name="System Volume" tool_tip="Régler le volume" />
|
||||
<button name="mute_audio" tool_tip="Couper le son" />
|
||||
<button name="show_volume_controls_button" tool_tip="Afficher le contrôle du volume" />
|
||||
</panel>
|
||||
</layout_panel>
|
||||
<layout_panel name="voice_chat_controls_layout_panel">
|
||||
<panel name="voice_chat_controls_panel">
|
||||
<button name="show_voice_controls_button" tool_tip="Afficher les appels vocaux à proximité" />
|
||||
<button name="utility_talk_button" tool_tip="Pressez pour parler. Cliquez sur le cadenas pour activer/désactiver la fonction 'presser pour parler'." label="Parler" />
|
||||
<button name="utility_push_to_talk_lock_button" tool_tip="Commute la fonction 'presser pour parler'." />
|
||||
<nearby_voice_monitor name="nearby_voice_output_monitor" tool_tip="Activité actuelle du canal vocal" />
|
||||
</panel>
|
||||
</layout_panel>
|
||||
<layout_panel name="quick_preferences_button_layout_panel">
|
||||
<panel name="quick_preferences_button_panel">
|
||||
<button name="enable_disable_ao_button" tool_tip="Activer/désactiver le gestionnaire d'animations dans le client" />
|
||||
<button name="show_ao_interface_button" tool_tip="Afficher/masquer l'interface du gestionnaire d'animations dans le client" />
|
||||
<button name="show_quick_prefs_button" tool_tip="Paramètres pratiques pour les options fréquemment modifiées" />
|
||||
</panel>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</layout_panel>
|
||||
<layout_panel name="bottom_toolbar_panel">
|
||||
<button name="open_chat_bar_button" tool_tip="Afficher la barre de discussion (Entrée)" />
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</toolbar_view>
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel label="Objets" name="objects panel">
|
||||
<panel name="sidepanel_inventory_panel">
|
||||
<tab_container name="inventory_tab_container">
|
||||
<panel label="Inventaire" name="panel_main_inventory" />
|
||||
<panel name="marketplace_inbox">
|
||||
<string name="InboxLabelWithArg">
|
||||
Articles reçus ([NUM])
|
||||
</string>
|
||||
<string name="InboxLabelNoArg">
|
||||
Articles reçus
|
||||
</string>
|
||||
<text value="Articles reçus" name="inbox_label" />
|
||||
<text name="inbox_fresh_new_count">
|
||||
[NUM] nouveaux
|
||||
</text>
|
||||
<panel name="inbox_inventory_placeholder_panel" tool_tip="Glissez les objets dans votre inventaire pour les utiliser">
|
||||
<text name="inbox_inventory_placeholder">
|
||||
Les articles achetés sur la place du marché seront livrés ici.
|
||||
</text>
|
||||
</panel>
|
||||
</panel>
|
||||
</tab_container>
|
||||
</panel>
|
||||
</panel>
|
||||
Loading…
Reference in New Issue