Ansariel 2024-11-07 18:00:20 +01:00
commit 75c4b3690d
107 changed files with 3553 additions and 1607 deletions

View File

@ -134,12 +134,11 @@ jobs:
# Create the Tag (Conditional)
- name: Create tag
if: >
${{
steps.get_inputs.outputs.release_type != 'Nightly' &&
steps.get_inputs.outputs.release_type != 'Manual' &&
steps.get_inputs.outputs.release_type != 'Profiling' &&
steps.get_inputs.outputs.dry_run != 'true' &&
steps.check_tag.outputs.tag_exists == 'false' }}
steps.get_inputs.outputs.release_type != 'Nightly' &&
steps.get_inputs.outputs.release_type != 'Manual' &&
steps.get_inputs.outputs.release_type != 'Profiling' &&
steps.get_inputs.outputs.dry_run != 'true' &&
steps.check_tag.outputs.tag_exists == 'false'
run: |
echo "Creating tag: ${{ steps.get_tag.outputs.tag_name }}"
git tag ${{ steps.get_tag.outputs.tag_name }}
@ -148,8 +147,8 @@ jobs:
# Push the Tag to the Repository (Conditional)
- name: Push tag
if: >
${{ steps.get_inputs.outputs.dry_run != 'true' &&
steps.check_tag.outputs.tag_exists == 'false' }}
steps.get_inputs.outputs.dry_run != 'true' &&
steps.check_tag.outputs.tag_exists == 'false'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |

View File

@ -764,7 +764,14 @@ void LLSettingsBlender::update(const LLSettingsBase::BlendFactor& blendf)
F64 res = setBlendFactor(blendf);
llassert(res >= 0.0 && res <= 1.0);
(void)res;
mTarget->update();
// <FS:Beq> FIRE-34805 another issue with missing EEP on or shortly after login.
// Ideally we'll find the true fix at a higher level. But for now fix the symptom.
// mTarget->update();
if(mTarget)
{
mTarget->update();
}
// </FS:Beq>
}
F64 LLSettingsBlender::setBlendFactor(const LLSettingsBase::BlendFactor& blendf_in)

View File

@ -8067,6 +8067,17 @@
<key>Value</key>
<integer>0</integer>
</map>
<key>FSPoserStopPosingWhenClosed</key>
<map>
<key>Comment</key>
<string>Whether to stop animating with the poser when the poser window is closed.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>FSPoserTrackpadSensitivity</key>
<map>
<key>Comment</key>

View File

