# Conflicts:
#	indra/test/test.cpp
master
Ansariel 2024-05-22 20:27:05 +02:00
commit 9670494cff
59 changed files with 539 additions and 519 deletions

View File

@ -2,20 +2,52 @@ name: Build
on:
workflow_dispatch:
inputs:
release_run:
type: boolean
description: Do a release of this build
default: false
pull_request:
push:
branches: ["main", "release/*", "project/*"]
tags: ["Second_Life*"]
jobs:
# The whole point of the setvar job is that we want to set a variable once
# that will be consumed by multiple subsequent jobs. We tried setting it in
# the global env, but a job.env can't directly reference the global env
# context.
setvar:
runs-on: ubuntu-latest
outputs:
release_run: ${{ steps.setvar.outputs.release_run }}
env:
# Build with a tag like "Second_Life#abcdef0" to generate a release page
# (used for builds we are planning to deploy).
# When you want to use a string variable as a workflow YAML boolean, it's
# important to ensure it's the empty string when false. If you omit || '',
# its value when false is "false", which is interpreted as true.
RELEASE_RUN: ${{ (github.event.inputs.release_run || github.ref_type == 'tag' && startsWith(github.ref_name, 'Second_Life')) && 'Y' || '' }}
steps:
- name: Set Variable
id: setvar
shell: bash
run: |
echo "release_run=$RELEASE_RUN" >> "$GITHUB_OUTPUT"
build:
needs: setvar
strategy:
matrix:
runner: [windows-large, macos-12-xl]
configuration: [Release]
Linden: [true]
include:
- runner: macos-12-xl
developer_dir: "/Applications/Xcode_14.0.1.app/Contents/Developer"
- runner: windows-large
configuration: ReleaseOS
Linden: false
runs-on: ${{ matrix.runner }}
outputs:
viewer_channel: ${{ steps.build.outputs.viewer_channel }}
@ -37,7 +69,10 @@ jobs:
AUTOBUILD_VSVER: "170"
DEVELOPER_DIR: ${{ matrix.developer_dir }}
# Ensure that Linden viewer builds engage Bugsplat.
BUGSPLAT_DB: ${{ matrix.configuration != 'ReleaseOS' && 'SecondLife_Viewer_2018' || '' }}
BUGSPLAT_DB: ${{ matrix.Linden && 'SecondLife_Viewer_2018' || '' }}
# Run BUILD steps for Release configuration.
# Run BUILD steps for ReleaseOS configuration only for release runs.
BUILD: ${{ (matrix.Linden || needs.setvar.outputs.release_run) && 'Y' || '' }}
build_coverity: false
build_log_dir: ${{ github.workspace }}/.logs
build_viewer: true
@ -56,16 +91,19 @@ jobs:
variants: ${{ matrix.configuration }}
steps:
- name: Checkout code
if: env.BUILD
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
- name: Setup python
if: env.BUILD
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Checkout build variables
if: env.BUILD
uses: actions/checkout@v4
with:
repository: secondlife/build-variables
@ -73,17 +111,20 @@ jobs:
path: .build-variables
- name: Checkout master-message-template
if: env.BUILD
uses: actions/checkout@v4
with:
repository: secondlife/master-message-template
path: .master-message-template
- name: Install autobuild and python dependencies
if: env.BUILD
run: pip3 install autobuild llsd
- name: Cache autobuild packages
uses: actions/cache@v4
id: cache-installables
if: env.BUILD
uses: actions/cache@v4
with:
path: .autobuild-installables
key: ${{ runner.os }}-64-${{ matrix.configuration }}-${{ hashFiles('autobuild.xml') }}
@ -92,17 +133,19 @@ jobs:
${{ runner.os }}-64-
- name: Install windows dependencies
if: runner.os == 'Windows'
if: env.BUILD && runner.os == 'Windows'
run: choco install nsis-unicode
- name: Determine source branch
id: which-branch
if: env.BUILD
uses: secondlife/viewer-build-util/which-branch@v2
with:
token: ${{ github.token }}
- name: Build
id: build
if: env.BUILD
shell: bash
env:
AUTOBUILD_VCS_BRANCH: ${{ steps.which-branch.outputs.branch }}
@ -179,7 +222,7 @@ jobs:
# determine the viewer channel from the branch name
branch=$AUTOBUILD_VCS_BRANCH
IFS='/' read -ra ba <<< $branch
IFS='/' read -ra ba <<< "$branch"
prefix=${ba[0]}
if [ "$prefix" == "project" ]; then
IFS='_' read -ra prj <<< "${ba[1]}"
@ -225,7 +268,7 @@ jobs:
echo "artifact=$RUNNER_OS$cfg_suffix" >> $GITHUB_OUTPUT
- name: Upload executable
if: matrix.configuration != 'ReleaseOS' && steps.build.outputs.viewer_app
if: matrix.Linden && steps.build.outputs.viewer_app
uses: actions/upload-artifact@v4
with:
name: "${{ steps.build.outputs.artifact }}-app"
@ -235,7 +278,7 @@ jobs:
# The other upload of nontrivial size is the symbol file. Use a distinct
# artifact for that too.
- name: Upload symbol file
if: matrix.configuration != 'ReleaseOS'
if: matrix.Linden
uses: actions/upload-artifact@v4
with:
name: "${{ steps.build.outputs.artifact }}-symbols"
@ -243,7 +286,7 @@ jobs:
${{ steps.build.outputs.symbolfile }}
- name: Upload metadata
if: matrix.configuration != 'ReleaseOS'
if: matrix.Linden
uses: actions/upload-artifact@v4
with:
name: "${{ steps.build.outputs.artifact }}-metadata"
@ -254,7 +297,7 @@ jobs:
- name: Upload physics package
uses: actions/upload-artifact@v4
# should only be set for viewer-private
if: matrix.configuration != 'ReleaseOS' && steps.build.outputs.physicstpv
if: matrix.Linden && steps.build.outputs.physicstpv
with:
name: "${{ steps.build.outputs.artifact }}-physics"
# emitted by build.sh, zero or one lines
@ -358,10 +401,9 @@ jobs:
version: ${{ needs.build.outputs.viewer_version }}
release:
needs: [build, sign-and-package-windows, sign-and-package-mac]
needs: [setvar, build, sign-and-package-windows, sign-and-package-mac]
runs-on: ubuntu-latest
# Build with a tag like "Second_Life#abcdef0" to generate a release page (used for builds we are planning to deploy).
if: github.ref_type == 'tag' && startsWith(github.ref_name, 'Second_Life')
if: needs.setvar.outputs.release_run
steps:
- uses: actions/download-artifact@v4
with:

View File

@ -115,8 +115,8 @@ jobs:
FS_RELEASE_TYPE=Alpha
elif [[ "${{ github.ref_name }}" == *nightly* ]] || [[ "${{ github.event_name }}" == 'schedule' ]]; then
FS_RELEASE_TYPE=Nightly
else
FS_RELEASE_TYPE=Unknown
elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
FS_RELEASE_TYPE=Manual
fi
if [[ "${{ matrix.addrsize }}" == "64" ]]; then
FS_RELEASE_CHAN="${FS_RELEASE_TYPE}x64"
@ -240,21 +240,31 @@ jobs:
done
shell: bash
- name: make Nightly builds expire after 14 days
if: env.FS_RELEASE_TYPE == 'Nightly'
- name: Set expiration days based on FS_RELEASE_TYPE
run: |
echo "EXTRA_ARGS=${{ env.EXTRA_ARGS}} --testbuild=14" >> $GITHUB_ENV
shell: bash
- name: make Alpha builds expire after 28 days
if: env.FS_RELEASE_TYPE == 'Alpha'
run: |
echo "EXTRA_ARGS=${{ env.EXTRA_ARGS}} --testbuild=28" >> $GITHUB_ENV
shell: bash
- name: make Beta builds expire after 28 days
if: env.FS_RELEASE_TYPE == 'Beta'
run: |
echo "EXTRA_ARGS=${{ env.EXTRA_ARGS}} --testbuild=60" >> $GITHUB_ENV
case "${{ env.FS_RELEASE_TYPE }}" in
"Nightly" | "Manual")
EXPIRE_DAYS=14
;;
"Alpha")
EXPIRE_DAYS=28
;;
"Beta")
EXPIRE_DAYS=60
;;
*)
EXPIRE_DAYS=""
;;
esac
if [ -n "$EXPIRE_DAYS" ]; then
echo "This ${{ env.FS_RELEASE_TYPE }} build will expire in $EXPIRE_DAYS"
echo "EXTRA_ARGS=${{ env.EXTRA_ARGS}} --testbuild=$EXPIRE_DAYS" >> $GITHUB_ENV
else
echo "This ${{ env.FS_RELEASE_TYPE }} has no built in expiry"
echo "EXTRA_ARGS=${{ env.EXTRA_ARGS}}" >> $GITHUB_ENV
fi
shell: bash
- name: Clean up packages to give more space
run: rm *${{ env.fallback_platform }}*bz2
shell: bash
@ -353,9 +363,12 @@ jobs:
elif [[ "${{ github.ref_name }}" == *alpha* ]]; then
FS_RELEASE_FOLDER=test
FS_BUILD_WEBHOOK_URL=${{ secrets.BETA_WEBHOOK_URL }}
elif [[ "${{ github.ref_name }}" == *nightly* ]] || [[ "${{ github.event_name }}" == 'schedule' ]]; then
elif [[ "${{ github.ref_name }}" == *nightly* ]] || [[ "${{ github.event_name }}" == 'schedule' ]]; then
FS_RELEASE_FOLDER=nightly
FS_BUILD_WEBHOOK_URL=${{ secrets.NIGHTLY_WEBHOOK_URL }}
elif [[ "${{github.event_name }}" == "workflow_dispatch" ]]; then
FS_RELEASE_FOLDER=test
FS_BUILD_WEBHOOK_URL=${{ secrets.BETA_WEBHOOK_URL }}
else
FS_RELEASE_TYPE=Unknown
fi

View File

@ -117,7 +117,7 @@ if(WINDOWS)
elseif (MSVC_VERSION GREATER_EQUAL 1920 AND MSVC_VERSION LESS 1930) # Visual Studio 2019
set(MSVC_VER 140)
set(MSVC_TOOLSET_VER 142)
elseif (MSVC_VERSION GREATER_EQUAL 1930 AND MSVC_VERSION LESS 1940) # Visual Studio 2022
elseif (MSVC_VERSION GREATER_EQUAL 1930 AND MSVC_VERSION LESS 1950) # Visual Studio 2022
set(MSVC_VER 140)
set(MSVC_TOOLSET_VER 143)
else (MSVC80)

View File

@ -68,6 +68,7 @@ U8* LLImageRaw::allocateData(S32 size) { return NULL; }
U8* LLImageRaw::reallocateData(S32 size) { return NULL; }
const U8* LLImageBase::getData() const { return NULL; }
U8* LLImageBase::getData() { return NULL; }
const std::string& LLImage::getLastThreadError() { static std::string msg; return msg; }
// End Stubbing
// -------------------------------------------------------------------------------------------
@ -98,7 +99,7 @@ namespace tut
done = res;
*done = false;
}
virtual void completed(bool success, LLImageRaw* raw, LLImageRaw* aux, U32)
virtual void completed(bool success, const std::string& error_message, LLImageRaw* raw, LLImageRaw* aux, U32 request_id)
{
*done = true;
}

View File