@ -40,6 +40,7 @@
#include "llviewercontrol.h"
#include "llviewerwindow.h"
#include "llwindow.h"
#include "llvoavatarself.h"
namespace
{
@ -52,6 +53,7 @@ constexpr char XML_LIST_TITLE_STRING_PREFIX[] = "title_";
constexpr char XML_JOINT_TRANSFORM_STRING_PREFIX[] = "joint_transform_";
constexpr std::string_view POSER_ADVANCEDWINDOWSTATE_SAVE_KEY = "FSPoserAdvancedWindowState";
constexpr std::string_view POSER_TRACKPAD_SENSITIVITY_SAVE_KEY = "FSPoserTrackpadSensitivity";
constexpr std::string_view POSER_STOPPOSINGWHENCLOSED_SAVE_KEY = "FSPoserStopPosingWhenClosed";
} // namespace
/// <summary>
@ -59,6 +61,7 @@ constexpr std::string_view POSER_TRACKPAD_SENSITIVITY_SAVE_KEY = "FSPoserTrackpa
/// The trackpad ordinarily has a range of +1..-1; multiplied by PI, gives PI to -PI, or all 360 degrees of deflection.
/// </summary>
constexpr F32 NormalTrackpadRangeInRads = F_PI;
bool FSFloaterPoser::sDisableRecaptureUntilStopPosing;
FSFloaterPoser::FSFloaterPoser(const LLSD& key) : LLFloater(key)
{
@ -76,6 +79,7 @@ FSFloaterPoser::FSFloaterPoser(const LLSD& key) : LLFloater(key)
mCommitCallbackRegistrar.add("Poser.AdjustTrackPadSensitivity", [this](LLUICtrl*, const LLSD&) { onAdjustTrackpadSensitivity(); });
mCommitCallbackRegistrar.add("Poser.PositionSet", [this](LLUICtrl*, const LLSD&) { onAvatarPositionSet(); });
mCommitCallbackRegistrar.add("Poser.SetToTPose", [this](LLUICtrl*, const LLSD&) { onSetAvatarToTpose(); });
mCommitCallbackRegistrar.add("Poser.Advanced.PositionSet", [this](LLUICtrl*, const LLSD&) { onAdvancedPositionSet(); });
mCommitCallbackRegistrar.add("Poser.Advanced.ScaleSet", [this](LLUICtrl*, const LLSD&) { onAdvancedScaleSet(); });
@ -154,9 +158,7 @@ bool FSFloaterPoser::postBuild()
mToggleAdvancedPanelBtn = getChild<LLButton>("toggleAdvancedPanel");
if (gSavedSettings.getBOOL(POSER_ADVANCEDWINDOWSTATE_SAVE_KEY))
{
mToggleAdvancedPanelBtn->setValue(true);
}
mTrackpadSensitivitySlider = getChild<LLSliderCtrl>("trackpad_sensitivity_slider");
mTrackpadSensitivitySlider->setValue(gSavedSettings.getF32(POSER_TRACKPAD_SENSITIVITY_SAVE_KEY));
@ -178,7 +180,6 @@ bool FSFloaterPoser::postBuild()
mAdvScaleYSlider = getChild<LLSliderCtrl>("Advanced_Scale_Y");
mAdvScaleZSlider = getChild<LLSliderCtrl>("Advanced_Scale_Z");
mSaveFilePptionsPnl = getChild<LLPanel>("save_file_options");
mPosesLoadSavePnl = getChild<LLPanel>("poses_loadSave");
mStartStopPosingBtn = getChild<LLButton>("start_stop_posing_button");
mToggleLoadSavePanelBtn = getChild<LLButton>("toggleLoadSavePanel");
@ -195,6 +196,9 @@ bool FSFloaterPoser::postBuild()
mToggleSympatheticRotationBtn = getChild<LLButton>("button_toggleSympatheticRotation");
mToggleDeltaModeBtn = getChild<LLButton>("delta_mode_toggle");
mRedoChangeBtn = getChild<LLButton>("button_redo_change");
mSetToTposeButton = getChild<LLButton>("set_t_pose_button");
mRecaptureJointsButton = getChild<LLButton>("button_RecaptureParts");
mRecaptureJointsButton->setEnabled(!sDisableRecaptureUntilStopPosing);
mJointsParentPnl = getChild<LLPanel>("joints_parent_panel");
mAdvancedParentPnl = getChild<LLPanel>("advanced_parent_panel");
@ -217,13 +221,18 @@ void FSFloaterPoser::onOpen(const LLSD& key)
onJointSelect();
onOpenSetAdvancedPanel();
refreshPoseScroll(mHandPresetsScrollList, POSE_PRESETS_HANDS_SUBDIRECTORY);
startPosingSelf();
LLFloater::onOpen(key);
}
void FSFloaterPoser::onClose(bool app_quitting)
{
gSavedSettings.setBOOL(POSER_ADVANCEDWINDOWSTATE_SAVE_KEY, mToggleAdvancedPanelBtn->getValue().asBoolean());
if (mToggleAdvancedPanelBtn)
gSavedSettings.setBOOL(POSER_ADVANCEDWINDOWSTATE_SAVE_KEY, mToggleAdvancedPanelBtn->getValue().asBoolean());
if (gSavedSettings.getBOOL(POSER_STOPPOSINGWHENCLOSED_SAVE_KEY))
stopPosingSelf();
LLFloater::onClose(app_quitting);
}
@ -290,6 +299,12 @@ void FSFloaterPoser::onPoseFileSelect()
LLStringExplicit name = LLStringExplicit(poseName);
mPoseSaveNameEditor->setEnabled(enableButtons);
mPoseSaveNameEditor->setText(name);
bool isDeltaSave = !poseFileStartsFromTeePose(name);
if (isDeltaSave)
mLoadPosesBtn->setLabel("Load Diff");
else
mLoadPosesBtn->setLabel("Load Pose");
}
void FSFloaterPoser::onClickPoseSave()
@ -331,26 +346,30 @@ bool FSFloaterPoser::savePoseToXml(LLVOAvatar* avatar, const std::string& poseFi
std::string fullSavePath =
gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, POSE_SAVE_SUBDIRECTORY, poseFileName + POSE_INTERNAL_FORMAT_FILE_EXT);
bool savingDiff = !mPoserAnimator.posingStartedFromZeroRotations(avatar);
LLSD record;
S32 version = 3;
record["version"]["value"] = version;
record["version"]["value"] = (S32)4;
record["startFromTeePose"]["value"] = !savingDiff;
LLVector3 rotation, position, scale, zeroVector;
for (const FSPoserAnimator::FSPoserJoint& pj : mPoserAnimator.PoserJoints)
{
std::string bone_name = pj.jointName();
std::string bone_name = pj.jointName();
if (!mPoserAnimator.tryGetJointSaveVectors(avatar, pj, &rotation, &position, &scale))
continue;
LLVector3 vec3 = mPoserAnimator.getJointRotation(avatar, pj, SWAP_NOTHING, NEGATE_NOTHING);
bool jointRotPosScaleAllZero = rotation == zeroVector && position == zeroVector && scale == zeroVector;
bool posingThisJoint = mPoserAnimator.isPosingAvatarJoint(avatar, pj);
if (savingDiff && (!posingThisJoint || jointRotPosScaleAllZero))
continue;
record[bone_name] = pj.jointName();
record[bone_name]["rotation"] = vec3.getValue();
vec3 = mPoserAnimator.getJointPosition(avatar, pj);
record[bone_name]["position"] = vec3.getValue();
vec3 = mPoserAnimator.getJointScale(avatar, pj);
record[bone_name]["scale"] = vec3.getValue();
record[bone_name]["enabled"] = mPoserAnimator.isPosingAvatarJoint(avatar, pj);
record[bone_name] = bone_name;
record[bone_name]["enabled"] = posingThisJoint;
record[bone_name]["rotation"] = rotation.getValue();
record[bone_name]["position"] = position.getValue();
record[bone_name]["scale"] = scale.getValue();
}
llofstream file;
@ -394,7 +413,7 @@ void FSFloaterPoser::onClickToggleSelectedBoneEnabled()
refreshRotationSliders();
refreshTrackpadCursor();
refreshTextEmbiggeningOnAllScrollLists();
refreshTextHighlightingOnAllScrollLists();
}
void FSFloaterPoser::onClickFlipSelectedJoints()
@ -458,6 +477,9 @@ void FSFloaterPoser::onClickFlipPose()
void FSFloaterPoser::onClickRecaptureSelectedBones()
{
if (sDisableRecaptureUntilStopPosing)
return;
auto selectedJoints = getUiSelectedPoserJoints();
if (selectedJoints.size() < 1)
return;
@ -475,22 +497,12 @@ void FSFloaterPoser::onClickRecaptureSelectedBones()
if (currentlyPosing)
continue;
LLVector3 newRotation = mPoserAnimator.getJointRotation(avatar, *item, getJointTranslation(item->jointName()),
getJointNegation(item->jointName()), true);
LLVector3 newPosition = mPoserAnimator.getJointPosition(avatar, *item, true);
LLVector3 newScale = mPoserAnimator.getJointScale(avatar, *item, true);
mPoserAnimator.setPosingAvatarJoint(avatar, *item, true);
mPoserAnimator.setJointRotation(avatar, item, newRotation, NONE, getJointTranslation(item->jointName()),
getJointNegation(item->jointName()));
mPoserAnimator.setJointPosition(avatar, item, newPosition, NONE);
mPoserAnimator.setJointScale(avatar, item, newScale, NONE);
mPoserAnimator.recaptureJoint(avatar, *item, getJointTranslation(item->jointName()), getJointNegation(item->jointName()));
}
refreshRotationSliders();
refreshTrackpadCursor();
refreshTextEmbiggeningOnAllScrollLists();
refreshTextHighlightingOnAllScrollLists();
}
void FSFloaterPoser::onClickBrowsePoseCache()
@ -655,6 +667,51 @@ void FSFloaterPoser::onClickLoadHandPose(bool isRightHand)
}
bool FSFloaterPoser::poseFileStartsFromTeePose(const std::string& poseFileName)
{
std::string pathname = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, POSE_SAVE_SUBDIRECTORY);
if (!gDirUtilp->fileExists(pathname))
return false;
std::string fullPath =
gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, POSE_SAVE_SUBDIRECTORY, poseFileName + POSE_INTERNAL_FORMAT_FILE_EXT);
try
{
LLSD pose;
llifstream infile;
bool startFromZeroRot = false;
infile.open(fullPath);
if (!infile.is_open())
return false;
S32 lineCount = LLSDSerialize::fromXML(pose, infile);
if (lineCount == LLSDParser::PARSE_FAILURE)
{
LL_WARNS("Posing") << "Failed to parse file: " << poseFileName << LL_ENDL;
return startFromZeroRot;
}
for (LLSD::map_const_iterator itr = pose.beginMap(); itr != pose.endMap(); ++itr)
{
std::string const& name = itr->first;
LLSD const& control_map = itr->second;
if (name == "startFromTeePose")
startFromZeroRot = control_map["value"].asBoolean();
}
return startFromZeroRot;
}
catch (const std::exception& e)
{
LL_WARNS("Posing") << "Unable to load or parse the pose: " << poseFileName << " exception: " << e.what() << LL_ENDL;
}
return false;
}
void FSFloaterPoser::loadPoseFromXml(LLVOAvatar* avatar, const std::string& poseFileName, E_LoadPoseMethods loadMethod)
{
std::string pathname = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, POSE_SAVE_SUBDIRECTORY);
@ -673,14 +730,16 @@ void FSFloaterPoser::loadPoseFromXml(LLVOAvatar* avatar, const std::string& pose
loadMethod == ROT_POS_AND_SCALES;
bool loadScales = loadMethod == SCALES || loadMethod == POSITIONS_AND_SCALES || loadMethod == ROTATIONS_AND_SCALES ||
loadMethod == ROT_POS_AND_SCALES;
bool loadHandsOnly = loadMethod == HAND_RIGHT || loadMethod == HAND_LEFT;
try
{
LLSD pose;
llifstream infile;
LLVector3 vec3;
bool enabled;
LLSD pose;
llifstream infile;
LLVector3 vec3;
LLQuaternion quat;
bool enabled;
S32 version = 0;
bool startFromZeroRot = false;
infile.open(fullPath);
if (!infile.is_open())
@ -697,40 +756,51 @@ void FSFloaterPoser::loadPoseFromXml(LLVOAvatar* avatar, const std::string& pose
for (LLSD::map_const_iterator itr = pose.beginMap(); itr != pose.endMap(); ++itr)
{
std::string const &name = itr->first;
LLSD const &control_map = itr->second;
std::string const& name = itr->first;
LLSD const& control_map = itr->second;
if (loadHandsOnly && name.find("Hand") == std::string::npos)
continue;
if (name == "startFromTeePose")
startFromZeroRot = control_map["value"].asBoolean();
if (name == "version")
version = (S32)control_map["value"].asInteger();
}
bool loadPositionsAndScalesAsDeltas = false;
if (version > 3)
loadPositionsAndScalesAsDeltas = true;
if (startFromZeroRot) // legacy saves will always start from T-Pose, for better or worse.
{
disableRecapture();
mPoserAnimator.setAllAvatarStartingRotationsToZero(avatar);
}
for (LLSD::map_const_iterator itr = pose.beginMap(); itr != pose.endMap(); ++itr)
{
std::string const& name = itr->first;
LLSD const& control_map = itr->second;
const FSPoserAnimator::FSPoserJoint *poserJoint = mPoserAnimator.getPoserJointByName(name);
if (!poserJoint)
continue;
if (loadHandsOnly && control_map.has("rotation"))
{
vec3.setValue(control_map["rotation"]);
mPoserAnimator.setJointRotation(avatar, poserJoint, vec3, NONE, SWAP_NOTHING, NEGATE_NOTHING);
continue;
}
if (loadRotations && control_map.has("rotation"))
{
vec3.setValue(control_map["rotation"]);
mPoserAnimator.setJointRotation(avatar, poserJoint, vec3, NONE, SWAP_NOTHING, NEGATE_NOTHING); // If we keep defaults BD poses mostly load, except fingers
mPoserAnimator.loadJointRotation(avatar, poserJoint, vec3);
}
if (loadPositions && control_map.has("position"))
{
vec3.setValue(control_map["position"]);
mPoserAnimator.setJointPosition(avatar, poserJoint, vec3, NONE);
mPoserAnimator.loadJointPosition(avatar, poserJoint, loadPositionsAndScalesAsDeltas, vec3);
}
if (loadScales && control_map.has("scale"))
{
vec3.setValue(control_map["scale"]);
mPoserAnimator.setJointScale(avatar, poserJoint, vec3, NONE);
mPoserAnimator.loadJointScale(avatar, poserJoint, loadPositionsAndScalesAsDeltas, vec3);
}
if (control_map.has("enabled"))
@ -740,7 +810,7 @@ void FSFloaterPoser::loadPoseFromXml(LLVOAvatar* avatar, const std::string& pose
}
}
}
}
}
catch ( const std::exception & e )
{
LL_WARNS("Posing") << "Everything caught fire trying to load the pose: " << poseFileName << " exception: " << e.what() << LL_ENDL;
@ -749,6 +819,35 @@ void FSFloaterPoser::loadPoseFromXml(LLVOAvatar* avatar, const std::string& pose
onJointSelect();
}
void FSFloaterPoser::startPosingSelf()
{
setUiSelectedAvatar(gAgentAvatarp->getID());
LLVOAvatar* avatar = getAvatarByUuid(gAgentAvatarp->getID());
if (!avatar)
return;
bool arePosingSelected = mPoserAnimator.isPosingAvatar(avatar);
if (!arePosingSelected && couldAnimateAvatar(avatar))
mPoserAnimator.tryPosingAvatar(avatar);
onAvatarSelect();
}
void FSFloaterPoser::stopPosingSelf()
{
LLVOAvatar* avatar = getAvatarByUuid(gAgentAvatarp->getID());
if (!avatar)
return;
bool arePosingSelected = mPoserAnimator.isPosingAvatar(avatar);
if (!arePosingSelected)
return;
mPoserAnimator.stopPosingAvatar(avatar);
onAvatarSelect();
reEnableRecaptureIfAllowed();
}
void FSFloaterPoser::onPoseStartStop()
{
LLVOAvatar* avatar = getUiSelectedAvatar();
@ -759,6 +858,7 @@ void FSFloaterPoser::onPoseStartStop()
if (arePosingSelected)
{
mPoserAnimator.stopPosingAvatar(avatar);
reEnableRecaptureIfAllowed();
}
else
{
@ -799,7 +899,6 @@ bool FSFloaterPoser::havePermissionToAnimateAvatar(LLVOAvatar *avatar) const
void FSFloaterPoser::poseControlsEnable(bool enable)
{
mJointsParentPnl->setEnabled(enable);
mAdvancedParentPnl->setEnabled(enable);
mTrackballPnl->setEnabled(enable);
mFlipPoseBtn->setEnabled(enable);
@ -947,16 +1046,6 @@ void FSFloaterPoser::onToggleLoadSavePanel()
if (loadSavePanelExpanded)
refreshPoseScroll(mPosesScrollList);
showOrHideAdvancedSaveOptions();
}
void FSFloaterPoser::showOrHideAdvancedSaveOptions()
{
bool loadSavePanelExpanded = mToggleLoadSavePanelBtn->getValue().asBoolean();
bool advancedPanelExpanded = mToggleAdvancedPanelBtn->getValue().asBoolean();
mSaveFilePptionsPnl->setVisible(loadSavePanelExpanded && advancedPanelExpanded);
}
void FSFloaterPoser::onToggleMirrorChange()
@ -1060,6 +1149,21 @@ void FSFloaterPoser::onUndoLastScale()
refreshAdvancedScaleSliders();
}
void FSFloaterPoser::onSetAvatarToTpose()
{
auto timeIntervalSinceLastClick = std::chrono::system_clock::now() - mTimeLastClickedJointReset;
mTimeLastClickedJointReset = std::chrono::system_clock::now();
if (timeIntervalSinceLastClick > mDoubleClickInterval)
return;
LLVOAvatar* avatar = getUiSelectedAvatar();
if (!avatar)
return;
disableRecapture();
mPoserAnimator.setAllAvatarStartingRotationsToZero(avatar);
}
void FSFloaterPoser::onResetPosition()
{
// This is a double-click function: it needs to run twice within some amount of time to complete.
@ -1242,7 +1346,6 @@ void FSFloaterPoser::onToggleAdvancedPanel()
return;
reshape(poserFloaterWidth, poserFloaterHeight);
showOrHideAdvancedSaveOptions();
onJointSelect();
}
@ -1342,6 +1445,23 @@ LLVOAvatar* FSFloaterPoser::getUiSelectedAvatar() const
return getAvatarByUuid(selectedAvatarId);
}
void FSFloaterPoser::setUiSelectedAvatar(const LLUUID& avatarToSelect)
{
for (auto listItem : mAvatarSelectionScrollList->getAllData())
{
LLScrollListCell* cell = listItem->getColumn(COL_UUID);
if (!cell)
continue;
LLUUID avatarId = cell->getValue().asUUID();
if (avatarId != avatarToSelect)
continue;
listItem->setSelected(true);
break;
}
}
void FSFloaterPoser::setPoseSaveFileTextBoxToUiSelectedAvatarSaveFileName()
{
LLScrollListItem* item = mAvatarSelectionScrollList->getFirstSelected();
@ -1665,7 +1785,7 @@ LLVector3 FSFloaterPoser::getRotationOfFirstSelectedJoint() const
return rotation;
rotation = mPoserAnimator.getJointRotation(avatar, *selectedJoints.front(), getJointTranslation(selectedJoints.front()->jointName()),
getJointNegation(selectedJoints.front()->jointName()));
getJointNegation(selectedJoints.front()->jointName()), TARGETROTATION);
return rotation;
}
@ -1781,8 +1901,9 @@ void FSFloaterPoser::onAvatarSelect()
bool arePosingSelected = mPoserAnimator.isPosingAvatar(avatar);
mStartStopPosingBtn->setValue(arePosingSelected);
mSetToTposeButton->setEnabled(arePosingSelected);
poseControlsEnable(arePosingSelected);
refreshTextEmbiggeningOnAllScrollLists();
refreshTextHighlightingOnAllScrollLists();
onJointSelect();
setPoseSaveFileTextBoxToUiSelectedAvatarSaveFileName();
}
@ -1794,7 +1915,7 @@ uuid_vec_t FSFloaterPoser::getNearbyAvatarsAndAnimeshes() const
for (LLCharacter* character : LLCharacter::sInstances)
{
LLVOAvatar* avatar = dynamic_cast<LLVOAvatar*>(character);
if (!couldAnimateAvatar(avatar))
if (!havePermissionToAnimateAvatar(avatar))
continue;
avatar_ids.emplace_back(character->getID());
@ -1889,7 +2010,7 @@ void FSFloaterPoser::onAvatarsRefresh()
row["columns"][COL_UUID]["value"] = uuid;
row["columns"][COL_SAVE]["column"] = "saveFileName";
row["columns"][COL_SAVE]["value"] = "";
LLScrollListItem* item = mAvatarSelectionScrollList->addElement(row);
LLScrollListItem* item = mAvatarSelectionScrollList->addElement(row);
}
// Add Animesh avatars
@ -1917,12 +2038,11 @@ void FSFloaterPoser::onAvatarsRefresh()
}
mAvatarSelectionScrollList->updateLayout();
refreshTextEmbiggeningOnAllScrollLists();
refreshTextHighlightingOnAllScrollLists();
}
void FSFloaterPoser::refreshTextEmbiggeningOnAllScrollLists()
void FSFloaterPoser::refreshTextHighlightingOnAllScrollLists()
{
// the avatars
for (auto listItem : mAvatarSelectionScrollList->getAllData())
{
LLScrollListCell* cell = listItem->getColumn(COL_UUID);
@ -1946,6 +2066,41 @@ void FSFloaterPoser::refreshTextEmbiggeningOnAllScrollLists()
addBoldToScrollList(mCollisionVolumesScrollList, avatar);
}
void FSFloaterPoser::disableRecapture()
{
mRecaptureJointsButton->setEnabled(false);
mSavePosesBtn->setLabel("Save Pose");
sDisableRecaptureUntilStopPosing = true;
}
void FSFloaterPoser::reEnableRecaptureIfAllowed()
{
if (posingAnyoneOnScrollList())
return;
mRecaptureJointsButton->setEnabled(true);
mSavePosesBtn->setLabel("Save Diff");
sDisableRecaptureUntilStopPosing = false;
}
bool FSFloaterPoser::posingAnyoneOnScrollList()
{
for (auto listItem : mAvatarSelectionScrollList->getAllData())
{
LLScrollListCell* cell = listItem->getColumn(COL_UUID);
if (!cell)
continue;
LLUUID selectedAvatarId = cell->getValue().asUUID();
LLVOAvatar* listAvatar = getAvatarByUuid(selectedAvatarId);
if (mPoserAnimator.isPosingAvatar(listAvatar))
return true;
}
return false;
}
void FSFloaterPoser::addBoldToScrollList(LLScrollListCtrl* list, LLVOAvatar* avatar)
{
if (!avatar)

View File

@ -81,7 +81,8 @@ class FSFloaterPoser : public LLFloater
void onOpen(const LLSD& key) override;
void onClose(bool app_quitting) override;
static bool sDisableRecaptureUntilStopPosing;
/// <summary>
/// Refreshes the supplied pose list from the supplued subdirectory.
/// </summary>
@ -136,6 +137,12 @@ class FSFloaterPoser : public LLFloater
/// <returns>The currently selected avatar or animesh.</returns>
LLVOAvatar* getUiSelectedAvatar() const;
/// <summary>
/// Sets the UI selection for avatar or animesh.
/// </summary>
/// <param name="avatarToSelect">The ID of the avatar to select, if found.</param>
void setUiSelectedAvatar(const LLUUID& avatarToSelect);
/// <summary>
/// Gets the current bone-deflection style: encapsulates 'anything else you want to do' while you're manipulating a joint.
/// Such as: fiddle the opposite joint too.
@ -195,9 +202,9 @@ class FSFloaterPoser : public LLFloater
void onClickBrowsePoseCache();
void onPoseMenuAction(const LLSD& param);
void loadPoseFromXml(LLVOAvatar* avatar, const std::string& poseFileName, E_LoadPoseMethods loadMethod);
bool poseFileStartsFromTeePose(const std::string& poseFileName);
void setPoseSaveFileTextBoxToUiSelectedAvatarSaveFileName();
void setUiSelectedAvatarSaveFileName(const std::string& saveFileName);
void showOrHideAdvancedSaveOptions();
// UI Event Handlers:
void onAvatarsRefresh();
@ -216,8 +223,11 @@ class FSFloaterPoser : public LLFloater
void onRedoLastScale();
void onResetPosition();
void onResetScale();
void onSetAvatarToTpose();
void enableOrDisableRedoButton();
void onPoseStartStop();
void startPosingSelf();
void stopPosingSelf();
void onLimbTrackballChanged();
void onLimbYawPitchRollChanged();
void onAvatarPositionSet();
@ -284,9 +294,24 @@ class FSFloaterPoser : public LLFloater
S32 getJointNegation(const std::string& jointName) const;
/// <summary>
/// The smallest text embiggens the noble selection.
/// Refreshes the text on all scroll lists based on their state.
/// </summary>
void refreshTextEmbiggeningOnAllScrollLists();
void refreshTextHighlightingOnAllScrollLists();
/// <summary>
/// Disables recapturing joint traits.
/// </summary>
void disableRecapture();
/// <summary>
/// Recapture is be disabled if user is making their own pose (starting from a T-Pose).
/// </summary>
void reEnableRecaptureIfAllowed();
/// <summary>
/// Gets whether any avatar know by the UI is being posed.
/// </summary>
bool posingAnyoneOnScrollList();
/// <summary>
/// Applies the appropriate font-face (such as bold) to the text of the supplied list, to indicate use.
@ -356,8 +381,9 @@ class FSFloaterPoser : public LLFloater
LLButton* mToggleSympatheticRotationBtn{ nullptr };
LLButton* mToggleDeltaModeBtn{ nullptr };
LLButton* mRedoChangeBtn{ nullptr };
LLButton* mSetToTposeButton{ nullptr };
LLButton* mRecaptureJointsButton{ nullptr };
LLCheckBoxCtrl* mAlsoSaveBvhCbx{ nullptr };
LLLineEditor* mPoseSaveNameEditor{ nullptr };
LLPanel* mAdvancedParentPnl{ nullptr };
@ -369,7 +395,6 @@ class FSFloaterPoser : public LLFloater
LLPanel* mHandsJointsPnl{ nullptr };
LLPanel* mMiscJointsPnl{ nullptr };
LLPanel* mCollisionVolumesPnl{ nullptr };
LLPanel* mSaveFilePptionsPnl{ nullptr };
LLPanel* mPosesLoadSavePnl{ nullptr };
};

View File

@ -412,7 +412,69 @@ void FSPoserAnimator::setJointPosition(LLVOAvatar* avatar, const FSPoserJoint* j
}
}
LLVector3 FSPoserAnimator::getJointRotation(LLVOAvatar* avatar, const FSPoserJoint& joint, E_BoneAxisTranslation translation, S32 negation, bool forRecapture) const
bool FSPoserAnimator::posingStartedFromZeroRotations(LLVOAvatar* avatar) const
{
if (!isAvatarSafeToUse(avatar))
return false;
FSPosingMotion* posingMotion = getPosingMotion(avatar);
if (!posingMotion)
return false;
bool allStartingRotationsAreZero = posingMotion->allStartingRotationsAreZero();
if (allStartingRotationsAreZero)
return true;
return false;
}
void FSPoserAnimator::setAllAvatarStartingRotationsToZero(LLVOAvatar* avatar)
{
if (!isAvatarSafeToUse(avatar))
return;
FSPosingMotion* posingMotion = getPosingMotion(avatar);
if (!posingMotion)
return;
posingMotion->setAllRotationsToZero();
}
void FSPoserAnimator::recaptureJoint(LLVOAvatar* avatar, const FSPoserJoint& joint, E_BoneAxisTranslation translation, S32 negation)
{
LLVector3 newRotation = getJointRotation(avatar, joint, translation, negation, CURRENTROTATION);
LLVector3 newPosition = getJointPosition(avatar, joint, true);
LLVector3 newScale = getJointScale(avatar, joint, true);
setPosingAvatarJoint(avatar, joint, true);
setStartingJointRotation(avatar, &joint, newRotation, translation, negation);
// recapture of positions and scale does not reset starting values, since this this could result in unwanted residue deformation after posing stops.
setJointPosition(avatar, &joint, newPosition, NONE);
setJointScale(avatar, &joint, newScale, NONE);
}
void FSPoserAnimator::setStartingJointRotation(LLVOAvatar* avatar, const FSPoserJoint* joint, const LLVector3& rotation,
E_BoneAxisTranslation translation, S32 negation)
{
if (!isAvatarSafeToUse(avatar))
return;
if (!joint)
return;
FSPosingMotion* posingMotion = getPosingMotion(avatar);
if (!posingMotion)
return;
FSPosingMotion::FSJointPose* jointPose = posingMotion->getJointPoseByJointName(joint->jointName());
if (!jointPose)
return;
LLQuaternion rot_quat = translateRotationToQuaternion(translation, negation, rotation);
jointPose->setJointStartRotations(rot_quat);
}
LLVector3 FSPoserAnimator::getJointRotation(LLVOAvatar* avatar, const FSPoserJoint& joint, E_BoneAxisTranslation translation, S32 negation, E_BoneRotationType rotType) const
{
LLVector3 vec3;
if (!isAvatarSafeToUse(avatar))
@ -427,11 +489,18 @@ LLVector3 FSPoserAnimator::getJointRotation(LLVOAvatar* avatar, const FSPoserJoi
return vec3;
LLQuaternion rot;
if (forRecapture)
rot = jointPose->getCurrentRotation();
else
rot = jointPose->getTargetRotation();
switch (rotType)
{
case TARGETROTATION:
rot = jointPose->getTargetRotation();
break;
case CURRENTROTATION:
default:
rot = jointPose->getCurrentRotation();
break;
}
return translateRotationFromQuaternion(translation, negation, rot);
}
@ -709,6 +778,85 @@ void FSPoserAnimator::setJointScale(LLVOAvatar* avatar, const FSPoserJoint* join
oppositeJointPose->setTargetScale(scale);
}
bool FSPoserAnimator::tryGetJointSaveVectors(LLVOAvatar* avatar, const FSPoserJoint& joint, LLVector3* rot, LLVector3* pos, LLVector3* scale)
{
if (!rot || !pos || !scale)
return false;
if (!isAvatarSafeToUse(avatar))
return false;
FSPosingMotion* posingMotion = getPosingMotion(avatar);
if (!posingMotion)
return false;
FSPosingMotion::FSJointPose* jointPose = posingMotion->getJointPoseByJointName(joint.jointName());
if (!jointPose)
return false;
LLQuaternion difference = jointPose->getTargetRotation() * jointPose->getBeginningRotation().conjugate(); // diff * q1 = q2 -> diff = q2 * inverse(q1)
difference.getEulerAngles(&rot->mV[VX], &rot->mV[VY], &rot->mV[VZ]);
pos->set(jointPose->getTargetPosition() - jointPose->getBeginningPosition());
scale->set(jointPose->getTargetScale() - jointPose->getBeginningScale());
return true;
}
void FSPoserAnimator::loadJointRotation(LLVOAvatar* avatar, const FSPoserJoint* joint, LLVector3 rotation)
{
if (!isAvatarSafeToUse(avatar) || !joint)
return;
FSPosingMotion* posingMotion = getPosingMotion(avatar);
if (!posingMotion)
return;
FSPosingMotion::FSJointPose* jointPose = posingMotion->getJointPoseByJointName(joint->jointName());
if (!jointPose)
return;
LLQuaternion rot = translateRotationToQuaternion(SWAP_NOTHING, NEGATE_NOTHING, rotation);
jointPose->setTargetRotation(rot * jointPose->getBeginningRotation());
}
void FSPoserAnimator::loadJointPosition(LLVOAvatar* avatar, const FSPoserJoint* joint, bool loadPositionAsDelta, LLVector3 position)
{
if (!isAvatarSafeToUse(avatar) || !joint)
return;
FSPosingMotion* posingMotion = getPosingMotion(avatar);
if (!posingMotion)
return;
FSPosingMotion::FSJointPose* jointPose = posingMotion->getJointPoseByJointName(joint->jointName());
if (!jointPose)
return;
if (loadPositionAsDelta)
jointPose->setTargetPosition(jointPose->getBeginningPosition() + position);
else
jointPose->setTargetPosition(position);
}
void FSPoserAnimator::loadJointScale(LLVOAvatar* avatar, const FSPoserJoint* joint, bool loadScaleAsDelta, LLVector3 scale)
{
if (!isAvatarSafeToUse(avatar) || !joint)
return;
FSPosingMotion* posingMotion = getPosingMotion(avatar);
if (!posingMotion)
return;
FSPosingMotion::FSJointPose* jointPose = posingMotion->getJointPoseByJointName(joint->jointName());
if (!jointPose)
return;
if (loadScaleAsDelta)
jointPose->setTargetScale(jointPose->getTargetScale() + scale);
else
jointPose->setTargetScale(scale);
}
const FSPoserAnimator::FSPoserJoint* FSPoserAnimator::getPoserJointByName(const std::string& jointName)
{
for (size_t index = 0; index != PoserJoints.size(); ++index)
@ -720,7 +868,7 @@ const FSPoserAnimator::FSPoserJoint* FSPoserAnimator::getPoserJointByName(const
return nullptr;
}
bool FSPoserAnimator::tryPosingAvatar(LLVOAvatar *avatar)
bool FSPoserAnimator::tryPosingAvatar(LLVOAvatar* avatar)
{
if (!isAvatarSafeToUse(avatar))
return false;
@ -781,20 +929,18 @@ FSPosingMotion* FSPoserAnimator::getPosingMotion(LLVOAvatar* avatar) const
FSPosingMotion* FSPoserAnimator::findOrCreatePosingMotion(LLVOAvatar* avatar)
{
FSPosingMotion* motion = getPosingMotion(avatar);
if (motion)
return motion;
if (!motion)
{
LLTransactionID mTransactionID;
mTransactionID.generate();
LLAssetID animationAssetId = mTransactionID.makeAssetID(gAgent.getSecureSessionID());
LLTransactionID mTransactionID;
mTransactionID.generate();
LLAssetID animationAssetId = mTransactionID.makeAssetID(gAgent.getSecureSessionID());
if (avatar->registerMotion(animationAssetId, FSPosingMotion::create))
sAvatarIdToRegisteredAnimationId[avatar->getID()] = animationAssetId;
if (avatar->registerMotion(animationAssetId, FSPosingMotion::create))
sAvatarIdToRegisteredAnimationId[avatar->getID()] = animationAssetId;
return dynamic_cast<FSPosingMotion*>(avatar->createMotion(animationAssetId));
}
return dynamic_cast<FSPosingMotion*>(avatar->createMotion(animationAssetId));
return motion;
}
bool FSPoserAnimator::isAvatarSafeToUse(LLVOAvatar* avatar) const

View File

@ -32,7 +32,7 @@
/// <summary>
/// Describes how we will cluster the joints/bones/thingos.
/// Each joint/bone/thingo should have one of these, <see:"FSPoserAnimator.PoserJoints"/>.
/// Each joint/bone/thingo should have one of these, FSPoserAnimator.PoserJoints.
/// </summary>
typedef enum E_BoneTypes
{
@ -56,6 +56,15 @@ typedef enum E_BoneDeflectionStyles
DELTAMODE = 3, // each selected joint changes by the same supplied amount relative to their current
} E_BoneDeflectionStyles;
/// <summary>
/// When getting the rotation of a joint, we can apply different considerations to the rotation.
/// </summary>
typedef enum E_BoneRotationType
{
CURRENTROTATION = 0, // the current rotation the joint has
TARGETROTATION = 1, // the rotation the we want to achieve
} E_BoneRotationType;
/// <summary>
/// When we're going from bone-rotation to the UI sliders, some of the axes need swapping so they make sense in UI-terms.
/// eg: for one bone, the X-axis may mean up and down, but for another bone, the x-axis might be left-right.
@ -200,6 +209,14 @@ public:
{ "mFaceEyeLidUpperRight", "mFaceEyeLidUpperLeft", FACE, {}, true },
{ "mFaceEyeLidLowerRight", "mFaceEyeLidLowerLeft", FACE, {}, true },
{ "mFaceEar1Left", "mFaceEar1Right", FACE },
{ "mFaceEar2Left", "mFaceEar2Right", FACE },
{ "mFaceEar1Right", "mFaceEar1Left", FACE, {}, true },
{ "mFaceEar2Right", "mFaceEar2Left", FACE, {}, true },
{ "mFaceNoseLeft", "mFaceNoseRight", FACE },
{ "mFaceNoseCenter", "", FACE },
{ "mFaceNoseRight", "mFaceNoseLeft", FACE, {}, true },
{ "mFaceCheekUpperLeft", "mFaceCheekUpperRight", FACE },
{ "mFaceCheekLowerLeft", "mFaceCheekLowerRight", FACE },
{ "mFaceCheekUpperRight", "mFaceCheekUpperLeft", FACE, {}, true },
@ -429,11 +446,10 @@ public:
/// <param name="avatar">The avatar whose joint is being queried.</param>
/// <param name="joint">The joint to determine the rotation for.</param>
/// <param name="translation">The joint to determine the rotation for.</param>
/// <param name="negation">The style of negation to apply to the set.</param>
/// <param name="forRecapture">Get the current non-poser rotation, for recapture opportunity.</param>
/// <param name="negation">The style of negation to dis-apply to the get.</param>
/// <param name="rotType">The type of rotation to get from the supplied joint for the supplied avatar.</param>
/// <returns>The rotation of the requested joint, if determinable, otherwise a default vector.</returns>
LLVector3 getJointRotation(LLVOAvatar* avatar, const FSPoserJoint& joint, E_BoneAxisTranslation translation, S32 negation,
bool forRecapture = false) const;
LLVector3 getJointRotation(LLVOAvatar* avatar, const FSPoserJoint& joint, E_BoneAxisTranslation translation, S32 negation, E_BoneRotationType rotType) const;
/// <summary>
/// Sets the rotation of a joint for the supplied avatar.
@ -443,6 +459,7 @@ public:
/// <param name="rotation">The rotation to set the joint to.</param>
/// <param name="style">Any ancilliary action to be taken with the change to be made.</param>
/// <param name="translation">The axial translation form the supplied joint.</param>
/// <param name="negation">The style of negation to apply to the set.</param>
void setJointRotation(LLVOAvatar* avatar, const FSPoserJoint* joint, const LLVector3& rotation, E_BoneDeflectionStyles style,
E_BoneAxisTranslation translation, S32 negation);
@ -476,6 +493,92 @@ public:
/// <param name="avatar">The avatar whose pose should flip left-right.</param>
void flipEntirePose(LLVOAvatar* avatar);
/// <summary>
/// Recaptures the rotation, position and scale state of the supplied joint for the supplied avatar.
/// </summary>
/// <param name="avatar">The avatar whose joint is to be recaptured.</param>
/// <param name="joint">The joint to recapture.</param>
/// <param name="translation">The axial translation form the supplied joint.</param>
/// <param name="negation">The style of negation to apply to the recapture.</param>
void recaptureJoint(LLVOAvatar* avatar, const FSPoserJoint& joint, E_BoneAxisTranslation translation, S32 negation);
/// <summary>
/// Sets all of the joint rotations of the supplied avatar to zero.
/// </summary>
/// <param name="avatar">The avatar whose joint rotations should be set to zero.</param>
void setAllAvatarStartingRotationsToZero(LLVOAvatar* avatar);
/// <summary>
/// Determines if the kind of save to perform should be a 'delta' save, or a complete save.
/// </summary>
/// <param name="avatar">The avatar whose pose-rotations are being considered for saving.</param>
/// <returns>True if the save should save only 'deltas' to the rotation, otherwise false.</returns>
/// <remarks>
/// A save of the rotation 'deltas' facilitates a user saving their changes to an existing animation.
/// Thus the save represents 'nothing other than the changes the user made', to some other pose which they may have limited rights to.
/// </remarks>
bool posingStartedFromZeroRotations(LLVOAvatar* avatar) const;
/// <summary>
/// Tries to get the rotation, position and scale changes from initial conditions, to save in some export container.
/// </summary>
/// <param name="avatar">The avatar whose pose is being considered for saving.</param>
/// <param name="joint">The joint we are considering the save for.</param>
/// <param name="rot">The quaternion to store the rotation to save in.</param>
/// <param name="pos">The vector to store the position to save in.</param>
/// <param name="scale">The vector to store the scale to save in.</param>
/// <returns>True if the joint should be saved, otherwise false.</returns>
/// <remarks>
/// Our objective is to protect peoples novel work: the poses created with this, and poses from other sources, such as in-world.
/// In all scenarios, this yeilds 'deltas' of rotation/position/scale.
/// The deltas represent the user's novel work, and may be relative to some initial values (as from a pose), or to 'nothing' (such as all rotations == 0, or, the 'T-Pose').
/// </remarks>
bool tryGetJointSaveVectors(LLVOAvatar* avatar, const FSPoserJoint& joint, LLVector3* rot, LLVector3* pos, LLVector3* scale);
/// <summary>
/// Loads a joint rotation for the supplied joint on the supplied avatar.
/// </summary>
/// <param name="avatar">The avatar to load the rotation for.</param>
/// <param name="joint">The joint to load the rotation for.</param>
/// <param name="rotation">The rotation to load.</param>
/// <remarks>
/// All rotations we load are deltas to the current rotation the supplied joint has.
/// Whether the joint already has a rotation because some animation is playing,
/// or whether its rotation is zero, the result is always the same: just 'add' the supplied rotation to the existing rotation.
/// </remarks>
void loadJointRotation(LLVOAvatar* avatar, const FSPoserJoint* joint, LLVector3 rotation);
/// <summary>
/// Loads a joint position for the supplied joint on the supplied avatar.
/// </summary>
/// <param name="avatar">The avatar to load the position for.</param>
/// <param name="joint">The joint to load the position for.</param>
/// <param name="loadPositionAsDelta">Whether to the supplied position as a delta to the current position, or not.</param>
/// <param name="position">The Position to apply to the supplied joint.</param>
/// <remarks>
/// A position is saved as an absolute if the user created the pose from 'scratch' (at present the 'T-Pose').
/// Otherwise the position is saved as a delta.
/// The primary purpose is aesthetic: the numbers inside of a 'delta save file' have 'zeros everywhere'.
/// A delta-save thus accurately reflects what the user changed, and not what the original pose is.
/// 'Legacy' (pre save format version-4) poses we expect to load as absolutes.
/// </remarks>
void loadJointPosition(LLVOAvatar* avatar, const FSPoserJoint* joint, bool loadPositionAsDelta, LLVector3 position);
/// <summary>
/// Loads a joint scale for the supplied joint on the supplied avatar.
/// </summary>
/// <param name="avatar">The avatar to load the scale for.</param>
/// <param name="joint">The joint to load the scale for.</param>
/// <param name="loadScaleAsDelta">Whether to the supplied scale as a delta to the current scale, or not.</param>
/// <param name="scale">The scale to apply to the supplied joint.</param>
/// <remarks>
/// A scale is saved as an absolute if the user created the pose from 'scratch' (at present the 'T-Pose').
/// Otherwise the scale is saved as a delta.
/// The primary purpose is somewhat aesthetic: the numbers inside of a 'pose modification XML' has zeros everywhere.
/// A delta-save thus accurately reflects what the user changed, and not what the original creator of the modified pose specified.
/// </remarks>
void loadJointScale(LLVOAvatar* avatar, const FSPoserJoint* joint, bool loadScaleAsDelta, LLVector3 scale);
private:
/// <summary>
/// Translates a rotation vector from the UI to a Quaternion for the bone.
@ -519,6 +622,9 @@ public:
/// <returns>True if the avatar is safe to manipulate, otherwise false.</returns>
bool isAvatarSafeToUse(LLVOAvatar* avatar) const;
void setStartingJointRotation(LLVOAvatar* avatar, const FSPoserJoint* joint, const LLVector3& rotation,
E_BoneAxisTranslation translation, S32 negation);
/// <summary>
/// Maps the avatar's ID to the animation registered to them.
/// Thus we start/stop the same animation, and get/set the same rotations etc.

View File

@ -249,11 +249,40 @@ bool FSPosingMotion::currentlyPosingJoint(LLJoint* joint)
return (state & POSER_JOINT_STATE);
}
bool FSPosingMotion::allStartingRotationsAreZero() const
{
LLQuaternion zeroQuat;
for (auto poserJoint_iter = mJointPoses.begin(); poserJoint_iter != mJointPoses.end(); ++poserJoint_iter)
{
if (poserJoint_iter->jointName() == "mPelvis")
continue;
if (poserJoint_iter->isCollisionVolume())
continue;
LLQuaternion quat = poserJoint_iter->getBeginningRotation();
if (quat != zeroQuat)
return false;
}
return true;
}
void FSPosingMotion::setAllRotationsToZero()
{
LLQuaternion zeroQuat;
for (auto poserJoint_iter = mJointPoses.begin(); poserJoint_iter != mJointPoses.end(); ++poserJoint_iter)
{
if (poserJoint_iter->isCollisionVolume())
continue;
poserJoint_iter->setJointStartRotations(zeroQuat);
}
}
constexpr size_t MaximumUndoQueueLength = 20;
/// <summary>
/// The constant time interval, in seconds,
/// The constant time interval, in seconds, specifying whether an 'undo' value should be added.
/// </summary>
constexpr std::chrono::duration<double> UndoUpdateInterval = std::chrono::duration<double>(0.3);
@ -489,6 +518,8 @@ void FSPosingMotion::FSJointPose::revertCollisionVolume()
joint->setScale(mBeginningScale);
}
void FSPosingMotion::FSJointPose::setJointStartRotations(LLQuaternion quat) { mBeginningRotation = mTargetRotation = quat; }
FSPosingMotion::FSJointPose::FSJointPose(LLJoint* joint, bool isCollisionVolume)
{
mJointState = new LLJointState;

View File

@ -222,6 +222,11 @@ public:
/// </summary>
void revertCollisionVolume();
/// <summary>
/// Sets the beginning and target rotations to the supplied rotation.
/// </summary>
void setJointStartRotations(LLQuaternion quat);
/// <summary>
/// Gets the pointer to the jointstate for the joint this represents.
/// </summary>
@ -295,6 +300,17 @@ public:
/// <returns>The unique, per-session, per-character motion identity.</returns>
LLAssetID motionId() const { return mMotionID; }
/// <summary>
/// Gets whether all starting rotations are zero.
/// </summary>
/// <returns>True if all starting rotations are zero, otherwise false.</returns>
bool allStartingRotationsAreZero() const;
/// <summary>
/// Sets all of the non-Collision Volume rotations to zero.
/// </summary>
void setAllRotationsToZero();
private:
/// <summary>
/// The kind of joint state this animation is concerned with changing.

View File

@ -1457,14 +1457,8 @@ void LLPanelProfileSecondLife::fillAccountStatus(const LLAvatarData* avatar_data
//getChild<LLUICtrl>("badge_text")->setValue(getString("BadgeLinden"));
//childSetVisible("badge_layout", true);
//childSetVisible("partner_spacer_layout", false);
setBadge("Profile_Badge_Linden", "BadgeLinden");
setBadge("Profile_Badge_Linden", "BadgeLinden", BadgeLocation::bottom);
}
// <FS:Ansariel> Add Firestorm team badge
else if (FSData::getInstance()->getAgentFlags(avatar_data->avatar_id) != -1)
{
setBadge("Profile_Badge_Team", "BadgeTeam");
}
// </FS:Ansariel>
else if (avatar_data->born_on < sl_release)
{
// <FS:Ansariel> Fix LL UI/UX design accident
@ -1472,7 +1466,7 @@ void LLPanelProfileSecondLife::fillAccountStatus(const LLAvatarData* avatar_data
//getChild<LLUICtrl>("badge_text")->setValue(getString("BadgeBeta"));
//childSetVisible("badge_layout", true);
//childSetVisible("partner_spacer_layout", false);
setBadge("Profile_Badge_Beta", "BadgeBeta");
setBadge("Profile_Badge_Beta", "BadgeBeta", BadgeLocation::bottom);
}
else if (customer_lower == "beta_lifetime")
{
@ -1481,7 +1475,7 @@ void LLPanelProfileSecondLife::fillAccountStatus(const LLAvatarData* avatar_data
//getChild<LLUICtrl>("badge_text")->setValue(getString("BadgeBetaLifetime"));
//childSetVisible("badge_layout", true);
//childSetVisible("partner_spacer_layout", false);
setBadge("Profile_Badge_Beta_Lifetime", "BadgeBetaLifetime");
setBadge("Profile_Badge_Beta_Lifetime", "BadgeBetaLifetime", BadgeLocation::bottom);
}
else if (customer_lower == "lifetime")
{
@ -1490,7 +1484,7 @@ void LLPanelProfileSecondLife::fillAccountStatus(const LLAvatarData* avatar_data
//getChild<LLUICtrl>("badge_text")->setValue(getString("BadgeLifetime"));
//childSetVisible("badge_layout", true);
//childSetVisible("partner_spacer_layout", false);
setBadge("Profile_Badge_Lifetime", "BadgeLifetime");
setBadge("Profile_Badge_Lifetime", "BadgeLifetime", BadgeLocation::bottom);
}
else if (customer_lower == "secondlifetime_premium")
{
@ -1499,7 +1493,7 @@ void LLPanelProfileSecondLife::fillAccountStatus(const LLAvatarData* avatar_data
//getChild<LLUICtrl>("badge_text")->setValue(getString("BadgePremiumLifetime"));
//childSetVisible("badge_layout", true);
//childSetVisible("partner_spacer_layout", false);
setBadge("Profile_Badge_Premium_Lifetime", "BadgePremiumLifetime");
setBadge("Profile_Badge_Premium_Lifetime", "BadgePremiumLifetime", BadgeLocation::bottom);
}
else if (customer_lower == "secondlifetime_premium_plus")
{
@ -1508,7 +1502,7 @@ void LLPanelProfileSecondLife::fillAccountStatus(const LLAvatarData* avatar_data
//getChild<LLUICtrl>("badge_text")->setValue(getString("BadgePremiumPlusLifetime"));
//childSetVisible("badge_layout", true);
//childSetVisible("partner_spacer_layout", false);
setBadge("Profile_Badge_Pplus_Lifetime", "BadgePremiumPlusLifetime");
setBadge("Profile_Badge_Pplus_Lifetime", "BadgePremiumPlusLifetime", BadgeLocation::bottom);
}
else
{
@ -1516,14 +1510,22 @@ void LLPanelProfileSecondLife::fillAccountStatus(const LLAvatarData* avatar_data
// <FS:Ansariel> Fix LL UI/UX design accident
//childSetVisible("partner_spacer_layout", true);
}
// <FS:Ansariel> Add Firestorm team badge
if (FSData::getInstance()->getAgentFlags(avatar_data->avatar_id) != -1)
{
setBadge("Profile_Badge_Team", "BadgeTeam", BadgeLocation::top);
}
// </FS:Ansariel>
}
// <FS:Ansariel> Fix LL UI/UX design accident
void LLPanelProfileSecondLife::setBadge(std::string_view icon_name, std::string_view tooltip)
void LLPanelProfileSecondLife::setBadge(std::string_view icon_name, std::string_view tooltip, BadgeLocation location)
{
auto iconctrl = getChild<LLIconCtrl>("badge_icon");
auto iconctrl = getChild<LLIconCtrl>(location == BadgeLocation::top ? "top_badge_icon" : "bottom_badge_icon");
iconctrl->setValue(icon_name.data());
iconctrl->setToolTip(getString(tooltip.data()));
childSetVisible(location == BadgeLocation::top ? "top_badge_layout" : "bottom_badge_layout", true);
childSetVisible("badge_layout", true);
}
// </FS:Ansariel>

View File

@ -215,8 +215,13 @@ private:
void onCommitProfileImage(const LLUUID& id);
// <FS:Ansariel> Fix LL UI/UX design accident
enum class BadgeLocation
{
top,
bottom
};
void updateButtons();
void setBadge(std::string_view icon_name, std::string_view tooltip);
void setBadge(std::string_view icon_name, std::string_view tooltip, BadgeLocation location);
private:
typedef std::map<std::string, LLUUID> group_map_t;

View File

@ -3336,6 +3336,8 @@ void login_show()
//LLPanelLogin::show( gViewerWindow->getWindowRectScaled(), login_callback, NULL );
FSPanelLogin::show( gViewerWindow->getWindowRectScaled(), login_callback, NULL );
// </FS:Ansariel> [FS Login Panel]
LLNotificationsUtil::add("WhitelistReminder"); // <FS:PP> Whitelist reminder
}
// Callback for when login screen is closed. Option 0 = connect, option 1 = quit.

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="camera_floater" title="Controlli Fotocamera">
<floater.string name="rotate_tooltip">
Ruota la camera intorno all'inquadratura
</floater.string>
<floater.string name="zoom_tooltip">
Avvicina la camera nell'inquadratura
</floater.string>
<floater.string name="move_tooltip">
Muovi la camera su, giù, a sinistra e a destra
</floater.string>
<floater.string name="free_mode_title">
Vista Oggetto
</floater.string>
<string name="inactive_combo_text">
Usa Preset
</string>
<panel name="controls">
<panel name="zoom">
<joystick_rotate name="cam_rotate_stick" tool_tip="Orbita la camera intorno al centro focale"/>
<button name="roll_left" tool_tip="Inclina la camera a sinistra" />
<button name="roll_right" tool_tip="Inclina la camera a destra" />
<slider_bar name="zoom_slider" tool_tip="Zoom verso il centro focale"/>
<joystick_track name="cam_track_stick" tool_tip="Muovi la camera su, giù, a sinistra e a destra"/>
</panel>
</panel>
<panel name="buttons_panel">
<panel_camera_item name="front_view" tool_tip="Vista Frontale"/>
<panel_camera_item name="group_view" tool_tip="Vista Laterale"/>
<panel_camera_item name="rear_view" tool_tip="Vista Posteriore"/>
<panel_camera_item name="object_view" tool_tip="Vista Oggetto"/>
<panel_camera_item name="mouselook_view" tool_tip="Vista Mouselook"/>
<panel_camera_item name="reset_view" tool_tip="Ripristina vista"/>
</panel>
<combo_box name="preset_combo">
<combo_box.item label="Usa Preset" name="Use preset" />
</combo_box>
<button name="gear_btn" tool_tip="Preset Camera" />
<button label="Posizione..." name="camera_position_btn" />
<button label="Salva" name="save_btn" />
</floater>

View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="preview_texture">
<floater.string name="Title">
Texture: [NAME]
</floater.string>
<floater.string name="Copy">
Copia in inventario
</floater.string>
<floater.string name="DateTime">
[weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt], [hour24, datetime, slt]:[min, datetime, slt]:[second, datetime, slt] [timezone, datetime, slt]
</floater.string>
<floater.string name="UploaderDateTime"/>
<text name="desc txt">
Descrizione:
</text>
<text name="uploader_label">
Caricata da:
</text>
<button label="Profilo" name="openprofile"/>
<text name="upload_time_label">
Data:
</text>
<button name="copyuuid" label="Copia"/>
<panel name="dimensions_panel">
<text name="dimensions">
[WIDTH] x [HEIGHT] pixel
</text>
<text name="aspect_ratio">
Proporzioni
</text>
<combo_box name="combo_aspect_ratio" tool_tip="Visualizza anteprima con proporzioni fisse">
<combo_item name="Unconstrained">
Senza vincoli
</combo_item>
<combo_item name="1:1" tool_tip="Foto del gruppo o sezione delle informazioni aggiuntive sul profilo"/>
<combo_item name="4:3" tool_tip="Profilo [CURRENT_GRID]"/>
<combo_item name="10:7" tool_tip="Inserzioni, risultati di ricerca e segnaposto"/>
<combo_item name="3:2" tool_tip="Informazioni sul Terreno"/>
<combo_item name="16:9" tool_tip="Preferiti sul profilo"/>
</combo_box>
</panel>
<panel name="button_panel">
<button label="OK" name="Keep"/>
<button label="Elimina" name="Discard"/>
<flyout_button label="Salva..." name="save_tex_btn">
<flyout_button.item label="Salva TGA" name="save_item_tga"/>
<flyout_button.item label="Salva PNG" name="save_item_png"/>
</flyout_button>
</panel>
</floater>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_eyes_panel">
<panel name="avatar_eye_color_panel">
<texture_picker label="Iride" name="Iris" tool_tip="Clicca per scegliere una texture"/>
</panel>
<panel name="eyes_main_tab_holder">
<accordion name="eyes_main_accordion">
<accordion_tab name="eyes_main_tab" title="Occhi"/>
</accordion>
</panel>
</panel>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_gloves_panel">
<panel name="avatar_gloves_color_panel">
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="gloves_main_tab_holder">
<accordion name="gloves_main_accordion">
<accordion_tab name="gloves_main_tab" title="Guanti"/>
</accordion>
</panel>
</panel>

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_hair_panel">
<panel name="avatar_hair_color_panel">
<texture_picker label="Texture" name="Texture" tool_tip="Clicca per scegliere una texture"/>
</panel>
<accordion name="wearable_accordion">
<panel name="hair_color_tab_holder" title="Colore">
<accordion name="hair_color_accordion">
<accordion_tab name="hair_color_tab" title="Colore"/>
</accordion>
</panel>
<panel name="hair_style_tab_holder" title="Stile">
<accordion name="hair_style_accordion">
<accordion_tab name="hair_style_tab" title="Stile"/>
</accordion>
</panel>
<panel name="hair_eyebrows_tab_holder" title="Sopracciglia">
<accordion name="hair_eyebrows_accordion">
<accordion_tab name="hair_eyebrows_tab" title="Sopracciglia"/>
</accordion>
</panel>
<panel name="hair_facial_tab_holder" title="Viso">
<text name="hair_facial_not_available">
Le opzioni del viso sono disponibili
solo per gli avatar maschili.
</text>
<accordion name="hair_facial_accordion">
<accordion_tab name="hair_facial_tab" title="Viso"/>
</accordion>
</panel>
</accordion>
</panel>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_jacket_panel">
<panel name="avatar_jacket_color_panel">
<texture_picker label="Parte sopra" name="Upper Fabric" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Parte sotto" name="Lower Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="jacket_main_tab_holder">
<accordion name="jacket_main_accordion">
<accordion_tab name="jacket_main_tab" title="Giacca"/>
</accordion>
</panel>
</panel>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_pants_panel">
<panel name="avatar_pants_color_panel">
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="pants_main_tab_holder">
<accordion name="pants_main_accordion">
<accordion_tab name="pants_main_tab" title="Pantaloni"/>
</accordion>
</panel>
</panel>

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_physics_panel">
<tab_container name="wearable_accordion">
<panel name="physics_breast_updown_tab_holder" title="Rimbalzo seno">
<text name="physics_breast_updown_not_available">
Il rimbalzo del seno è disponibile solo
per gli avatar femminili.
</text>
</panel>
<panel name="physics_breast_inout_tab_holder" title="Scollatura seno">
<text name="physics_breast_inout_not_available">
La scollatura del seno è disponibile solo
per gli avatar femminili.
</text>
</panel>
<panel name="physics_breast_leftright_tab_holder" title="Oscillazione seno">
<text name="physics_breast_leftright_not_available">
L'oscillazione del seno è disponibile solo
per gli avatar femminili.
</text>
</panel>
<panel name="physics_belly_tab_holder" title="Rimbalzo pancia"/>
<panel name="physics_butt_tab_holder" title="Rimbalzo natiche"/>
<panel name="physics_butt_leftright_tab_holder" title="Oscillaz. natiche"/>
<panel name="physics_advanced_tab_holder" title="Param. avanzati"/>
</tab_container>
</panel>

View File

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_shape_panel">
<string name="meters">
Metri
</string>
<string name="feet">
Piedi
</string>
<string name="height">
Altezza:
</string>
<tab_container name="wearable_accordion">
<panel name="shape_body_tab_holder" title="Corpo">
<accordion name="shape_body_accordion">
<accordion_tab name="shape_body_tab" title="Corpo"/>
</accordion>
</panel>
<panel name="shape_head_tab_holder" title="Testa">
<accordion name="shape_head_accordion">
<accordion_tab name="shape_head_tab" title="Testa"/>
</accordion>
</panel>
<panel name="shape_eyes_tab_holder" title="Occhi">
<accordion name="shape_eyes_accordion">
<accordion_tab name="shape_eyes_tab" title="Occhi"/>
</accordion>
</panel>
<panel name="shape_ears_tab_holder" title="Orecchie">
<accordion name="shape_ears_accordion">
<accordion_tab name="shape_ears_tab" title="Orecchie"/>
</accordion>
</panel>
<panel name="shape_nose_tab_holder" title="Naso">
<accordion name="shape_nose_accordion">
<accordion_tab name="shape_nose_tab" title="Naso"/>
</accordion>
</panel>
<panel name="shape_mouth_tab_holder" title="Bocca">
<accordion name="shape_mouth_accordion">
<accordion_tab name="shape_mouth_tab" title="Bocca"/>
</accordion>
</panel>
<panel name="shape_chin_tab_holder" title="Mento">
<accordion name="shape_chin_accordion">
<accordion_tab name="shape_chin_tab" title="Mento"/>
</accordion>
</panel>
<panel name="shape_torso_tab_holder" title="Torso">
<accordion name="shape_torso_accordion">
<accordion_tab name="shape_torso_tab" title="Torso"/>
</accordion>
</panel>
<panel name="shape_legs_tab_holder" title="Gambe">
<accordion name="shape_legs_accordion">
<accordion_tab name="shape_legs_tab" title="Gambe"/>
</accordion>
</panel>
</tab_container>
</panel>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_shirt_panel">
<panel name="avatar_shirt_color_panel">
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="shirt_main_tab_holder">
<accordion name="shirt_main_accordion">
<accordion_tab name="shirt_main_tab" title="Camicia"/>
</accordion>
</panel>
</panel>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_shoes_panel">
<panel name="avatar_shoes_color_panel">
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="shoes_main_tab_holder">
<accordion name="shoes_main_accordion">
<accordion_tab name="shoes_main_tab" title="Scarpe"/>
</accordion>
</panel>
</panel>

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_skin_panel">
<panel name="avatar_skin_color_panel">
<texture_picker label="Testa" name="Head" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Parte sopra" name="Upper Body" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Parte sotto" name="Lower Body" tool_tip="Clicca per scegliere una texture"/>
</panel>
<tab_container name="wearable_accordion">
<panel name="skin_color_tab_holder" title="Colore pelle">
<accordion name="skin_color_accordion">
<accordion_tab name="skin_color_tab" title="Colore pelle"/>
</accordion>
</panel>
<panel name="skin_face_tab_holder" title="Dettagli viso">
<accordion name="skin_face_accordion">
<accordion_tab name="skin_face_tab" title="Dettagli viso"/>
</accordion>
</panel>
<panel name="skin_makeup_holder" title="Trucco">
<accordion name="skin_makeup_accordion">
<accordion_tab name="skin_makeup_tab" title="Trucco"/>
</accordion>
</panel>
<panel name="skin_body_holder" title="Dettagli corpo">
<accordion name="skin_body_accordion">
<accordion_tab name="skin_body_tab" title="Dettagli corpo"/>
</accordion>
</panel>
</tab_container>
</panel>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_skirt_panel">
<panel name="avatar_skirt_color_panel">
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="skirt_main_tab_holder">
<accordion name="skirt_main_accordion">
<accordion_tab name="skirt_main_tab" title="Gonna"/>
</accordion>
</panel>
</panel>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_socks_panel">
<panel name="avatar_socks_color_panel">
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="socks_main_tab_holder">
<accordion name="socks_main_accordion">
<accordion_tab name="socks_main_tab" title="Calze"/>
</accordion>
</panel>
</panel>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_underpants_panel">
<panel name="avatar_underpants_color_panel">
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="underpants_main_tab_holder">
<accordion name="underpants_main_accordion">
<accordion_tab name="underpants_main_tab" title="Slip"/>
</accordion>
</panel>
</panel>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_undershirt_panel">
<panel name="avatar_undershirt_color_panel">
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="undershirt_main_tab_holder">
<accordion name="undershirt_main_accordion">
<accordion_tab name="undershirt_main_tab" title="Canottiera"/>
</accordion>
</panel>
</panel>

View File

@ -0,0 +1,150 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="main inventory panel">
<panel.string name="ItemcountFetching">
Recupero di [ITEM_COUNT] elementi... [FILTER]
</panel.string>
<panel.string name="ItemcountCompleted">
[ITEM_COUNT] elementi [FILTER]
</panel.string>
<panel.string name="ItemcountUnknown">
Recuperati [ITEM_COUNT] elementi [FILTER]
</panel.string>
<panel.string name="inventory_title">
Inventario
</panel.string>
<menu_bar name="inventory_menu_bar">
<menu label="Inventario" name="inventory_inventory_menu">
<menu_item_call name="inventory_open" label="Apri" />
<menu_item_call name="inventory_share" label="Condividi" />
<menu_item_call name="replace_links" label="Sostituisci link" />
<menu_item_call name="inventory_new_window" label="Nuova finestra" />
<menu_item_check name="Protected Folders" label="Cartelle Protette" />
<menu_item_check label="Impostazioni Inventario..." name="inv_settings" />
<menu_item_check label="Visualizzazione Elenco" name="list_view" />
<menu_item_check label="Visualizzazione Galleria" name="gallery_view" />
<menu_item_check label="Visualizzazione Combinata" name="combination_view" />
<menu_item_check name="add_inv_toggle" label="Aggiungi oggetto con il doppio click" />
<menu_item_check name="add_invclothing_toggle" label="Aggiungi vestito con il doppio click" />
<menu_item_call name="inventory_show_filters" label="Mostra filtri" />
<menu_item_call name="inventory_reset_filters" label="Ripristina filtri" />
<menu_item_call name="inventory_close_all_folders" label="Chiudi tutte le cartelle" />
<menu_item_call name="inventory_empty_trash" label="Svuota cestino" />
</menu>
<menu label="Crea" name="inventory_create_menu">
<menu_item_call name="inventory_new_folder" label="Nuova cartella" />
<menu_item_call name="inventory_new_script" label="Nuovo script" />
<menu_item_call name="inventory_new_note" label="Nuova annotazione" />
<menu_item_call name="inventory_new_gesture" label="Nuovo gesto" />
<menu_item_call name="inventory_new_material" label="Nuovo materiale" />
<menu name="inventory_new_clothes" label="Nuovo indumento">
<menu_item_call name="inventory_new_shirt" label="Nuova camicia" />
<menu_item_call name="inventory_new_pants" label="Nuovi pantaloni" />
<menu_item_call name="inventory_new_shoes" label="Nuove scarpe" />
<menu_item_call name="inventory_new_socks" label="Nuove calze" />
<menu_item_call name="inventory_new_jacket" label="Nuova giacca" />
<menu_item_call name="inventory_new_skirt" label="Nuova gonna" />
<menu_item_call name="inventory_new_gloves" label="Nuovi guanti" />
<menu_item_call name="inventory_new_undershirt" label="Nuova canottiera" />
<menu_item_call name="inventory_new_underpants" label="Nuovo slip" />
<menu_item_call name="inventory_new_tattoo" label="Nuovo tatuaggio" />
<menu_item_call name="inventory_new_universal" label="Nuovo universale" />
<menu_item_call name="inventory_new_alpha" label="Nuovo alfa" />
<menu_item_call name="inventory_new_physics" label="Nuova fisica" />
</menu>
<menu name="inventory_new_body_parts" label="Nuova parte del corpo">
<menu_item_call name="inventory_new_shape" label="Nuovo corpo" />
<menu_item_call name="inventory_new_skin" label="Nuova pelle" />
<menu_item_call name="inventory_new_hair" label="Nuovi capelli" />
<menu_item_call name="inventory_new_eyes" label="Nuovi occhi" />
</menu>
<menu label="Nuovo ambiente" name="New Settings">
<menu_item_call label="Nuovo cielo" name="New Sky" />
<menu_item_call label="Nuova acqua" name="New Water" />
<menu_item_call label="Nuovo ciclo giornata" name="New Day Cycle" />
</menu>
</menu>
<menu label="Ordina" name="inventory_sort_menu">
<menu_item_check name="inventory_sort_by_name" label="Per nome" />
<menu_item_check name="inventory_sort_by_date" label="Per data" />
<menu_item_check name="inventory_sort_folders_by_name" label="Cartelle sempre per nome" />
<menu_item_check name="inventory_sort_system_on_top" label="Cartelle di sistema in alto" />
</menu>
<menu label="Cerca" name="inventory_search_menu">
<menu_item_check name="inventory_search_by_name" label="Per nome" />
<menu_item_check name="inventory_search_by_creator" label="Per creatore" />
<menu_item_check name="inventory_search_by_description" label="Per descrizione" />
<menu_item_check name="inventory_search_by_uuid" label="Per UUID" />
<menu_item_check name="inventory_search_by_all" label="Per tutti" />
<menu_item_check name="inventory_filter_show_links" label="Mostra i link" />
<menu_item_check name="inventory_filter_only_links" label="Mostra solo i link" />
<menu_item_check name="inventory_filter_hide_links" label="Nascondi i link" />
<menu_item_check name="inventory_filter_only_modify" label="Solo modificabili" />
<menu_item_check name="inventory_filter_only_copy" label="Solo copiabili" />
<menu_item_check name="inventory_filter_only_transfer" label="Solo trasferibili" />
<menu_item_check name="inventory_filter_coalesced_objects_only" label="Solo multi-oggetto" />
</menu>
</menu_bar>
<layout_stack name="top_stack">
<layout_panel name="nav_buttons">
<button name="back_btn" tool_tip="Indietro" />
<button name="forward_btn" tool_tip="Avanti" />
<button name="up_btn" tool_tip="Sali di un livello" />
</layout_panel>
<layout_panel name="filter_panel">
<filter_editor label="Filtro" name="inventory search editor" tool_tip="Scrivi una o più parole da cercare, separate dal carattere &apos;+&apos;" />
</layout_panel>
</layout_stack>
<layout_stack name="ctrl_stack">
<layout_panel name="filter_ctrls">
<text name="filter_label" value="Filtro:" />
<combo_box name="filter_combo_box">
<combo_box.item value="filter_type_all" label="Tutti" />
<combo_box.item value="filter_type_animations" label="Animazioni" />
<combo_box.item value="filter_type_calling_cards" label="Biglietti da visita" />
<combo_box.item value="filter_type_clothing" label="Vestiti / Parti del corpo" />
<combo_box.item value="filter_type_gestures" label="Gesti" />
<combo_box.item value="filter_type_landmarks" label="Segnaposto" />
<combo_box.item value="filter_type_notecards" label="Annotazioni" />
<combo_box.item value="filter_type_objects" label="Oggetti" />
<combo_box.item value="filter_type_scripts" label="Script" />
<combo_box.item value="filter_type_sounds" label="Suoni" />
<combo_box.item value="filter_type_textures" label="Texture" />
<combo_box.item value="filter_type_snapshots" label="Fotografie" />
<combo_box.item value="filter_type_meshes" label="Modelli mesh" />
<combo_box.item value="filter_type_materials" label="Materiali" />
<combo_box.item value="filter_type_settings" label="Ambienti" />
<combo_box.item value="filter_type_custom" label="Personalizzato..." />
</combo_box>
<menu_button tool_tip="Mostra opzioni di visibilità per la ricerca" name="options_visibility_btn" />
</layout_panel>
</layout_stack>
<panel name="default_inventory_panel">
<tab_container name="inventory filter tabs">
<inventory_panel label="Tutti gli elementi" name="All Items"/>
<recent_inventory_panel label="Elementi recenti" name="Recent Items"/>
<worn_inventory_panel label="Indossati" name="Worn Items"/>
</tab_container>
</panel>
<panel name="bottom_panel">
<panel name="options_gear_btn_panel">
<menu_button name="options_gear_btn" tool_tip="Mostra opzioni aggiuntive"/>
</panel>
<panel name="add_btn_panel">
<button name="add_btn" tool_tip="Aggiungi nuovo elemento"/>
</panel>
<panel name="new_inventory_panel">
<button name="new_inv_btn" tool_tip="Apri una nuova finestra Inventario"/>
</panel>
<panel name="view_mode_panel">
<button name="view_mode_btn" tool_tip="Cambia modalità di visualizzazione" />
</panel>
<panel name="dummy_panel">
<text name="ItemcountText" tool_tip="[ITEMS] oggetti, [CATEGORIES] cartelle">
Elementi
</text>
</panel>
<panel name="trash_btn_panel">
<dnd_button name="trash_btn" tool_tip="Elimina elemento selezionato"/>
</panel>
</panel>
</panel>

View File

@ -13,6 +13,7 @@
<string name="header_mTail1">Schwanz</string>
<string name="header_mHindLimbsRoot">Hintere Glieder</string>
<string name="header_mWingsRoot">Flügel</string>
<string name="header_mFaceEar1Left">Ohren/Nase</string>
<!-- These are names to appear on the UI for the joints/bones/thingos -->
<string name="title_mPelvis">Ganzer Avatar</string>
@ -33,7 +34,7 @@
<string name="title_mFaceEyeLidUpperLeft">Linkes oberes Augenlid</string>
<string name="title_mFaceEyeLidLowerLeft">Linkes unteres Augenlid</string>
<string name="title_mFaceEyeLidUpperRight">Rechtes oberes Augenlid</string>
<string name="title_mFaceEyeLidLowerRight">Linkes unteres Augenlid</string>
<string name="title_mFaceEyeLidLowerRight">Rechtes unteres Augenlid</string>
<string name="title_mFaceEar1Left">Linkes oberes Ohr</string>
<string name="title_mFaceEar2Left">Linkes unteres Ohr</string>
<string name="title_mFaceEar1Right">Rechtes oberes Ohr</string>
@ -113,12 +114,12 @@
<string name="title_mWing3Right">Rechts 3</string>
<string name="title_mWing4Right">Rechts 4</string>
<string name="title_mWing4FanRight">Rechter Fächer</string>
<string name="title_mHipRight">Rechte Hüfte</string>
<string name="title_mHipRight">Rechtes Bein</string>
<string name="title_mKneeRight">Rechtes Knie</string>
<string name="title_mAnkleRight">Rechter Knöchel</string>
<string name="title_mFootRight">Rechter Fuß</string>
<string name="title_mToeRight">Rechter Zeh</string>
<string name="title_mHipLeft">Linke Hüfte</string>
<string name="title_mHipLeft">Linkes Bein</string>
<string name="title_mKneeLeft">Linkes Knie</string>
<string name="title_mAnkleLeft">Linker Knöchel</string>
<string name="title_mFootLeft">Linker Fuß</string>
@ -143,15 +144,14 @@
<string name="title_BELLY">Bauch</string>
<string name="title_LEFT_PEC">Linke Brustmuskeln</string>
<string name="title_RIGHT_PEC">Rechte Brustmuskeln</string>
<string name="title_mFaceEar1Left">Linke Basis</string>
<string name="title_mFaceEar1Right">Rechte Basis</string>
<string name="title_mFaceEar2Left">Linke Spitze</string>
<string name="title_mFaceEar2Right">Rechte Spitze</string>
<!-- The layout is a vertical stack of 3 rows, and each row a horizontal stack of panels -->
<layout_stack name="poser_stack">
<layout_panel name="regular_controls_layout">
<panel name="avatarSelection_panel">
<scroll_list tool_tip="Avatar oder Animesh zum Animieren auswählen." name="avatarSelection_scroll">
<scroll_list.columns label="Auswahl..." name="name"/>
</scroll_list>
</panel>
<panel name="joints_parent_panel">
<tab_container name="joints_tabs">
<panel title="Beweg." name="positionRotation_panel">
@ -185,6 +185,11 @@
</scroll_list>
</panel>
<tab_container title="Hände" name="hands_tabs">
<panel title="Justieren" name="hands_joints_panel">
<scroll_list name="hand_joints_scroll">
<scroll_list.columns label="Körperteil" name="joint"/>
</scroll_list>
</panel>
<panel title="Vorauswahl" name="hands_presets_panel">
<scroll_list name="hand_presets_scroll">
<scroll_list.columns label="Name Vorauswahl" name="name"/>
@ -192,11 +197,6 @@
<button label="Links setzen" name="button_loadHandPoseLeft" tool_tip="Doppelklicken um linke Hand auf ausgewählte Vorauswahl zu setzen"/>
<button label="Rechts setzen" name="button_loadHandPoseRight" tool_tip="Doppelklicken um rechte Hand auf ausgewählte Vorauswahl zu setzen"/>
</panel>
<panel title="Justieren" name="hands_joints_panel">
<scroll_list name="hand_joints_scroll">
<scroll_list.columns label="Körperteil" name="joint"/>
</scroll_list>
</panel>
</tab_container>
<panel title="Sonst." name="misc_joints_panel">
<scroll_list name="misc_joints_scroll">
@ -208,6 +208,21 @@
<scroll_list.columns label="Physik" name="joint"/>
</scroll_list>
</panel>
<panel title="Modell" name="avatarSelection_panel">
<scroll_list tool_tip="Avatar oder Animesh zum Animieren auswählen." name="avatarSelection_scroll">
<scroll_list.columns label="Auswahl..." name="name"/>
</scroll_list>
<button name="refresh_avatars" tool_tip="Liste der Avatar und Animeshe aktualisieren"/>
<button label="Posieren starten" label_selected="Posieren stoppen" tool_tip="Posieren des ausgewählten Avatar oder Animesh starten sofern berechtigt" name="start_stop_posing_button"/>
<button label="Auf T-Pose setzen" tool_tip="Doppelklicken, um den ausgewählten Avatar auf eine T-Pose zu setzen" name="set_t_pose_button"/>
</panel>
<panel title="Einst." name="settings_panel">
<text name="trackpad_sensitivity_label">
Steuerkugel-Sensitivität:
</text>
<slider name="trackpad_sensitivity_slider" tool_tip="Stellt die Sensitivität der Steuerkugel ein"/>
<check_box name="stop_posing_on_close_checkbox" label="Beim Schließen stoppen" tool_tip="Die Pose beim Schließen nicht zu stoppen kann hilfreich sein, um die bisher getätigte Arbeit nicht zu verlieren."/>
</panel>
</tab_container>
</panel>
<panel name="trackball_panel">
@ -242,17 +257,15 @@
</layout_panel>
<layout_panel name="button_controls_layout">
<panel name="button_controls_panel">
<button name="refresh_avatars" tool_tip="Liste der Avatar und Animeshe aktualisieren"/>
<button label="Posieren starten" tool_tip="Posieren des ausgewählten Avatar oder Animesh starten sofern berechtigt" name="start_stop_posing_button"/>
<button name="toggleAdvancedPanel" tool_tip="Erweiterte Einstellungen aktivieren/deaktivieren"/>
<button name="FlipPose_avatar" tool_tip="Komplette Pose links/rechts umschalten"/>
<button name="FlipJoint_avatar" tool_tip="Ausgewählte Körperteile links/rechts spiegeln"/>
<button label="Ausw." name="button_RecaptureParts" tool_tip="Falls ausgewählte Körperteile nicht posiert werden, werden die Werte der aktuellen Pose erfasst."/>
<button label="Ausw." name="button_RecaptureParts" tool_tip="Falls ausgewählte Körperteile nicht posiert werden, werden die Werte der aktuellen Pose erfasst. Diese Schaltfläche ist deaktiviert, wenn aus einer T-Pose heraus gestartet wird."/>
<button label="Teile an/aus" name="toggle_PosingSelectedBones" tool_tip="Schaltet Poser für ausgewählte Körperteile an bzw. aus. Falls aus, werden die entsprechenden Körperteile normal animiert (z.B. via AO, Poseball usw.)."/>
<button label="Eigene Posen" name="toggleLoadSavePanel" tool_tip="Laden, speichern under verwalten der eigenen erstellten Posen"/>
<button tool_tip="Posen-Verzeichnis verwalten" name="open_poseDir_button"/>
<menu_button label="Pose laden" tool_tip="Lädt die aktuell ausgewählte Pose." name="load_poses_button"/>
<button label="Pose speich." tool_tip="Speichert die aktuelle Pose." name="save_poses_button"/>
<button label="Diff. speich." tool_tip="Speichert die Differenz zu einer bestehenden Pose. Aus einer T-Pose heraus starten, um ein neues Werk zu beginnen." name="save_poses_button"/>
</panel>
</layout_panel>
<layout_panel name="advanced_controls_layout">
@ -264,21 +277,18 @@
<slider label="Position Z:" name="Advanced_Position_Z"/>
<button label="Positionsänd. zurücks." name="undo_position_change" tool_tip="Macht die letzte Positionsänderung rückgängig"/>
<button label="Pos. wiederh." name="redo_position_change" tool_tip="Stellt die letzte Positionsänderung wieder her"/>
<button label="Pos. zurücks." name="undo_position_change" tool_tip="Doppelklicken, um Position auf Originalwert zurückzusetzen"/>
<button label="Pos. zurücks." name="reset_positions" tool_tip="Doppelklicken, um Position auf Originalwert zurückzusetzen"/>
</panel>
<panel title="Körperteil-Skalierung" name="scale_panel">
<slider label="Skalierung X:" name="Advanced_Scale_X"/>
<slider label="Skalierung Y:" name="Advanced_Scale_Y"/>
<slider label="Skalierung Z:" name="Advanced_Scale_Z"/>
<button label="Skal.-Änd. zurücks." name="undo_position_change" tool_tip="Macht die letzte Änderung der Skalierung rückgängig"/>
<button label="Skal.-Änd. zurücks." name="undo_scale_change" tool_tip="Macht die letzte Änderung der Skalierung rückgängig"/>
<button label="Skal. wiederh." name="redo_scale_change" tool_tip="Stellt die letzte Änderung der Skalierung wieder her"/>
<button label="Skal. zurücks." name="undo_scale_change" tool_tip="Doppelklicken, um Skalierung auf Originalwert zurückzusetzen"/>
<button label="Skal. zurücks." name="reset_scales" tool_tip="Doppelklicken, um Skalierung auf Originalwert zurückzusetzen"/>
</panel>
</tab_container>
</panel>
<panel name="save_file_options">
<slider label="Sensitivität" name="trackpad_sensitivity_slider" tool_tip="Passt die Sensitivität der Steuerkugel an"/>
</panel>
</layout_panel>
</layout_stack>
</floater>

View File

@ -71,6 +71,7 @@
<menu_item_call label="360° Foto" name="Capture 360"/>
<menu_item_call label="Money-Tracker" name="money_tracker"/>
<menu_item_call label="Pose-Stand..." name="pose_stand"/>
<menu_item_check label="Poser" name="Poser"/>
<menu_item_call label="Einstellungen" name="Preferences"/>
<menu_item_call label="Symbolleistenschaltflächen" name="Toolbar Buttons"/>
<menu_item_check label="HUD-Anhänge anzeigen" name="Show HUD Attachments"/>
@ -113,7 +114,6 @@
<menu_item_call label="Animationen synchronisieren" name="Resync Animations"/>
<menu_item_call label="Avatare in der Nähe" name="Active Speakers"/>
<menu_item_check label="Radar" name="Radar"/>
<menu_item_check label="Poser" name="Poser"/>
<menu_item_call label="Teleport-Liste" name="Teleport History"/>
<menu_item_check label="Orte" name="Places"/>
<menu_item_call label="Ziele" name="Destinations"/>

View File

@ -5856,4 +5856,14 @@ URL auf Standard zurücksetzen?
<notification name="ImageEmptyAlphaLayer" label="Textur enthält leeren Alpha-Kanal">
Die Textur, die Sie hochladen möchten, enthält einen leeren oder fast-leeren Alpha-Kanal (Transparenz-Informationen). Dies ist fast immer nicht gewünscht und der Kanel sollte daher entfernt werden. Das Hinzufügen eines Alpha-Kanals kann zu Textur-Flackern bei übereinanderliegenden Texturen bei unterschiedlichem Kamerawinkel führen. Zudem verringert sich dadurch die Darstellungsgeschwindigkeit. Sofern diese Textur nicht unbedingt einen (fast-)leeren Alpgha-Kanal benötigt, sollte dieser möglichst entfernt werden.
</notification>
<notification name="WhitelistReminder">
Bitte whitelisten Sie [APP_NAME], um die Leistung zu verbessern.
Einige Antivirus-Programme können fälschlicherweise Teile von [APP_NAME] blockieren, die Leistung verschlechtern oder zu Fehlfunktionen von Featuren führen. Um entsprechende Probleme zu vermeiden, raten wir dringend [APP_NAME] zur Whitelist (oder auch Ausnahmeliste) Ihres Antivirus-Programms hinzuzufügen. Hierdurch wird sichergestellt, dass der Viewer korrekt funktioniert.
Detaillierte Instruktionen zum whitelisten von [APP_NAME] - inklusive einer Liste von Dateien und Verzeichnissen - finden Sie in unserem Ratgeber:
https://wiki.firestormviewer.org/antivirus_whitelisting
<usetemplate ignoretext="Whitelist-Erinnerung beim Start anzeigen" name="okignore" yestext="OK"/>
</notification>
</notifications>

File diff suppressed because it is too large Load Diff

View File

@ -339,6 +339,7 @@
<pie_slice.on_enable
function="Object.EnableReturn" />
</pie_slice>
<pie_separator/>
<pie_menu
label="More &gt;"

View File

@ -601,6 +601,20 @@
parameter="fs_when_not_sitting" />
</menu_item_call>
<!-- FS:AR FIRE-30873 -->
<menu_item_check
label="Poser"
name="Poser"
use_mac_ctrl="true">
<menu_item_check.on_check
function="Floater.Visible"
parameter="fs_poser" />
<menu_item_check.on_click
function="Floater.Toggle"
parameter="fs_poser" />
</menu_item_check>
<!-- /FS:AR FIRE-30873 -->
<menu_item_separator/>
<menu_item_call
@ -941,20 +955,6 @@
parameter="nearby_panel" />
</menu_item_call>
<!-- FS:AR FIRE-30873 -->
<menu_item_check
label="Poser"
name="Poser"
use_mac_ctrl="true">
<menu_item_check.on_check
function="Floater.Visible"
parameter="fs_poser" />
<menu_item_check.on_click
function="Floater.Toggle"
parameter="fs_poser" />
</menu_item_check>
<!-- /FS:AR FIRE-30873 -->
<menu_item_check
label="Radar"
name="Radar">

View File

@ -14663,4 +14663,21 @@ Camera reset might be inhibited by the following objects:
</notification>
<!-- </FS:Zi> -->
<notification
icon="notifytip.tga"
name="WhitelistReminder"
type="alertmodal">
To improve [APP_NAME]'s performance, please whitelist it.
Some antivirus programs may mistakenly block parts of [APP_NAME], slowing down its performance and causing some features to malfunction. To prevent these issues, we strongly recommend adding [APP_NAME] to your antivirus program's whitelist (or exclusion list). This will ensure the viewer runs smoothly.
For detailed instructions on how to whitelist [APP_NAME] - including a list of files and folders to exclude - please visit our guide:
https://wiki.firestormviewer.org/antivirus_whitelisting
<usetemplate
ignoretext="Show whitelist reminder on launch"
name="okignore"
yestext="OK"/>
</notification>
</notifications>

View File

@ -478,16 +478,55 @@
visible="false"
auto_resize="false"
user_resize="false">
<icon
name="badge_icon"
image_name="Profile_Badge_Linden"
tool_tip="Linden Lab Employee"
<layout_stack
name="badge_stacker"
animate="false"
top="0"
left="0"
width="22"
height="44"
follows="top|left|right"
layout="topleft"
follows="left|top"
top="4"
left="4"
height="18"
width="18"/>
orientation="vertical">
<layout_panel
name="top_badge_layout"
follows="all"
layout="topleft"
width="22"
visible="false"
auto_resize="true"
user_resize="false">
<icon
name="top_badge_icon"
image_name="Profile_Badge_Linden"
tool_tip="Linden Lab Employee"
layout="topleft"
follows="left|top"
top="2"
left="4"
height="18"
width="18"/>
</layout_panel>
<layout_panel
name="bottom_badge_layout"
follows="all"
layout="topleft"
width="22"
visible="false"
auto_resize="true"
user_resize="false">
<icon
name="bottom_badge_icon"
image_name="Profile_Badge_Linden"
tool_tip="Linden Lab Employee"
layout="topleft"
follows="left|top"
top="2"
left="4"
height="18"
width="18"/>
</layout_panel>
</layout_stack>
</layout_panel>
<layout_panel
name="accountinfo_layout"

View File

@ -4,7 +4,6 @@
width="150"
height="150"
pinch_mode="false"
user_resize="false"
image_sphere="VirtualTrackball_Sphere"
image_moon_back="VirtualTrackball_Moon_Back"
image_moon_front="VirtualTrackball_Moon_Front"

View File

@ -1,49 +1,62 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="avatar_texture_debug" title="Texture dell&apos;avatar">
<floater name="avatar_texture_debug" title="Texture Avatar">
<floater.string name="InvalidAvatar">
Avatar non valido
</floater.string>
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
<text name="label">
Preparazione delle
texture
Texture
bake
</text>
<text name="composite_label">
Texture
composte
composite
</text>
<button label="Elenca gli ID sulla console" label_selected="Dump" name="Dump"/>
<button label="Dump degli ID in console" label_selected="Dump" name="Dump"/>
<panel name="scroll_content_panel">
<texture_picker label="Capigliature" name="hair-baked"/>
<texture_picker label="Capigliature" name="hair_grain"/>
<texture_picker label="Capelli" name="hair-baked"/>
<texture_picker label="Capelli" name="hair_grain"/>
<texture_picker label="Alfa capelli" name="hair_alpha"/>
<texture_picker label="Tatuaggio capelli" name="hair_tattoo" />
<texture_picker label="Testa" name="head-baked"/>
<texture_picker label="Trucco" name="head_bodypaint"/>
<texture_picker label="Alfa testa" name="head_alpha"/>
<texture_picker label="Tatuaggio testa" name="head_tattoo"/>
<texture_picker label="Universale testa" name="head_universal_tattoo" />
<texture_picker label="Occhi" name="eyes-baked"/>
<texture_picker label="Occhio" name="eyes_iris"/>
<texture_picker label="Alfa occhi" name="eyes_alpha"/>
<texture_picker label="Parte superiore del corpo" name="upper-baked"/>
<texture_picker label="Trucco parte superiore del corpo" name="upper_bodypaint"/>
<texture_picker label="Tatuaggio occhi" name="eyes_tattoo" />
<texture_picker label="Corpo sopra" name="upper-baked"/>
<texture_picker label="Bodypaint sopra" name="upper_bodypaint"/>
<texture_picker label="Canottiera" name="upper_undershirt"/>
<texture_picker label="Guanti" name="upper_gloves"/>
<texture_picker label="Camicia" name="upper_shirt"/>
<texture_picker label="Parte superiore della giacca" name="upper_jacket"/>
<texture_picker label="Alfa superiore" name="upper_alpha"/>
<texture_picker label="Tatuaggio superiore" name="upper_tattoo"/>
<texture_picker label="Parte inferiore del corpo" name="lower-baked"/>
<texture_picker label="Trucco parte inferiore del corpo" name="lower_bodypaint"/>
<texture_picker label="Giacca sopra" name="upper_jacket"/>
<texture_picker label="Alfa sopra" name="upper_alpha"/>
<texture_picker label="Tatuaggio sopra" name="upper_tattoo"/>
<texture_picker label="Universale sopra" name="upper_universal_tattoo" />
<texture_picker label="Corpo sotto" name="lower-baked"/>
<texture_picker label="Bodypaint sotto" name="lower_bodypaint"/>
<texture_picker label="Slip" name="lower_underpants"/>
<texture_picker label="Calzini" name="lower_socks"/>
<texture_picker label="Calze" name="lower_socks"/>
<texture_picker label="Scarpe" name="lower_shoes"/>
<texture_picker label="Pantaloni" name="lower_pants"/>
<texture_picker label="Giacca" name="lower_jacket"/>
<texture_picker label="Alfa inferiore" name="lower_alpha"/>
<texture_picker label="Tatuaggio inferiore" name="lower_tattoo"/>
<texture_picker label="Giacca sotto" name="lower_jacket"/>
<texture_picker label="Alfa sotto" name="lower_alpha"/>
<texture_picker label="Tatuaggio sotto" name="lower_tattoo"/>
<texture_picker label="Universale sotto" name="lower_universal_tattoo" />
<texture_picker label="Gonna" name="skirt-baked"/>
<texture_picker label="Gonna" name="skirt"/>
<texture_picker label="Tatuaggio gonna" name="skirt_tattoo" />
<texture_picker label="Braccio sinistro" name="leftarm-baked" />
<texture_picker label="Tatua. braccio sx" name="leftarm_tattoo" />
<texture_picker label="Gamba sinistra" name="leftleg-baked" />
<texture_picker label="Tatua. gamba sx" name="leftleg_tattoo" />
<texture_picker label="Tatuaggio AUX 1" name="aux1_tattoo" />
<texture_picker label="Tatuaggio AUX 2" name="aux2_tattoo" />
<texture_picker label="Tatuaggio AUX 3" name="aux3_tattoo" />
</panel>
</panel>
</scroll_container>

View File

@ -0,0 +1,278 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="floater_poser" title="Poser Avatar e Animesh">
<string name="header_mHead">Corpo</string>
<string name="header_mFaceForeheadLeft">Fronte / Sopracciglia</string>
<string name="header_mEyeLeft">Occhi / Palpebre</string>
<string name="header_mFaceCheekUpperLeft">Guance / Labbra</string>
<string name="header_mHandThumb1Left">Mano sinistra</string>
<string name="header_mCollarLeft">Braccio sinistro</string>
<string name="header_mHandThumb1Right">Mano destra</string>
<string name="header_mCollarRight">Braccio destro</string>
<string name="header_mHipLeft">Gambe</string>
<string name="header_mTail1">Coda</string>
<string name="header_mHindLimbsRoot">Arti posteriori</string>
<string name="header_mWingsRoot">Ali</string>
<string name="title_mPelvis">Avatar intero</string>
<string name="title_mTorso">Torso</string>
<string name="title_mChest">Petto</string>
<string name="title_mNeck">Collo</string>
<string name="title_mHead">Testa</string>
<string name="title_mEyeRight">Occhio destro</string>
<string name="title_mEyeLeft">Occhio sinistro</string>
<string name="title_mFaceForeheadLeft">Fronte: lato sinistro</string>
<string name="title_mFaceForeheadRight">Fronte: lato destro</string>
<string name="title_mFaceEyebrowOuterLeft">Sopracciglio sx: esterno</string>
<string name="title_mFaceEyebrowCenterLeft">Sopracciglio sx: centro</string>
<string name="title_mFaceEyebrowInnerLeft">Sopracciglio sx: interno</string>
<string name="title_mFaceEyebrowOuterRight">Sopracciglio dx: esterno</string>
<string name="title_mFaceEyebrowCenterRight">Sopracciglio dx: centro</string>
<string name="title_mFaceEyebrowInnerRight">Sopracciglio dx: interno</string>
<string name="title_mFaceEyeLidUpperLeft">Palpebra superiore sinistra</string>
<string name="title_mFaceEyeLidLowerLeft">Palpebra inferiore sinistra</string>
<string name="title_mFaceEyeLidUpperRight">Palpebra superiore destra</string>
<string name="title_mFaceEyeLidLowerRight">Palpebra inferiore destra</string>
<string name="title_mFaceEar1Left">Orecchio sx: superiore</string>
<string name="title_mFaceEar2Left">Orecchio sx: inferiore</string>
<string name="title_mFaceEar1Right">Orecchio dx: superiore</string>
<string name="title_mFaceEar2Right">Orecchio dx: inferiore</string>
<string name="title_mFaceNoseLeft">Naso: lato sinistro</string>
<string name="title_mFaceNoseCenter">Naso: centro</string>
<string name="title_mFaceNoseRight">Naso: lato sinistro</string>
<string name="title_mFaceCheekLowerLeft">Guancia sinistra: inferiore</string>
<string name="title_mFaceCheekUpperLeft">Guancia sinistra: superiore</string>
<string name="title_mFaceCheekLowerRight">Guancia destra: inferiore</string>
<string name="title_mFaceCheekUpperRight">Guancia destra: superiore</string>
<string name="title_mFaceJaw">Mandibola</string>
<string name="title_mFaceTeethLower">Denti inferiori</string>
<string name="title_mFaceLipLowerLeft">Labbro inferiore: sinistra</string>
<string name="title_mFaceLipLowerRight">Labbro inferiore: destra</string>
<string name="title_mFaceLipLowerCenter">Labbro inferiore: centro</string>
<string name="title_mFaceTongueBase">Lingua: base</string>
<string name="title_mFaceTongueTip">Lingua: punta</string>
<string name="title_mFaceJawShaper">Forma mandibola</string>
<string name="title_mFaceForeheadCenter">Fronte: centro</string>
<string name="title_mFaceNoseBase">Naso: base</string>
<string name="title_mFaceTeethUpper">Denti superiori</string>
<string name="title_mFaceLipUpperLeft">Labbro superiore: sinistra</string>
<string name="title_mFaceLipUpperRight">Labbro superiore: destra</string>
<string name="title_mFaceLipCornerLeft">Labbra: angolo sinistro</string>
<string name="title_mFaceLipCornerRight">Labbra: angolo destro</string>
<string name="title_mFaceLipUpperCenter">Labbro superiore: centro</string>
<string name="title_mFaceEyecornerInnerLeft">Occhio sx: angolo interno</string>
<string name="title_mFaceEyecornerInnerRight">Occhio dx: angolo interno</string>
<string name="title_mFaceNoseBridge">Naso: ponte</string>
<string name="title_mCollarLeft">Clavicola</string>
<string name="title_mShoulderLeft">Braccio intero</string>
<string name="title_mElbowLeft">Avambraccio</string>
<string name="title_mWristLeft">Polso</string>
<string name="title_mHandMiddle1Left">Medio: base</string>
<string name="title_mHandMiddle2Left">Medio: centro</string>
<string name="title_mHandMiddle3Left">Medio: punta</string>
<string name="title_mHandIndex1Left">Indice: base</string>
<string name="title_mHandIndex2Left">Indice: centro</string>
<string name="title_mHandIndex3Left">Indice: punta</string>
<string name="title_mHandRing1Left">Anulare: base</string>
<string name="title_mHandRing2Left">Anulare: centro</string>
<string name="title_mHandRing3Left">Anulare: punta</string>
<string name="title_mHandPinky1Left">Mignolo: base</string>
<string name="title_mHandPinky2Left">Mignolo: centro</string>
<string name="title_mHandPinky3Left">Mignolo: punta</string>
<string name="title_mHandThumb1Left">Pollice: base</string>
<string name="title_mHandThumb2Left">Pollice: centro</string>
<string name="title_mHandThumb3Left">Pollice: punta</string>
<string name="title_mCollarRight">Clavicola</string>
<string name="title_mShoulderRight">Braccio intero</string>
<string name="title_mElbowRight">Avambraccio</string>
<string name="title_mWristRight">Polso</string>
<string name="title_mHandMiddle1Right">Medio: base</string>
<string name="title_mHandMiddle2Right">Medio: centro</string>
<string name="title_mHandMiddle3Right">Medio: punta</string>
<string name="title_mHandIndex1Right">Indice: base</string>
<string name="title_mHandIndex2Right">Indice: centro</string>
<string name="title_mHandIndex3Right">Indice: punta</string>
<string name="title_mHandRing1Right">Anulare: base</string>
<string name="title_mHandRing2Right">Anulare: centro</string>
<string name="title_mHandRing3Right">Anulare: punta</string>
<string name="title_mHandPinky1Right">Mignolo: base</string>
<string name="title_mHandPinky2Right">Mignolo: centro</string>
<string name="title_mHandPinky3Right">Mignolo: punta</string>
<string name="title_mHandThumb1Right">Pollice: base</string>
<string name="title_mHandThumb2Right">Pollice: centro</string>
<string name="title_mHandThumb3Right">Pollice: punta</string>
<string name="title_mWingsRoot">Ali</string>
<string name="title_mWing1Left">Sinistra 1</string>
<string name="title_mWing2Left">Sinistra 2</string>
<string name="title_mWing3Left">Sinistra 3</string>
<string name="title_mWing4Left">Sinistra 4</string>
<string name="title_mWing4FanLeft">Sinistra diram.</string>
<string name="title_mWing1Right">Destra 1</string>
<string name="title_mWing2Right">Destra 2</string>
<string name="title_mWing3Right">Destra 3</string>
<string name="title_mWing4Right">Destra 4</string>
<string name="title_mWing4FanRight">Destra diram.</string>
<string name="title_mHipRight">Anca destra</string>
<string name="title_mKneeRight">Ginocchio destro</string>
<string name="title_mAnkleRight">Caviglia destra</string>
<string name="title_mFootRight">Piede destro</string>
<string name="title_mToeRight">Alluce destro</string>
<string name="title_mHipLeft">Anca sinistra</string>
<string name="title_mKneeLeft">Ginocchio sinistro</string>
<string name="title_mAnkleLeft">Caviglia sinistra</string>
<string name="title_mFootLeft">Piede sinistro</string>
<string name="title_mToeLeft">Alluce sinistro</string>
<string name="title_mTail1">Base coda</string>
<string name="title_mTail2">Coda 2</string>
<string name="title_mTail3">Coda 3</string>
<string name="title_mTail4">Coda 4</string>
<string name="title_mTail5">Coda 5</string>
<string name="title_mTail6">Punta coda</string>
<string name="title_mGroin">Inguine</string>
<string name="title_mHindLimbsRoot">Arti posteriori</string>
<string name="title_mHindLimb1Left">Base sinistra</string>
<string name="title_mHindLimb2Left">Sinistra 2</string>
<string name="title_mHindLimb3Left">Sinistra 3</string>
<string name="title_mHindLimb4Left">Sinistra 4</string>
<string name="title_mHindLimb1Right">Base destra</string>
<string name="title_mHindLimb2Right">Destra 2</string>
<string name="title_mHindLimb3Right">Destra 3</string>
<string name="title_mHindLimb4Right">Destra 4</string>
<string name="title_BUTT">Natiche</string>
<string name="title_BELLY">Pancia</string>
<string name="title_LEFT_PEC">Pettorale sinistro</string>
<string name="title_RIGHT_PEC">Pettorale destro</string>
<layout_stack name="poser_stack">
<layout_panel name="regular_controls_layout">
<panel name="avatarSelection_panel">
<scroll_list tool_tip="Seleziona l'avatar o l'animesh che desideri animare." name="avatarSelection_scroll">
<scroll_list.columns label="Seleziona qualcuno..." name="name" />
</scroll_list>
</panel>
<panel name="joints_parent_panel">
<tab_container name="joints_tabs">
<panel title="Muovi" name="positionRotation_panel">
<panel name="title">
<text name="av_position_updown_label">
Su / Giù:
</text>
<slider name="av_position_updown" tool_tip="Sposta l'avatar selezionato verso l'alto o verso il basso" />
<text name="av_position_leftright_label">
Sinistra / Destra:
</text>
<slider name="av_position_leftright" tool_tip="Sposta l'avatar selezionato a sinistra o a destra" />
<text name="av_position_inout_label">
Avanti / Indietro:
</text>
<slider name="av_position_inout" tool_tip="Sposta l'avatar selezionato avanti o indietro" />
<scroll_list name="entireAv_joint_scroll">
<scroll_list.columns label="Parte del corpo" name="joint" />
</scroll_list>
</panel>
</panel>
<panel title="Corpo" name="body_joints_panel">
<scroll_list name="body_joints_scroll">
<scroll_list.columns label="Parte del corpo" name="joint" />
</scroll_list>
</panel>
<panel title="Viso" name="face_joints_panel">
<scroll_list name="face_joints_scroll">
<scroll_list.columns label="Parte del corpo" name="joint" />
</scroll_list>
</panel>
<tab_container title="Mani" name="hands_tabs">
<panel title="Preset" name="hands_presets_panel">
<scroll_list name="hand_presets_scroll">
<scroll_list.columns label="Nome preset" name="name" />
</scroll_list>
<button label="Imposta sinistra" name="button_loadHandPoseLeft" tool_tip="Fai doppio clic per impostare il preset selezionato sulla mano sinistra" />
<button label="Imposta destra" name="button_loadHandPoseRight" tool_tip="Fai doppio clic per impostare il preset selezionato sulla mano destra" />
</panel>
<panel title="Aggiusta" name="hands_joints_panel">
<scroll_list name="hand_joints_scroll">
<scroll_list.columns label="Parte del corpo" name="joint" />
</scroll_list>
</panel>
</tab_container>
<panel title="Varie" name="misc_joints_panel">
<scroll_list name="misc_joints_scroll">
<scroll_list.columns label="Parte del corpo" name="joint" />
</scroll_list>
</panel>
<panel title="Fisica" name="collision_volumes_panel">
<scroll_list name="collision_volumes_scroll">
<scroll_list.columns label="Fisica" name="joint" />
</scroll_list>
</panel>
</tab_container>
</panel>
<panel name="trackball_panel">
<text name="rotation_label">
Rotazione:
</text>
<fs_virtual_trackpad name="limb_rotation" tool_tip="Cambia la rotazione delle parti del corpo attualmente selezionate. Tieni premuto Ctrl per muoverti lentamente. Usa la rotellina del mouse per regolare il terzo asse. Usa Maiusc o Alt per cambiare le rotazioni da modificare" />
<panel name="trackball_button_panel">
<button name="undo_change" tool_tip="Annulla l'ultima modifica della rotazione" />
<button name="button_redo_change" tool_tip="Ripristina l'ultima modifica annullata" />
<button name="refresh_avatars" tool_tip="Fai doppio clic per ripristinare tutte le parti del corpo selezionate al momento in cui hai iniziato a modificare la posa" />
<button name="delta_mode_toggle" tool_tip="Se si cambiano più giunture, ognuna cambia della stessa quantità, anziché ottenere la stessa rotazione per tutte" />
<button label="Spec." name="button_toggleMirrorRotation" tool_tip="Cambia la giuntura opposta, come in uno specchio" />
<button label="Simp." name="button_toggleSympatheticRotation" tool_tip="Cambia la giuntura opposta, ma nello stesso modo" />
</panel>
<text name="limb_pitch_label">
Su / Giù:
</text>
<text name="limb_yaw_label">
Sinistra / Destra:
</text>
<text name="limb_roll_label">
Rotolamento:
</text>
</panel>
<panel name="poses_loadSave">
<scroll_list tool_tip="Carica una posa per l'avatar o l'animesh che stai animando" name="poses_scroll">
<scroll_list.columns label="Nome posa" name="name" />
</scroll_list>
<line_editor label="Inserisci il nome della posa da salvare..." name="pose_save_name" />
</panel>
</layout_panel>
<layout_panel name="button_controls_layout">
<panel name="button_controls_panel">
<button name="refresh_avatars" tool_tip="Aggiorna l'elenco avatar e animesh" />
<button label="Start Poser" label_selected="Stop Poser" tool_tip="Attiva il Poser per l'avatar o l'animesh che hai selezionato, se ti è consentito" name="start_stop_posing_button" />
<button name="toggleAdvancedPanel" tool_tip="Mostra / Nascondi le impostazioni avanzate" />
<button name="FlipPose_avatar" tool_tip="Capovolgi l'intera posa a sinistra / destra" />
<button name="FlipJoint_avatar" tool_tip="Specchia le parti del corpo selezionate a sinistra / destra" />
<button label="Ricatt." name="button_RecaptureParts" tool_tip="Se le parti del corpo selezionate sono disattivate, ricattura ciò che quelle parti del corpo stanno facendo in questo momento" />
<button label="Attiv./Dis. parti" name="toggle_PosingSelectedBones" tool_tip="Attiva / Disattiva il Poser per le parti del corpo selezionate. Quando è disattivata, quella parte del corpo si anima normalmente (con il tuo AO o una poseball)" />
<button label="Le mie pose" name="toggleLoadSavePanel" tool_tip="Carica, salva e gestisci le pose che crei" />
<button tool_tip="Apri la cartella con le tue pose" name="open_poseDir_button" />
<menu_button label="Carica posa" tool_tip="Carica la posa attualmente selezionata" name="load_poses_button" />
<button label="Salva posa" tool_tip="Salva la posa attuale" name="save_poses_button" />
</panel>
</layout_panel>
<layout_panel name="advanced_controls_layout">
<panel name="advanced_parent_panel">
<tab_container name="modifier_tabs">
<panel title="Posizione parti del corpo" name="position_panel">
<slider label="Posizione X:" name="Advanced_Position_X" />
<slider label="Posizione Y:" name="Advanced_Position_Y" />
<slider label="Posizione Z:" name="Advanced_Position_Z" />
<button label="Annulla modif. posiz." name="undo_position_change" tool_tip="Annulla l'ultima modifica della posizione" />
<button label="Rifai posizione" name="redo_position_change" tool_tip="Ripristina l'ultima modifica della posizione annullata" />
<button label="Reset posizione" name="reset_positions" tool_tip="Fai doppio clic per ripristinare la posizione originale" />
</panel>
<panel title="Dimensioni parti del corpo" name="scale_panel">
<slider label="Dimens. X:" name="Advanced_Scale_X" />
<slider label="Dimens. Y:" name="Advanced_Scale_Y" />
<slider label="Dimens. Z:" name="Advanced_Scale_Z" />
<button label="Annulla modif. dimens." name="undo_scale_change" tool_tip="Annulla l'ultima modifica delle dimensioni" />
<button label="Rifai dimens." name="redo_scale_change" tool_tip="Ripristina l'ultima modifica delle dimensioni annullata" />
<button label="Reset dimens." name="reset_scales" tool_tip="Fai doppio clic per ripristinare le dimensioni originali" />
</panel>
</tab_container>
</panel>
<panel name="save_file_options">
<slider label="Sensibilità" name="trackpad_sensitivity_slider" tool_tip="Regola sensibilità del trackball e della rotellina del mouse" />
</panel>
</layout_panel>
</layout_stack>
</floater>

View File

@ -82,7 +82,7 @@
</text>
</panel>
<panel name="P_L_S_Settings">
<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"/>
<check_box label="Abilita Luci Attachment" 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">
<text name="T_Shadow_Types" tool_tip="Questa impostazione ha effetto solo sulle ombre renderizzate dalle sorgenti luminose. Le luci che non hanno la funzione di proiezione abilitata, creeranno sempre un senso di ombra, ma non le proietteranno su nessuna superficie. È importante notare che, indipendentemente dall'impostazione scelta, le texture proiettate saranno comunque abilitate.">
@ -457,7 +457,7 @@
Sensibilità Mouse
</text>
<button name="Reset_Mouse_Sens" label="R" tool_tip="Ripristina valore."/>
<check_box label="Mostra avatar in Mouselook" tool_tip="Mostra avatar e attachments dal collo in giù in modalità Mouselook (predefinito = off)." name="first_person_avatar_visible"/>
<check_box label="Mostra avatar in Mouselook" tool_tip="Mostra l'avatar e gli attachment dal collo in giù in modalità Mouselook (predefinito = off)." name="first_person_avatar_visible"/>
<check_box label="Addolcisci movimenti in Mouselook" tool_tip="Addolcisce i movimenti del mouse in modalità Mouselook." name="MouseSmooth"/>
</panel>
</panel>

View File

@ -108,8 +108,8 @@
Sensibilità mouse
</text>
<button name="Reset_Mouse_Sensitivity" label="R" tool_tip="Ripristina valore"/>
<check_box label="Mostra avatar in mouselook" tool_tip="Mostra avatar e accessori dal collo in giù in modalità mouselook. Predefinito OFF" name="first_person_avatar_visible"/>
<check_box label="Addolcisce movimenti" tool_tip="Addolcisce i movimenti del mouse in modalità mouselook" name="MouseSmooth"/>
<check_box label="Mostra avatar in Mouselook" tool_tip="Mostra l'avatar e gli attachment dal collo in giù in modalità Mouselook (predefinito = off)." name="first_person_avatar_visible"/>
<check_box label="Addolcisci movimenti in Mouselook" tool_tip="Addolcisce i movimenti del mouse in modalità Mouselook." name="MouseSmooth"/>
</panel>
<panel name="P_Additional_Camera_Options">
<text name="T_Additional_Camera_Options">

View File

@ -10,18 +10,21 @@
[weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt], [hour24, datetime, slt]:[min, datetime, slt]:[second, datetime, slt] [timezone, datetime, slt]
</floater.string>
<floater.string name="UploaderDateTime">
Caricata da [UPLOADER] il [DATE_TIME]
Caricata da [UPLOADER] [DATE_TIME]
</floater.string>
<text name="desc txt">
Descrizione:
</text>
<button label="Profilo" name="openprofile"/>
<panel name="dimensions_panel">
<text name="dimensions">
[WIDTH] x [HEIGHT] px
</text>
<button name="copyuuid" tool_tip="Copia UUID negli appunti"/>
<text name="aspect_ratio">
Rapporto vista
Proporzioni
</text>
<combo_box name="combo_aspect_ratio" tool_tip="Anteprima con rapporto di visualizzazione fisso"/>
<combo_box name="combo_aspect_ratio" tool_tip="Visualizza anteprima con proporzioni fisse"/>
</panel>
<panel name="button_panel">
<button label="Elimina" name="Discard"/>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<toggleable_menu name="Settings">
<menu_item_call label="Carica solo rotazioni" name="rotations" />
<menu_item_call label="Carica solo posizioni" name="positions" />
<menu_item_call label="Carica solo dimensioni" name="scale" />
<menu_item_call label="Carica rotazioni e posizioni" name="rotations_positions" />
<menu_item_call label="Carica rotazioni e dimensioni" name="rotations_scales" />
<menu_item_call label="Carica posizioni e dimensioni" name="positions_scales" />
<menu_item_call label="Carica tutte" name="load_all" />
</toggleable_menu>

View File

@ -17,7 +17,7 @@
<menu_item_call label="Alfa" name="Self Alpha"/>
<menu_item_call label="Tutti gli indumenti" name="All Clothes"/>
</context_menu>
<context_menu label="Accessori" name="Inspect Self Detach"/>
<context_menu label="Stacca" name="Inspect Self Detach"/>
<menu_item_call label="Stacca tutto" name="Detach All"/>
</context_menu>
<menu_item_call label="Cambia abito" name="Chenge Outfit"/>

View File

@ -54,7 +54,7 @@
<menu_item_call label="Ripristina scheletro" name="Reset Skeleton" />
<menu_item_call label="Ripristina scheletro e animazioni" name="Reset Skeleton And Animations" />
<menu_item_call label="Ricarica texture (rebake)" name="Rebake Texture"/>
<menu_item_call label="Ricarica attachments" name="Refresh Attachments"/>
<menu_item_call label="Ricarica gli attachment" name="Refresh Attachments"/>
<menu_item_call label="Ripristina avatar maschio (Character Test)" name="ResetDefaultAvM"/>
<menu_item_call label="Ripristina avatar femmina (Character Test)" name="ResetDefaultAvF"/>
<menu_item_check label="Mostra info complessità" name="Avatar Draw Info"/>
@ -303,7 +303,7 @@
<menu_item_check label="Nascondi messaggi non impostati o duplicati" name="Hide Unset or Duplicate Messages"/>
<menu_item_check label="Mostra Assertion Failures" name="Show Assertion Failures"/>
<menu_item_check label="Nascondi livelli bloccati" name="Hide Locked Layers"/>
<menu_item_check label="Nascondi attachments bloccati" name="Hide Locked Attachments"/>
<menu_item_check label="Nascondi attachment bloccati" name="Hide Locked Attachments"/>
<menu_item_check label="Permetti Legacy Naming" name="Enable Legacy Naming"/>
<menu_item_check label="Permetti indossa condiviso" name="Enable Shared Wear"/>
<menu_item_check label="Rinomina oggetti condivisi quando indossati" name="Rename Shared Items on Wear"/>
@ -313,7 +313,7 @@
<menu_item_check label="Mostra chat filtrata" name="Show Filtered Chat"/>
<menu_item_check label="Mostra digitazione chat reindirizzata" name="Show Redirected Chat Typing" />
<menu_item_check label="Dividi chat reindirizzata lunga" name="Split Long Redirected Chat" />
<menu_item_check label="Permetti attachments temporanei" name="Allow Temporary Attachments"/>
<menu_item_check label="Permetti attachment temporanei" name="Allow Temporary Attachments"/>
<menu_item_check label="Vieta Give to #RLV" name="Forbid Give to #RLV"/>
<menu_item_check label="Indossa sostituisce sbloccati" name="Wear Replaces Unlocked"/>
<menu_item_check label="Console..." name="Console"/>
@ -322,7 +322,7 @@
</menu>
<menu label="Avanzato" name="Advanced">
<menu_item_call label="Ricarica texture" name="Rebake Texture"/>
<menu_item_call label="Ricarica attachments" name="Refresh Attachments"/>
<menu_item_call label="Ricarica gli attachment" name="Refresh Attachments"/>
<menu_item_call label="Imposta interfaccia predefinita" name="Set UI Size to Default"/>
<menu_item_call label="Dimensione Finestra..." name="Set Window Size..."/>
<menu_item_check label="Limita distanza selezione" name="Limit Select Distance"/>

View File

@ -280,9 +280,9 @@ Se non desideri che queste abilità siano assegnate a questo ruolo, disattivale
Ad alcuni utenti non è stato mandato un invito a causa del blocco nel gruppo.
</notification>
<notification name="AttachmentDrop">
Stai per abbandonare il tuo accessorio.
Stai per abbandonare il tuo attachment.
Continuare?
<usetemplate ignoretext="Conferma prima di staccare gli accessori" name="okcancelignore" notext="No" yestext="Sì"/>
<usetemplate ignoretext="Conferma prima di staccare gli attachment" name="okcancelignore" notext="No" yestext="Sì"/>
</notification>
<notification name="JoinGroupCanAfford">
Iscriversi a questo gruppo costa [COST]L$.
@ -452,7 +452,7 @@ Per collocare il media su una sola faccia, scegli Seleziona faccia, clicca su un
</notification>
<notification name="CouldNotPutOnOutfit">
Non è stato possibile indossare un abito.
La cartella abiti non contiene vestiti, parti del corpo o accessori.
La cartella abiti non contiene vestiti, parti del corpo o attachment.
</notification>
<notification name="CannotWearTrash">
Non puoi indossare vestiti e parti del corpo che sono nel cestino.
@ -4522,8 +4522,8 @@ Riprova tra un minuto.
Sei stato teleportato a casa dall&apos;oggetto &apos;[OBJECT_NAME]&apos;
</notification>
<notification name="TeleportedByAttachment">
Sei stato teleportato da un elemento collegato a [ITEM_ID]
<usetemplate ignoretext="Teleport: sei stato teleportato da un elemento accessorio" name="notifyignore"/>
Sei stato teleportato da un attachment su [ITEM_ID]
<usetemplate ignoretext="Teleport: sei stato teleportato da un attachment" name="notifyignore"/>
</notification>
<notification name="TeleportedByObjectOnParcel">
Sei stato teleportato dall&apos;oggetto &apos;[OBJECT_NAME]&apos; sul lotto &apos;[PARCEL_NAME]&apos;
@ -4973,16 +4973,24 @@ Simulatore precedente: [OLDVERSION]
<notification name="BackupPathEmpty">
La cartella del backup è vuota. Per prima cosa indicare una posizione in cui salvare e recuperare le impostazioni.
</notification>
<notification name="SettingsConfirmBackup">
Sei sicuro di voler salvare il backup in questo percorso?
[DIRECTORY]
Tutti i backup presenti in questa posizione verranno sovrascritti!
<usetemplate name="okcancelbuttons" notext="Annulla" yestext="Salva backup" />
</notification>
<notification name="SettingsRestoreNeedsLogout">
Il ripristino delle impostazioni richiede un riavvio. Ripristinare le impostazioni e uscire?
<usetemplate name="okcancelbuttons" notext="Annulla" yestext="Ripristina e esci"/>
</notification>
<notification name="BackupPathDoesNotExistOrCreateFailed">
Impossibile trovare o creare la cartella del backup.
</notification>
<notification name="BackupPathDoesNotExist">
Impossibile trovare la cartella del backup.
</notification>
<notification name="SettingsRestoreNeedsLogout">
Il ripristino delle impostazioni richiede un riavvio. Ripristinare le impostazioni e uscire?
<usetemplate name="okcancelbuttons" notext="Annulla" yestext="Ripristina e esci"/>
</notification>
<notification name="RestoreFinished">
Ripristino completato. Riavviare il viewer.
<usetemplate name="okbutton" yestext="Esci"/>
@ -5353,4 +5361,14 @@ Reimpostare l'URL predefinito?
<button name="use_as_is" text="Mantieni alfa" />
</form>
</notification>
<notification name="WhitelistReminder">
Per migliorare le prestazioni dell'applicazione [APP_NAME] - aggiungila all'elenco delle eccezioni.
Alcuni programmi antivirus potrebbero bloccare erroneamente parti di [APP_NAME], rallentando il viewer e impedendo la corretta esecuzione di alcune funzionalità. Per evitare questi problemi, ti consigliamo vivamente di aggiungere [APP_NAME] alla whitelist (o all'elenco delle esclusioni) del tuo programma antivirus. Ciò garantirà un funzionamento regolare del viewer.
Per istruzioni dettagliate su come autorizzare [APP_NAME], che includono l'elenco di file e cartelle da escludere, consulta la nostra guida:
https://wiki.firestormviewer.org/antivirus_whitelisting
<usetemplate ignoretext="Mostra promemoria sulla whitelist all'avvio" name="okignore" />
</notification>
</notifications>

View File

@ -2,7 +2,7 @@
<panel name="cof_wearables">
<tab_container name="wearable_accordion">
<panel name="tab_clothing" title="Vestiti"/>
<panel name="tab_attachments" title="Accessori"/>
<panel name="tab_attachments" title="Attachment"/>
<panel name="tab_body_parts" title="Parti del corpo"/>
</tab_container>
</panel>

View File

@ -2,11 +2,11 @@
<panel name="edit_alpha_panel">
<scroll_container name="avatar_alpha_color_panel_scroll">
<panel name="avatar_alpha_color_panel">
<texture_picker label="Alfa inferiore" name="Lower Alpha" tool_tip="Clic per scegliere una texture"/>
<texture_picker label="Alfa superiore" name="Upper Alpha" tool_tip="Clic per scegliere una texture"/>
<texture_picker label="Alfa della testa" name="Head Alpha" tool_tip="Clic per scegliere una texture"/>
<texture_picker label="Alfa dell&apos;occhio" name="Eye Alpha" tool_tip="Clic per scegliere una texture"/>
<texture_picker label="Alfa dei capelli" name="Hair Alpha" tool_tip="Clic per scegliere una texture"/>
<texture_picker label="Alfa parte sotto" name="Lower Alpha" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Alfa parte sopra" name="Upper Alpha" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Alfa testa" name="Head Alpha" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Alfa occhio" name="Eye Alpha" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Alfa capelli" name="Hair Alpha" tool_tip="Clicca per scegliere una texture"/>
</panel>
</scroll_container>
</panel>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_eyes_panel">
<panel name="avatar_eye_color_panel">
<texture_picker label="Iride" name="Iris" tool_tip="Clic per scegliere una texture"/>
<texture_picker label="Iride" name="Iris" tool_tip="Clicca per scegliere una texture"/>
</panel>
<panel name="accordion_panel">
<accordion name="wearable_accordion">

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_gloves_panel">
<panel name="avatar_gloves_color_panel">
<texture_picker label="Tessuto" name="Fabric" tool_tip="Clic per scegliere un&apos;immagine"/>
<color_swatch label="Colore/tinta" name="Color/Tint" tool_tip="Clic per scegliere un colore"/>
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="accordion_panel">
<accordion name="wearable_accordion">

View File

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_hair_panel">
<panel name="avatar_hair_color_panel">
<texture_picker label="Texture" name="Texture" tool_tip="Clic per scegliere una texture"/>
<texture_picker label="Texture" name="Texture" tool_tip="Clicca per scegliere una texture"/>
</panel>
<panel name="accordion_panel">
<accordion name="wearable_accordion">
<accordion_tab name="hair_color_tab" title="Colore"/>
<accordion_tab name="hair_style_tab" title="Stile"/>
<accordion_tab name="hair_eyebrows_tab" title="Sopracciglia"/>
<accordion_tab name="hair_facial_tab" title="Del viso"/>
<accordion_tab name="hair_facial_tab" title="Viso"/>
</accordion>
</panel>
</panel>

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_jacket_panel">
<panel name="avatar_jacket_color_panel">
<texture_picker label="Texture superiore" name="Upper Fabric" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Texture inferiore" name="Lower Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore/tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
<texture_picker label="Parte sopra" name="Upper Fabric" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Parte sotto" name="Lower Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="accordion_panel">
<accordion name="wearable_accordion">

View File

@ -2,7 +2,7 @@
<panel name="edit_pants_panel">
<panel name="avatar_pants_color_panel">
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore/tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="accordion_panel">
<accordion name="wearable_accordion">

View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_physics_panel">
<panel label="" name="accordion_panel">
<panel name="accordion_panel">
<accordion name="physics_accordion">
<accordion_tab name="physics_breasts_updown_tab" title="Rimbalzo seno"/>
<accordion_tab name="physics_breasts_inout_tab" title="Décolleté"/>
<accordion_tab name="physics_breasts_leftright_tab" title="Ondeggiamento seno"/>
<accordion_tab name="physics_breasts_inout_tab" title="Scollatura seno"/>
<accordion_tab name="physics_breasts_leftright_tab" title="Oscillazione seno"/>
<accordion_tab name="physics_belly_tab" title="Rimbalzo pancia"/>
<accordion_tab name="physics_butt_tab" title="Rimbalzo natiche"/>
<accordion_tab name="physics_butt_leftright_tab" title="Ondeggiamento natiche"/>
<accordion_tab name="physics_butt_leftright_tab" title="Oscillazione natiche"/>
<accordion_tab name="physics_advanced_tab" title="Parametri avanzati"/>
</accordion>
</panel>

View File

@ -7,9 +7,8 @@
Piedi
</string>
<string name="height">
Statura:
Altezza:
</string>
<text name="avatar_height"/>
<panel label="Camicia" name="accordion_panel">
<accordion name="wearable_accordion">
<accordion_tab name="shape_body_tab" title="Corpo"/>
@ -19,7 +18,7 @@
<accordion_tab name="shape_nose_tab" title="Naso"/>
<accordion_tab name="shape_mouth_tab" title="Bocca"/>
<accordion_tab name="shape_chin_tab" title="Mento"/>
<accordion_tab name="shape_torso_tab" title="Torace"/>
<accordion_tab name="shape_torso_tab" title="Torso"/>
<accordion_tab name="shape_legs_tab" title="Gambe"/>
</accordion>
</panel>

View File

@ -2,7 +2,7 @@
<panel name="edit_shirt_panel">
<panel name="avatar_shirt_color_panel">
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore/tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="accordion_panel">
<accordion name="wearable_accordion">

View File

@ -2,7 +2,7 @@
<panel name="edit_shoes_panel">
<panel name="avatar_shoes_color_panel">
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore/tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="accordion_panel">
<accordion name="wearable_accordion">

View File

@ -1,16 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_skin_panel">
<panel name="avatar_skin_color_panel">
<texture_picker label="Testa" name="Head" tool_tip="Clic per scegliere una texture"/>
<texture_picker label="Parte superiore del corpo" name="Upper Body" tool_tip="Clic per scegliere una texture"/>
<texture_picker label="Parte inferiore del corpo" name="Lower Body" tool_tip="Clic per scegliere una texture"/>
<texture_picker label="Testa" name="Head" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Parte sopra" name="Upper Body" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Parte sotto" name="Lower Body" tool_tip="Clicca per scegliere una texture"/>
</panel>
<panel name="accordion_panel">
<accordion name="wearable_accordion">
<accordion_tab name="skin_color_tab" title="Colore della pelle"/>
<accordion_tab name="skin_face_tab" title="Dettagli del viso"/>
<accordion_tab name="skin_makeup_tab" title="Makeup"/>
<accordion_tab name="skin_body_tab" title="Dettagli del corpo"/>
<accordion_tab name="skin_color_tab" title="Colore pelle"/>
<accordion_tab name="skin_face_tab" title="Dettagli viso"/>
<accordion_tab name="skin_makeup_tab" title="Trucco"/>
<accordion_tab name="skin_body_tab" title="Dettagli corpo"/>
</accordion>
</panel>
</panel>

View File

@ -2,7 +2,7 @@
<panel name="edit_skirt_panel">
<panel name="avatar_skirt_color_panel">
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore/tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="accordion_panel">
<accordion name="wearable_accordion">

View File

@ -2,7 +2,7 @@
<panel name="edit_socks_panel">
<panel name="avatar_socks_color_panel">
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore/tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="accordion_panel">
<accordion name="wearable_accordion">

View File

@ -2,10 +2,10 @@
<panel name="edit_tattoo_panel">
<scroll_container name="avatar_tattoo_scroll">
<panel name="avatar_tattoo_color_panel">
<texture_picker label="Tatuaggio della testa" name="Head Tattoo" tool_tip="Clicca per scegliere una fotografia"/>
<texture_picker label="Tatuaggio superiore" name="Upper Tattoo" tool_tip="Clicca per scegliere una fotografia"/>
<texture_picker label="Tattuaggio inferiore" name="Lower Tattoo" tool_tip="Clicca per scegliere una fotografia"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
<texture_picker label="Tatuaggio testa" name="Head Tattoo" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Tatuagg. parte sopra" name="Upper Tattoo" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Tatuagg. parte sotto" name="Lower Tattoo" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
</scroll_container>
</panel>

View File

@ -2,7 +2,7 @@
<panel name="edit_underpants_panel">
<panel name="avatar_underpants_color_panel">
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore/tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="accordion_panel">
<accordion name="wearable_accordion">

View File

@ -2,7 +2,7 @@
<panel name="edit_undershirt_panel">
<panel name="avatar_undershirt_color_panel">
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore/tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="accordion_panel">
<accordion name="wearable_accordion">

View File

@ -2,18 +2,18 @@
<panel name="edit_universal_panel">
<scroll_container name="avatar_universal_scroll">
<panel name="avatar_universal_color_panel">
<texture_picker label="Tatuaggio testa" name="Head Universal Tattoo" tool_tip="Fai clic per scegliere unimmagine"/>
<texture_picker label="Tatuaggio parte alta" name="Upper Universal Tattoo" tool_tip="Fai clic per scegliere unimmagine"/>
<texture_picker label="Tatuaggio parte bassa" name="Lower Universal Tattoo" tool_tip="Fai clic per scegliere unimmagine"/>
<texture_picker label="Tatuaggio gonna" name="Skirt Tattoo" tool_tip="Fai clic per scegliere unimmagine"/>
<texture_picker label="Tatuaggio capelli" name="Hair Tattoo" tool_tip="Fai clic per scegliere unimmagine"/>
<texture_picker label="Tatuaggio occhi" name="Eyes Tattoo" tool_tip="Fai clic per scegliere unimmagine"/>
<texture_picker label="Tatuaggio braccio sinistro" name="Left Arm Tattoo" tool_tip="Fai clic per scegliere unimmagine"/>
<texture_picker label="Tatuaggio gamba sinistra" name="Left Leg Tattoo" tool_tip="Fai clic per scegliere unimmagine"/>
<texture_picker label="Tatuaggio Aux1" name="Aux1 Tattoo" tool_tip="Fai clic per scegliere unimmagine"/>
<texture_picker label="Tatuaggio Aux2" name="Aux2 Tattoo" tool_tip="Fai clic per scegliere unimmagine"/>
<texture_picker label="Tatuaggio Aux3" name="Aux3 Tattoo" tool_tip="Fai clic per scegliere unimmagine"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Fai clic per aprire il selettore dei colori"/>
<texture_picker label="Tatuaggio testa" name="Head Universal Tattoo" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Tatuagg. parte sopra" name="Upper Universal Tattoo" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Tatuagg. parte sotto" name="Lower Universal Tattoo" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Tatuaggio gonna" name="Skirt Tattoo" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Tatuaggio capelli" name="Hair Tattoo" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Tatuaggio occhi" name="Eyes Tattoo" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Tatuaggio braccio sx" name="Left Arm Tattoo" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Tatuaggio gamba sx" name="Left Leg Tattoo" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Tatuaggio AUX 1" name="Aux1 Tattoo" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Tatuaggio AUX 2" name="Aux2 Tattoo" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Tatuaggio AUX 3" name="Aux3 Tattoo" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
</scroll_container>
</panel>

View File

@ -4,16 +4,16 @@
Indietro
</text>
<text name="attachments_title">
Complessità attachments
Complessità attachment
</text>
<text name="tot_att_count">
Totale: 50 (120000.10μs)
</text>
<text name="attachments_desc1">
Gli attachments rendono il tuo avatar più complesso e lento da renderizzare.
Gli attachment rendono il tuo avatar più complesso e lento da renderizzare.
</text>
<text name="attachments_desc2">
In questa schermata puoi visualizzare l'elenco dei tuoi attachments.
In questa schermata puoi visualizzare l'elenco dei tuoi attachment.
</text>
<text name="attachments_desc3">
Puoi rimuovere rapidamente un attachment cliccando la 'X'.

View File

@ -10,7 +10,7 @@
Recuperati [ITEM_COUNT] elementi [FILTER]
</panel.string>
<panel.string name="inventory_title">
INVENTARIO
Inventario
</panel.string>
<layout_stack name="top_stack">
<layout_panel name="nav_buttons">

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="Wearing">
<panel.string name="no_attachments">
Nessun accessorio.
Nessun attachment
</panel.string>
<accordion name="wearables_accordion">
<accordion_tab name="tab_wearables" title="Abiti"/>
<accordion_tab name="tab_temp_attachments" title="Accessori temporanei"/>
<accordion_tab name="tab_temp_attachments" title="Attachment temporanei"/>
</accordion>
<panel name="bottom_panel">
<menu_button name="options_gear_btn" tool_tip="Mostra altre opzioni"/>

View File

@ -129,7 +129,7 @@
Impostazioni avanzate (richiede riavvio):
</text>
<check_box label="Disabilita rilevamento automatico della VRAM" name="FSOverrideVRAMDetection" tool_tip="Consenti la disattivazione del rilevamento automatico della VRAM (da utilizzare con estrema cautela)" />
<slider label="VRAM dedicata alla GPU (GB):" name="FSForcedVideoMemory" tool_tip="Importante: usare con estrema cautela. || Sostituisci la VRAM rilevata per la tua scheda grafica. || Non può contenere VRAM 'condivisa', che fa parte della RAM di sistema. || Se non capisci la differenza, lascia stare questa opzione." />
<slider label="Sostituisci VRAM dedicata alla GPU (GB):" name="FSForcedVideoMemory" tool_tip="Importante: usare con estrema cautela. || Sostituisci la VRAM rilevata per la tua scheda grafica. || Non può contenere VRAM 'condivisa', che fa parte della RAM di sistema. || Se non capisci la differenza, lascia stare questa opzione." />
</panel>
<panel label="Rendering" name="Rendering">
<text name="World Updating">
@ -170,7 +170,7 @@
<check_box label="Mostra avatar che non hanno terminato il caricamento" name="RenderUnloadedAvatars"/>
<check_box label="Limita framerate" name="FSLimitFramerate"/>
<check_box label="Mostra scena come wireframe" name="Wireframe"/>
<check_box label="Abilita Luci Attachments (face-light)" tool_tip="Abilita tutte le luci che gli avatar hanno attaccate al corpo come le luci per la faccia. Utile per spegnerle quando necessario." name="Render Attached Lights"/>
<check_box label="Abilita luci dagli attachment (face-light)" tool_tip="Abilita tutte le luci che gli avatar hanno attaccate al corpo come le luci per la faccia. Utile per spegnerle quando necessario." name="Render Attached Lights"/>
<check_box label="Renderizza particelle generate da altri avatar" name="Render Attached Particles"/>
<slider label="Ritardo pre-caricamento di visualizzazione mondo" tool_tip="Quanto tempo deve passare, prima di visualizzare il mondo dopo che gli altri vi hanno visto online (predef. 6 secondi)" name="PrecachingDelay"/>
<text name="PrecachingDelayText">

View File

@ -3,11 +3,6 @@
<string name="status_unknown">
Sconosciuto
</string>
<string name="CaptionTextAcctInfo">
[ACCTTYPE]
[PAYMENTINFO]
[FSDEV][FSSUPP][FSQA][FSGW][FIRESTORM]
</string>
<string name="BadgeBeta" value="Beta Tester originale" />
<string name="BadgeBetaLifetime" value="Membro a vita Beta" />
<string name="BadgeLifetime" value="Membro a vita" />
@ -46,7 +41,14 @@
<text name="label2" value="Account:" />
<layout_stack name="badgepositioner">
<layout_panel name="badge_layout">
<icon name="badge_icon" tool_tip="Dipendente Linden Lab" />
<layout_stack name="badge_stacker">
<layout_panel name="top_badge_layout">
<icon name="top_badge_icon" tool_tip="Dipendente Linden Lab" />
</layout_panel>
<layout_panel name="bottom_badge_layout">
<icon name="bottom_badge_icon" tool_tip="Dipendente Linden Lab" />
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</layout_panel>

View File

@ -1807,7 +1807,7 @@ Se il messaggio persiste, contattare il supporto Second Life per assistenza http
Apri segnaposto
</string>
<string name="Unconstrained">
Senza limitazioni
Senza vincoli
</string>
<string name="active" value=" (attivo)"/>
<string name="no_transfer" value=" (no trasferimento)"/>
@ -1962,10 +1962,10 @@ Se il messaggio persiste, contattare il supporto Second Life per assistenza http
Tutto
</string>
<string name="no_attachments">
Nessun accessorio indossato
Nessun attachment indossato
</string>
<string name="Attachments remain">
Accessori ([COUNT] restanti)
Attachment ([COUNT] rimanenti)
</string>
<string name="Buy">
Acquista
@ -3200,7 +3200,7 @@ Reinstallare il browser da [DOWNLOAD_URL] e contattare [SUPPORT_SITE] se il prob
Capigliatura grande: in alto
</string>
<string name="Big Head">
Grande testa
Testa grande
</string>
<string name="Big Pectorals">
Grandi pettorali
@ -3260,7 +3260,7 @@ Reinstallare il browser da [DOWNLOAD_URL] e contattare [SUPPORT_SITE] se il prob
Larghezza setto
</string>
<string name="Broad">
Largo
Più
</string>
<string name="Brow Size">
Grandezza delle sopracciglia
@ -3389,7 +3389,7 @@ Reinstallare il browser da [DOWNLOAD_URL] e contattare [SUPPORT_SITE] se il prob
Sopracciglia cespugliose
</string>
<string name="Bushy Hair">
Capelli a cespuglio
Barba cespugliosa
</string>
<string name="Butt Size">
Grandezza del sedere
@ -3449,7 +3449,7 @@ Reinstallare il browser da [DOWNLOAD_URL] e contattare [SUPPORT_SITE] se il prob
Occhi ravvicinati
</string>
<string name="Closed">
Chiusa
Chiuso
</string>
<string name="Closed Back">
Chiuso dietro
@ -3503,7 +3503,7 @@ Reinstallare il browser da [DOWNLOAD_URL] e contattare [SUPPORT_SITE] se il prob
Tacchi standard
</string>
<string name="Dense">
Folti
Più folte
</string>
<string name="Double Chin">
Doppio mento
@ -3713,7 +3713,7 @@ Reinstallare il browser da [DOWNLOAD_URL] e contattare [SUPPORT_SITE] se il prob
Altezza
</string>
<string name="High">
Alto
Più
</string>
<string name="High Heels">
Tacchi alti
@ -3824,7 +3824,7 @@ Reinstallare il browser da [DOWNLOAD_URL] e contattare [SUPPORT_SITE] se il prob
Meno muscoli
</string>
<string name="Less Muscular">
Meno muscolari
Meno muscoli
</string>
<string name="Less Rosy">
Meno rosato
@ -3878,7 +3878,7 @@ Reinstallare il browser da [DOWNLOAD_URL] e contattare [SUPPORT_SITE] se il prob
Colore rossetto
</string>
<string name="Long">
Lungo
Più
</string>
<string name="Long Head">
Testa lunga
@ -3917,7 +3917,7 @@ Reinstallare il browser da [DOWNLOAD_URL] e contattare [SUPPORT_SITE] se il prob
Maniglie dell&apos;amore
</string>
<string name="Low">
Basso
Meno
</string>
<string name="Low Heels">
Tacchi bassi
@ -3983,7 +3983,7 @@ Reinstallare il browser da [DOWNLOAD_URL] e contattare [SUPPORT_SITE] se il prob
Più muscoli
</string>
<string name="More Muscular">
Più muscolatura
Più muscoli
</string>
<string name="More Rosy">
Più rosato
@ -4037,7 +4037,7 @@ Reinstallare il browser da [DOWNLOAD_URL] e contattare [SUPPORT_SITE] se il prob
Colore smalto
</string>
<string name="Narrow">
Socchiusi
Meno
</string>
<string name="Narrow Back">
Laterali post. vicini
@ -4322,7 +4322,7 @@ Reinstallare il browser da [DOWNLOAD_URL] e contattare [SUPPORT_SITE] se il prob
Altezza scarpe
</string>
<string name="Short">
Basso
Meno
</string>
<string name="Short Arms">
Braccia corte
@ -4397,7 +4397,7 @@ Reinstallare il browser da [DOWNLOAD_URL] e contattare [SUPPORT_SITE] se il prob
Spacco: Destra
</string>
<string name="Small">
Piccola
Piccolo
</string>
<string name="Small Hands">
Mani piccole
@ -4418,7 +4418,7 @@ Reinstallare il browser da [DOWNLOAD_URL] e contattare [SUPPORT_SITE] se il prob
Pizzetto labbro inferiore
</string>
<string name="Sparse">
Piu rade
Più rade
</string>
<string name="Spiked Hair">
Capelli a punta
@ -4451,7 +4451,7 @@ Reinstallare il browser da [DOWNLOAD_URL] e contattare [SUPPORT_SITE] se il prob
Avanti
</string>
<string name="Tall">
Alto
Più
</string>
<string name="Taper Back">
Ravv. lat. posteriore
@ -4553,7 +4553,7 @@ Reinstallare il browser da [DOWNLOAD_URL] e contattare [SUPPORT_SITE] se il prob
Capelli bianchi
</string>
<string name="Wide">
Largo
Più
</string>
<string name="Wide Back">
Dietro largo
@ -5576,6 +5576,12 @@ Prova a racchiudere il percorso dell&apos;editor in doppie virgolette.
<string name="Command_Beacons_Label">
Marcatori
</string>
<string name="Command_Poser_Label">
Poser
</string>
<string name="Command_Poser_Tooltip">
Metti in posa il tuo avatar e le animesh
</string>
<string name="Command_360_Capture_Tooltip">
Cattura foto panoramica a 360°
</string>
@ -5724,7 +5730,7 @@ Prova a racchiudere il percorso dell&apos;editor in doppie virgolette.
Apre l'elenco dei teleport effetuati (Alt+H)
</string>
<string name="Command_Pose_Stand_Tooltip">
Pose statiche dell'avatar per sistemare gli attachments
Pose statiche dell'avatar per sistemare gli attachment
</string>
<string name="Command_Snapshot_To_Disk_Tooltip">
Scatta una foto e la salva su disco

View File

@ -12,6 +12,7 @@
<string name="header_mTail1">Ogon</string>
<string name="header_mHindLimbsRoot">Kończyny tylne</string>
<string name="header_mWingsRoot">Skrzydła</string>
<string name="header_mFaceEar1Left">Uszy/Nos</string>
<string name="title_mPelvis">Cały awatar</string>
<string name="title_mTorso">Tułów</string>
<string name="title_mChest">Klatka piersiowa</string>
@ -52,7 +53,7 @@
<string name="title_mFaceJawShaper">Kształt szczęki</string>
<string name="title_mFaceForeheadCenter">Środek czoła</string>
<string name="title_mFaceNoseBase">Podstawa nosa</string>
<string name="title_mFaceTeethUpper">Teeth Upper</string>
<string name="title_mFaceTeethUpper">Zęby górne</string>
<string name="title_mFaceLipUpperLeft">Warga górna lewa</string>
<string name="title_mFaceLipUpperRight">Warga górna prawa</string>
<string name="title_mFaceLipCornerLeft">Lewy kącik ust</string>
@ -61,7 +62,7 @@
<string name="title_mFaceEyecornerInnerLeft">Wewn. lewy kącik oka</string>
<string name="title_mFaceEyecornerInnerRight">Wewn. prawy kącik oka</string>
<string name="title_mFaceNoseBridge">Grzbiet nosa</string>
<string name="title_mCollarLeft">Kołnierz</string>
<string name="title_mCollarLeft">Obojczyk</string>
<string name="title_mShoulderLeft">Całe ramię</string>
<string name="title_mElbowLeft">Przedramię</string>
<string name="title_mWristLeft">Nadgarstek</string>
@ -80,7 +81,7 @@
<string name="title_mHandThumb1Left">Podstawa kciuka</string>
<string name="title_mHandThumb2Left">Środek kciuka</string>
<string name="title_mHandThumb3Left">Czubek kciuka</string>
<string name="title_mCollarRight">Kołnierz</string>
<string name="title_mCollarRight">Obojczyk</string>
<string name="title_mShoulderRight">Całe ramię</string>
<string name="title_mElbowRight">Przedramię</string>
<string name="title_mWristRight">Nadgarstek</string>
@ -110,12 +111,12 @@
<string name="title_mWing3Right">Prawo 3</string>
<string name="title_mWing4Right">Prawo 4</string>
<string name="title_mWing4FanRight">Prawy wachlarz</string>
<string name="title_mHipRight">Prawe biodro</string>
<string name="title_mHipRight">Prawa cała noga</string>
<string name="title_mKneeRight">Prawe kolano</string>
<string name="title_mAnkleRight">Prawa kostka</string>
<string name="title_mFootRight">Prawa stopa</string>
<string name="title_mToeRight">Prawy paluch</string>
<string name="title_mHipLeft">Lewe biodro</string>
<string name="title_mHipLeft">Lewa cała noga</string>
<string name="title_mKneeLeft">Lewe kolano</string>
<string name="title_mAnkleLeft">Lewa kostka</string>
<string name="title_mFootLeft">Lewa stopa</string>
@ -140,13 +141,12 @@
<string name="title_BELLY">Brzuch</string>
<string name="title_LEFT_PEC">Lewa pierś</string>
<string name="title_RIGHT_PEC">Prawa pierś</string>
<string name="title_mFaceEar1Left">Lewa podstawa</string>
<string name="title_mFaceEar1Right">Prawa podstawa</string>
<string name="title_mFaceEar2Left">Lewy czubek</string>
<string name="title_mFaceEar2Right">Prawy czubek</string>
<layout_stack name="poser_stack">
<layout_panel name="regular_controls_layout">
<panel name="avatarSelection_panel">
<scroll_list tool_tip="Wybierz awatara lub animesz, który chcesz animować." name="avatarSelection_scroll">
<scroll_list.columns label="Wybierz kogoś..." name="name" />
</scroll_list>
</panel>
<panel name="joints_parent_panel">
<tab_container name="joints_tabs">
<panel title="Ruch" name="positionRotation_panel">
@ -179,6 +179,11 @@
</scroll_list>
</panel>
<tab_container title="Dłonie" name="hands_tabs">
<panel title="Reguluj" name="hands_joints_panel">
<scroll_list name="hand_joints_scroll">
<scroll_list.columns label="Część ciała" name="joint" />
</scroll_list>
</panel>
<panel title="Ustawienia" name="hands_presets_panel">
<scroll_list name="hand_presets_scroll">
<scroll_list.columns label="Ustawienie" name="name" />
@ -186,11 +191,6 @@
<button label="Ustaw: Lewa" name="button_loadHandPoseLeft" tool_tip="Kliknij dwukrotnie, aby ustawić lewą rękę na wybranym ustawieniu" />
<button label="Ustaw: Prawa" name="button_loadHandPoseRight" tool_tip="Kliknij dwukrotnie, aby ustawić prawą rękę na wybranym ustawieniu" />
</panel>
<panel title="Reguluj" name="hands_joints_panel">
<scroll_list name="hand_joints_scroll">
<scroll_list.columns label="Część ciała" name="joint" />
</scroll_list>
</panel>
</tab_container>
<panel title="Różne" name="misc_joints_panel">
<scroll_list name="misc_joints_scroll">
@ -202,6 +202,19 @@
<scroll_list.columns label="Fizyka" name="joint" />
</scroll_list>
</panel>
<panel name="avatarSelection_panel">
<scroll_list tool_tip="Wybierz awatara lub animesz, który chcesz animować." name="avatarSelection_scroll">
<scroll_list.columns label="Wybierz kogoś..." name="name" />
</scroll_list>
<button name="refresh_avatars" tool_tip="Odśwież listę awatarów i animeszy" />
<button label="Zacznij pozować" label_selected="Przestań pozować" tool_tip="Rozpocznij pozowanie wybranego awatara lub animesza, jeśli masz na to prawa" name="start_stop_posing_button" />
<button label="Ustaw na T-Pozę" name="set_t_pose_button" tool_tip="Kliknij dwukrotnie, aby ustawić wybrany awatar w pozycji 'T'." />
</panel>
<panel title="Inne" name="settings_panel">
<text name="trackpad_sensitivity_label">Czułość trackpada:</text>
<slider name="trackpad_sensitivity_slider" tool_tip="Dostosowuje czułość trackballa / kółka" />
<check_box name="stop_posing_on_close_checkbox" label="Stop pozy po zamknięciu" tool_tip="Brak zatrzymywania pozy może być pomocny, jeśli nie chcesz jej przypadkowo stracić." />
</panel>
</tab_container>
</panel>
<panel name="trackball_panel">
@ -236,17 +249,15 @@
</layout_panel>
<layout_panel name="button_controls_layout">
<panel name="button_controls_panel">
<button name="refresh_avatars" tool_tip="Odśwież listę awatarów i animeszy" />
<button label="Zacznij pozować" label_selected="Przestań pozować" tool_tip="Rozpocznij pozowanie wybranego awatara lub animesza, jeśli masz na to prawa" name="start_stop_posing_button" />
<button name="toggleAdvancedPanel" tool_tip="Przełącz obszar ustawień zaawansowanych" />
<button name="FlipPose_avatar" tool_tip="Przerzuć całą pozę na lewo/prawo" />
<button name="FlipJoint_avatar" tool_tip="Odbij lustrzanie wybrane części ciała w lewo/prawo" />
<button label="Złap" name="button_RecaptureParts" tool_tip="Jeśli wybrane części ciała są WYŁĄCZONE, to ta opcja ponownie przechwytuje to, co te części ciała robią teraz" />
<button label="Złap" name="button_RecaptureParts" tool_tip="Jeśli wybrane części ciała są WYŁĄCZONE, to ta opcja ponownie przechwytuje to, co te części ciała robią teraz. Ten przycisk zostanie wyłączony, jeśli rozpoczniesz od T-pozy." />
<button label="Wł/Wył część" name="toggle_PosingSelectedBones" tool_tip="Włącz lub wyłącz Pozer dla wybranych części ciała. Po wyłączeniu ta część ciała animuje się jak zwykle (jak z AO lub z kulką itp.)" />
<button label="Moje pozy" name="toggleLoadSavePanel" tool_tip="Wczytaj, zapisz i zarządzaj pozami, które tworzysz" />
<button tool_tip="Zarządzaj katalogiem poz" name="open_poseDir_button" />
<menu_button label="Wczytaj pozę" tool_tip="Wczytaj aktualnie wybraną pozę." name="load_poses_button" />
<button label="Zapisz pozę" tool_tip="Zapisz bieżącą pozę." name="save_poses_button" />
<button label="Zapis różnic" tool_tip="Zapisz Twoje zmiany w istniejącej Pozie. Zacznij od T-Pozy, aby zapisać nową pracę." name="save_poses_button" />
</panel>
</layout_panel>
<layout_panel name="advanced_controls_layout">
@ -258,21 +269,18 @@
<slider label="Pozycja Z:" name="Advanced_Position_Z" />
<button label="Cofnij zmianę pozycji" name="undo_position_change" tool_tip="Cofnij ostatnią zmianę pozycji" />
<button label="Ponów pozycję" name="redo_position_change" tool_tip="Ponownie wykonaj ostatnią zmianę pozycji" />
<button label="Reset pozycji" name="undo_position_change" tool_tip="Kliknij dwukrotnie, aby przywrócić pierwotną pozycję" />
<button label="Reset pozycji" name="reset_positions" tool_tip="Kliknij dwukrotnie, aby przywrócić pierwotną pozycję" />
</panel>
<panel title="Skala części ciała" name="scale_panel">
<slider label="Skala X:" name="Advanced_Scale_X" />
<slider label="Skala Y:" name="Advanced_Scale_Y" />
<slider label="Skala Z:" name="Advanced_Scale_Z" />
<button label="Cofnij zmianę skali" name="undo_position_change" tool_tip="Cofnij ostatnią zmianę skali" />
<button label="Cofnij zmianę skali" name="undo_scale_change" tool_tip="Cofnij ostatnią zmianę skali" />
<button label="Ponów skalę" name="redo_scale_change" tool_tip="Ponownie wykonaj ostatnią zmianę skali" />
<button label="Reset skali" name="undo_scale_change" tool_tip="Kliknij dwukrotnie, aby przywrócić pierwotną skalę" />
<button label="Reset skali" name="reset_scales" tool_tip="Kliknij dwukrotnie, aby przywrócić pierwotną skalę" />
</panel>
</tab_container>
</panel>
<panel name="save_file_options">
<slider label="Czułość" name="trackpad_sensitivity_slider" tool_tip="Dostosowuje czułość trackballa / kółka" />
</panel>
</layout_panel>
</layout_stack>
</floater>

View File

@ -66,6 +66,7 @@
<menu_item_call label="Zdjęcie 360°" name="Capture 360"/>
<menu_item_call label="Śledzenie transakcji" name="money_tracker"/>
<menu_item_call label="Podest do pozowania" name="pose_stand"/>
<menu_item_check label="Pozer" name="Poser" />
<menu_item_call label="Ustawienia" name="Preferences"/>
<menu_item_call label="Przyciski na paskach" name="Toolbar Buttons"/>
<menu_item_check label="Pokaż dodatki HUD" name="Show HUD Attachments"/>
@ -99,7 +100,6 @@
<menu label="Świat" name="World">
<menu_item_call label="Synchronizuj animacje" name="Resync Animations"/>
<menu_item_call label="Osoby w pobliżu" name="Active Speakers"/>
<menu_item_check label="Pozer" name="Poser" />
<menu_item_check label="Radar" name="Radar"/>
<menu_item_call label="Historia teleportacji" name="Teleport History"/>
<menu_item_check label="Landmarki" name="Places"/>

View File

@ -5470,4 +5470,14 @@ Zresetować adres URL do domyślnego?
<button name="use_as_is" text="Zostaw jak jest" />
</form>
</notification>
<notification name="WhitelistReminder">
Aby poprawić wydajność aplikacji [APP_NAME] - dodaj ją do listy wyjątków.
Niektóre programy antywirusowe mogą błędnie blokować części [APP_NAME]a, spowalniając go i powodując nieprawidłowe działanie niektórych funkcji. Aby zapobiec tym problemom, zdecydowanie zalecamy dodanie [APP_NAME]a do białej listy (lub listy wykluczeń) programu antywirusowego. Zapewni to płynne działanie przeglądarki.
Aby uzyskać szczegółowe instrukcje dotyczące umieszczania [APP_NAME]a na białej liście - w tym listę plików i folderów do wykluczenia - zapoznaj się z naszym przewodnikiem:
https://wiki.firestormviewer.org/antivirus_whitelisting
<usetemplate ignoretext="Pokaż przypomnienie o dodaniu do białej listy podczas uruchamiania" name="okignore" />
</notification>
</notifications>

View File

@ -40,7 +40,14 @@
<text name="label2" value="Konto:" />
<layout_stack name="badgepositioner">
<layout_panel name="badge_layout">
<icon name="badge_icon" tool_tip="Pracownik Linden Lab" />
<layout_stack name="badge_stacker">
<layout_panel name="top_badge_layout">
<icon name="top_badge_icon" tool_tip="Pracownik Linden Lab" />
</layout_panel>
<layout_panel name="bottom_badge_layout">
<icon name="bottom_badge_icon" tool_tip="Pracownik Linden Lab" />
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</layout_panel>

View File

@ -249,15 +249,15 @@
<slider label="Позиция Z:" name="Advanced_Position_Z"/>
<button label="Отмена" name="undo_position_change" tool_tip="Отменить последнее изменение позиции"/>
<button label="Повторить" name="redo_position_change" tool_tip="Повторить последнее изменение позиции"/>
<button label="Сброс" name="undo_position_change" tool_tip="Дважды щелкните, чтобы вернуть исходное положение."/>
<button label="Сброс" name="reset_positions" tool_tip="Дважды щелкните, чтобы вернуть исходное положение."/>
</panel>
<panel title="Часть тела Размер" name="scale_panel">
<slider label="Размер X:" name="Advanced_Scale_X"/>
<slider label="Размер Y:" name="Advanced_Scale_Y"/>
<slider label="Размер Z:" name="Advanced_Scale_Z"/>
<button label="Отмена" name="undo_position_change" tool_tip="Отменить последнее изменение размера"/>
<button label="Отмена" name="undo_scale_change" tool_tip="Отменить последнее изменение размера"/>
<button label="Повторить" name="redo_scale_change" tool_tip="Повторить последнее изменение размера"/>
<button label="Сброс" name="undo_scale_change" tool_tip="Дважды щелкните, чтобы сбросить размер до исходного."/>
<button label="Сброс" name="reset_scales" tool_tip="Дважды щелкните, чтобы сбросить размер до исходного."/>
</panel>
</tab_container>
</panel>

View File

@ -72,6 +72,7 @@
<menu_item_call label="360° Снимок" name="Capture 360"/>
<menu_item_call label="Отслеживание денег" name="money_tracker"/>
<menu_item_call label="Поза редактирования..." name="pose_stand"/>
<menu_item_check label="Позер" name="Poser"/>
<menu_item_call label="Настройки" name="Preferences"/>
<menu_item_call label="Кнопки панели инструментов" name="Toolbar Buttons"/>
@ -114,7 +115,6 @@
<menu_item_call label="Синхронизация анимации" name="Resync Animations"/>
<menu_item_call label="Ближайшие аватары" name="Active Speakers"/>
<menu_item_check label="Радар" name="Radar"/>
<menu_item_check label="Позер" name="Poser"/>
<menu_item_call label="История телепортаций" name="Teleport History"/>
<menu_item_check label="Места" name="Places"/>
<menu_item_call label="Пункты" name="Destinations"/>

View File

@ -5623,4 +5623,16 @@ https://wiki.firestormviewer.org/fs_voice
</form>
</notification>
<!-- </FS:Zi> -->
<notification name="WhitelistReminder">
Чтобы улучшить производительность [APP_NAME], пожалуйста, внесите его в белый список.
Некоторые антивирусные программы могут ошибочно блокировать части [APP_NAME], снижая его производительность и вызывая сбои в работе некоторых функций. Чтобы предотвратить подобные проблемы, мы настоятельно рекомендуем добавить [APP_NAME] в белый список (или список исключений) вашей антивирусной программы. Это обеспечит бесперебойную работу программы просмотра.
Для получения подробных инструкций о том, как внести [APP_NAME] в белый список, включая список файлов и папок, которые необходимо исключить, ознакомьтесь с нашим руководством:
https://wiki.firestormviewer.org/antivirus_whitelisting
<usetemplate ignoretext="Показывать напоминание о включении в белый список при запуске" name="okignore" yestext="OK"/>
</notification>
</notifications>

View File

@ -40,7 +40,14 @@
<text name="label2" value="Аккаунт:"/>
<layout_stack name="badgepositioner">
<layout_panel name="badge_layout">
<icon name="badge_icon" tool_tip="Сотрудник лаборатории Линден"/>
<layout_stack name="badge_stacker">
<layout_panel name="top_badge_layout">
<icon name="top_badge_icon" tool_tip="Сотрудник лаборатории Линден"/>
</layout_panel>
<layout_panel name="bottom_badge_layout">
<icon name="bottom_badge_icon" tool_tip="Сотрудник лаборатории Линден"/>
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
<text name="partner_label" value="Партнер:"/>

View File

@ -1,13 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="edit_eyes_panel">
<panel name="avatar_eye_color_panel">
<texture_picker label="Iride" name="Iris" tool_tip="Clicca per selezionare un'immagine"/>
<texture_picker label="Iride" name="Iris" tool_tip="Clicca per scegliere una texture"/>
</panel>
<panel name="eyes_main_tab_holder" title="Occhi">
<panel name="eyes_main_tab_holder">
<accordion name="eyes_main_accordion">
<accordion_tab name="eyes_main_tab" title="Occhi">
<scrolling_panel_list name="eyes_main_param_list"/>
</accordion_tab>
<accordion_tab name="eyes_main_tab" title="Occhi"/>
</accordion>
</panel>
</panel>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="edit_gloves_panel">
<panel name="avatar_gloves_color_panel">
<texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per selezionare un'immagine"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per selezionare il colore" width="70"/>
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="gloves_main_tab_holder" title="Guanti">
<panel name="gloves_main_tab_holder">
<accordion name="gloves_main_accordion">
<accordion_tab name="gloves_main_tab" title="Guanti"/>
</accordion>

View File

@ -1,9 +1,14 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="edit_hair_panel">
<panel name="avatar_hair_color_panel">
<texture_picker label="Texture" name="Texture" tool_tip="Clicca per selezionare un'immagine"/>
<texture_picker label="Texture" name="Texture" tool_tip="Clicca per scegliere una texture"/>
</panel>
<tab_container name="wearable_accordion">
<accordion name="wearable_accordion">
<panel name="hair_color_tab_holder" title="Colore">
<accordion name="hair_color_accordion">
<accordion_tab name="hair_color_tab" title="Colore"/>
</accordion>
</panel>
<panel name="hair_style_tab_holder" title="Stile">
<accordion name="hair_style_accordion">
<accordion_tab name="hair_style_tab" title="Stile"/>
@ -14,5 +19,10 @@
<accordion_tab name="hair_eyebrows_tab" title="Sopracciglia"/>
</accordion>
</panel>
</tab_container>
<panel name="hair_facial_tab_holder" title="Viso">
<accordion name="hair_facial_accordion">
<accordion_tab name="hair_facial_tab" title="Viso"/>
</accordion>
</panel>
</accordion>
</panel>

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="edit_jacket_panel">
<panel name="avatar_jacket_color_panel">
<texture_picker label="Tessuto sup" name="Upper Fabric" tool_tip="Clicca per selezionare un'immagine"/>
<texture_picker label="Tessuto inf" name="Lower Fabric" tool_tip="Clicca per selezionare un'immagine"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per selezionare il colore" width="70"/>
<texture_picker label="Parte sopra" name="Upper Fabric" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Parte sotto" name="Lower Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="jacket_main_tab_holder" title="Giacca">
<panel name="jacket_main_tab_holder">
<accordion name="jacket_main_accordion">
<accordion_tab name="jacket_main_tab" title="Giacca"/>
</accordion>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="edit_pants_panel">
<panel name="avatar_pants_color_panel">
<texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per selezionare un'immagine"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per selezionare il colore" width="70"/>
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="pants_main_tab_holder" title="Pantaloni">
<panel name="pants_main_tab_holder">
<accordion name="pants_main_accordion">
<accordion_tab name="pants_main_tab" title="Pantaloni"/>
</accordion>

View File

@ -1,9 +1,14 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="edit_shape_panel">
<string name="meters">Metri</string>
<string name="feet">Piedi</string>
<string name="height">Altezza:</string>
<text name="avatar_height"/>
<string name="meters">
Metri
</string>
<string name="feet">
Piedi
</string>
<string name="height">
Altezza:
</string>
<tab_container name="wearable_accordion">
<panel name="shape_body_tab_holder" title="Corpo">
<accordion name="shape_body_accordion">
@ -40,6 +45,11 @@
<accordion_tab name="shape_chin_tab" title="Mento"/>
</accordion>
</panel>
<panel name="shape_torso_tab_holder" title="Torso">
<accordion name="shape_torso_accordion">
<accordion_tab name="shape_torso_tab" title="Torso"/>
</accordion>
</panel>
<panel name="shape_legs_tab_holder" title="Gambe">
<accordion name="shape_legs_accordion">
<accordion_tab name="shape_legs_tab" title="Gambe"/>

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="edit_shirt_panel">
<panel name="avatar_shirt_color_panel">
<texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per selezionare un'immagine"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per selezionare il colore" width="70"/>
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="shirt_main_tab_holder" title="Maglietta">
<panel name="shirt_main_tab_holder">
<accordion name="shirt_main_accordion">
<accordion_tab name="shirt_main_tab" title="Maglietta"/>
<accordion_tab name="shirt_main_tab" title="Camicia"/>
</accordion>
</panel>
</panel>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="edit_shoes_panel">
<panel name="avatar_shoes_color_panel">
<texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per selezionare un'immagine"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per selezionare il colore" width="70"/>
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="shoes_main_tab_holder" title="Scarpe">
<panel name="shoes_main_tab_holder">
<accordion name="shoes_main_accordion">
<accordion_tab name="shoes_main_tab" title="Scarpe"/>
</accordion>

View File

@ -1,19 +1,19 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="edit_skin_panel">
<panel name="avatar_skin_color_panel">
<texture_picker label="Tex Testa" name="Head" tool_tip="Clicca per selezionare un'immagine" width="76"/>
<texture_picker label="Tex Superiore" name="Upper Body" tool_tip="Clicca per selezionare un'immagine" width="76"/>
<texture_picker label="Tex Inferiore" name="Lower Body" tool_tip="Clicca per selezionare un'immagine" width="76"/>
<texture_picker label="Testa" name="Head" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Parte sopra" name="Upper Body" tool_tip="Clicca per scegliere una texture"/>
<texture_picker label="Parte sotto" name="Lower Body" tool_tip="Clicca per scegliere una texture"/>
</panel>
<tab_container name="wearable_accordion">
<panel name="skin_color_tab_holder" title="Colore della pelle">
<panel name="skin_color_tab_holder" title="Colore pelle">
<accordion name="skin_color_accordion">
<accordion_tab name="skin_color_tab" title="Colore della pelle"/>
<accordion_tab name="skin_color_tab" title="Colore pelle"/>
</accordion>
</panel>
<panel name="skin_face_tab_holder" title="Dettaglio del faccia">
<panel name="skin_face_tab_holder" title="Dettagli viso">
<accordion name="skin_face_accordion">
<accordion_tab name="skin_face_tab" title="Dettaglio del faccia"/>
<accordion_tab name="skin_face_tab" title="Dettagli viso"/>
</accordion>
</panel>
<panel name="skin_makeup_holder" title="Trucco">
@ -21,9 +21,9 @@
<accordion_tab name="skin_makeup_tab" title="Trucco"/>
</accordion>
</panel>
<panel name="skin_body_holder" title="Dettaglio del corpo">
<panel name="skin_body_holder" title="Dettagli corpo">
<accordion name="skin_body_accordion">
<accordion_tab title="Dettaglio del corpo"/>
<accordion_tab name="skin_body_tab" title="Dettagli corpo"/>
</accordion>
</panel>
</tab_container>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="edit_skirt_panel">
<panel name="avatar_skirt_color_panel">
<texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per selezionare un'immagine"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per selezionare il colore" width="70"/>
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="skirt_main_tab_holder" title="Gonna">
<panel name="skirt_main_tab_holder">
<accordion name="skirt_main_accordion">
<accordion_tab name="skirt_main_tab" title="Gonna"/>
</accordion>

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="edit_socks_panel">
<panel name="avatar_socks_color_panel">
<texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per selezionare un'immagine"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per selezionare il colore"/>
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="socks_main_tab_holder" title="Calzini">
<panel name="socks_main_tab_holder">
<accordion name="socks_main_accordion">
<accordion_tab name="socks_main_tab" title="Calzini"/>
<accordion_tab name="socks_main_tab" title="Calze"/>
</accordion>
</panel>
</panel>

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="edit_underpants_panel">
<panel name="avatar_underpants_color_panel">
<texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per selezionare un'immagine"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per selezionare il colore" width="70"/>
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="underpants_main_tab_holder" title="Slip/Boxer">
<panel name="underpants_main_tab_holder">
<accordion name="underpants_main_accordion">
<accordion_tab name="underpants_main_tab" title="Slip/Boxer"/>
<accordion_tab name="underpants_main_tab" title="Slip"/>
</accordion>
</panel>
</panel>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="edit_undershirt_panel">
<panel name="avatar_undershirt_color_panel">
<texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per selezionare un'immagine"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per selezionare il colore" width="70"/>
<texture_picker label="Texture" name="Fabric" tool_tip="Clicca per scegliere una texture"/>
<color_swatch label="Colore" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
</panel>
<panel name="undershirt_main_tab_holder" title="Canottiera">
<panel name="undershirt_main_tab_holder">
<accordion name="undershirt_main_accordion">
<accordion_tab name="undershirt_main_tab" title="Canottiera"/>
</accordion>

View File

@ -434,21 +434,60 @@
follows="top|right"
layout="topleft"
width="24"
height="20"
height="44"
top_delta="0"
right="-1"
visible="false">
<icon
name="badge_icon"
image_name=""
tool_tip=""
layout="topleft"
follows="left|top"
top="2"
left="0"
height="18"
width="18"/>
<layout_stack
name="badge_stacker"
animate="false"
top="2"
left="0"
width="22"
height="44"
follows="top|left|right"
layout="topleft"
orientation="vertical">
<layout_panel
name="top_badge_layout"
follows="all"
layout="topleft"
width="22"
visible="false"
auto_resize="true"
user_resize="false">
<icon
name="top_badge_icon"
image_name="Profile_Badge_Linden"
tool_tip="Linden Lab Employee"
layout="topleft"
follows="left|top"
top="2"
left="0"
height="18"
width="18"/>
</layout_panel>
<layout_panel
name="bottom_badge_layout"
follows="all"
layout="topleft"
width="22"
visible="false"
auto_resize="true"
user_resize="false">
<icon
name="bottom_badge_icon"
image_name="Profile_Badge_Linden"
tool_tip="Linden Lab Employee"
layout="topleft"
follows="left|top"
top="2"
left="0"
height="18"
width="18"/>
</layout_panel>
</layout_stack>
</panel>

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="floater_voice_controls" title="Controlli Voce">
<string name="title_nearby">
Voce
</string>
<string name="title_group">
Chiamata di gruppo con [GROUP]
</string>
<string name="title_adhoc">
Chiamata in conferenza
</string>
<string name="title_peer_2_peer">
Chiamata con [NAME]
</string>
<string name="no_one_near">
Nessuno nei dintorni ha attivato la voce
</string>
<layout_stack name="my_call_stack">
<layout_panel name="leave_call_panel">
<layout_stack name="voice_effect_and_leave_call_stack">
<layout_panel name="leave_call_btn_panel">
<button label="Chiudi chiamata" name="leave_call_btn"/>
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
<slider name="volume_slider" tool_tip="Volume voce" />
</floater>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<floater name="floater_people" title="Persone">
<panel_container name="main_panel">
<panel name="panel_group_info_sidetray" label="Profilo del gruppo"/>
<panel name="panel_block_list_sidetray" label="Residenti e oggetti bloccati"/>
<panel name="panel_group_creation_sidetray" label="Crea un gruppo"/>
</panel_container>
</floater>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="block_list_panel">
<block_list name="blocked" tool_tip="Lista dei residenti bloccati" />
<text name="block_limit">
Lista bloccati: [COUNT] (max [LIMIT])
</text>
<layout_stack name="block_list_sidetray_main">
<layout_panel name="back_button_container">
<button tool_tip="Torna a Persone" name="back"/>
</layout_panel>
<layout_panel name="block_list_blocklaypanels">
<layout_stack name="block_list_blocklaystack">
<layout_panel name="block_panels_btnsort">
<menu_button label="Ordina..." name="view_btn" tool_tip="Opzioni di ordinamento" />
</layout_panel>
<layout_panel name="block_panels_btnpersonobject">
<menu_button label="Blocca..." name="plus_btn" tool_tip="Seleziona un residente o un oggetto da bloccare" />
</layout_panel>
<layout_panel name="block_panels_btnunblock">
<button label="Sblocca" name="unblock_btn" tool_tip="Rimuovi residente o oggetto dalla lista Bloccati" />
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</panel>

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="block_list_panel">
<fs_scroll_list name="block_list">
<fs_scroll_list.columns name="item_name" label="Nome" />
<fs_scroll_list.columns name="item_type" label="Tipo" />
</fs_scroll_list>
<text name="block_limit">
Bloccati: [COUNT] (max [LIMIT])
</text>
<layout_stack name="block_list_sidetray_main">
<layout_panel name="back_button_container">
<button tool_tip="Torna a Persone" name="back" />
</layout_panel>
<layout_panel name="block_list_blocklaypanels">
<layout_stack name="block_list_blocklaystack">
<layout_panel name="block_panels_btnsort">
<menu_button label="Ordina..." name="view_btn" tool_tip="Opzioni di ordinamento" />
</layout_panel>
<layout_panel name="block_panels_btnpersonobject">
<menu_button label="Blocca..." name="plus_btn" tool_tip="Seleziona un residente o un oggetto da bloccare" />
</layout_panel>
<layout_panel name="block_panels_btnunblock">
<button label="Sblocca" name="unblock_btn" tool_tip="Rimuovi residente o oggetto dalla lista Bloccati" />
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</panel>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="panel_radar">
<string name="TypingColumnIcon" value="radarbox_p"/>
<string name="MiniMapToolTipMsg" value="[REGION] (Doppio clic per aprire la mappa. Maiusc + Sinistro del mouse per trascinare e spostare)"/>
<string name="AltMiniMapToolTipMsg" value="[REGION] (Doppio clic per il teleport. Maiusc + Sinistro del mouse per trascinare e spostare)"/>
<string name="avatar_name_count" value="Nome [[TOTAL]/[IN_REGION]/[IN_CHAT_RANGE]]"/>
<panel name="nearby_panel">
<layout_stack name="radar_ls">
<layout_panel name="radarlayout">
<radar_list name="radar_list">
<radar_list.columns label="Nome" name="name" tool_tip="[TOTAL] avatar, [IN_REGION] nella stessa regione, [IN_CHAT_RANGE] nel raggio della chat"/>
<radar_list.columns name="voice_level" tool_tip="Usa la voce"/>
<radar_list.columns name="in_region" tool_tip="È nella stessa regione (verde) o nella stessa parcella (verde-giallo)"/>
<radar_list.columns name="typing_status" tool_tip="Attualmente sta scrivendo"/>
<radar_list.columns name="sitting_status" tool_tip="Attualmente è seduto"/>
<radar_list.columns name="flags" tool_tip="Stato delle info di pagamento"/>
<radar_list.columns name="has_notes" tool_tip="L'avatar ha delle note sul profilo"/>
<radar_list.columns label="Età" name="age"/>
<radar_list.columns label="Tempo" name="seen"/>
<radar_list.columns label="Distanza" name="range"/>
</radar_list>
</layout_panel>
</layout_stack>
</panel>
</panel>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_group_notify">
<text name="group_notice" value="Avviso di Gruppo"/>
<text name="title" value="Mittente / Gruppo"/>
<text name="attachment_label" value="Allegato:" />
<panel name="attachment_container">
<text name="attachment" value="Allegato" />
</panel>
<button label="Avvisi di gruppo" name="btn_notices"/>
<button label="Chat di gruppo" name="btn_groupchat" />
</panel>

View File

@ -1,159 +1,132 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel label="Cose" name="main inventory panel" width="330">
<panel.string name="Itemcount">
</panel.string>
<panel label="Cose" name="main inventory panel">
<panel.string name="ItemcountFetching">
Inventario ([ITEM_COUNT] Recupero oggetti in corso... [FILTER]
Recupero di [ITEM_COUNT] elementi... [FILTER]
</panel.string>
<panel.string name="ItemcountCompleted">
[[ITEM_COUNT] Oggetti [FILTER]
[ITEM_COUNT] elementi [FILTER]
</panel.string>
<panel.string name="ItemcountUnknown">
Oggetti:
</panel.string>
<menu_bar name="inventory_menu_bar" width="200">
<menu label="Inventario" tear_off="true" name="inventory_inventory_menu">
<menu_item_call name="inventory_open" label="Apri">
</menu_item_call>
<menu_item_call name="inventory_share" label="Condividi">
</menu_item_call>
<menu_item_separator />
<menu_item_call name="inventory_new_window" label="Nuova finestra Inventario">
</menu_item_call>
<menu_item_separator />
<menu_item_separator />
<menu_item_call name="add_inv_toggle" label="Aggiungi oggetto con doppio click">
</menu_item_call>
<menu_item_separator />
<menu_item_call name="inventory_show_filters" label="Mostra Filtri">
</menu_item_call>
<menu_item_call name="inventory_reset_filters" label="Resetta Filtri">
</menu_item_call>
<menu_item_call name="inventory_close_all_folders" label="Chiudi tutte le cartelle">
</menu_item_call>
<menu_item_separator />
<menu_item_call name="inventory_empty_trash" label="Svuota Cestino">
</menu_item_call>
</menu>
<menu label="Crea" tear_off="true" name="inventory_create_menu">
<menu_item_call name="inventory_new_folder" label="Nuova Cartella">
</menu_item_call>
<menu_item_call name="inventory_new_script" label="Nuovo Script">
</menu_item_call>
<menu_item_call name="inventory_new_note" label="Nuova Notecard">
</menu_item_call>
<menu_item_call name="inventory_new_gesture" label="Nuova Gesture">
</menu_item_call>
<menu name="inventory_new_clothes" label="Nuovo Indumento">
<menu_item_call name="inventory_new_shirt" label="Nuova Maglietta">
</menu_item_call>
<menu_item_call name="inventory_new_pants" label="Nuovi Pantaloni">
</menu_item_call>
<menu_item_call name="inventory_new_shoes" label="Nuove Scarpe">
</menu_item_call>
<menu_item_call name="inventory_new_socks" label="Nuovi Calzini">
</menu_item_call>
<menu_item_call name="inventory_new_jacket" label="Nuova Giacca">
</menu_item_call>
<menu_item_call name="inventory_new_skirt" label="Nuova Gonna">
</menu_item_call>
<menu_item_call name="inventory_new_gloves" label="Nuovi Guanti">
</menu_item_call>
<menu_item_call name="inventory_new_undershirt" label="Nuova Canottiera">
</menu_item_call>
<menu_item_call name="inventory_new_underpants" label="Nuove Mutande">
</menu_item_call>
<menu_item_call name="inventory_new_tattoo" label="Nuovi Tattoo">
</menu_item_call>
<menu_item_call name="inventory_new_alpha" label="Nuova Alpha">
</menu_item_call>
<menu_item_call name="inventory_new_physics" label="Nuovo Physics">
</menu_item_call>
</menu>
<menu name="inventory_new_body_parts" label="Nuove parti del corpo">
<menu_item_call name="inventory_new_shape" label="Nuova Shape">
</menu_item_call>
<menu_item_call name="inventory_new_skin" label="Nuova Skin">
</menu_item_call>
<menu_item_call name="inventory_new_hair" label="Nuovi Capelli">
</menu_item_call>
<menu_item_call name="inventory_new_eyes" label="Nuovi occhi">
</menu_item_call>
Recuperati [ITEM_COUNT] elementi [FILTER]
</panel.string>
<panel.string name="inventory_title">
Inventario
</panel.string>
<menu_bar name="inventory_menu_bar">
<menu label="Inventario" name="inventory_inventory_menu">
<menu_item_call name="inventory_open" label="Apri" />
<menu_item_call name="inventory_share" label="Condividi" />
<menu_item_call name="replace_links" label="Sostituisci link" />
<menu_item_call name="inventory_new_window" label="Nuova finestra" />
<menu_item_check name="Protected Folders" label="Cartelle Protette" />
<menu_item_check label="Impostazioni Inventario..." name="inv_settings" />
<menu_item_check label="Visualizzazione Elenco" name="list_view" />
<menu_item_check label="Visualizzazione Galleria" name="gallery_view" />
<menu_item_check label="Visualizzazione Combinata" name="combination_view" />
<menu_item_check name="add_inv_toggle" label="Aggiungi oggetto con il doppio click" />
<menu_item_check name="add_invclothing_toggle" label="Aggiungi vestito con il doppio click" />
<menu_item_call name="inventory_show_filters" label="Mostra filtri" />
<menu_item_call name="inventory_reset_filters" label="Ripristina filtri" />
<menu_item_call name="inventory_close_all_folders" label="Chiudi tutte le cartelle" />
<menu_item_call name="inventory_empty_trash" label="Svuota cestino" />
</menu>
<menu label="Crea" name="inventory_create_menu">
<menu_item_call name="inventory_new_folder" label="Nuova cartella" />
<menu_item_call name="inventory_new_script" label="Nuovo script" />
<menu_item_call name="inventory_new_note" label="Nuova annotazione" />
<menu_item_call name="inventory_new_gesture" label="Nuovo gesto" />
<menu_item_call name="inventory_new_material" label="Nuovo materiale" />
<menu name="inventory_new_clothes" label="Nuovo indumento">
<menu_item_call name="inventory_new_shirt" label="Nuova camicia" />
<menu_item_call name="inventory_new_pants" label="Nuovi pantaloni" />
<menu_item_call name="inventory_new_shoes" label="Nuove scarpe" />
<menu_item_call name="inventory_new_socks" label="Nuove calze" />
<menu_item_call name="inventory_new_jacket" label="Nuova giacca" />
<menu_item_call name="inventory_new_skirt" label="Nuova gonna" />
<menu_item_call name="inventory_new_gloves" label="Nuovi guanti" />
<menu_item_call name="inventory_new_undershirt" label="Nuova canottiera" />
<menu_item_call name="inventory_new_underpants" label="Nuovo slip" />
<menu_item_call name="inventory_new_tattoo" label="Nuovo tatuaggio" />
<menu_item_call name="inventory_new_universal" label="Nuovo universale" />
<menu_item_call name="inventory_new_alpha" label="Nuovo alfa" />
<menu_item_call name="inventory_new_physics" label="Nuova fisica" />
</menu>
<menu name="inventory_new_body_parts" label="Nuova parte del corpo">
<menu_item_call name="inventory_new_shape" label="Nuovo corpo" />
<menu_item_call name="inventory_new_skin" label="Nuova pelle" />
<menu_item_call name="inventory_new_hair" label="Nuovi capelli" />
<menu_item_call name="inventory_new_eyes" label="Nuovi occhi" />
</menu>
<menu label="Nuovo ambiente" name="New Settings">
<menu_item_call label="Nuovo cielo" name="New Sky" />
<menu_item_call label="Nuova acqua" name="New Water" />
<menu_item_call label="Nuovo ciclo giornata" name="New Day Cycle" />
</menu>
</menu>
<menu label="Ordina" name="inventory_sort_menu">
<menu_item_check name="inventory_sort_by_name" label="Per nome" />
<menu_item_check name="inventory_sort_by_date" label="Per data" />
<menu_item_check name="inventory_sort_folders_by_name" label="Cartelle sempre per nome" />
<menu_item_check name="inventory_sort_system_on_top" label="Cartelle di sistema in alto" />
</menu>
<menu label="Cerca" name="inventory_search_menu">
<menu_item_check label="Negli abiti" name="search_outfits" />
<menu_item_check label="Nel cestino" name="search_trash" />
<menu_item_check label="Nella Biblioteca" name="search_library" />
<menu_item_check name="inventory_search_by_name" label="Per nome" />
<menu_item_check name="inventory_search_by_creator" label="Per creatore" />
<menu_item_check name="inventory_search_by_description" label="Per descrizione" />
<menu_item_check name="inventory_search_by_uuid" label="Per UUID" />
<menu_item_check name="inventory_search_by_all" label="Per tutti" />
<menu_item_check name="inventory_filter_show_links" label="Mostra i link" />
<menu_item_check name="inventory_filter_only_links" label="Mostra solo i link" />
<menu_item_check name="inventory_filter_hide_links" label="Nascondi i link" />
<menu_item_check name="inventory_filter_only_modify" label="Solo modificabili" />
<menu_item_check name="inventory_filter_only_copy" label="Solo copiabili" />
<menu_item_check name="inventory_filter_only_transfer" label="Solo trasferibili" />
<menu_item_check name="inventory_filter_coalesced_objects_only" label="Solo multi-oggetto" />
<menu_item_check name="inventory_show_partial_results" label="Mostra risultati di ricerca parziali" />
</menu>
</menu>
<menu label="Riordina" name="inventory_sort_menu" tear_off="true" top="0">
<menu_item_check name="inventory_sort_by_name" label="Per Nome">
</menu_item_check>
<menu_item_check name="inventory_sort_by_date" label="Per Data">
</menu_item_check>
<menu_item_separator />
<menu_item_check name="inventory_sort_folders_by_name" label="Le cartelle sono riordinate per nome">
</menu_item_check>
<menu_item_check name="inventory_sort_system_on_top" label="Le cartelle di sistema sono in alto">
</menu_item_check>
</menu>
<menu label="Cerca" name="inventory_search_menu" tear_off="true" top="0">
<menu_item_check name="inventory_search_by_name" label="Per Nome">
</menu_item_check>
<menu_item_check name="inventory_search_by_creator" label="Per Creatore">
</menu_item_check>
<menu_item_check name="inventory_search_by_description" label="Per Descrizione">
</menu_item_check>
<menu_item_check name="inventory_search_by_uuid" label="Per UUID">
</menu_item_check>
<menu_item_separator />
<menu_item_check name="inventory_search_by_all" label="Per Tutti">
</menu_item_check>
<menu_item_separator />
<menu_item_check name="inventory_filter_show_links" label="Mostra i Links">
</menu_item_check>
<menu_item_check name="inventory_filter_only_links" label="Mostra solo i Links">
</menu_item_check>
<menu_item_check name="inventory_filter_hide_links" label="Nascondi i Links">
</menu_item_check>
</menu>
</menu_bar>
<layout_stack name="nav_stack">
<layout_panel name="nav_buttons">
<button name="back_btn" tool_tip="Indietro" />
<button name="forward_btn" tool_tip="Avanti" />
<button name="up_btn" tool_tip="Sali di un livello" />
</layout_panel>
<layout_panel name="filter_panel">
<filter_editor label="Filtro Inventario" name="inventory search editor" right="-6" tool_tip="Scrivere una o più parole chiave, da cercare, separate da un '+'" top_pad="4">
<filter_editor.clear_button rect.height="14" rect.width="14" rect.bottom="3" />
</filter_editor>
<filter_editor label="Filtro" name="inventory search editor" tool_tip="Scrivi una o più parole da cercare, separate dal carattere &apos;+&apos;" />
<button name="view_mode_btn" tool_tip="Cambia modalità di visualizzazione" />
</layout_panel>
</layout_stack>
<button name="collapse_btn" label="Comprimi" width="65" />
<button name="expand_btn" label="Espandi" width="65" />
<text name="filter_label" value="Filtro:" width="30" />
<combo_box name="filter_combo_box" height="16" left_pad="4" follows="top|left|right" layout="topleft" right="-6" top_delta="-2">
<combo_box.item value="filter_type_all" label="Tutti i Tipi" />
<combo_box.item value="filter_separator" label="------------" enabled="false" />
<text name="filter_label" value="Filtro:" />
<combo_box name="filter_combo_box">
<combo_box.item value="filter_type_all" label="Tutti" />
<combo_box.item value="filter_type_animations" label="Animazioni" />
<combo_box.item value="filter_type_calling_cards" label="Calling Cards" />
<combo_box.item value="filter_type_clothing" label="Indumenti" />
<combo_box.item value="filter_type_gestures" label="Gesture" />
<combo_box.item value="filter_type_landmarks" label="Landmarks" />
<combo_box.item value="filter_type_notecards" label="Notecards" />
<combo_box.item value="filter_type_calling_cards" label="Biglietti da visita" />
<combo_box.item value="filter_type_clothing" label="Vestiti / Parti del corpo" />
<combo_box.item value="filter_type_gestures" label="Gesti" />
<combo_box.item value="filter_type_landmarks" label="Segnaposto" />
<combo_box.item value="filter_type_notecards" label="Annotazioni" />
<combo_box.item value="filter_type_objects" label="Oggetti" />
<combo_box.item value="filter_type_scripts" label="Script" />
<combo_box.item value="filter_type_sounds" label="Suoni" />
<combo_box.item value="filter_type_textures" label="Texture" />
<combo_box.item value="filter_type_snapshots" label="Foto" />
<combo_box.item value="filter_separator" label="------------" enabled="false" />
<combo_box.item value="filter_type_snapshots" label="Fotografie" />
<combo_box.item value="filter_type_materials" label="Materiali" />
<combo_box.item value="filter_type_settings" label="Ambienti" />
<combo_box.item value="filter_type_custom" label="Personalizzato..." />
</combo_box>
<panel name="default_inventory_panel">
<tab_container name="inventory filter tabs" width="322">
<inventory_panel label="Tutti gli elementi" name="All Items" width="288" />
<recent_inventory_panel label="Elementi recenti" name="Recent Items" width="290" />
<worn_inventory_panel label="Indossati" name="Worn Items" width="290" />
<tab_container name="inventory filter tabs">
<inventory_panel label="Tutti gli elementi" name="All Items"/>
<recent_inventory_panel label="Elementi recenti" name="Recent Items"/>
<worn_inventory_panel label="Indossati" name="Worn Items"/>
</tab_container>
</panel>
<text name="ItemcountText" >
Oggetti
<text name="ItemcountText" tool_tip="[ITEMS] oggetti, [CATEGORIES] cartelle">
Elementi
</text>
</panel>

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