@ -123,16 +123,21 @@ LLXmlTreeNode::LLXmlTreeNode( const std::string& name, LLXmlTreeNode* parent, LL
{
}
// <FS:Beq/> Fix formatting and modernise
// I don't even think the for loops are needed though.
LLXmlTreeNode::~LLXmlTreeNode()
{
attribute_map_t::iterator iter;
for (iter=mAttributes.begin(); iter != mAttributes.end(); iter++)
delete iter->second;
for(LLXmlTreeNode* node : mChildren)
{
delete node;
}
mChildren.clear();
for (auto& attr : mAttributes)
{
delete attr.second;
}
mAttributes.clear();
for (auto& child : mChildren)
{
delete child;
}
mChildren.clear();
}
void LLXmlTreeNode::dump( const std::string& prefix )

View File

@ -1307,16 +1307,15 @@ void FSFloaterIM::setDocked(bool docked, bool pop_on_undock)
{
// update notification channel state
LLNotificationsUI::LLScreenChannel* channel = static_cast<LLNotificationsUI::LLScreenChannel*>
(LLNotificationsUI::LLChannelManager::getInstance()->
findChannelByID(LLUUID(gSavedSettings.getString("NotificationChannelUUID"))));
(LLNotificationsUI::LLChannelManager::getInstance()->findChannelByID(LLNotificationsUI::NOTIFICATION_CHANNEL_UUID));
if(!isChatMultiTab())
if (!isChatMultiTab())
{
LLTransientDockableFloater::setDocked(docked, pop_on_undock);
}
// update notification channel state
if(channel)
if (channel)
{
channel->updateShowToastsState();
channel->redrawToasts();
@ -1326,8 +1325,7 @@ void FSFloaterIM::setDocked(bool docked, bool pop_on_undock)
void FSFloaterIM::setVisible(bool visible)
{
LLNotificationsUI::LLScreenChannel* channel = static_cast<LLNotificationsUI::LLScreenChannel*>
(LLNotificationsUI::LLChannelManager::getInstance()->
findChannelByID(LLUUID(gSavedSettings.getString("NotificationChannelUUID"))));
(LLNotificationsUI::LLChannelManager::getInstance()->findChannelByID(LLNotificationsUI::NOTIFICATION_CHANNEL_UUID));
LLTransientDockableFloater::setVisible(visible);
// update notification channel state
@ -1552,9 +1550,8 @@ void FSFloaterIM::updateMessages()
{
// remove embedded notification from channel
LLNotificationsUI::LLScreenChannel* channel = static_cast<LLNotificationsUI::LLScreenChannel*>
(LLNotificationsUI::LLChannelManager::getInstance()->
findChannelByID(LLUUID(gSavedSettings.getString("NotificationChannelUUID"))));
if (getVisible())
(LLNotificationsUI::LLChannelManager::getInstance()->findChannelByID(LLNotificationsUI::NOTIFICATION_CHANNEL_UUID));
if (channel && getVisible())
{
// toast will be automatically closed since it is not storable toast
channel->hideToast(chat.mNotifId);

View File

@ -594,9 +594,9 @@ void FSRadar::updateRadarList()
entry_options["name_style"] = nameCellStyle;
LLColor4 name_color = colortable.getColor("AvatarListItemIconDefaultColor", LLColor4::white).get();
name_color = contactsets->colorize(avId, (sFSRadarColorNamesByDistance ? range_color.get() : name_color), LGG_CS_RADAR);
name_color = contactsets->colorize(avId, (sFSRadarColorNamesByDistance ? range_color.get() : name_color), ContactSetType::RADAR);
contactsets->hasFriendColorThatShouldShow(avId, LGG_CS_RADAR, name_color);
contactsets->hasFriendColorThatShouldShow(avId, ContactSetType::RADAR, name_color);
entry_options["name_color"] = name_color.getValue();

View File

@ -22,11 +22,13 @@
#include "lggcontactsets.h"
#include "fscommon.h"
#include "fsdata.h"
#include "fsradar.h"
#include "llagent.h"
#include "llavatarnamecache.h"
#include "llcallingcard.h"
#include "lldir.h"
#include "llsdutil.h"
#include "llmutelist.h"
#include "llnotifications.h"
#include "llnotificationsutil.h"
@ -35,13 +37,11 @@
#include "lluicolortable.h"
#include "llviewercontrol.h"
#include "llvoavatar.h"
#include "fsdata.h"
#include "rlvactions.h"
#include "rlvhandler.h"
constexpr F32 COLOR_DAMPENING = 0.8f;
const std::string CONTACT_SETS_FILE = "settings_friends_groups.xml";
const std::string CS_PSEUDONYM_QUOTED = "'--- ---'";
constexpr char CONTACT_SETS_FILE[] = "settings_friends_groups.xml";
LGGContactSets::LGGContactSets()
{
@ -223,14 +223,13 @@ LLSD LGGContactSets::exportToLLSD()
void LGGContactSets::importFromLLSD(const LLSD& data)
{
for (LLSD::map_const_iterator data_it = data.beginMap(); data_it != data.endMap(); ++data_it)
for (const auto& [key, value] : llsd::inMap(data))
{
std::string name = data_it->first;
if (isInternalSetName(name))
if (isInternalSetName(key))
{
if (name == CS_GLOBAL_SETTINGS)
if (key == CS_GLOBAL_SETTINGS)
{
LLSD global_setting_data = data_it->second;
LLSD global_setting_data = value;
LLColor4 color = LLColor4::grey;
if (global_setting_data.has("defaultColor"))
@ -240,32 +239,28 @@ void LGGContactSets::importFromLLSD(const LLSD& data)
mDefaultColor = color;
}
if (name == CS_SET_EXTRA_AVS)
if (key == CS_SET_EXTRA_AVS)
{
LLSD extra_avatar_data = data_it->second;
for (LLSD::map_const_iterator extra_avatar_it = extra_avatar_data.beginMap(); extra_avatar_it != extra_avatar_data.endMap(); ++extra_avatar_it)
for (const auto& [av_key, av_value] : llsd::inMap(value))
{
mExtraAvatars.insert(LLUUID(extra_avatar_it->first));
mExtraAvatars.insert(LLUUID(av_key));
}
}
if (name == CS_SET_PSEUDONYM)
if (key == CS_SET_PSEUDONYM)
{
LLSD pseudonym_data = data_it->second;
for (LLSD::map_const_iterator pseudonym_data_it = pseudonym_data.beginMap(); pseudonym_data_it != pseudonym_data.endMap(); ++pseudonym_data_it)
for (const auto& [av_key, av_value] : llsd::inMap(value))
{
mPseudonyms[LLUUID(pseudonym_data_it->first)] = pseudonym_data_it->second.asString();
mPseudonyms.emplace(LLUUID(av_key), av_value.asString());
}
}
}
else
{
LLSD set_data = data_it->second;
LLSD set_data = value;
ContactSet* new_set = new ContactSet();
new_set->mName = name;
new_set->mName = key;
LLColor4 color = getDefaultColor();
if (set_data.has("color"))
@ -283,14 +278,13 @@ void LGGContactSets::importFromLLSD(const LLSD& data)
if (set_data.has("friends"))
{
LLSD friend_data = set_data["friends"];
for (LLSD::map_const_iterator friend_it = friend_data.beginMap(); friend_it != friend_data.endMap(); ++friend_it)
for (const auto& [av_key, av_value] : llsd::inMap(set_data["friends"]))
{
new_set->mFriends.insert(LLUUID(friend_it->first));
new_set->mFriends.emplace(LLUUID(av_key));
}
}
mContactSets[name] = new_set;
mContactSets[key] = new_set;
}
}
}
@ -305,7 +299,7 @@ LLColor4 LGGContactSets::getSetColor(std::string_view set_name) const
return getDefaultColor();
};
LLColor4 LGGContactSets::colorize(const LLUUID& uuid, LLColor4 color, ELGGCSType type) const
LLColor4 LGGContactSets::colorize(const LLUUID& uuid, LLColor4 color, ContactSetType type) const
{
static LLCachedControl<bool> legacy_radar_friend(gSavedSettings, "FSLegacyRadarFriendColoring");
static LLCachedControl<bool> legacy_radar_linden(gSavedSettings, "FSLegacyRadarLindenColoring");
@ -315,17 +309,17 @@ LLColor4 LGGContactSets::colorize(const LLUUID& uuid, LLColor4 color, ELGGCSType
{
switch (type)
{
case LGG_CS_CHAT:
case LGG_CS_IM:
case ContactSetType::CHAT:
case ContactSetType::IM:
color = LLUIColorTable::instance().getColor("UserChatColor", LLColor4::white).get();
break;
case LGG_CS_TAG:
case ContactSetType::TAG:
color = LLUIColorTable::instance().getColor("NameTagSelf", LLColor4::white).get();
break;
case LGG_CS_MINIMAP:
case ContactSetType::MINIMAP:
color = LLUIColorTable::instance().getColor("MapAvatarSelfColor", LLColor4::white).get();
break;
case LGG_CS_RADAR:
case ContactSetType::RADAR:
default:
LL_DEBUGS("ContactSets") << "Unhandled colorize case!" << LL_ENDL;
break;
@ -335,14 +329,14 @@ LLColor4 LGGContactSets::colorize(const LLUUID& uuid, LLColor4 color, ELGGCSType
{
switch (type)
{
case LGG_CS_CHAT:
case ContactSetType::CHAT:
if (!rlv_shownames)
color = LLUIColorTable::instance().getColor("FriendsChatColor", LLColor4::white).get();
break;
case LGG_CS_IM:
case ContactSetType::IM:
color = LLUIColorTable::instance().getColor("FriendsChatColor", LLColor4::white).get();
break;
case LGG_CS_TAG:
case ContactSetType::TAG:
{
// This is optional per prefs.
static LLCachedControl<bool> color_friends(gSavedSettings, "NameTagShowFriends");
@ -351,12 +345,12 @@ LLColor4 LGGContactSets::colorize(const LLUUID& uuid, LLColor4 color, ELGGCSType
color = LLUIColorTable::instance().getColor("NameTagFriend", LLColor4::white).get();
}
}
break;
case LGG_CS_MINIMAP:
break;
case ContactSetType::MINIMAP:
if (!rlv_shownames)
color = LLUIColorTable::instance().getColor("MapAvatarFriendColor", LLColor4::white).get();
break;
case LGG_CS_RADAR:
case ContactSetType::RADAR:
if (legacy_radar_friend && !rlv_shownames)
color = LLUIColorTable::instance().getColor("MapAvatarFriendColor", LLColor4::white).get();
break;
@ -373,17 +367,17 @@ LLColor4 LGGContactSets::colorize(const LLUUID& uuid, LLColor4 color, ELGGCSType
{
switch (type)
{
case LGG_CS_CHAT:
case LGG_CS_IM:
case ContactSetType::CHAT:
case ContactSetType::IM:
color = LLUIColorTable::instance().getColor("MutedChatColor", LLColor4::grey3).get();
break;
case LGG_CS_TAG:
case ContactSetType::TAG:
color = LLUIColorTable::instance().getColor("NameTagMuted", LLColor4::grey3).get();
break;
case LGG_CS_MINIMAP:
case ContactSetType::MINIMAP:
color = LLUIColorTable::instance().getColor("MapAvatarMutedColor", LLColor4::grey3).get();
break;
case LGG_CS_RADAR:
case ContactSetType::RADAR:
default:
LL_DEBUGS("ContactSets") << "Unhandled colorize case!" << LL_ENDL;
break;
@ -393,17 +387,17 @@ LLColor4 LGGContactSets::colorize(const LLUUID& uuid, LLColor4 color, ELGGCSType
{
switch (type)
{
case LGG_CS_CHAT:
case LGG_CS_IM:
case ContactSetType::CHAT:
case ContactSetType::IM:
color = LLUIColorTable::instance().getColor("FirestormChatColor", LLColor4::red).get();
break;
case LGG_CS_TAG:
case ContactSetType::TAG:
color = LLUIColorTable::instance().getColor("NameTagFirestorm", LLColor4::red).get();
break;
case LGG_CS_MINIMAP:
case ContactSetType::MINIMAP:
color = LLUIColorTable::instance().getColor("MapAvatarFirestormColor", LLColor4::red).get();
break;
case LGG_CS_RADAR:
case ContactSetType::RADAR:
default:
LL_DEBUGS("ContactSets") << "Unhandled colorize case!" << LL_ENDL;
break;
@ -415,17 +409,17 @@ LLColor4 LGGContactSets::colorize(const LLUUID& uuid, LLColor4 color, ELGGCSType
{
switch (type)
{
case LGG_CS_CHAT:
case LGG_CS_IM:
case ContactSetType::CHAT:
case ContactSetType::IM:
color = LLUIColorTable::instance().getColor("LindenChatColor", LLColor4::blue).get();
break;
case LGG_CS_TAG:
case ContactSetType::TAG:
color = LLUIColorTable::instance().getColor("NameTagLinden", LLColor4::blue).get();
break;
case LGG_CS_MINIMAP:
case ContactSetType::MINIMAP:
color = LLUIColorTable::instance().getColor("MapAvatarLindenColor", LLColor4::blue).get();
break;
case LGG_CS_RADAR:
case ContactSetType::RADAR:
if (legacy_radar_linden)
color = LLUIColorTable::instance().getColor("MapAvatarLindenColor", LLColor4::blue).get();
break;
@ -452,7 +446,7 @@ LLColor4 LGGContactSets::getFriendColor(const LLUUID& friend_id, std::string_vie
return color;
}
U32 lowest = U32_MAX;
U32 lowest{ U32_MAX };
for (const auto& set_name : getFriendSets(friend_id))
{
if (set_name != ignored_set_name)
@ -485,14 +479,14 @@ LLColor4 LGGContactSets::getFriendColor(const LLUUID& friend_id, std::string_vie
return color;
}
bool LGGContactSets::hasFriendColorThatShouldShow(const LLUUID& friend_id, ELGGCSType type) const
bool LGGContactSets::hasFriendColorThatShouldShow(const LLUUID& friend_id, ContactSetType type) const
{
LLColor4 color = LLColor4::white;
return hasFriendColorThatShouldShow(friend_id, type, color);
}
// handle all settings and rlv that would prevent us from showing the cs color
bool LGGContactSets::hasFriendColorThatShouldShow(const LLUUID& friend_id, ELGGCSType type, LLColor4& color) const
bool LGGContactSets::hasFriendColorThatShouldShow(const LLUUID& friend_id, ContactSetType type, LLColor4& color) const
{
if (!RlvActions::canShowName(RlvActions::SNC_DEFAULT, friend_id))
{
@ -506,20 +500,20 @@ bool LGGContactSets::hasFriendColorThatShouldShow(const LLUUID& friend_id, ELGGC
switch (type)
{
case LGG_CS_CHAT:
case LGG_CS_IM:
case ContactSetType::CHAT:
case ContactSetType::IM:
if (!fsContactSetsColorizeChat)
return false;
break;
case LGG_CS_TAG:
case ContactSetType::TAG:
if (!fsContactSetsColorizeTag)
return false;
break;
case LGG_CS_RADAR:
case ContactSetType::RADAR:
if (!fsContactSetsColorizeRadar)
return false;
break;
case LGG_CS_MINIMAP:
case ContactSetType::MINIMAP:
if (!fsContactSetsColorizeMiniMap)
return false;
break;
@ -607,9 +601,9 @@ uuid_vec_t LGGContactSets::getFriendsInAnySet() const
for (const auto& [set_name, set] : mContactSets)
{
for (uuid_set_t::iterator itr = set->mFriends.begin(); itr != set->mFriends.end(); ++itr)
for (const auto& friend_id : set->mFriends)
{
friendsInAnySet.insert(*itr);
friendsInAnySet.emplace(friend_id);
}
}
@ -648,7 +642,7 @@ bool LGGContactSets::isFriendInSet(const LLUUID& friend_id, std::string_view set
return isNonFriend(friend_id);
}
if( set_name.empty() )
if (set_name.empty())
return false;
if (ContactSet* set = getContactSet(set_name); set)
@ -1056,12 +1050,10 @@ bool LGGContactSets::handleRemoveAvatarFromSetCallback(const LLSD& notification,
LGGContactSets& instance = LGGContactSets::instance();
LLAvatarTracker& tracker = LLAvatarTracker::instance();
for (LLSD::array_const_iterator it = notification["payload"]["ids"].beginArray();
it != notification["payload"]["ids"].endArray();
++it)
const std::string set_name = notification["payload"]["contact_set"].asString();
for (const auto& item : llsd::inArray(notification["payload"]["ids"]))
{
const LLUUID& id = it->asUUID();
std::string set_name = notification["payload"]["contact_set"].asString();
const LLUUID& id = item.asUUID();
instance.removeFriendFromSet(id, set_name, false);

View File

@ -26,21 +26,22 @@
#include <unordered_set>
#include <boost/signals2.hpp>
typedef enum e_lgg_cs
enum class ContactSetType
{
LGG_CS_CHAT,
LGG_CS_IM,
LGG_CS_TAG,
LGG_CS_RADAR,
LGG_CS_MINIMAP
} ELGGCSType;
CHAT,
IM,
TAG,
RADAR,
MINIMAP
};
const std::string CS_SET_ALL_SETS = "All Sets";
const std::string CS_SET_NO_SETS = "No Sets";
const std::string CS_SET_EXTRA_AVS = "extraAvs";
const std::string CS_SET_PSEUDONYM = "Pseudonyms";
const std::string CS_GLOBAL_SETTINGS = "globalSettings";
const std::string CS_PSEUDONYM = "--- ---";
constexpr char CS_SET_ALL_SETS[] = "All Sets";
constexpr char CS_SET_NO_SETS[] = "No Sets";
constexpr char CS_SET_EXTRA_AVS[] = "extraAvs";
constexpr char CS_SET_PSEUDONYM[] = "Pseudonyms";
constexpr char CS_GLOBAL_SETTINGS[] = "globalSettings";
constexpr char CS_PSEUDONYM[] = "--- ---";
constexpr char CS_PSEUDONYM_QUOTED[] = "'--- ---'";
class LGGContactSets : public LLSingleton<LGGContactSets>
{
@ -58,7 +59,7 @@ public:
void setSetColor(std::string_view set_name, const LLColor4& color);
LLColor4 getSetColor(std::string_view set_name) const;
LLColor4 getFriendColor(const LLUUID& friend_id, std::string_view ignored_set_name = "") const;
LLColor4 colorize(const LLUUID& uuid, LLColor4 color, ELGGCSType type) const;
LLColor4 colorize(const LLUUID& uuid, LLColor4 color, ContactSetType type) const;
void setDefaultColor(const LLColor4& default_color) { mDefaultColor = default_color; };
LLColor4 getDefaultColor() const { return mDefaultColor; };
@ -81,8 +82,8 @@ public:
void removeFriendFromSet(const LLUUID& friend_id, std::string_view set_name, bool save_changes = true);
void removeFriendFromAllSets(const LLUUID& friend_id, bool save_changes = true);
bool isFriendInSet(const LLUUID& friend_id, std::string_view set_name) const;
bool hasFriendColorThatShouldShow(const LLUUID& friend_id, ELGGCSType type) const;
bool hasFriendColorThatShouldShow(const LLUUID& friend_id, ELGGCSType type, LLColor4& color) const;
bool hasFriendColorThatShouldShow(const LLUUID& friend_id, ContactSetType type) const;
bool hasFriendColorThatShouldShow(const LLUUID& friend_id, ContactSetType type, LLColor4& color) const;
void addSet(std::string_view set_name);
bool renameSet(std::string_view set_name, std::string_view new_set_name);

View File

@ -2144,10 +2144,19 @@ LLVector3d LLAgentCamera::calcCameraPositionTargetGlobal(bool *hit_limit)
}
// [/RLVa:KB]
// <FS:humbletim> FIRE-33613: [OpenSim] [PBR] Camera cannot be located at negative Z
F32 camera_ground_plane{ F_ALMOST_ZERO };
// integrate OpenSimExtras.MinSimHeight into the camera ground plane calculation
if (auto regionp = LLWorld::getInstance()->getRegionFromPosGlobal(camera_position_global))
{
camera_ground_plane += regionp->getMinSimHeight();
}
// </FS:humbletim>
// Don't let camera go underground
F32 camera_min_off_ground = getCameraMinOffGround();
camera_land_height = LLWorld::getInstance()->resolveLandHeightGlobal(camera_position_global);
F32 minZ = llmax(F_ALMOST_ZERO, camera_land_height + camera_min_off_ground);
F32 minZ = llmax(camera_ground_plane, camera_land_height + camera_min_off_ground); // <FS:humbletim/> FIRE-33613: [OpenSim] [PBR] Camera cannot be located at negative Z
if (camera_position_global.mdV[VZ] < minZ)
{
camera_position_global.mdV[VZ] = minZ;

View File

@ -2108,10 +2108,10 @@ LLColor4 LLNetMap::getAvatarColor(const LLUUID& avatar_id)
LGGContactSets& cs_instance = LGGContactSets::instance();
// Color "special" avatars with special colors (Friends, muted, Lindens, etc)
color = cs_instance.colorize(avatar_id, color, LGG_CS_MINIMAP);
color = cs_instance.colorize(avatar_id, color, ContactSetType::MINIMAP);
// Color based on contact sets prefs
cs_instance.hasFriendColorThatShouldShow(avatar_id, LGG_CS_MINIMAP, color);
cs_instance.hasFriendColorThatShouldShow(avatar_id, ContactSetType::MINIMAP, color);
// Mark Avatars with special colors
avatar_marks_map_t::iterator found = sAvatarMarksMap.find(avatar_id);

View File

@ -99,16 +99,16 @@ void LLViewerChat::getChatColor(const LLChat& chat, LLColor4& r_color, LLSD args
if (chat.mChatType == CHAT_TYPE_IM || chat.mChatType == CHAT_TYPE_IM_GROUP)
{
r_color = LGGContactSets::getInstance()->colorize(chat.mFromID, r_color, LGG_CS_IM);
r_color = LGGContactSets::getInstance()->colorize(chat.mFromID, r_color, ContactSetType::IM);
}
else
{
r_color = LGGContactSets::getInstance()->colorize(chat.mFromID, r_color, LGG_CS_CHAT);
r_color = LGGContactSets::getInstance()->colorize(chat.mFromID, r_color, ContactSetType::CHAT);
}
// </FS:CR>
//color based on contact sets prefs
LGGContactSets::getInstance()->hasFriendColorThatShouldShow(chat.mFromID, LGG_CS_CHAT, r_color);
LGGContactSets::getInstance()->hasFriendColorThatShouldShow(chat.mFromID, ContactSetType::CHAT, r_color);
}
break;
case CHAT_SOURCE_OBJECT:

View File

@ -672,7 +672,8 @@ LLViewerRegion::LLViewerRegion(const U64 &handle,
// </FS:Beq>
// <FS:CR> Aurora Sim
mWidth(region_width_meters),
mWidthScaleFactor(region_width_meters / REGION_WIDTH_METERS) // <FS:Ansariel> FIRE-19563: Scaling for OpenSim VarRegions
mWidthScaleFactor(region_width_meters / REGION_WIDTH_METERS), // <FS:Ansariel> FIRE-19563: Scaling for OpenSim VarRegions
mMinSimHeight(0.f) // <FS:humbletim> FIRE-33613: [OpenSim] [PBR] Camera cannot be located at negative Z
{
// Moved this up... -> mWidth = region_width_meters;
// </FS:CR>
@ -2581,7 +2582,7 @@ void LLViewerRegion::setSimulatorFeatures(const LLSD& sim_features)
setSimulatorFeaturesReceived(true);
// <FS:CR> Opensim god names
// <FS> Opensim
#ifdef OPENSIM
if (LLGridManager::getInstance()->isInOpenSim())
{
@ -2590,31 +2591,23 @@ void LLViewerRegion::setSimulatorFeatures(const LLSD& sim_features)
{
if (mSimulatorFeatures["god_names"].has("full_names"))
{
LLSD god_names = mSimulatorFeatures["god_names"]["full_names"];
for (LLSD::array_iterator itr = god_names.beginArray();
itr != god_names.endArray();
itr++)
for (const auto& item : llsd::inArray(mSimulatorFeatures["god_names"]["full_names"]))
{
mGodNames.insert((*itr).asString());
mGodNames.emplace(item.asString());
}
}
if (mSimulatorFeatures["god_names"].has("last_names"))
{
LLSD god_names = mSimulatorFeatures["god_names"]["last_names"];
for (LLSD::array_iterator itr = god_names.beginArray();
itr != god_names.endArray();
itr++)
for (const auto& item : llsd::inArray(mSimulatorFeatures["god_names"]["last_names"]))
{
mGodNames.insert((*itr).asString());
mGodNames.emplace(item.asString());
}
}
}
}
#endif // OPENSIM
// </FS:CR>
// <FS:Beq> limit num bakes by region support
#ifdef OPENSIM
if (mSimulatorFeatures.has("BakesOnMeshEnabled") && (mSimulatorFeatures["BakesOnMeshEnabled"].asBoolean()==true))
#endif
if (LLGridManager::getInstance()->isInSecondLife() || (mSimulatorFeatures.has("BakesOnMeshEnabled") && mSimulatorFeatures["BakesOnMeshEnabled"].asBoolean()))
{
mMaxBakes = LLAvatarAppearanceDefines::EBakedTextureIndex::BAKED_NUM_INDICES;
mMaxTEs = LLAvatarAppearanceDefines::ETextureIndex::TEX_NUM_INDICES;
@ -2624,11 +2617,8 @@ void LLViewerRegion::setSimulatorFeatures(const LLSD& sim_features)
mMaxBakes = LLAvatarAppearanceDefines::EBakedTextureIndex::BAKED_LEFT_ARM;
mMaxTEs = LLAvatarAppearanceDefines::ETextureIndex::TEX_HEAD_UNIVERSAL_TATTOO;
}
#else
mMaxBakes = LLAvatarAppearanceDefines::EBakedTextureIndex::BAKED_NUM_INDICES;
mMaxTEs = LLAvatarAppearanceDefines::ETextureIndex::TEX_NUM_INDICES;
#endif // OPENSIM
// </FS:Beq>
mMinSimHeight = mSimulatorFeatures.has("OpenSimExtras") && mSimulatorFeatures["OpenSimExtras"].has("MinSimHeight") ? mSimulatorFeatures["OpenSimExtras"]["MinSimHeight"].asReal() : 0.0f;
// </FS>
}
//this is called when the parent is not cacheable.
@ -3207,9 +3197,8 @@ void LLViewerRegion::unpackRegionHandshake()
mCentralBakeVersion = region_protocols & 1; // was (S32)gSavedSettings.getBOOL("UseServerTextureBaking");
// <FS:Beq> Earlier trigger for BOM support on region
#ifdef OPENSIM
constexpr U64 REGION_SUPPORTS_BOM {(U64)1<<63};
if(region_protocols & REGION_SUPPORTS_BOM) // OS sets bit 63 when BOM supported
constexpr U64 REGION_SUPPORTS_BOM{ 1ULL << 63 };
if (region_protocols & REGION_SUPPORTS_BOM) // OS sets bit 63 when BOM supported
{
mMaxBakes = LLAvatarAppearanceDefines::EBakedTextureIndex::BAKED_NUM_INDICES;
mMaxTEs = LLAvatarAppearanceDefines::ETextureIndex::TEX_NUM_INDICES;
@ -3219,7 +3208,6 @@ void LLViewerRegion::unpackRegionHandshake()
mMaxBakes = LLAvatarAppearanceDefines::EBakedTextureIndex::BAKED_LEFT_ARM;
mMaxTEs = LLAvatarAppearanceDefines::ETextureIndex::TEX_HEAD_UNIVERSAL_TATTOO;
}
#endif
// </FS:Beq>
LLVLComposition *compp = getComposition();
if (compp)

View File

@ -254,6 +254,7 @@ public:
F32 getWidth() const { return mWidth; }
F32 getWidthScaleFactor() const { return mWidthScaleFactor; } // <FS:Ansariel> FIRE-19563: Scaling for OpenSim VarRegions
F32 getMinSimHeight() const { return mMinSimHeight; } // <FS:humbletim/> FIRE-33613: [OpenSim] [PBR] Camera cannot be located at negative Z
// regions are expensive to release, this function gradually releases cache from memory
static void idleCleanup(F32 max_update_time);
@ -550,7 +551,8 @@ public:
S32 mLastUpdate; //last time called idleUpdate()
F32 mWidthScaleFactor; // <FS:Ansariel> FIRE-19563: Scaling for OpenSim VarRegions
S32 mMaxBakes; // <FS:Beq/> store max bakes on the region
S32 mMaxTEs; // <FS:Beq/> store max bakes on the region
S32 mMaxTEs; // <FS:Beq/> store max texture entries on the region
F32 mMinSimHeight; // <FS:humbletim/> FIRE-33613: [OpenSim] [PBR] Camera cannot be located at negative Z
// simulator name
std::string mName;
std::string mZoning;

View File

@ -3085,10 +3085,10 @@ void LLViewerWindow::draw()
}
LLColor4 targetColor = map_avatar_color.get();
targetColor = contact_sets.colorize(targetKey, targetColor, LGG_CS_MINIMAP);
targetColor = contact_sets.colorize(targetKey, targetColor, ContactSetType::MINIMAP);
//color based on contact sets prefs
contact_sets.hasFriendColorThatShouldShow(targetKey, LGG_CS_MINIMAP, targetColor);
contact_sets.hasFriendColorThatShouldShow(targetKey, ContactSetType::MINIMAP, targetColor);
LLColor4 mark_color;
if (LLNetMap::getAvatarMarkColor(targetKey, mark_color))

View File

@ -3665,7 +3665,7 @@ void LLVOAvatar::idleUpdateNameTagText(bool new_name)
// then use that color as name_tag_color
static LLUICachedControl<bool> show_friends("NameTagShowFriends");
static LLUICachedControl<U32> color_client_tags("FSColorClienttags");
bool special_color_override = (show_friends && (is_friend || LGGContactSets::getInstance()->hasFriendColorThatShouldShow(getID(), LGG_CS_TAG))) ||
bool special_color_override = (show_friends && (is_friend || LGGContactSets::getInstance()->hasFriendColorThatShouldShow(getID(), ContactSetType::TAG))) ||
LLNetMap::hasAvatarMarkColor(getID());
if (mClientTagData.has("color")
&& !special_color_override
@ -4017,10 +4017,10 @@ void LLVOAvatar::idleUpdateNameTagText(bool new_name)
LLColor4 new_chat = LLUIColorTable::instance().getColor( isSelf() ? "UserChatColor" : "AgentChatColor" );
// <FS:CR> Colorize tags
new_chat = LGGContactSets::getInstance()->colorize(getID(), new_chat, LGG_CS_CHAT);
new_chat = LGGContactSets::getInstance()->colorize(getID(), new_chat, ContactSetType::CHAT);
//color based on contact sets prefs
LGGContactSets::getInstance()->hasFriendColorThatShouldShow(getID(), LGG_CS_CHAT, new_chat);
LGGContactSets::getInstance()->hasFriendColorThatShouldShow(getID(), ContactSetType::CHAT, new_chat);
// </FS:CR>
if (mVisibleChat)
@ -4274,10 +4274,10 @@ LLColor4 LLVOAvatar::getNameTagColor()
}
// <FS:CR> FIRE-1061 - Color friends, lindens, muted, etc
color = LGGContactSets::getInstance()->colorize(getID(), color, LGG_CS_TAG);
color = LGGContactSets::getInstance()->colorize(getID(), color, ContactSetType::TAG);
// </FS:CR>
LGGContactSets::getInstance()->hasFriendColorThatShouldShow(getID(), LGG_CS_TAG, color);
LGGContactSets::getInstance()->hasFriendColorThatShouldShow(getID(), ContactSetType::TAG, color);
LLNetMap::getAvatarMarkColor(getID(), color);

View File

@ -22,10 +22,10 @@ background_visible="false"
name="group_join_btn">
Join (L$[AMOUNT])
</panel.string>
<panel.string
name="group_join_free">
Free
</panel.string>
<panel.string name="group_join_free">Free</panel.string>
<panel.string name="group_member">Member</panel.string>
<panel.string name="join_txt">Join</panel.string>
<panel.string name="leave_txt">Leave</panel.string>
<layout_stack
name="group_info_sidetray_main"

View File

@ -69,16 +69,16 @@
</panel>
<panel name="P_R_Res">
<text name="T_R_Res" tool_tip="Su əks etdirmələrinin ayırdetmə qabiliyyətini/keyfiyyətini müəyyən edir. Çözünürlük seçimləri 'Çox Yaxşı' və ya daha yüksək olaraq təyin edilərsə, 'İşıq' pəncərəsində 'Qabaqcıl İşıqlandırma Modeli'ni də aktivləşdirməlisiniz.">
<text name="T_R_Res" tool_tip="Su əks etdirmələrinin ayırdetmə qabiliyyətini/keyfiyyətini müəyyən edir.">
Çözünürlük
</text>
<combo_box name="ReflectionRescombo">
<combo_box.item name="0" label="Məqbul"/>
<combo_box.item name="1" label="Yaxşı"/>
<combo_box.item name="2" label="Çox Yaxşı - 'Qabaqcıl İşıqlandırma Modeli' aktivləşdirilməlidir (İşıq pəncərəsi)"/>
<combo_box.item name="3" label="Əla - 'Qabaqcıl İşıqlandırma Modeli' aktivləşdirilməlidir (İşıq pəncərəsi)"/>
<combo_box.item name="4" label="Görkəmli - 'Qabaqcıl İşıqlandırma Modeli' aktivləşdirilməlidir (İşıq pəncərəsi)"/>
<combo_box.item name="5" label="Canlı kimi - 'Qabaqcıl İşıqlandırma Modeli' aktivləşdirilməlidir (İşıq pəncərəsi)"/>
<combo_box.item name="2" label="Çox Yaxşı"/>
<combo_box.item name="3" label="Əla"/>
<combo_box.item name="4" label="Görkəmli"/>
<combo_box.item name="5" label="Canlı kimi"/>
</combo_box>
<check_box name="TransparentWater" label="Şəffaf Su" tool_tip="Su şəffaflığını göstərir. Onu söndürmək, tətbiq olunan sadə tekstura ilə suyu qeyri-şəffaf edir."/>
</panel>
@ -92,10 +92,6 @@
</panel>
<panel adı="P_L_S_Settings">
<check_box name="RenderDeferred" label="Qabaqcıl işıqlandırma modeli"
tool_tip="Bu, Günəşdən və Aydan, eləcə də xarici işıqlardan kölgələr yaradacaq. Bu, həmçinin sizə Sahənin Dərinliyini və digər qrafik xüsusiyyətlərini aktiv etməyə imkan verəcək. Əsasən, siz dünyada ən yaxşı şeyləri görmək üçün bunu aktiv etməlisiniz. . Əgər bu funksiyanı aktiv edə bilmirsinizsə və ya onun təsirini görə bilmirsinizsə, əvvəlcə Ətraf mühit nişanında Atmosfer Kölgələrinin aktiv olduğundan əmin olun."/>
<check_box name="LocalLights" label="Bütün yerli işıqları aktivləşdir"
tool_tip="Bu, dünyadakı bütün işıqları yandıracaq. Bu funksiyanı deaktiv etsəniz, Günəş/Aydan gələn işıq hələ də göstəriləcək. SİM kartın işıqlandırmasını çıxarmaq və yalnız Günəş işığından istifadə etmək istəyirsinizsə faydalıdır. /Ay."/>
<check_box name="Render Attached Lights" label="Birləşdirilmiş İşıqları Aktivləşdir"
tool_tip="Bu, avatar işıqları kimi istənilən işığı yandıracaq. Lazım olduqda işıqları söndürmək üçün faydalıdır."/>
</panel>

View File

@ -66,16 +66,16 @@
</panel>
<panel name="P_R_Res">
<text name="T_R_Res" tool_tip="Legt die Qualität der Wasserreflektionen fest. Falls eine Qualität von „Sehr gut“ oder höher verwendet wird, muss „Erweitertes Beleuchtungsmodell“ aktiviert sein (siehe Reiter „Licht“).">
<text name="T_R_Res" tool_tip="Legt die Qualität der Wasserreflektionen fest.">
Qualität
</text>
<combo_box name="ReflectionRescombo">
<combo_box.item label="Annehmbar" name="0"/>
<combo_box.item label="Gut" name="1"/>
<combo_box.item label="Sehr gut - HINWEIS: „Erweitertes Beleuchtungsmodell“ muss aktiviert sein (Reiter „Licht“)" name="2"/>
<combo_box.item label="Exzellent - HINWEIS: „Erweitertes Beleuchtungsmodell“ muss aktiviert sein (Reiter „Licht“)" name="3"/>
<combo_box.item label="Überragend - HINWEIS: „Erweitertes Beleuchtungsmodell“ muss aktiviert sein (Reiter „Licht“)" name="4"/>
<combo_box.item label="Lebensecht - HINWEIS: „Erweitertes Beleuchtungsmodell“ muss aktiviert sein (Reiter „Licht“)" name="5"/>
<combo_box.item label="Sehr gut" name="2"/>
<combo_box.item label="Exzellent" name="3"/>
<combo_box.item label="Überragend" name="4"/>
<combo_box.item label="Lebensecht" name="5"/>
</combo_box>
<check_box label="Transparentes Wasser" name="TransparentWater" tool_tip="Stellt Wasser transparent dar. Falls diese Einstellung deaktiert ist, wird Wasser undurchsichtig und mit einer einfachen Textur versehen dargestellt."/>
</panel>
@ -89,7 +89,6 @@
</panel>
<panel name="P_L_S_Settings">
<check_box label="Alle Lokalen Lichtquellen aktivieren" name="LocalLights" tool_tip="Diese Einstellung aktiviert alle lokalen Lichtquellen innerhalb der Welt. Wird sie deaktiviert, wird weiterhin das von Sonne und Mond ausgestrahlte Licht angezeigt. Nützlich, falls lokale Lichtquellen nicht und nur noch von Sonne und Mond angezeigt werden soll."/>
<check_box label="Angehängte Lichter aktivieren (Facelights)" name="Render Attached Lights" tool_tip="Diese Einstellung aktiviert alle Lichter wie zum Beispiel Facelights, die von Avataren getragen werden. Nützlich, falls Facelights deaktiviert werden sollen."/>
</panel>

View File

@ -165,7 +165,7 @@ Additional code generously contributed to Firestorm by:
top_pad="4"
width="450"
wrap="true">
Albatroz Hird, Alexie Birman, Andromeda Rage, Angeldark Raymaker, Angus Boyd, Animats, Armin Weatherwax, Casper Warden, Chalice Yao, Chaser Zaks, Chorazin Allen, Cron Stardust, Damian Zhaoying, Dan Threebeards, Dawa Gurbux, Denver Maksim, Drake Arconis, Felyza Wishbringer, f0rbidden, Fractured Crystal, Geenz Spad, Gibson Firehawk, Hitomi Tiponi, Inusaito Sayori, Jean Severine, Katharine Berry, Kittin Ninetails, Kool Koolhoven, Lance Corrimal, Lassie, Latif Khalifa, Laurent Bechir, Magne Metaverse LLC, Magus Freston, Makidoll, Manami Hokkigai, MartinRJ Fayray, McCabe Maxstead, Melancholy Lemon, Melysmile, Mimika Oh, Mister Acacia, MorganMegan, Morgan Pennent, Mysty Saunders, Nagi Michinaga, Name Short, nhede Core, NiranV Dean, Nogardrevlis Lectar, Oren Hurvitz, Paladin Forzane, paperwork, Penny Patton, Peyton Menges, programmtest, Qwerty Venom, Rebecca Ashbourne, Revolution Smythe, Romka Swallowtail, Sahkolihaa Contepomi, sal Kaligawa, Samm Florian, Satomi Ahn, Sei Lisa, Sempervirens Oddfellow, Shin Wasp, Shyotl Kuhr, Sione Lomu, Skills Hak, StarlightShining, Sunset Faulkes, Tapple Gao, Testicular Slingshot, Thickbrick Sleaford, Ubit Umarov, Vaalith Jinn, Vincent Sylvester, Whirly Fizzle, Xenhat Liamano, Zwagoth Klaar and others.
Albatroz Hird, Alexie Birman, Andromeda Rage, Angeldark Raymaker, Angus Boyd, Animats, Armin Weatherwax, Casper Warden, Chalice Yao, Chaser Zaks, Chorazin Allen, Cron Stardust, Damian Zhaoying, Dan Threebeards, Dawa Gurbux, Denver Maksim, Drake Arconis, Felyza Wishbringer, f0rbidden, Fractured Crystal, Geenz Spad, Gibson Firehawk, Hitomi Tiponi, humbletim, Inusaito Sayori, Jean Severine, Katharine Berry, Kittin Ninetails, Kool Koolhoven, Lance Corrimal, Lassie, Latif Khalifa, Laurent Bechir, Magne Metaverse LLC, Magus Freston, Makidoll, Manami Hokkigai, MartinRJ Fayray, McCabe Maxstead, Melancholy Lemon, Melysmile, Mimika Oh, Mister Acacia, MorganMegan, Morgan Pennent, Mysty Saunders, Nagi Michinaga, Name Short, nhede Core, NiranV Dean, Nogardrevlis Lectar, Oren Hurvitz, Paladin Forzane, paperwork, Penny Patton, Peyton Menges, programmtest, Qwerty Venom, Rebecca Ashbourne, Revolution Smythe, Romka Swallowtail, Sahkolihaa Contepomi, sal Kaligawa, Samm Florian, Satomi Ahn, Sei Lisa, Sempervirens Oddfellow, Shin Wasp, Shyotl Kuhr, Sione Lomu, Skills Hak, StarlightShining, Sunset Faulkes, Tapple Gao, Testicular Slingshot, Thickbrick Sleaford, Ubit Umarov, Vaalith Jinn, Vincent Sylvester, Whirly Fizzle, Xenhat Liamano, Zwagoth Klaar and others.
</text>
<text
follows="top|left"

View File

@ -492,7 +492,7 @@
top_pad="13"
width="80"
layout="topleft"
tool_tip="Determines the resolution/quality of water reflections. Whenever resolution settings are set to 'Very Good' or above, you must also enable 'Advanced Lighting Model' in tab 'Light'.">
tool_tip="Determines the resolution/quality of water reflections.">
Resolution
</text>
<combo_box
@ -513,19 +513,19 @@
name="1"
value="512"/>
<combo_box.item
label="Very Good - NOTE: You must also enable 'Advanced Lighting Model' (Light Tab)"
label="Very Good"
name="2"
value="1024"/>
<combo_box.item
label="Excellent - NOTE: You must also enable 'Advanced Lighting Model' (Light Tab)"
label="Excellent"
name="3"
value="1536"/>
<combo_box.item
label="Outstanding - NOTE: You must also enable 'Advanced Lighting Model' (Light Tab)"
label="Outstanding"
name="4"
value="2048"/>
<combo_box.item
label="Life-Like - NOTE: You must also enable 'Advanced Lighting Model' (Light Tab)"
label="Life-Like"
name="5"
value="4096"/>
<combo_box.commit_callback
@ -549,7 +549,7 @@
name="P_Lighting"
follows="all"
layout="topleft"
width="285"
width="267"
top="0"
label="Light"
left="0">
@ -584,24 +584,14 @@
top_pad="5"
left="4"
width="275"
height="45"
height="28"
border_visible="true"
background_visible="true">
<check_box
control_name="RenderLocalLights"
height="16"
label="Enable All Local Lights"
layout="topleft"
left="5"
name="LocalLights"
tool_tip="This will turn on all in-world lights. If you disable this feature, light from Sun and Moon will still appear. Useful when you wish to eliminate SIM lighting and use only the Sun and Moon light."
top_pad="7"
width="240"/>
<check_box
follows="top|left"
layout="topleft"
left="5"
top_pad="2"
top_pad="9"
height="16"
label="Enable Attached Lights (Face Lights)"
tool_tip="This will enable any lights, such as face lights, avatars have attached to them. Useful for turning off facelights when necessary."

View File

@ -63,16 +63,16 @@
</combo_box>
</panel>
<panel name="P_R_Res">
<text name="T_R_Res" tool_tip="Determina la resolución/calidad de los reflejos en el agua. Siempre que las configuraciones de resolución se establezcan a 'Muy buena' o superior, debes activar también 'Modelo avanzado de iluminación' en la pestaña 'Luz'.">
<text name="T_R_Res" tool_tip="Determina la resolución/calidad de los reflejos en el agua.">
Resolución
</text>
<combo_box name="ReflectionRescombo">
<combo_box.item label="Decente" name="0"/>
<combo_box.item label="Buena" name="1"/>
<combo_box.item label="Muy buena - NOTA: Debes activar también 'Modelo avanzado de iluminación' (pestaña 'Luz')" name="2"/>
<combo_box.item label="Excelente - NOTA: Debes activar también 'Modelo avanzado de iluminación' (pestaña 'Luz')" name="3"/>
<combo_box.item label="Excepcional - NOTA: Debes activar también 'Modelo avanzado de iluminación' (pestaña 'Luz')" name="4"/>
<combo_box.item label="Realista - NOTA: Debes activar también 'Modelo avanzado de iluminación' (pestaña 'Luz')" name="5"/>
<combo_box.item label="Muy buena" name="2"/>
<combo_box.item label="Excelente" name="3"/>
<combo_box.item label="Excepcional" name="4"/>
<combo_box.item label="Realista" name="5"/>
</combo_box>
<check_box label="Agua transparente" name="TransparentWater" tool_tip="Dibujar el agua como transparente. Desactivarlo dibuja el agua como opaca con una textura simple aplicada."/>
<!--slider label="Resolución" name="REflection Res"/-->
@ -85,8 +85,6 @@
</text>
</panel>
<panel name="P_L_S_Settings">
<check_box label="Modelo avanzado de iluminación" name="RenderDeferred" tool_tip="Activa las sombras de sol, luna y fuentes de luz. También permite activar la profundidad de campo y otras características gráficas. Básicamente, necesitas activarlo para apreciar casi todo lo vistoso de SL. Si no puedes activar esta característica o apreciar sus efectos, asegúrate de que los efectos atmosféricos y los efectos básicos están activados en la pestaña 'WL'."/>
<check_box label="Activar todas las luces locales" name="LocalLights" tool_tip="Activa todas las luces del entorno. Si desactivas esta característica, la luz del sol y de la luna aún se verán. Útil cuando quieres eliminar toda iluminación que no provenga del sol y de la luna."/>
<check_box label="Activar luces anexadas" tool_tip="Activa cualquier luz, como las iluminaciones faciales que los avatares tengan anexadas. Útil para desactivar las iluminaciones faciales cuando sea necesario." name="Render Attached Lights"/>
</panel>
<panel name="P_Shadows">

View File

@ -2,6 +2,7 @@
<floater name="emojipicker" title="Choisir un émoji">
<floater.string name="title_for_recently_used" value="Récemment utilisé"/>
<floater.string name="title_for_frequently_used" value="Souvent utilisé"/>
<floater.string name="text_no_emoji_for_filter" value="Aucun emoji trouvé pour '[FILTER]'"/>
<text name="Dummy">
Aucun émoji sélectionné
</text>

View File

@ -2,7 +2,7 @@
<floater name="floater_about" title="Navigateur Multimédia">
<layout_stack name="stack1">
<layout_panel name="nav_controls">
<button label="Précédent" name="back"/>
<button label="Avant" name="back"/>
<button label="Suivant" name="forward"/>
<button label="Actualiser" name="reload"/>
<button label="Lecture" name="go"/>

View File

@ -1,21 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater title="Outils de prise de vue" name="phototools">
<tab_container name="tabs">
<panel name="EnvironmentTab" label="Env">
<panel name="PT_WL_Settings">
<text name="T_WL_Settings">
Paramètres environnementaux
</text>
</panel>
<panel name="P_WL_Settings">
<check_box label="Activer les shaders atmosphèriques" name="WindLightUseAtmosShaders" tool_tip="Cela activera pleinement l'EEP (shaders atmosphériques). Si vous ne pouvez pas activer cette fonctionnalité, assurez-vous que les Shaders de base soient activés ci-dessous."/>
</panel>
<panel name="P_WL_Sky_Water">
<text name="WL Sky" tool_tip="Des préréglages pour le ciel.">
Ciel
@ -28,10 +22,8 @@
</text>
<button name="btn_personal_lighting" label="Éclairage personnel..."/>
<button name="ResetToRegionDefault" tool_tip="Remet l'environnement partagé comme paramètre d'environnement."/>
<button label="Nuages en pause" name="PauseClouds" tool_tip="Mets les nuages en pause."/>
</panel>
<panel name="P_Q_Windlights">
<text name="T_Q_Windlights">
Environnements standards
@ -49,59 +41,38 @@
</text>
<button name="new_sky_preset" label="Nouveau préréglage du ciel"/>
<button name="edit_sky_preset" label="Modifier le préréglage du ciel"/>
<button name="new_water_preset" label="Nouveau préréglage de l'eau"/>
<button name="edit_water_preset" label="Modifier le préréglage de l'eau"/>
</panel>
<panel name="P_W_Reflections">
<text name="T_W_Reflections">
Paramètres de réflexion de l'eau
</text>
</panel>
<panel name="P_W_R_Types">
<text name="T_W_R_Types" tool_tip="Détermine ce qui se reflètera dans l'eau.">
Type
</text>
<combo_box name="Reflections">
<combo_box.item label="Minimum" name="0"/>
<combo_box.item label="Terrain et arbres" name="1"/>
<combo_box.item label="Tous les objets statiques" name="2"/>
<combo_box.item label="Tous les avatars et objets" name="3"/>
<combo_box.item label="Tout" name="4"/>
</combo_box>
</panel>
<panel name="P_R_Res">
<text name="T_R_Res" tool_tip="Détermine la résolution/qualité des réflets dans l'eau. Lorsque les paramètres de résolution sont réglés sur 'Très bon' ou au delà, vous devez activer 'Modèle d'éclairage avancé' dans l'onglet 'Lumière'.">
Resolution
<text name="T_R_Res" tool_tip="Détermine la résolution/qualité des réflets dans l'eau.">
Résolution
</text>
<combo_box name="ReflectionRescombo">
<combo_box.item label="Décent" name="0"/>
<combo_box.item label="Bon" name="1"/>
<combo_box.item label="Trés bon - NOTE: Vous devez activer le 'modèle d'éclairage avancé' (Onglet Lumière)" name="2"/>
<combo_box.item label="Excellent - NOTE: Vous devez activer le 'modèle d'éclairage avancé' (Onglet Lumière)" name="3"/>
<combo_box.item label="Exceptionnel - NOTE: Vous devez activer le 'modèle d'éclairage avancé' (Onglet Lumière)" name="4"/>
<combo_box.item label="Comme la vie - NOTE: Vous devez activer le 'modèle d'éclairage avancé' (Onglet Lumière)" name="5"/>
<combo_box.item label="Trés bon" name="2"/>
<combo_box.item label="Excellent" name="3"/>
<combo_box.item label="Exceptionnel" name="4"/>
<combo_box.item label="Comme la vie" name="5"/>
</combo_box>
<check_box label="Eau transparente" name="TransparentWater" tool_tip="Rendre l'eau transparente. La désactivation rend l'eau opaque par l'application d'une simple texture."/>
</panel>
</panel>
<panel name="P_Lighting" label="Lum.">
<panel name="PT_Light_Shadows">
<text name="T_Light_Shadows">
Réglages des lumières et des ombres
</text>
</panel>
<panel name="P_L_S_Settings">
<check_box label="Activer le mode d'éclairage avancé" name="RenderDeferred" tool_tip="Cela permettra d'utiliser les ombres du Soleil et de la Lune ainsi que toutes les autres sources de lumière. Il vous permettra également d'activer la profondeur de champ et d'autres fonctions graphiques. En principe, vous devez l'activer pour voir la plupart des ' effets visuels ' du monde. Si vous ne pouvez pas activer cette fonction ou voir son effet, assurez-vous d'abord que les Shaders atmosphériques et les Shaders de base sont activés dans l'onglet 'WL'."/>
<check_box label="Activer toutes les lumières locales" name="LocalLights" tool_tip="Cette option allume toutes les lumières autour de vous. Si vous la désactivez, la lumière du soleil ou de la lune sera toujours présente. Utile lorsque vous souhaitez supprimer l'éclairage local et n'utiliser que la lumière du soleil ou de la lune."/>
<check_box label="Activer les lumières attachées" tool_tip="Cette option active toutes les lumières portées par l'avatar, par exemple celles utilisées pour éclairer le visage. Utile pour éteindre ce type de lumières lorsque c'est nécessaire." name="Render Attached Lights"/>
</panel>
<panel name="P_Shadows">
<text name="T_Shadow_Types" tool_tip="Ce réglage n'affecte que les ombres qui sont rendues par les sources de lumière, les lumières elles-mêmes continuant à fonctionner normalement. La lumière ponctuelle (les lumières qui n'ont pas la fonction de projection activée) créera toujours une sensation d'ombre, mais elle ne la projettera sur aucune surface. Il est important de noter que, quel que soit le réglage que vous choisissez ici, les textures projetées par les lumières de projection seront toujours activées.">
Types d'ombre
@ -112,52 +83,43 @@
<combo_box.item label="Soleil/Lune + Projecteurs" name="2"/>
</combo_box>
</panel>
<panel name="P_Shadow_Res">
<text name="T_Shadow_Res" tool_tip="Résolution de l'ombre : C'est un réglage TRÈS important. Il détermine la qualité des ombres. Il est également TRÈS lourd pour l'ordinateur. Il est préférable de laisser ce réglage aussi bas que possible lorsque vous ne faîtes pas de prises de vue. Réglez-le sur 1.0 pendant la préparation d'une prise de vue. Lorsque vous êtes prêt à prendre votre photo, déplacez lentement la barre de défilement vers la droite. Vous devez faire attention au frame rate lorsque vous augmentez ce réglage. Activez la barre de statistiques (dans l'onglet 'Aides' sous 'Aides de l'interface') lorsque vous faites cela pour la première fois afin de vous familiariser avec le résolution de l'ombre qui fonctionne le mieux avec votre système. REMARQUE : Si vous réglez ce niveau trop haut ou si vous le déplacez trop rapidement, vous risquez de provoquer des plantages.">
Résolution
</text>
<button name="Reset_Shadow_Res" label="D" tool_tip="Rétablir la valeur par défaut."/>
<!-- RenderShadowSplitExponent Y component -->
<text name="T_Shd_Clarity" tool_tip="'est un réglage TRÈS important. Il détermine essentiellement la clarté de l'ensemble des ombres du soleil et de la lune. Ce paramètre doit être réglé en premier avant de régler le paramètre ci-dessous. Avec la valeur de 'Rés. Omb.' au-dessus de 1.0, faites glisser la valeur de 'Clarté Omb.' jusqu'à obtenir le résultat le plus net possible. Veuillez noter que la clarté des ombres est directement liée à la position de la caméra et du soleil/lune. Chaque fois que vous déplacez la caméra ou le Soleil/Lune, il est préférable d'ajuster à nouveau cette valeur. En outre, pour faciliter l'ajustement de cette valeur, il est utile de régler 'Flou Omb.' à 0.0.">
Clarté
</text>
<button name="Shd_Clarity_Reset" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Blur_Size" tool_tip="Plus le nombre est élevé, plus les bords de l'ombre sont doux. Réglez sur '0' pour obtenir les ombres les plus nettes possibles. Ce réglage est aussi directement lié à celui qui est en dessous. Il vous permet de définir la quantité totale possible de flou d'ombre. S'il est défini à 4.00, vous pouvez utiliser Adouc. Omb. pour ajuster le flou de l'ombre indépendamment de l'occlusion ambiante. VEUILLEZ NOTER : L'occlusion ambiante doit être activée pour que ce paramètre fonctionne.">
Flou
</text>
<button name="Blur_Reset" label="D" tool_tip="Rétablir la valeur par défaut."/>
<!-- RenderShadowGaussian X component -->
<text name="T_Shd_Soften" tool_tip="Contrôle l'effet adoucissant des ombres du soleil et de la lune. Une façon simple de régler cette valeur en fonction de vos besoins spécifiques est de régler d'abord le 'Flou Omb.' à environ 3.0. Ensuite, le curseur ici pour adoucir l'AO à votre convenance. Veuillez noter qu'une valeur de 0,0 désactivera effectivement toutes les ombres du soleil et de la lune. De plus, cela n'a aucun effet sur les ombres causées par les lumières du projecteur">
Adoucir.
</text>
<button name="Shd_Soften_Reset" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Blur_Dist" tool_tip="Cela déterminera le point par rapport à la caméra à partir duquel les ombres commenceront à se brouiller. Plus la valeur est faible, plus le point de flou des ombres commencera à se rapprocher. VEUILLEZ NOTER : L'occlusion ambiante doit être activée pour que ce paramètre fonctionne.">
Dist. Flou.
</text>
<button name="Blur_Dist_Reset" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_FOV_Cutoff" tool_tip="Cela détermine le seuil de champ de vision à partir duquel le spectateur passera de la projection en ortho à la projection en perspective. Si vous obtenez des ombres qui sont 'irrégulières', essayez d'ajuster ce paramètre pour les améliorer. L'ajustement des valeurs XYZ du paramètre de débogage RenderShadowSplitExponent peut également être TRÈS utile.">
Cutoff FOV
</text>
<button name="FOV_Cutoff_Reset" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Shd_Bias" tool_tip="">
Bias.
</text>
<button name="Shd_Bias_Reset" label="D" tool_tip="Rétablir la valeur par défaut."/>
</panel>
<panel name="P_Ambient_Occlusion">
<text name="T_Ambient_Occlusion">
Paramètres d'occlusion ambiante
</text>
</panel>
<panel name="P_Amb_Occ_Settings">
<check_box label="Activer l'occl. amb. (Perception de la prof.)" name="UseSSAO" tool_tip="L'occlusion ambiante ajoute de l'ombre à tous les objets. Elle est plus efficace lorsque les paramètres Effet et Adoucissement ci-dessous sont utilisés. Elle peut ajouter un haut niveau de réalisme à l'image. Cela est particulièrement vrai lorsque les images sont réalisées à des résolutions de 2048 pixels ou plus."/>
</panel>
@ -167,23 +129,19 @@
Échelle
</text>
<button name="Reset_Scale" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Max_Scale" tool_tip="Contrôle le rayon maximal de l'écran à partir duquel on peut échantillonner , afin d'éviter les erreurs de cache de la carte graphique et la diminution importante des performances qui en découle. Il peut être utile de régler ces valeurs à un niveau élevé, puis d'ajouter un peu de flou d'ombre pour adoucir leur effet.">
Éch. max.
</text>
<button name="Reset_Max_Scale" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Scaling_Factor" tool_tip="Facteur d'échelle pour l'effet (plus c'est grand, plus c'est sombre). Il peut être utile de régler ces valeurs à un niveau élevé, puis d'ajouter un peu de flou d'ombre pour adoucir leur effet.">
Facteur
</text>
<button name="Reset_Scaling_Factor" label="D" tool_tip="Rétablir la valeur par défaut."/>
<!-- RenderSSAOEffect X component -->
<text name="T_Effect" tool_tip="Contrôle l'effet d'obscurcissement global de l'occlusion ambiante. La valeur par défaut de 0,8 produit un effet presque imperceptible. Les valeurs de 0,0 et moins donnent un résultat plus réaliste. Veuillez noter que l'occlusion ambiante produit un effet semblable à un bruit et que celui-ci peut être atténué en utilisant les commandes 'AO Soften' ci-dessous. De plus, l'avatar standard peut être moins attrayant avec des valeurs d'Effet élevées en raison de la géométrie de faible qualité de celui-ci. Veuillez noter : La valeur la plus basse que vous pouvez régler avec le curseur est 0, tandis que avec les flèches, vous pouvez entrer des valeurs négatives allant jusqu'à -10000.">
Effet
</text>
<button name="Reset_Effect" label="D" tool_tip="Rétablir la valeur par défaut."/>
<!-- RenderShadowGaussian Y component -->
<text name="T_AO_Soften" tool_tip="Contrôle l'adoucissement de l'effet d'occlusion ambiante. Une façon simple de régler cette valeur en fonction de vos besoins spécifiques est de régler d'abord le 'Flou Omb.' à environ 4,0. Ensuite, le curseur ici pour adoucir l'occlusion ambiante à votre convenance. Veuillez noter qu'une valeur de 0.0 désactivera le rendu d'occlusion ambiante.">
Adouc. AO
@ -191,63 +149,52 @@
<button name="Reset_AO_Soften" label="D" tool_tip="Rétablir la valeur par défaut."/>
</panel>
</panel>
<panel name="P_DoF_Glow" label="PdC/Lum.">
<panel name="PT_DoF_Glow">
<text name="T_DoF">
Paramètres de profondeur de champ
</text>
</panel>
<panel name="P_DoF_Settings">
<check_box label="Activer la profondeur de champ (PdC)" name="UseDepthofField" tool_tip="Cela active la profondeur de champ qui 'détermine la distance entre les objets les plus proches et les plus éloignés d'une scène qui apparaissent avec une netteté acceptable dans une image' (Wikipédia). Si vous ne l'utilisez pas, désactivez-la et elle accélérera votre fréquence d'images. Si vous ne pouvez pas activer cette fonction ou si vous ne voyez pas son effet, veuillez activer le Modèle d'éclairage avancé dans l'onglet 'Lumière'."/>
<check_box label="La mise au point de la PdC suit le pointeur" name="FSFocusPointFollowsPointer" tool_tip="La mise au point de la profondeur de champ (PdC) suivra votre souris. Ce comportement correspond à celui observé lors de l'utilisation de flycam. A utiliser en conjonction avec le verrouillage de la mise au point de la profondeur de champ"/>
<check_box label="Afficher le CdV actuel de l'écran du Viewer" tool_tip="Cela vous montrera le champ de vision vertical de la caméra. Il est possible de modifier la focale de l'objectif comme dans la vie réelle. Plus le champ de vision est petit, plus la longueur focale de l'objectif est élevée. Un objectif de 50 mm a un champ de vision de 27,0 degrés. Pour ajuster le champ de vision, utilisez la barre de défilement du zoom ci-dessous. Voir : https://fr.wikipedia.org/wiki/Angle_de_champ pour un tableau montrant la relation entre la distance focale et la longueur focale de l'objectif (mm). DÉSACTIVEZ LE ZOOM AVANT DE PRENDRE DES PHOTOS, SINON IL APPARAÎTRA SUR CELLES-CI !" name="MIC_Show_FOV"/>
</panel>
<panel name="P_Zoom">
<text name="T_Zoom" tool_tip="Dans le monde réel, il s'agit d'une fonction de Zoom. Elle permet de modifier le champ de vision dans votre fenêtre de visualisation. C'est la même chose que d'appuyer sur Ctrl + 0 ou Ctrl + 8. NOTE : Cette fonction ne marche pas si vous avez activé flycam (3D SpaceNavigator).">
Ang. de vue
</text>
<button name="Reset_Zoom" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_FOV" tool_tip="Champ de vision : Il indique à l'utilisateur le champ de vision que vous souhaitez simuler pour l'effet de profondeur de champ. Il est préférable de régler ce champ sur le champ de vision du viewer.">
CdV
</text>
<button name="Reset_FOV" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_F_Number" tool_tip="Dans la réalité, il s'agit du réglage de l'ouverture de l'objectif et plus la valeur est faible, plus la profondeur de champ sera réduite. Il en va de même pour SL.">
Ouverture
</text>
<button name="Reset_F_Number" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Focal_Length" tool_tip="Longueur focale (mm) : Ceci indique au viewer quelle longueur focale il doit simuler pour l'effet de profondeur de champ. Des nombres plus élevés produisent une profondeur de champ plus étroite.">
Long Foc
</text>
<button name="Reset_Focal_Length" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Foc_Time" tool_tip="Temps de transition de la mise au point : Ce paramètre règle le temps en secondes qu'il faut au viewer pour changer la mise au point d'un objet.">
Temps Foc
</text>
<button name="Reset_Foc_Time" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_CoC" tool_tip="Cercle de confusion : Ceci est un RÉGLAGE TRES IMPORTANT. Il détermine la force du flou lui-même. Il ne modifie pas la profondeur de champ, il ajuste la quantité de flou des objets qui se trouvent à l'extérieur. Vous pouvez utiliser des valeurs négatives pour des effets intéressants en entrant la valeur directement dans la zone de saisie à droite.">
CoC
</text>
<button name="Reset_CoC" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Resolution" tool_tip="Résolution : Cela détermine la qualité de l'effet de profondeur de champ. Pour les utilisations non photographiques, le 0,25 est bon. Pour régler les prises de vue, '0.50' ou '0.70' est très bien. Pour les prises de vue de qualité, la valeur '1.00' est la meilleure. Des valeurs élevées ralentiront votre FPS ! Vous pouvez également utiliser à des valeurs négatives pour des effets intéressants en entrant la valeur directement dans la zone de saisie à droite.">
Résolution
</text>
<button name="Reset_Resolution" label="D" tool_tip="Rétablir la valeur par défaut."/>
</panel>
<panel name="P_Glow_Settings">
<text name="T_Glow_Settings">
Luminosité
</text>
</panel>
<panel name="P_Glow_Quality">
<!--
<check_box label="Enable Glow Effect (please read the tool tip)" name="UseGlow" tool_tip="If Shadows are turned on, you must set the Strength to 0.0 to turn off this effect as the check box will not work."/>
@ -257,47 +204,39 @@
</text>
<button name="Reset_Glow_Quality" label="D" tool_tip="Rétablir la valeur par défaut."/>
</panel>
<panel name="P_Glow_Iterations">
<text name="T_Glow_Iterations" tool_tip="Nombre de fois où il faut itérer/répéter la lueur (une valeur plus haute donne un effet plus large et plus lisse et un peu plus lent).">
Itérations
</text>
<button name="Reset_Glow_Iterations" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Glow_Strength" tool_tip="Force additive de la luminosité. Des valeurs très faibles sont nécessaires pour voir cet effet. Commencez par des valeurs faibles !">
Force
</text>
<button name="Reset_Glow_Strength" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Luminance" tool_tip="Intensité minimale de luminance nécessaire pour considérer qu'un objet est suffisamment lumineux pour s'illuminer automatiquement.">
Luminance
</text>
<button name="Reset_Luminance" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Warmth" tool_tip="Quantité d'extraction de chaleur à utiliser (par rapport à l'extraction de luminance). 0 = lum, 1,0 = chaleur. N'A SOUVENT QUE PEU OU PAS D'EFFET !">
Chaleur
</text>
<button name="Reset_Warmth" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Glow_Width" tool_tip="Taille de l'échantillon lumineux. Plus haut = lueur plus large et plus douce, mais elle finira par devenir plus pixélisée.">
Largeur
</text>
<button name="Reset_Glow_Width" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Alpha" tool_tip="Fondamentalement, il s'agit de savoir jusqu'à quel point la lueur peut etre brillante.">
Alpha
</text>
<button name="Reset_Alpha" label="D" tool_tip="Rétablir la valeur par défaut."/>
</panel>
</panel>
<panel name="P_General" label="Gén">
<panel name="PT_General">
<text name="T_General">
Réglages généraux du rendu
</text>
</panel>
<panel name="P_General_Settings">
<text name="T_Draw_Distance" tool_tip="Cela règle la distance jusqu'à laquelle le viewer affichera quelque chose. Des valeurs élevées diminueront votre framerate !">
Dist. Aff.
@ -312,48 +251,39 @@
Détail Avi
</text>
<button name="Reset_Avi_Detail" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Avi_Physics" tool_tip="Contrôle le niveau de détail du physique de l'avatar (comme la la poitrine). Plus la valeur est haute, meilleur est le niveau de détail.">
Phys. Avi
</text>
<button name="Reset_Avi_Physics" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Particle_Cnt" tool_tip="Règle le nombre maximum de particules à rendre.">
Nb Part.
</text>
<button name="Reset_Particle_Cnt" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Terrain_Scale" tool_tip="Règle la qualité de la texture du sol (terrain) par défaut.">
Éch. Terr.
</text>
<button name="Reset_Terrain_Scale" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Terrain_Quality" tool_tip="Règle la qualité du terrain. Des chiffres élevés signifient un terrain plus détaillé au loin.">
Qual. Terr.
</text>
<button name="Reset_Terrain_Quality" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Object_Detail" tool_tip="Détermine quand des objets moins détaillés peuvent être utilisés pour réduire les coûts de rendu. Des valeurs plus élevées génèrent du lag.Å utiliser avec précaution.">
Détail Obj.
</text>
<button name="Reset_Object_Detail" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Flexi_Detail" tool_tip="Contrôle le niveau de détail des objets flexibles. Une valeur plus élevée signifie plus de détails.">
Flexiprims
</text>
<button name="Reset_Flexi_Detail" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Tree_Detail" tool_tip="Contrôle le niveau de détail de la végétation. Plus le nombre est élevé, plus le niveau de détail est élevé.">
Détail vég.
</text>
<button name="Reset_Tree_Detail" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Sky_Detail" tool_tip="Contrôle le niveau de détails du ciel avec WindLight. Des valeurs plus basses aboutiront à de meilleures performances mais des cieux moins beaux.">
Détail ciel
</text>
<button name="Reset_Sky_Detail" label="D" tool_tip="Rétablir la valeur par défaut."/>
</panel>
<panel name="P_Vignetting">
<text name="T_VignetteX" tool_tip="">
Vig. Quant.
@ -368,7 +298,6 @@
</text>
<button name="Reset_VignetteZ" label="D" tool_tip="Rétablir la valeur par défaut." />
</panel>
<panel name="P_Render">
<check_box label="Activer la distance d'affichage" name="UseFarClip" tool_tip="Active la distance d'affichage, si vous désactivez cette fonction, la visionneuse rendra les objets au-delà de la distance de dessin réglée."/>
<check_box label="Ajuster dynamiquement le niveau de détail" name="RednerLod1" tool_tip="Cette fonction permet au viewer d'ajuster dynamiquement le niveau de détail de la scène à mesure qu'il s'éloigne des objets. Elle permet d'améliorer les performances, elle peut également réduire la qualité des objets de la scène."/>
@ -376,7 +305,6 @@
<check_box label="Filtrage anisotropique (texture nette)" tool_tip="Cela permet d'obtenir une texture encore plus nette." name="Anisotropic"/>
<check_box label="Aff. les part. attachées à d'autres avatars" tool_tip="Permet au viewer de rendre toutes les particules attachées à/en provenance d'autres avatars." name="Render Attached Particle"/>
</panel>
<panel name="P_Anti-aliasing">
<text name="T_Anti-aliasing" tool_tip="Détermine le degré de netteté et de douceur des bords des objets. Sur les cartes graphiques de haut niveau, des valeurs plus élevées n'ont pratiquement AUCUN impact sur les performances. Sur les cartes graphiques de niveau inférieur, des valeurs plus élevées peuvent ralentir les performances.">
Anti-aliasing
@ -423,7 +351,6 @@
</combo_box>
</panel>
</panel>
<panel name="P_Aids" label="Aides">
<panel name="PT_Aids">
<text name="T_Aids">
@ -445,7 +372,6 @@
<button name="Rebake Texture" label="Forcer la Maj de l'apparance (Rebake)"/>
<button name="Set Window Size..." label="Régler la taille de la fenêtre du viewer..."/>
<button name="Debug Settings" label="Afficher le menu des paramètres de débogage"/>
<panel name="P_Quick_Stats">
<text name="T_Quick_Stats" tool_tip="Vous trouverez ici des statistiques très utiles pour évaluer les performances du système. Développez/réduisez les éléments ci-dessous en cliquant sur leurs étiquettes.">
Stats rapides
@ -466,7 +392,6 @@
</container_view>
</scroll_container>
</panel>
<panel name="P_Cam" label="Cam">
<panel name="PT_Cam">
<text name="T_Cam">
@ -479,7 +404,6 @@
Gauche/Dte
</text>
<button name="Reset_LR_Axis" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text
name="T_UD_Axis"
follows="top|left"
@ -491,38 +415,31 @@
Haut/bas
</text>
<button name="Reset_UD_Axis" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_IO_Axis" tool_tip="Règle la sensibilité du mouvement vers l'avant/vers l'arrière. Si vous avez des difficultés à vous déplacer avec précision, utilisez des valeurs d'échelle plus faibles.">
Avant/Arr.
</text>
<button name="Reset_IO_Axis" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Tilt" tool_tip="Ajuste la sensibilité du mouvement de tangage. Si vous avez du mal à vous déplacer avec précision, utilisez des valeurs d'échelle plus faibles.">
Tangage
</text>
<button name="Reset_Tilt" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Spin" tool_tip="Ajuste la sensibilité du mouvement de balancement. Si vous avez des difficultés à vous déplacer avec précision, utilisez des valeurs d'échelle plus faibles.">
Balance
</text>
<button name="Reset_Spin" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Roll" tool_tip="Ajuste la sensibilité du mouvement de rotation. Si vous avez des difficultés à vous déplacer avec précision, utilisez des valeurs d'échelle plus faibles.">
Rotation
</text>
<button name="Reset_Roll" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Zoom_Speed" tool_tip="Règle la sensibilité de la vitesse du zoom. Si vous avez des difficultés à zoomer avec précision, utilisez des valeurs d'échelle plus faibles.">
Vit. Zoom
</text>
<button name="Reset_Zoom_Speed" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Feathering" tool_tip="Régler le curseur à fond à droite rendra la caméra très rigide, donnant un contrôle complet au joystick. Si vous réglez le curseur à fond à gauche, l'appareil sera très fluide, comme si la caméra pesait beaucoup ; c'est bon pour les prises de vue en rafale, mais pas pour le cadrage.">
Feathering
</text>
<button name="Reset_Feathering" label="D" tool_tip="Rétablir la valeur par défaut."/>
</panel>
<panel name="P_Axis_Mapping">
<spinner label="Mappage des axes de zoom" name="JoystickAxis6" tool_tip="Contrôle l'axe de la souris sur lequel la fonction de zoom est mappée (réglé pour fonctionner)."/>
<check_box label="Activer la souris 3D" tool_tip="Cela active la souris 3D." name="enable_joystick"/>
@ -533,13 +450,11 @@
<check_box label="Afficher la FOV de l'écran du viewer" tool_tip="Cela vous montrera le champ de vision vertical de la caméra. Il est possible de modifier la longueur de l'objectif comme dans la vie réelle. Plus le champ de vision est petit, plus l'objectif de la caméra est long. Un objectif de 50 mm a un champ de vision de 27,0 degrés. Pour ajuster le champ de vision, utilisez la barre de défilement du zoom ci-dessous. Voir ci-dessous : https://fr.wikipedia.org/wiki/Angle_de_champ pour un tableau montrant la relation entre la distance focale et la longueur focale de l'objectif (mm). DÉSACTIVEZ LE ZOOM AVANT DE PRENDRE DES PHOTOS, SINON IL APPARAÎTRA SUR LA PHOTO !" name="CAM_Show_FOV"/>
<check_box label="Données détaillées sur la pos. de la caméra" name="Camera"/>
</panel>
<panel name="P_Viewer_Cam_Menu">
<text name="PT_Viewer_Cam_Menu">
Paramètres du menu de la caméra
</text>
</panel>
<panel name="P_Viewer_Cam_Menu_Settings">
<tab_container name="TC_Viewer_Cam_Menu_Settings">
<panel name="CamMov" label="Mouvement de la caméra">
@ -548,29 +463,24 @@
Angle de vue
</text>
<button name="Reset_Zoom2" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Zoom_Speed2" tool_tip="Contrôle la vitesse de zoom avant et arrière de la caméra. Des valeurs plus élevées produisent un zoom plus lent et plus régulier.">
Vitesse du zoom
</text>
<button name="Reset_Zoom_Speed2" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Camera_Lag" tool_tip="Quantité de décalage de la caméra par rapport au mouvement de l'avatar (0 = aucune, 30 = vitesse de l'avatar).">
Décalage caméra
</text>
<button name="Reset_Camera_Lag" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Camera_Offset" tool_tip="Contrôle la distance à laquelle la caméra est décalée/distante du point de vue par défaut.">
Décalage caméra
</text>
<button name="Reset_Camera_Offset" label="D" tool_tip="Rétablir la valeur par défaut."/>
<text name="T_Cam_Smoothing" tool_tip="Contrôle la douceur avec laquelle la caméra démarre et s'arrête. Des valeurs plus élevées produisent un mouvement plus doux (et un peu plus lent).">
Lissage Cam.
</text>
<button name="Reset_Cam_Smoothing" label="D" tool_tip="Rétablir la valeur par défaut."/>
</panel>
</panel>
<panel name="P_Mouse" label="Souris">
<panel name="P_Mouse_Settings">
<text name="T_Mouse_Sens" tool_tip="Contrôle la réactivité de la souris lorsqu'elle est en mode 'mouselook'.">
@ -581,7 +491,6 @@
<check_box label="Fluidifier les mvts en mouselook" tool_tip="Lisse le mouvement de la souris lorsqu'elle est en mode 'mouselook'." name="MouseSmooth"/>
</panel>
</panel>
<panel name="P_Misc" label="Réglages divers">
<panel name="P_Misc_Settings">
<check_box label="Clic sur votre avi garde la pos. de la caméra" name="clickonavatarkeepscamera" tool_tip="Normalement, un clic sur votre avatar réinitialise la position de la caméra. Cette option supprime ce comportement."/>

View File

@ -15,7 +15,7 @@
<text name="key_label">Raccourci :</text>
<combo_box label="Non" name="modifier_combo"/>
<combo_box label="Non" name="key_combo"/>
<text name="library_label">Librairie :</text>
<text name="library_label">Bibliothèque :</text>
<button label="Ajouter &gt;&gt;" name="add_btn"/>
<text name="steps_label">Étapes:</text>
<button label="Haut" name="up_btn"/>
@ -26,6 +26,7 @@
<radio_item label="Démarrer" name="start"/>
<radio_item label="Arrêter" name="stop"/>
</radio_group>
<check_box label="jusqu'au relâchement de la touche" name="wait_key_release_check"/>
<check_box label="Jusqu'à ce que les anims. soient jouées" name="wait_anim_check"/>
<check_box label="Durée en secondes :" name="wait_time_check"/>
<text name="help_label">Toutes les étapes se produisent simultanément, sauf si vous insérez des pauses.</text>

View File

@ -18,6 +18,7 @@
<menu_item_call label="Vider la corbeille" name="Empty Trash"/>
<menu_item_call label="Vider les objets trouvés" name="Empty Lost And Found"/>
<menu_item_call label="Nouveau dossier" name="New Folder"/>
<menu_item_call label="Nouveau dossier" name="New Listing Folder"/>
<menu_item_call label="Nouveau script" name="New Script"/>
<menu_item_call label="Nouvelle note" name="New Note"/>
<menu_item_call label="Nouveau geste" name="New Gesture"/>

View File

@ -31,6 +31,7 @@
</menu>
<menu label="Détacher" name="Avatar Detach" />
<menu_item_call label="Tout détacher" name="Detach All" />
<menu_item_call label="Détacher les éléments sélectionnés" name="Remove Selected Attachments"/>
</menu>
<menu_item_call label="Choisir un avatar..." name="Avatar Picker"/>
<menu label="Déplacements" name="Movement">

View File

@ -180,6 +180,11 @@ L&apos;initialisation de la Place du marché a échoué en raison d&apos;une err
&apos;[ERROR_CODE]&apos;
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="InvalidKeystroke">
Une entrée de touche non valide a été saisie.
[REASON].
Veuillez saisir un texte valide.
</notification>
<notification name="MerchantForceValidateListing">
Pour créer votre annonce, nous avons corrigé la hiérarchie de votre contenu dannonces.
<usetemplate ignoretext="Mavertir que la création dune annonce corrige la hiérarchie du contenu" name="okignore" yestext="OK"/>
@ -1793,14 +1798,14 @@ Continuer ?
<usetemplate ignoretext="Confirmer avant de rendre les objets à leurs propriétaires" name="okcancelignore" notext="Annuler" yestext="OK"/>
</notification>
<notification name="GroupLeaveConfirmMember">
Vous êtes actuellement membre du groupe &lt;nolink&gt;[GROUP]&lt;/nolink&gt;.
Quitter le groupe ?
<usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
Quitter le &apos;&lt;nolink&gt;[GROUP]&lt;/nolink&gt;&apos; ?
Une nouvelle adhésion coûtera [COST]L$.
<usetemplate name="okcancelbuttons" notext="Annuler" yestext="Quitter"/>
</notification>
<notification name="GroupLeaveConfirmMemberWithFee">
Vous êtes actuellement membre du groupe &lt;nolink&gt;[GROUP]&lt;/nolink&gt;. Une nouvelle adhésion coûtera [AMOUNT]L$.
Quitter le groupe ?
<usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
<notification name="GroupLeaveConfirmMemberNoFee">
Quitter le groupe &apos;&lt;nolink&gt;[GROUP]&lt;/nolink&gt;&apos; ?
Une nouvelle adhésion ne vous coûtera rien.
<usetemplate name="okcancelbuttons" notext="Annuler" yestext="Quitter"/>
</notification>
<notification name="OwnerCannotLeaveGroup">
Impossible de quitter le groupe. Vous ne pouvez pas quitter le groupe car vous en êtes le dernier propriétaire. Vous devez d&apos;abord affecter le rôle de propriétaire à un autre membre.
@ -2507,6 +2512,16 @@ Vous ne pouvez pas l&apos;annuler.
Voulez-vous vraiment les supprimer ?
<usetemplate ignoretext="Confirmer avant de supprimer des articles filtrés." name="okcancelignore" notext="Annuler" yestext="OK"/>
</notification>
<notification name="DeleteWornItems">
Un ou plusieurs objets que vous souhaitez supprimer sont portés par votre avatar.
Retirer ces éléments de votre avatar ?
<usetemplate name="okcancelbuttons" notext="Annuler" yestext="Retirer le(s) élément(s) et supprimer"/>
</notification>
<notification name="CantDeleteRequiredClothing">
Certains éléments que vous souhaitez supprimer sont obligatoires (peau, forme, cheveux, yeux).
Vous devez les remplacer avant de les supprimer.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="DeleteThumbnail">
Supprimer l'image de cet élément ? Il n'y a pas d'annulation possible.
<usetemplate ignoretext="Confirmer la suppression d'une vignette." name="okcancelignore" notext="Annuler" yestext="Supprimer"/>

View File

@ -4,6 +4,9 @@
<panel.string name="want_apply_text">Voulez-vous enregistrer vos modifications ?</panel.string>
<panel.string name="group_join_btn">Rejoindre ([AMOUNT] L$)</panel.string>
<panel.string name="group_join_free">Gratuit</panel.string>
<panel.string name="group_member">Membre</panel.string>
<panel.string name="join_txt">Joindre</panel.string>
<panel.string name="leave_txt">Quitter</panel.string>
<layout_stack name="group_info_sidetray_main">
<layout_panel name="header_container">
<panel name="group_info_top"><line_editor label="Saisissez le nom de votre nouveau groupe ici" name="group_name_editor"/></panel>

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="group_list_item">
<button name="notices_btn" tool_tip="Notices du groupe"/>
<button name="info_btn" tool_tip="Plus d'infos"/>
<button name="profile_btn" tool_tip="Voir le profil"/>
</panel>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="group_list_item">
<text name="group_name" value="Inconnu"/>
<button name="notices_btn" tool_tip="Notices de groupe"/>
<button name="visibility_hide_btn" tool_tip="Masquer le groupe sur mon profil"/>
<button name="visibility_show_btn" tool_tip="Afficher le groupe sur mon profil"/>
<button name="info_btn" tool_tip="En savoir plus"/>

View File

@ -82,7 +82,8 @@
<button label="Débloquer" name="unblock" tool_tip="Débloquer ce Résident"/>
</layout_panel>
</layout_stack>
<check_box label="Afficher dans la recherche" name="show_in_search_checkbox" tool_tip="Permettez aux usagers de vous voir dans les résultats de recherche"/>
<check_box label="Afficher dans la recherche" name="show_in_search" tool_tip="Permettez aux usagers de vous voir dans les résultats de recherche"/>
<check_box name="hide_sl_age" label="Afficher la date de naissance complète'" tool_tip="Laissez les gens voir votre âge SL"/>
<button name="save_description_changes" label="Enregistrer" />
<button name="discard_description_changes" label="Annuler" />
</panel>

View File

@ -18,23 +18,17 @@
<panel.string name="owner_can">
Le propriétaire peut :
</panel.string>
<panel.string name="acquiredDate">
[wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [year,datetime,slt]
</panel.string>
<panel.string name="origin_inventory">
(inventaire)
</panel.string>
<panel.string name="origin_inworld">
(dans Second Life)
</panel.string>
<text name="title" value="Profil de l&apos;article"/>
<text name="origin" value="(inventaire)"/>
<scroll_container name="item_profile_scroll">
<panel label="" name="item_profile">
<text name="LabelItemNameTitle">
Nom :
</text>
<layout_stack name="main_stack">
<layout_panel name="layout_item_name">
<line_editor name="LabelItemName" tool_tip="Le nom est limité à 63 caractères. Les noms de prim plus longs sont écourtés. Les noms ne peuvent contenir que des caractères imprimables trouvés dans le jeu de caractères ASCII-7 (non étendu), à l&apos;exception de la barre / pipe verticale &apos;|&apos;."/>
</layout_panel>
<layout_panel name="layout_item_details">
<text name="LabelOwnerTitle">
Propriétaire :
</text>
@ -44,31 +38,42 @@
<text name="LabelAcquiredTitle">
Acquis le :
</text>
<button label="Photo..." name="change_thumbnail_btn" />
</layout_panel>
<layout_panel name="layout_item_description">
<text name="LabelItemDescTitle">
Description :
</text>
<text_editor name="LabelItemDesc" tool_tip="Lorsque les utilisateurs ont sélectionné &apos;Afficher les infobulles sur tous les objets&apos; dans les paramètres de la visionneuse, ils verront la description de l'objet s'afficher pour tout objet placé sous le pointeur de leur souris. La description de l'objet est limitée à 127 octets. Toute chaîne de caractères plus longue sera tronquée." />
<text name="LabelItemExperienceTitle">
Expérience :
</text>
<panel name="perms_inv">
<text name="perm_modify">
Vous pouvez :
</text>
<check_box label="Modifier" name="CheckOwnerModify"/>
<check_box label="Copier" name="CheckOwnerCopy"/>
<check_box label="Transférer" name="CheckOwnerTransfer"/>
<text name="AnyoneLabel">
N&apos;importe qui :
</text>
<check_box label="Copier" name="CheckEveryoneCopy" tool_tip="Tout le monde peut prendre une copie de l&apos;objet. L&apos;objet et tout son contenu doit être autorisé à être copié et transféré."/>
<text name="GroupLabel">
Groupe :
</text>
<check_box label="Partager" name="CheckShareWithGroup" tool_tip="Autoriser tous les membres du groupe choisi à partager vos droits de modification pour cet objet. Pour activer les restrictions de rôles, vous devez d&apos;abord cliquer sur Céder."/>
<text name="NextOwnerLabel">
Prochain propriétaire :
</text>
<check_box label="Modifier" name="CheckNextOwnerModify" tool_tip="Le prochain propriétaire peut modifier des propriétés telles que le libellé de l&apos;élément ou l&apos;échelle de cet objet."/>
<check_box label="Copier" name="CheckNextOwnerCopy" tool_tip="Le prochain propriétaire peut faire des copies illimitées de cet objet. Les copies conservent les informations sur le créateur et ne peuvent jamais être plus permissives que l&apos;élément qui est copié."/>
<check_box label="Transférer" name="CheckNextOwnerTransfer" tool_tip="Le prochain propriétaire peut donner ou revendre cet objet."/>
</panel>
</layout_panel>
<layout_panel name="layout_item_permissions_sale">
<text name="perm_modify">
Autorisations
</text>
<text name="you_perm_modify">
Vous pouvez :
</text>
<check_box label="Modifier" name="CheckOwnerModify"/>
<check_box label="Copier" name="CheckOwnerCopy"/>
<check_box label="Transférer" name="CheckOwnerTransfer"/>
<text name="AnyoneLabel">
N&apos;importe qui :
</text>
<check_box label="Copier" name="CheckEveryoneCopy" tool_tip="Tout le monde peut prendre une copie de l&apos;objet. L&apos;objet et tout son contenu doit être autorisé à être copié et transféré."/>
<text name="GroupLabel">
Groupe :
</text>
<check_box label="Partager" name="CheckShareWithGroup" tool_tip="Autoriser tous les membres du groupe choisi à partager vos droits de modification pour cet objet. Pour activer les restrictions de rôles, vous devez d&apos;abord cliquer sur Céder."/>
<text name="NextOwnerLabel">
Prochain propriétaire :
</text>
<check_box label="Modifier" name="CheckNextOwnerModify" tool_tip="Le prochain propriétaire peut modifier des propriétés telles que le libellé de l&apos;élément ou l&apos;échelle de cet objet."/>
<check_box label="Copier" name="CheckNextOwnerCopy" tool_tip="Le prochain propriétaire peut faire des copies illimitées de cet objet. Les copies conservent les informations sur le créateur et ne peuvent jamais être plus permissives que l&apos;élément qui est copié."/>
<check_box label="Transférer" name="CheckNextOwnerTransfer" tool_tip="Le prochain propriétaire peut donner ou revendre cet objet."/>
<check_box label="À vendre" name="CheckPurchase" tool_tip="Permet aux gens d&apos;acheter cet objet, son contenu ou de le copier dans Second Life à un prix donné."/>
<combo_box name="ComboBoxSaleType" tool_tip="Indiquez si lacheteur recevra une copie, une copie du contenu ou larticle lui-même.">
<combo_box.item label="Copier" name="Copy"/>
@ -76,9 +81,6 @@
<combo_box.item label="Original" name="Original"/>
</combo_box>
<spinner label="Prix : L$" name="Edit Cost" tool_tip="Coût de l&apos;objet."/>
</panel>
</scroll_container>
<panel name="button_panel">
<button label="Annuler" name="cancel_btn"/>
</panel>
</layout_panel>
</layout_stack>
</panel>

View File

@ -44,94 +44,86 @@
</panel.string>
<text name="title" value="Profil de l&apos;objet"/>
<text name="where" value="(dans Second Life)"/>
<panel label="" name="properties_panel">
<text name="Name:">
Nom :
</text>
<line_editor name="Object Name" tool_tip="Le nom est limité à 63 caractères. Les noms de prim plus longs sont écourtés. Les noms ne peuvent contenir que des caractères imprimables trouvés dans le jeu de caractères ASCII-7 (non étendu), à l&apos;exception de la barre / pipe verticale &apos;|&apos;."/>
<text name="Description:">
Description :
</text>
<line_editor name="Object Description" tool_tip="Lorsque les utilisateurs sélectionnent &apos;Conseils de survol sur tous les objets&apos; dans les paramètres de la visionneuse, la description contextuelle de chaque objet apparaît sous le pointeur de la souris. La description de la prim est limitée à 127 octets, toute chaîne supérieure à cette limite sera tronquée."/>
<text name="CreatorNameLabel">
Créateur :
</text>
<text name="Owner:">
Propriétaire :
</text>
<text name="Group_label">
Groupe :
</text>
<button name="button set group" tool_tip="Choisir un groupe pour partager les droits relatifs à cet objet"/>
<name_box initial_value="Chargement…" name="Group Name Proxy"/>
<button label="Céder" label_selected="Céder" name="button deed" tool_tip="En cédant un objet, vous donnez aussi les droits au prochain propriétaire. Seul un officier peut céder les objets partagés d&apos;un groupe."/>
<text name="label click action">
Cliquer pour :
</text>
<combo_box name="clickaction" tool_tip="Une action de clic vous permet d&apos;interagir avec un objet avec un simple clic gauche. Chaque action de clic a un curseur spécial indiquant ce qu&apos;il fait. Certaines actions de clic ont des exigences pour fonctionner. Par exemple, Toucher and Payer nécessitent des scripts">
<combo_box.item label="Toucher (défaut)" name="Touch/grab(default)"/>
<combo_box.item label="S&apos;asseoir sur l&apos;objet" name="Sitonobject"/>
<combo_box.item label="Acheter l&apos;objet" name="Buyobject"/>
<combo_box.item label="Payer l&apos;objet" name="Payobject"/>
<combo_box.item label="Ouvrir" name="Open"/>
<combo_box.item label="Zoom" name="Zoom"/>
<combo_box.item label="Ignorer l'objet" name="Ignoreobject"/>
<combo_box.item label="Aucun" name="None"/>
</combo_box>
<panel name="perms_inv">
<text name="perm_modify">
Vous pouvez modifier cet objet
<scroll_container name="item_profile_scroll">
<panel name="properties_panel">
<text name="Name:">
Nom :
</text>
<text name="Anyone can:">
N&apos;importe qui :
<line_editor name="Object Name" tool_tip="Le nom est limité à 63 caractères. Les noms de prim plus longs sont écourtés. Les noms ne peuvent contenir que des caractères imprimables trouvés dans le jeu de caractères ASCII-7 (non étendu), à l&apos;exception de la barre / pipe verticale &apos;|&apos;."/>
<text name="Description:">
Description :
</text>
<check_box label="Copier" name="checkbox allow everyone copy" tool_tip="Tout le monde peut prendre une copie de l&apos;objet. L&apos;objet et tout son contenu doit être autorisé à être copié et transféré."/>
<check_box label="Bouger" name="checkbox allow everyone move" tool_tip="Tout le monde peut déplacer l&apos;objet."/>
<text name="GroupLabel">
<line_editor name="Object Description" tool_tip="Lorsque les utilisateurs sélectionnent &apos;Conseils de survol sur tous les objets&apos; dans les paramètres de la visionneuse, la description contextuelle de chaque objet apparaît sous le pointeur de la souris. La description de la prim est limitée à 127 octets, toute chaîne supérieure à cette limite sera tronquée."/>
<text name="CreatorNameLabel">
Créateur :
</text>
<text name="Owner:">
Propriétaire :
</text>
<text name="Group_label">
Groupe :
</text>
<check_box label="Partager" name="checkbox share with group" tool_tip="Autoriser tous les membres du groupe choisi à partager vos droits de modification pour cet objet. Pour activer les restrictions de rôles, vous devez d&apos;abord cliquer sur Céder."/>
<text name="NextOwnerLabel">
Le prochain propriétaire :
<button name="button set group" tool_tip="Choisir un groupe pour partager les droits relatifs à cet objet"/>
<name_box initial_value="Chargement…" name="Group Name Proxy"/>
<button label="Céder" label_selected="Céder" name="button deed" tool_tip="En cédant un objet, vous donnez aussi les droits au prochain propriétaire. Seul un officier peut céder les objets partagés d&apos;un groupe."/>
<text name="label click action">
Cliquer pour :
</text>
<combo_box name="clickaction" tool_tip="Une action de clic vous permet d&apos;interagir avec un objet avec un simple clic gauche. Chaque action de clic a un curseur spécial indiquant ce qu&apos;il fait. Certaines actions de clic ont des exigences pour fonctionner. Par exemple, Toucher and Payer nécessitent des scripts">
<combo_box.item label="Toucher (défaut)" name="Touch/grab(default)"/>
<combo_box.item label="S&apos;asseoir sur l&apos;objet" name="Sitonobject"/>
<combo_box.item label="Acheter l&apos;objet" name="Buyobject"/>
<combo_box.item label="Payer l&apos;objet" name="Payobject"/>
<combo_box.item label="Ouvrir" name="Open"/>
<combo_box.item label="Zoom" name="Zoom"/>
<combo_box.item label="Aucun" name="None"/>
<combo_box.item label="Ignorer l'objet" name="Ignoreobject"/>
</combo_box>
<panel name="perms_inv">
<text name="perm_modify">
Vous pouvez modifier cet objet
</text>
<text name="Anyone can:">
N&apos;importe qui :
</text>
<check_box label="Copier" name="checkbox allow everyone copy" tool_tip="Tout le monde peut prendre une copie de l&apos;objet. L&apos;objet et tout son contenu doit être autorisé à être copié et transféré."/>
<check_box label="Bouger" name="checkbox allow everyone move" tool_tip="Tout le monde peut déplacer l&apos;objet."/>
<text name="GroupLabel">
Le groupe :
</text>
<check_box label="Partager" name="checkbox share with group" tool_tip="Autoriser tous les membres du groupe choisi à partager vos droits de modification pour cet objet. Pour activer les restrictions de rôles, vous devez d&apos;abord cliquer sur Céder."/>
<text name="NextOwnerLabel">
Le prochain propriétaire :
</text>
<check_box label="Modifier" name="checkbox next owner can modify" tool_tip="Le prochain propriétaire peut modifier des propriétés telles que le libellé de l&apos;élément ou l&apos;échelle de cet objet."/>
<check_box label="Copier" name="checkbox next owner can copy" tool_tip="Le prochain propriétaire peut faire des copies illimitées de cet objet. Les copies conservent les informations sur le créateur et ne peuvent jamais être plus permissives que l&apos;élément qui est copié."/>
<check_box label="Transférer" name="checkbox next owner can transfer" tool_tip="Le prochain propriétaire peut donner ou revendre cet objet"/>
</panel>
<check_box label="À vendre" name="checkbox for sale" tool_tip="Permet aux gens d&apos;acheter cet objet, son contenu ou de le copier dans Second Life à un prix donné."/>
<combo_box name="sale type" tool_tip="Indiquez si lacheteur recevra une copie, une copie du contenu ou larticle lui-même.">
<combo_box.item label="Copier" name="Copy"/>
<combo_box.item label="Contenus" name="Contents"/>
<combo_box.item label="Original" name="Original"/>
</combo_box>
<spinner label="Prix : L$" name="Edit Cost" tool_tip="Coût de l&apos;objet."/>
<check_box label="Afficher avec la recherche" name="search_check" tool_tip="Permettre aux autres résidents de voir cet objet dans les résultats de recherche"/>
<text name="pathfinding_attributes_label">
Attributs recherche chemin :
</text>
<check_box label="Modifier" name="checkbox next owner can modify" tool_tip="Le prochain propriétaire peut modifier des propriétés telles que le libellé de l&apos;élément ou l&apos;échelle de cet objet."/>
<check_box label="Copier" name="checkbox next owner can copy" tool_tip="Le prochain propriétaire peut faire des copies illimitées de cet objet. Les copies conservent les informations sur le créateur et ne peuvent jamais être plus permissives que l&apos;élément qui est copié."/>
<check_box label="Transférer" name="checkbox next owner can transfer" tool_tip="Le prochain propriétaire peut donner ou revendre cet objet"/>
</panel>
<check_box label="À vendre" name="checkbox for sale" tool_tip="Permet aux gens d&apos;acheter cet objet, son contenu ou de le copier dans Second Life à un prix donné."/>
<combo_box name="sale type" tool_tip="Indiquez si lacheteur recevra une copie, une copie du contenu ou larticle lui-même.">
<combo_box.item label="Copier" name="Copy"/>
<combo_box.item label="Contenus" name="Contents"/>
<combo_box.item label="Original" name="Original"/>
</combo_box>
<spinner label="Prix : L$" name="Edit Cost" tool_tip="Coût de l&apos;objet."/>
<check_box label="Afficher avec la recherche" name="search_check" tool_tip="Permettre aux autres résidents de voir cet objet dans les résultats de recherche"/>
<text name="pathfinding_attributes_label">
Attributs de recherche de chemin :
</text>
<text name="B:">
B :
</text>
<text name="O:">
O :
</text>
<text name="G:">
G :
</text>
<text name="E:">
E :
</text>
<text name="N:">
N :
</text>
<text name="F:">
F :
</text>
</panel>
<panel name="button_panel">
<button label="Ouvrir" name="open_btn" tool_tip="Ouvrir pour afficher le contenu de l&apos;objet."/>
<button label="Payer" name="pay_btn" tool_tip="Ouvrir la fenêtre Payer. L&apos;objet doit avoir un script payant pour que cela fonctionne."/>
<button label="Acheter" name="buy_btn" tool_tip="Ouvrir la fenêtre Acheter Nécessite que l&apos;objet soit mis en vente."/>
<button label="Détails" name="details_btn" tool_tip="Ouvrir la fenêtre Inspecter l&apos;objet"/>
</panel>
</scroll_container>
<layout_stack name="buttons_ls">
<layout_panel name="open_btn_panel">
<button label="Ouvrir" name="open_btn" tool_tip="Ouvrir pour afficher le contenu de l&apos;objet."/>
</layout_panel>
<layout_panel name="pay_btn_panel">
<button label="Payer" name="pay_btn" tool_tip="Ouvrir la fenêtre Payer. L&apos;objet doit avoir un script payant pour que cela fonctionne."/>
</layout_panel>
<layout_panel name="buy_btn_panel">
<button label="Acheter" name="buy_btn" tool_tip="Ouvrir la fenêtre Acheter Nécessite que l&apos;objet soit mis en vente."/>
</layout_panel>
<layout_panel name="details_btn_panel">
<button label="Détails" name="details_btn" tool_tip="Ouvrir la fenêtre Inspecter l&apos;objet"/>
</layout_panel>
</layout_stack>
</panel>

View File

@ -1388,6 +1388,19 @@ http://secondlife.com/support pour vous aider à résoudre ce problème.
<string name="executable_files">
Fichiers de programmes exécutables
</string>
<string name="Validator_InvalidNumericString">Chaîne numérique non valide : "[STR]"</string>
<string name="Validator_ShouldNotBeMinus">Caractère initial non valide : '[CH]' (ne doit pas être un moins)</string>
<string name="Validator_ShouldNotBeMinusOrZero">Caractère initial non valide : '[CH]' (ne doit être ni un moins ni un zéro)</string>
<string name="Validator_ShouldBeDigit">Caractère non valide [NR] : '[CH]' (ne doit être qu'un chiffre)</string>
<string name="Validator_ShouldBeDigitOrDot">Caractère non valide [NR] : '[CH]' (ne doit être qu'un chiffre ou un point décimal)</string>
<string name="Validator_ShouldBeDigitOrAlpha">Caractère non valide [NR] : '[CH]' (ne peut être qu'un chiffre ou un caractère alphanumérique ASCII)</string>
<string name="Validator_ShouldBeDigitOrAlphaOrSpace">Caractère non valide [NR] : '[CH]' (ne peut être qu'un chiffre, un caractère alphanumérique ASCII ou un espace.)</string>
<string name="Validator_ShouldBeDigitOrAlphaOrPunct">Caractère non valide [NR] : '[CH]' (ne peut être qu'un chiffre, un caractère alphanumérique ASCII ou un signe de ponctuation.)</string>
<string name="Validator_ShouldBeDigitOrAlphaOrPunctNotSpace">Caractère non valide [NR] : '[CH]' (ne peut être qu'un chiffre ou un caractère alphanumérique ASCII ou une ponctuation sans espace.)</string>
<string name="Validator_ShouldBeDigitNotSpace">Caractère non valide [NR] : '[CH]' (ne doit être qu'un chiffre sans espace)</string>
<string name="Validator_ShouldBeASCII">Caractère non valide [NR] : '[CH]' (ne peut être qu'un caractère ASCII)</string>
<string name="Validator_ShouldBeNewLineOrASCII">Caractère non valide [NR] : '[CH]' (ne doit être qu'un caractère ASCII ou une nouvelle ligne.)</string>
<string name="LSLTipSleepTime" translate="false">Pause le script pendant [SLEEP_TIME] secondes.</string>
<string name="shape">
Silhouette
</string>
@ -5416,7 +5429,8 @@ Si le problème persiste, vérifiez la configuration de votre réseau et de votr
Cette tenue ne contient aucun article.
</string>
<string name="ExternalEditorNotSet">
Sélectionnez un éditeur à l&apos;aide du paramètre ExternalEditor.
Sélectionnez un éditeur en définissant la variable d'environnement LL_SCRIPT_EDITOR ou le paramètre ExternalEditor.
Voyez https://wiki.secondlife.com/wiki/LSL_Alternate_Editors
</string>
<string name="ExternalEditorNotFound">
Éditeur externe spécifié introuvable.
@ -6841,6 +6855,7 @@ Votre position actuelle : [AVATAR_POS]
<string name="avatar_age_alert">
a déclenché l'alerte sur l'âge. Âge: [AGE] jour(s)
</string>
<string name="avatar_age_not_available">n.d.</string>
<string name="TotalScriptCountChangeIncrease">
Le nombre total de scripts dans la région est passé de [OLD_VALUE] à [NEW_VALUE] ([DIFFERENCE]).

View File

@ -61,16 +61,16 @@
</combo_box>
</panel>
<panel name="P_R_Res">
<text name="T_R_Res" tool_tip="Determina la qualità dei riflessi sull'acqua. Impostando 'Molto buona' o superiore, è necessario abilitare anche 'Illuminazione Avanzata' nella scheda 'Luce'.">
<text name="T_R_Res" tool_tip="Determina la qualità dei riflessi sull'acqua.">
Risoluzione
</text>
<combo_box name="ReflectionRescombo">
<combo_box.item label="Discreta" name="0"/>
<combo_box.item label="Buona" name="1"/>
<combo_box.item label="Molto buona - NOTA: è necessario abilitare anche 'Illuminazione Avanzata' (scheda Luce)" name="2"/>
<combo_box.item label="Eccellente - NOTA: è necessario abilitare anche 'Illuminazione Avanzata' (scheda Luce)" name="3"/>
<combo_box.item label="Eccezionale - NOTA: è necessario abilitare anche 'Illuminazione Avanzata' (scheda Luce)" name="4"/>
<combo_box.item label="Realistica - NOTA: è necessario abilitare anche 'Illuminazione Avanzata' (scheda Luce)" name="5"/>
<combo_box.item label="Molto buona" name="2"/>
<combo_box.item label="Eccellente" name="3"/>
<combo_box.item label="Eccezionale" name="4"/>
<combo_box.item label="Realistica" name="5"/>
</combo_box>
<check_box label="Acqua Trasparente" name="TransparentWater" tool_tip="Rende l'acqua trasparente. Senza questa spunta, l'acqua apparirà opaca con una semplice texture."/>
</panel>
@ -82,8 +82,6 @@
</text>
</panel>
<panel name="P_L_S_Settings">
<check_box label="Abilita Illuminazione Avanzata" name="RenderDeferred" tool_tip="Abilita le ombre di sole e luna e dalle altre fonti di luce. Permette anche di abilitare la profondità di campo ed altre funzioni grafiche. In sostanza questa impostazione abilita la maggior parte degli abbellimenti grafici."/>
<check_box label="Abilita Luci Locali" name="LocalLights" tool_tip="Abilita tutte le luci. Se disabilitata, rimarranno attive solo le luci del sole e della luna. Utile per disabilitare le luci provenienti dagli oggetti ed usare soltanto quelle di sole e luna."/>
<check_box label="Abilita Luci Attachments" tool_tip="Abilita tutte le luci provenienti da oggetti indossati dagli avatar, come ad esempio le face-light. Utile per disabilitare le face-light quando necessario." name="Render Attached Lights"/>
</panel>
<panel name="P_Shadows">

View File

@ -93,16 +93,16 @@
</panel>
<panel name="P_R_Res">
<text name="T_R_Res" tool_tip="水の反射の解像度/品質を決定します。「非常によい」以上に設定する場合は、「光」タブの「高度な照明モデル」を有効にしておく必要があります。">
<text name="T_R_Res" tool_tip="水の反射の解像度/品質を決定します。">
解像度
</text>
<combo_box name="ReflectionRescombo">
<combo_box.item label="ふつう" name="0" />
<combo_box.item label="よい" name="1" />
<combo_box.item label="非常によい - ※注意! 「高度な照明モデル」(光タブ内)を有効にしておく必要があります。" name="2" />
<combo_box.item label="優れている - ※注意! 「高度な照明モデル」(光タブ内)を有効にしておく必要があります。" name="3" />
<combo_box.item label="非常に優れている - ※注意! 「高度な照明モデル」(光タブ内)を有効にしておく必要があります。" name="4" />
<combo_box.item label="実物レベル - ※注意! 「高度な照明モデル」(光タブ内)を有効にしておく必要があります。" name="5" />
<combo_box.item label="非常によい" name="2" />
<combo_box.item label="優れている" name="3" />
<combo_box.item label="非常に優れている" name="4" />
<combo_box.item label="実物レベル" name="5" />
</combo_box>
<check_box label="透明な水" name="TransparentWater" tool_tip="水を透明に描画します。ここにチェックを入れると、単純なテクスチャが適用された不透明な水を描画しなくなります。" />
</panel>
@ -116,8 +116,6 @@
</panel>
<panel name="P_L_S_Settings">
<check_box label="高度な照明モデルを有効にする" name="RenderDeferred" tool_tip="ここにチェックを入れると、太陽、月、およびインワールドの光源による影を描画します。同時に、「被写界深度DOF」その他のグラフィック機能も「オン」にします。基本的に、インワールドにある「魅力的なもの」の殆どはこの機能を有効にしないと見ることができません。もしこの機能を有効にできない、或いは効果が確認できないという場合は、まず「WL」タブの「環境大気シェーダー」と「基本シェーダー」が共に有効になっていることを確認して下さい。" />
<check_box label="近くの光を有効にする" name="LocalLights" tool_tip="ここにチェックを入れるとインワールドにある光を全て点灯します。ここのチェックを外した場合でも、太陽と月は消えません。SIM内の光を除いて、太陽と月の光だけを使用したい場合に便利です。" />
<check_box label="装着している光源(フェイスライト)を有効にする" tool_tip="この機能は、例えばフェイスライトのような装着しているあらゆる光源を有効にします。その必要がある時にフェイスライトをオフにするのに便利な機能です。" name="Render Attached Lights" />
</panel>

View File

@ -46,16 +46,16 @@
</text>
</panel>
<panel name="P_R_Res">
<text name="T_R_Res" tool_tip="Określa rozdzielczość/jakość odbić w wodzie. Aby zmiany odniosły skutek musisz wyłączyć i włączyć 'podstawowe shadery'. Poza tym, gdy ustawienia rozdzielczości są w trybie 'bardzo dobrym' lub wyższym musisz także włączyć 'Zaawansowane oświetlenie' w karcie 'Światła'.">
<text name="T_R_Res" tool_tip="Określa rozdzielczość/jakość odbić w wodzie.">
Rozdzielczość
</text>
<combo_box name="ReflectionRescombo">
<combo_box.item label="Przyzwoita" name="0"/>
<combo_box.item label="Dobra" name="1"/>
<combo_box.item label="Bardzo dobra - UWAGA: Musisz także włączyć 'Zaawansowane oświetlenie' (karta Światła)" name="2"/>
<combo_box.item label="Świetna - UWAGA: Musisz także włączyć 'Zaawansowane oświetlenie' (karta Światła)" name="3"/>
<combo_box.item label="Znakomita - UWAGA: Musisz także włączyć 'Zaawansowane oświetlenie' (karta Światła)" name="4"/>
<combo_box.item label="Jak żywa - UWAGA: Musisz także włączyć 'Zaawansowane oświetlenie' (karta Światła)" name="5"/>
<combo_box.item label="Bardzo dobra" name="2"/>
<combo_box.item label="Świetna" name="3"/>
<combo_box.item label="Znakomita" name="4"/>
<combo_box.item label="Jak żywa" name="5"/>
</combo_box>
<check_box label="Przezroczysta woda" name="TransparentWater" tool_tip="Renderuj wodę jako powierzchnię przezroczystą. Wyłączenie tej opcji pokryje wodę nieprzejrzystą, prostą teksturą."/>
</panel>
@ -67,7 +67,6 @@
</text>
</panel>
<panel name="P_L_S_Settings">
<check_box label="Wszystkie lokalne światła" name="LocalLights" tool_tip="Ta opcja włącza wszystkie światła w świecie. Jeśli ją wyłączysz, to światło pochodzące od Słońca i Księżyca ciągle będzie widoczne. Przydatne, gdy chcesz wyeliminować oświetlenie pochodzące z regionu i użyć tylko światła słonecznego/księżycowego."/>
<check_box label="Włącz doczepiane światła (np. twarzy)" name="Render Attached Lights" tool_tip="Ta opcja włącza światła doczepione do awatarów, na przykład te oświetlające twarze. Użyteczne, gdy trzeba wyłączyć oświetlenie twarzy."/>
</panel>
<panel name="P_Shadows">

View File

@ -2,5 +2,6 @@
<floater name="emojipicker" title="Выберите эмодзи">
<floater.string name="title_for_recently_used" value="Недавно использованный"/>
<floater.string name="title_for_frequently_used" value="Часто используемый"/>
<floater.string name="text_no_emoji_for_filter" value="Не найдено эмодзи для '[FILTER]'"/>
<text name="Dummy">Эмодзи не выбраны</text>
</floater>

View File

@ -11,7 +11,7 @@
<button label="Назад" name="back"/>
<button label="Вперед" name="forward"/>
<button label="Обновить" name="reload"/>
<button label="Перейти" name="go"/>
<button label="Зайти" name="go"/>
</layout_panel>
<layout_panel name="time_controls">
<button label="назад" name="rewind"/>
@ -19,11 +19,18 @@
<button label="вперед" name="seek"/>
</layout_panel>
<layout_panel name="parcel_owner_controls">
<button label="Отправить текущую страницу на участок" name="assign"/>
<button label="Отправить страницу на участок" name="assign"/>
</layout_panel>
<layout_panel name="external_controls">
<text name="plugin_fail_text">
Похоже, что плагин для веб-браузера открывается не сразу.
Если плагин не загружается, пожалуйста, посетите сайт:
https://wiki.firestormviewer.org/fs_media
для информации о возможных действиях по устранению этой проблемы.
</text>
<button label="Открыть в моем браузере" name="open_browser"/>
<check_box label="Всегда открывать в моем браузере" name="open_always"/>
<button label="Закрыть" name="close"/>
</layout_panel>
</layout_stack>

View File

@ -69,16 +69,16 @@
</panel>
<panel name="P_R_Res">
<text name="T_R_Res" tool_tip="Определяет разрешение/качество отражений воды. Если для параметров разрешения установлено значение «Очень хорошо» или выше, вы также должны включить «Расширенная модель освещения» на вкладке «Свет».">
<text name="T_R_Res" tool_tip="Определяет разрешение/качество отражений воды.">
Разрешение
</text>
<combo_box name="ReflectionRescombo">
<combo_box.item name="0" label="Приемлемо"/>
<combo_box.item name="1" label="Хорошо"/>
<combo_box.item name="2" label="Очень хорошо - Нужно включить «Расширенная модель освещения» (вкладка «Свет»)"/>
<combo_box.item name="3" label="Отлично - Нужно включить «Расширенная модель освещения» (вкладка «Свет»)"/>
<combo_box.item name="4" label="Выдающееся - Нужно включить «Расширенная модель освещения» (вкладка «Свет»)"/>
<combo_box.item name="5" label="Как живое - Нужно включить «Расширенная модель освещения» (вкладка «Свет»)"/>
<combo_box.item name="2" label="Очень хорошо"/>
<combo_box.item name="3" label="Отлично"/>
<combo_box.item name="4" label="Выдающееся"/>
<combo_box.item name="5" label="Как живое"/>
</combo_box>
<check_box name="TransparentWater" label="Прозрачная Вода" tool_tip="Отображает воду прозрачной. Отключение делает воду непрозрачной с применением простой текстуры."/>
</panel>
@ -92,10 +92,6 @@
</panel>
<panel name="P_L_S_Settings">
<check_box name="RenderDeferred" label="Расширенная модель освещения"
tool_tip="Это позволит создать тени от Солнца и Луны, а также от внешних источников света. Это также позволит вам включить Глубину Резкости и другие графические функции. В основном вам нужно включить это, чтобы увидеть большую часть «вкусностей» в мире. Если вы не можете включить эту функцию или увидеть ее эффект, сначала убедитесь, что Атмосферные шейдеры включены на вкладке «Окр.среда»."/>
<check_box name="LocalLights" label="Включить все локальное освещение"
tool_tip="Это включит все огни в мире. Если вы отключите эту функцию, свет от Солнца/Луны по-прежнему будет отображаться. Полезно, если вы хотите устранить освещение SIM-карты и использовать только свет Солнца/Луны."/>
<check_box name="Render Attached Lights" label="Включить прикрепленные огни (Face Lights)"
tool_tip="Это позволит включить любые огни, такие как подсветка аватара. Полезно для отключения фонарей при необходимости."/>
</panel>

View File

@ -62,12 +62,13 @@
<radio_item label="Старт" name="start"/>
<radio_item label="Стоп" name="stop"/>
</radio_group>
<check_box label="до завершения анимации" name="wait_anim_check"/>
<check_box label="время в секундах:" name="wait_time_check"/>
<check_box label="пока нажата кнопка" name="wait_key_release_check" />
<check_box label="до конца анимации" name="wait_anim_check"/>
<check_box label="время, секунды:" name="wait_time_check"/>
<text name="help_label">
Все шаги выполняются одновременно, если только вы не добавите шаги ожидания.
</text>
<check_box label="Активный" name="active_check" tool_tip="Активные жесты можно включить путем ввода их триггеров в чат или нажатием горячих клавиш. Жесты обычно становятся неактивными, если возникает конфликт клавиш."/>
<button label="Предварительный просмотр" name="preview_btn"/>
<button label="Просмотр" name="preview_btn"/>
<button label="Сохранить" name="save_btn"/>
</floater>

View File

@ -18,6 +18,7 @@
<menu_item_call label="Очистить корзину" name="Empty Trash"/>
<menu_item_call label="Очистить 'Найденные вещи'" name="Empty Lost And Found"/>
<menu_item_call label="Новая папка" name="New Folder"/>
<menu_item_call label="Новая папка" name="New Listing Folder"/>
<menu_item_call label="Новый комплект одежды" name="New Outfit"/>
<menu_item_call label="Новый скрипт" name="New Script"/>
<menu_item_call label="Новая заметка" name="New Note"/>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="Gear Outfit">
<menu_item_call label="Переодеться" name="wear"/>
<menu_item_call label="Надеть" name="wear_add"/>
<menu_item_call label="Переодеться (заменить)" name="wear"/>
<menu_item_call label="Надеть (добавить)" name="wear_add"/>
<menu_item_call label="Снять" name="take_off"/>
<menu_item_call label="Изображение" name="thumbnail"/>
<menu_item_call label="Переименовать костюм" name="rename"/>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Outfit">
<menu_item_call label="Переодеться" name="wear_replace"/>
<menu_item_call label="Надеть" name="wear_add"/>
<menu_item_call label="Переодеться (заменить)" name="wear_replace"/>
<menu_item_call label="Надеть (добавить)" name="wear_add"/>
<menu_item_call label="Снять" name="take_off"/>
<menu_item_call label="Изменить костюм" name="edit"/>
<menu_item_call label="Изображение..." name="thumbnail"/>

View File

@ -37,7 +37,7 @@
</menu>
<menu_item_call label="Выберите аватар" name="Avatar Picker"/>
<menu_item_call label="Удалить выбранные присоединения" name="Remove Selected Attachments"/>
<menu_item_call label="Высота смещения" name="HoverHeight"/>
<menu label="Движение" name="Movement">
<menu_item_call label="Встать" name="Stand up"/>

View File

@ -118,6 +118,11 @@
Не удалось активировать эту папку версии, ошибка:
&quot;[ERROR_CODE]&quot;
</notification>
<notification name="InvalidKeystroke">
Было введено неверное нажатие клавиши.
[REASON].
Пожалуйста, введите правильный текст.
</notification>
<notification name="MerchantForceValidateListing">
Для того, чтобы создать свой список, мы исправили иерархию вашего списка содержимого.
@ -1749,18 +1754,18 @@
<usetemplate ignoretext="Подтверждать перед возвратом объектов владельцам" name="okcancelignore" notext="Отмена" yestext="Да"/>
</notification>
<notification name="GroupLeaveConfirmMember">
В настоящее время вы состоите в группе &lt;nolink&gt;[GROUP]&lt;/nolink&gt;.
Хотите выйти из группы?
<usetemplate name="okcancelbuttons" notext="Отмена" yestext="Да"/>
Покинуть группу &apos;&lt;nolink&gt;[GROUP]&lt;/nolink&gt;&apos;?
В настоящее время плата за вступление в эту группу L$[COST].
<usetemplate name="okcancelbuttons" notext="Отмена" yestext="Покинуть"/>
</notification>
<notification name="GroupLeaveConfirmMemberNoFee">
Покинуть группу &apos;&lt;nolink&gt;[GROUP]&lt;/nolink&gt;&apos;?
В настоящее время плата за вступление в эту группу не взимается.
<usetemplate name="okcancelbuttons" notext="Отмена" yestext="Покинуть"/>
</notification>
<notification name="GroupDepart">
Вы покинули группу «[group_name]».
</notification>
<notification name="GroupLeaveConfirmMemberWithFee">
Вы в настоящее время являетесь участником группы &lt;nolink&gt;[GROUP]&lt;/nolink&gt;. Присоединение снова будет стоить L$[AMOUNT].
Покинуть группу?
<usetemplate name="okcancelbuttons" notext="Отмена" yestext="Да"/>
</notification>
<notification name="OwnerCannotLeaveGroup">
Невозможно выйти из группы. Вы не можете покинуть группу, потому что вы единственый владелец группы. Пожалуйста, назначить сначала назначьте на данную роль другого пользователя.
</notification>
@ -2457,6 +2462,19 @@
Вы уверены, что хотите удалить их?
<usetemplate ignoretext="Подтвердить удаление отфильтрованных элементов" name="okcancelignore" notext="Отмена" yestext="Да"/>
</notification>
<notification name="DeleteWornItems">
Предмет(ы) которые вы хотите удалить надеты на ваш аватар.
Удалить эти элементы со своего аватара?
<usetemplate name="okcancelbuttons" notext="Отмена" yestext="Снять и удалить предмет(ы)"/>
</notification>
<notification name="CantDeleteRequiredClothing">
Предмет(ы), которые вы хотите удалить, относятся к обязательным слоям одежды (кожа, фигура, волосы, глаза).
Вы должны заменить эти слои, прежде чем удалять их.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="DeleteThumbnail">
Удалить изображение этого товара? Отмена невозможна.
<usetemplate ignoretext="Подтвердите перед удалением миниатюры." name="okcancelignore" notext="Отмена" yestext="Удалить"/>

View File

@ -9,9 +9,10 @@
<panel.string name="group_join_btn">
Присоединиться (L$[AMOUNT])
</panel.string>
<panel.string name="group_join_free">
Бесплатно
</panel.string>
<panel.string name="group_join_free">Бесплатно</panel.string>
<panel.string name="group_member">Член</panel.string>
<panel.string name="join_txt">Вступить</panel.string>
<panel.string name="leave_txt">Покинуть</panel.string>
<layout_stack name="group_info_sidetray_main">
<layout_panel name="header_container">

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="group_list_item">
<text name="group_name" value="Неизвестно"/>
<button name="notices_btn" tool_tip="Групповые уведомления"/>
<button name="info_btn" tool_tip="Дополнительная информация"/>
<button name="profile_btn" tool_tip="Просмотреть профиль"/>
</panel>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="group_list_item">
<text name="group_name" value="Неизвестно"/>
<button name="notices_btn" tool_tip="Групповые уведомления"/>
<button name="visibility_hide_btn" tool_tip="Скрыть группу в моем профиле"/>
<button name="visibility_show_btn" tool_tip="Показывать группу в моем профиле"/>
<button name="info_btn" tool_tip="Больше информации"/>

View File

@ -68,6 +68,7 @@
</layout_panel>
</layout_stack>
<check_box name="show_in_search" label="Показать в поиске" tool_tip="Позволить людям видеть вас в результатах поиска"/>
<check_box name="hide_sl_age" label="Показать полную дату рождения" tool_tip="Позволить людям видеть ваш возраст в СЛ"/>
<button name="save_description_changes" label="Сохранить"/>
<button name="discard_description_changes" label="Отказаться"/>
</panel>

View File

@ -83,8 +83,8 @@
<combo_box.item label="Заплатить за объект" name="Payobject"/>
<combo_box.item label="Открыть" name="Open"/>
<combo_box.item label="Приблизить" name="Zoom"/>
<combo_box.item label="Игнорировать объект" name="Ignoreobject"/>
<combo_box.item label="Нет" name="None"/>
<combo_box.item label="Игнорировать объект" name="Ignoreobject"/>
</combo_box>
<panel name="perms_inv">
<text name="perm_modify">

View File

@ -1444,6 +1444,20 @@ https://www.firestormviewer.org/support за помощь в решении эт
<string name="executable_files">
Исполняемые файлы программы
</string>
<string name="Validator_InvalidNumericString">Недопустимая числовая строка: "[STR]"</string>
<string name="Validator_ShouldNotBeMinus">Недопустимый начальный символ: '[CH]' (не должно быть минусом)</string>
<string name="Validator_ShouldNotBeMinusOrZero">Недопустимый начальный символ: '[CH]' (не должно быть ни минуса, ни нуля)</string>
<string name="Validator_ShouldBeDigit">Недопустимый символ [NR]: '[CH]' (должна быть только цифра)</string>
<string name="Validator_ShouldBeDigitOrDot">Недопустимый символ [NR]: '[CH]' (должна быть только цифра или десятичная точка)</string>
<string name="Validator_ShouldBeDigitOrAlpha">Недопустимый символ [NR]: '[CH]' (должна быть только цифра или буквенно-цифровой символ ASCII)</string>
<string name="Validator_ShouldBeDigitOrAlphaOrSpace">Недопустимый символ [NR]: '[CH]' (должна быть только цифра или буквенно-цифровой символ ASCII или пробел)</string>
<string name="Validator_ShouldBeDigitOrAlphaOrPunct">Недопустимый символ [NR]: '[CH]' (должна быть только цифра или буквенно-цифровой символ ASCII или пунктуация)</string>
<string name="Validator_ShouldBeDigitOrAlphaOrPunctNotSpace">Недопустимый символ [NR]: '[CH]' (должна быть только цифра или буквенно-цифровой символ ASCII или пунктуация без пробела)</string>
<string name="Validator_ShouldBeDigitNotSpace">Недопустимый символ [NR]: '[CH]' (должна быть только цифра без пробела)</string>
<string name="Validator_ShouldBeASCII">Недопустимый символ [NR]: '[CH]' (должен быть только символ ASCII)</string>
<string name="Validator_ShouldBeNewLineOrASCII">Недопустимый символ [NR]: '[CH]' (должен быть только символ ASCII или новая строка)</string>
<string name="LSLTipSleepTime">
Пауза скрипта на [SLEEP_TIME] секунд.
</string>
@ -5297,9 +5311,12 @@ https://www.firestormviewer.org/support за помощь в решении эт
<string name="dance8">
танец8
</string>
<string name="AvatarBirthDateFormat">
<string name="AvatarBirthDateFormatFull">
[day,datetime,utc].[mthnum,datetime,utc].[year,datetime,utc]
</string>
<string name="AvatarBirthDateFormatShort">
[day,datetime,utc].[mthnum,datetime,utc]
</string>
<string name="AvatarBirthDateFormat_legacy">
[day,datetime,slt].[mthnum,datetime,slt].[year,datetime,slt]
</string>
@ -5417,7 +5434,8 @@ https://www.firestormviewer.org/support за помощь в решении эт
Для этого комплекта одежды нет вещей
</string>
<string name="ExternalEditorNotSet">
Выберите редактор, используя параметр ExternalEditor.
Выберите редактор, установив переменную среды LL_SCRIPT_EDITOR или параметр Внешнего Редактора.
смотрите https://wiki.secondlife.com/wiki/LSL_Alternate_Editors
</string>
<string name="ExternalEditorNotFound">
Не удается найти указанный внешний редактор.
@ -6580,6 +6598,9 @@ ID объекта: [INSPECTING_KEY]
<string name="avatar_age_alert">
сработало возрастное предупреждение. Возраст: [AGE] дней
</string>
<string name="avatar_age_not_available">
н.д.
</string>
<string name="TotalScriptCountChangeIncrease">
Количество скриптов в регионе возросло с [OLD_VALUE] до [NEW_VALUE] ([DIFFERENCE]).
</string>

View File

@ -22,10 +22,10 @@ background_visible="false"
name="group_join_btn">
Join (L$[AMOUNT])
</panel.string>
<panel.string
name="group_join_free">
Free
</panel.string>
<panel.string name="group_join_free">Free</panel.string>
<panel.string name="group_member">Member</panel.string>
<panel.string name="join_txt">Join</panel.string>
<panel.string name="leave_txt">Leave</panel.string>
<layout_stack
name="group_info_sidetray_main"

View File

@ -22,10 +22,10 @@ background_visible="true"
name="group_join_btn">
Join (L$[AMOUNT])
</panel.string>
<panel.string
name="group_join_free">
Free
</panel.string>
<panel.string name="group_join_free">Free</panel.string>
<panel.string name="group_member">Member</panel.string>
<panel.string name="join_txt">Join</panel.string>
<panel.string name="leave_txt">Leave</panel.string>
<layout_stack
name="group_info_sidetray_main"

View File

@ -22,10 +22,10 @@ background_visible="true"
name="group_join_btn">
Join (L$[AMOUNT])
</panel.string>
<panel.string
name="group_join_free">
Free
</panel.string>
<panel.string name="group_join_free">Free</panel.string>
<panel.string name="group_member">Member</panel.string>
<panel.string name="join_txt">Join</panel.string>
<panel.string name="leave_txt">Leave</panel.string>
<layout_stack
name="group_info_sidetray_main"

View File

@ -22,10 +22,10 @@ background_visible="true"
name="group_join_btn">
Join (L$[AMOUNT])
</panel.string>
<panel.string
name="group_join_free">
Free
</panel.string>
<panel.string name="group_join_free">Free</panel.string>
<panel.string name="group_member">Member</panel.string>
<panel.string name="join_txt">Join</panel.string>
<panel.string name="leave_txt">Leave</panel.string>
<layout_stack
name="group_info_sidetray_main"

View File

@ -22,10 +22,10 @@ background_visible="true"
name="group_join_btn">
Join (L$[AMOUNT])
</panel.string>
<panel.string
name="group_join_free">
Free
</panel.string>
<panel.string name="group_join_free">Free</panel.string>
<panel.string name="group_member">Member</panel.string>
<panel.string name="join_txt">Join</panel.string>
<panel.string name="leave_txt">Leave</panel.string>
<layout_stack
name="group_info_sidetray_main"