Merge branch 'main' into DRTVWR-582-maint-U

# Conflicts:
#	indra/newview/llagentlistener.cpp
#	indra/newview/llcommanddispatcherlistener.cpp
#	indra/newview/llfilepicker_mac.mm
#	indra/newview/llworldmapview.cpp
master
Andrey Lihatskiy 2023-05-17 18:05:05 +03:00
commit 033b04f388
238 changed files with 20607 additions and 51525 deletions

View File

@ -611,9 +611,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>8de71c518c248d77f70f87ab5e9de732</string>
<string>5a1d52ec3981292855a179be86988a02</string>
<key>url</key>
<string>https://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/105828/925920/fmodstudio-2.02.06.575716-darwin64-575716.tar.bz2</string>
<string>https://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/112152/972159/fmodstudio-2.02.13.578928-darwin64-578928.tar.bz2</string>
</map>
<key>name</key>
<string>darwin64</string>
@ -635,9 +635,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>2eea946ee7a572b748cec0c623ade3ef</string>
<string>8594ec180b73be42d37b6f93ac59ab4a</string>
<key>url</key>
<string>https://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/105830/925932/fmodstudio-2.02.06.575716-windows-575716.tar.bz2</string>
<string>https://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/112153/972171/fmodstudio-2.02.13.578928-windows-578928.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
@ -647,16 +647,16 @@
<key>archive</key>
<map>
<key>hash</key>
<string>483d6fd5d057b0a681bffef9b8b9d927</string>
<string>46941a2610f83c353e551d300e536c54</string>
<key>url</key>
<string>https://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/105829/925931/fmodstudio-2.02.06.575716-windows64-575716.tar.bz2</string>
<string>https://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/112154/972170/fmodstudio-2.02.13.578928-windows64-578928.tar.bz2</string>
</map>
<key>name</key>
<string>windows64</string>
</map>
</map>
<key>version</key>
<string>2.02.06.575716</string>
<string>2.02.13.578928</string>
</map>
<key>fontconfig</key>
<map>

View File

@ -237,6 +237,7 @@ Ansariel Hiller
SL-15227
SL-15398
SL-18432
SL-4126
Aralara Rajal
Arare Chantilly
CHUIBUG-191
@ -287,6 +288,7 @@ Beq Janus
SL-18592
SL-18637
SL-19317
SL-19660
Beth Walcher
Bezilon Kasei
Biancaluce Robbiani

View File

@ -622,7 +622,7 @@ namespace
if (index >= mData.size())
{
mData.resize(i + 1);
mData.resize(index + 1);
}
return mData[index];

View File

@ -30,7 +30,6 @@
#include <map>
#include <string>
#include <vector>
#include <type_traits>
#include "stdtypes.h"
@ -216,21 +215,15 @@ public:
void assign(const Date&);
void assign(const URI&);
void assign(const Binary&);
// support assignment from size_t et al.
template <typename VALUE,
typename std::enable_if<std::is_integral<VALUE>::value &&
! std::is_same<VALUE, Boolean>::value,
bool>::type = true>
void assign(VALUE v) { assign(Integer(narrow(v))); }
// support assignment from F32 et al.
template <typename VALUE,
typename std::enable_if<std::is_floating_point<VALUE>::value,
bool>::type = true>
void assign(VALUE v) { assign(Real(narrow(v))); }
template <typename VALUE>
LLSD& operator=(VALUE v) { assign(v); return *this; }
LLSD& operator=(Boolean v) { assign(v); return *this; }
LLSD& operator=(Integer v) { assign(v); return *this; }
LLSD& operator=(Real v) { assign(v); return *this; }
LLSD& operator=(const String& v) { assign(v); return *this; }
LLSD& operator=(const UUID& v) { assign(v); return *this; }
LLSD& operator=(const Date& v) { assign(v); return *this; }
LLSD& operator=(const URI& v) { assign(v); return *this; }
LLSD& operator=(const Binary& v) { assign(v); return *this; }
//@}
/**
@ -292,6 +285,7 @@ public:
//@{
LLSD(const char*);
void assign(const char*);
LLSD& operator=(const char* v) { assign(v); return *this; }
//@}
/** @name Map Values */

View File

@ -121,9 +121,14 @@ U32 micro_sleep(U64 us, U32 max_yields)
U64 start = get_clock_count();
// This is kernel dependent. Currently, our kernel generates software clock
// interrupts at 250 Hz (every 4,000 microseconds).
const U64 KERNEL_SLEEP_INTERVAL_US = 4000;
const S64 KERNEL_SLEEP_INTERVAL_US = 4000;
auto num_sleep_intervals = (us - (KERNEL_SLEEP_INTERVAL_US >> 1)) / KERNEL_SLEEP_INTERVAL_US;
// Use signed arithmetic to discover whether a sleep is even necessary. If
// either 'us' or KERNEL_SLEEP_INTERVAL_US is unsigned, the compiler
// promotes the difference to unsigned. If 'us' is less than half
// KERNEL_SLEEP_INTERVAL_US, the unsigned difference will be hugely
// positive, resulting in a crazy long wait.
auto num_sleep_intervals = (S64(us) - (KERNEL_SLEEP_INTERVAL_US >> 1)) / KERNEL_SLEEP_INTERVAL_US;
if (num_sleep_intervals > 0)
{
U64 sleep_time = (num_sleep_intervals * KERNEL_SLEEP_INTERVAL_US) - (KERNEL_SLEEP_INTERVAL_US >> 1);

View File

@ -286,6 +286,19 @@ F32 LLSettingsWater::getModifiedWaterFogDensity(bool underwater) const
if (underwater && underwater_fog_mod > 0.0f)
{
underwater_fog_mod = llclamp(underwater_fog_mod, 0.0f, 10.0f);
// BUG-233797/BUG-233798 -ve underwater fog density can cause (unrecoverable) blackout.
// raising a negative number to a non-integral power results in a non-real result (which is NaN for our purposes)
// Two methods were tested, number 2 is being used:
// 1) Force the fog_mod to be integral. The effect is unlikely to be nice, but it is better than blackness.
// In this method a few of the combinations are "usable" but the water colour is effectively inverted (blue becomes yellow)
// this seems to be unlikely to be a desirable use case for the majority.
// 2) Force density to be an arbitrary non-negative (i.e. 1) when underwater and modifier is not an integer (1 was aribtrarily chosen as it gives at least some notion of fog in the transition)
// This is more restrictive, effectively forcing a density under certain conditions, but allowing the range of #1 and avoiding blackness in other cases
// at the cost of overriding the fog density.
if(fog_density < 0.0f && underwater_fog_mod != (F32)llround(underwater_fog_mod) )
{
fog_density = 1.0f;
}
fog_density = pow(fog_density, underwater_fog_mod);
}
return fog_density;

View File

@ -253,7 +253,9 @@ void LLAvatarNameCache::handleAvNameCacheSuccess(const LLSD &data, const LLSD &h
{
const LLUUID& agent_id = *it;
LL_WARNS("AvNameCache") << "LLAvatarNameResponder::result "
// If cap fails, response can contain a lot of names,
// don't spam too much
LL_DEBUGS("AvNameCache") << "LLAvatarNameResponder::result "
<< "failed id " << agent_id
<< LL_ENDL;
@ -272,7 +274,7 @@ void LLAvatarNameCache::handleAgentError(const LLUUID& agent_id)
if (existing == mCache.end())
{
// there is no existing cache entry, so make a temporary name from legacy
LL_WARNS("AvNameCache") << "LLAvatarNameCache get legacy for agent "
LL_DEBUGS("AvNameCache") << "LLAvatarNameCache get legacy for agent "
<< agent_id << LL_ENDL;
gCacheName->get(agent_id, false, // legacy compatibility
boost::bind(&LLAvatarNameCache::legacyNameFetch, _1, _2, _3));

View File

@ -1672,7 +1672,8 @@ void LLFolderView::update()
// Clear the modified setting on the filter only if the filter finished after running the filter process
// Note: if the filter count has timed out, that means the filter halted before completing the entire set of items
if (filter_object.isModified() && (!filter_object.isTimedOut()))
bool filter_modified = filter_object.isModified();
if (filter_modified && (!filter_object.isTimedOut()))
{
filter_object.clearModified();
}
@ -1706,7 +1707,7 @@ void LLFolderView::update()
BOOL filter_finished = mViewModel->contentsReady()
&& (getViewModelItem()->passedFilter()
|| ( getViewModelItem()->getLastFilterGeneration() >= filter_object.getFirstSuccessGeneration()
&& !filter_object.isModified()));
&& !filter_modified));
if (filter_finished
|| gFocusMgr.childHasKeyboardFocus(mParentPanel.get())
|| gFocusMgr.childHasMouseCapture(mParentPanel.get()))
@ -1794,13 +1795,26 @@ void LLFolderView::update()
if (mSelectedItems.size() && mNeedsScroll)
{
scrollToShowItem(mSelectedItems.back(), constraint_rect);
LLFolderViewItem* scroll_to_item = mSelectedItems.back();
scrollToShowItem(scroll_to_item, constraint_rect);
// continue scrolling until animated layout change is done
if (filter_finished
&& (!needsArrange() || !is_visible))
{
mNeedsScroll = FALSE;
}
bool selected_filter_finished = getRoot()->getViewModelItem()->getLastFilterGeneration() >= filter_object.getFirstSuccessGeneration();
if (selected_filter_finished && scroll_to_item && scroll_to_item->getViewModelItem())
{
selected_filter_finished = scroll_to_item->getViewModelItem()->getLastFilterGeneration() >= filter_object.getFirstSuccessGeneration();
}
if (filter_finished && selected_filter_finished)
{
bool needs_arrange = needsArrange() || getRoot()->needsArrange();
if (mParentFolder)
{
needs_arrange |= (bool)mParentFolder->needsArrange();
}
if (!needs_arrange || !is_visible)
{
mNeedsScroll = FALSE;
}
}
}
if (mSignalSelectCallback)

View File

@ -335,7 +335,6 @@ protected:
F32 mAutoOpenCountdown;
S32 mLastArrangeGeneration;
S32 mLastCalculatedWidth;
bool mNeedsSort;
bool mIsFolderComplete; // indicates that some children were not loaded/added yet
bool mAreChildrenInited; // indicates that no children were initialized

View File

@ -337,7 +337,7 @@ void LLNotificationForm::addElement(const std::string& type, const std::string&
element["name"] = name;
element["text"] = name;
element["value"] = value;
element["index"] = mFormData.size();
element["index"] = LLSD::Integer(mFormData.size());
element["enabled"] = enabled;
mFormData.append(element);
}

View File

@ -247,31 +247,9 @@ void LLKeyboardWin32::scanKeyboard()
{
S32 key;
MSG msg;
BOOL pending_key_events = PeekMessage(&msg, NULL, WM_KEYFIRST, WM_KEYLAST, PM_NOREMOVE | PM_NOYIELD);
PeekMessage(&msg, NULL, WM_KEYFIRST, WM_KEYLAST, PM_NOREMOVE | PM_NOYIELD);
for (key = 0; key < KEY_COUNT; key++)
{
// On Windows, verify key down state. JC
// RN: only do this if we don't have further key events in the queue
// as otherwise there might be key repeat events still waiting for this key we are now dumping
if (!pending_key_events && mKeyLevel[key])
{
// *TODO: I KNOW there must be a better way of
// interrogating the key state than this, using async key
// state can cause ALL kinds of bugs - Doug
if ((key < KEY_BUTTON0) && ((key < '0') || (key > '9')))
{
// ...under windows make sure the key actually still is down.
// ...translate back to windows key
U16 virtual_key = inverseTranslateExtendedKey(key);
// keydown in highest bit
if (!pending_key_events && !(GetAsyncKeyState(virtual_key) & 0x8000))
{
//LL_INFOS() << "Key up event missed, resetting" << LL_ENDL;
mKeyLevel[key] = FALSE;
}
}
}
// Generate callback if any event has occurred on this key this frame.
// Can't just test mKeyLevel, because this could be a slow frame and
// key might have gone down then up. JC

View File

@ -1 +1 @@
6.6.12
6.6.13

View File

@ -8352,6 +8352,17 @@
<key>Value</key>
<integer>1</integer>
</map>
<key>NvAPICreateApplicationProfile</key>
<map>
<key>Comment</key>
<string>Create NVIDIA application profile for optimized settings</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>PurgeCacheOnNextStartup</key>
<map>
<key>Comment</key>

View File

@ -149,7 +149,7 @@ void LLAgentListener::requestTeleport(LLSD const & event_data) const
params.append(event_data["x"]);
params.append(event_data["y"]);
params.append(event_data["z"]);
LLCommandDispatcher::dispatch("teleport", params, LLSD(), LLGridManager::getInstance()->getGrid(), NULL, "clicked", true);
LLCommandDispatcher::dispatch("teleport", params, LLSD(), LLGridManager::getInstance()->getGrid(), NULL, LLCommandHandler::NAV_TYPE_CLICKED, true);
// *TODO - lookup other LLCommandHandlers for "agent", "classified", "event", "group", "floater", "parcel", "login", login_refresh", "balance", "chat"
// should we just compose LLCommandHandler and LLDispatchListener?
}
@ -159,7 +159,7 @@ void LLAgentListener::requestTeleport(LLSD const & event_data) const
LLVector3(event_data["x"].asReal(),
event_data["y"].asReal(),
event_data["z"].asReal())).getSLURLString();
LLURLDispatcher::dispatch(url, "clicked", NULL, false);
LLURLDispatcher::dispatch(url, LLCommandHandler::NAV_TYPE_CLICKED, NULL, false);
}
}

View File

@ -2178,6 +2178,7 @@ bool LLAppViewer::cleanup()
LLSelectMgr::deleteSingleton();
LLViewerEventRecorder::deleteSingleton();
LLWorld::deleteSingleton();
LLVoiceClient::deleteSingleton();
// It's not at first obvious where, in this long sequence, a generic cleanup
// call OUGHT to go. So let's say this: as we migrate cleanup from

View File

@ -259,21 +259,75 @@ void ll_nvapi_init(NvDRSSessionHandle hSession)
std::string app_name = LLTrans::getString("APP_NAME");
llutf16string w_app_name = utf8str_to_utf16str(app_name);
wsprintf(profile_name, L"%s", w_app_name.c_str());
status = NvAPI_DRS_SetCurrentGlobalProfile(hSession, profile_name);
if (status != NVAPI_OK)
NvDRSProfileHandle hProfile = 0;
// (3) Check if we already have an application profile for the viewer
status = NvAPI_DRS_FindProfileByName(hSession, profile_name, &hProfile);
if (status != NVAPI_OK && status != NVAPI_PROFILE_NOT_FOUND)
{
nvapi_error(status);
return;
}
else if (status == NVAPI_PROFILE_NOT_FOUND)
{
// Don't have an application profile yet - create one
LL_INFOS() << "Creating NVIDIA application profile" << LL_ENDL;
// (3) Obtain the current profile.
NvDRSProfileHandle hProfile = 0;
status = NvAPI_DRS_GetCurrentGlobalProfile(hSession, &hProfile);
if (status != NVAPI_OK)
NVDRS_PROFILE profileInfo;
profileInfo.version = NVDRS_PROFILE_VER;
profileInfo.isPredefined = 0;
wsprintf(profileInfo.profileName, L"%s", w_app_name.c_str());
status = NvAPI_DRS_CreateProfile(hSession, &profileInfo, &hProfile);
if (status != NVAPI_OK)
{
nvapi_error(status);
return;
}
}
// (4) Check if current exe is part of the profile
std::string exe_name = gDirUtilp->getExecutableFilename();
NVDRS_APPLICATION profile_application;
profile_application.version = NVDRS_APPLICATION_VER;
llutf16string w_exe_name = utf8str_to_utf16str(exe_name);
NvAPI_UnicodeString profile_app_name;
wsprintf(profile_app_name, L"%s", w_exe_name.c_str());
status = NvAPI_DRS_GetApplicationInfo(hSession, hProfile, profile_app_name, &profile_application);
if (status != NVAPI_OK && status != NVAPI_EXECUTABLE_NOT_FOUND)
{
nvapi_error(status);
return;
}
else if (status == NVAPI_EXECUTABLE_NOT_FOUND)
{
LL_INFOS() << "Creating application for " << exe_name << " for NVIDIA application profile" << LL_ENDL;
// Add this exe to the profile
NVDRS_APPLICATION application;
application.version = NVDRS_APPLICATION_VER;
application.isPredefined = 0;
wsprintf(application.appName, L"%s", w_exe_name.c_str());
wsprintf(application.userFriendlyName, L"%s", w_exe_name.c_str());
wsprintf(application.launcher, L"%s", w_exe_name.c_str());
wsprintf(application.fileInFolder, L"%s", "");
status = NvAPI_DRS_CreateApplication(hSession, hProfile, &application);
if (status != NVAPI_OK)
{
nvapi_error(status);
return;
}
// Save application in case we added one
status = NvAPI_DRS_SaveSettings(hSession);
if (status != NVAPI_OK)
{
nvapi_error(status);
return;
}
}
// load settings for querying
status = NvAPI_DRS_LoadSettings(hSession);
@ -289,7 +343,7 @@ void ll_nvapi_init(NvDRSSessionHandle hSession)
status = NvAPI_DRS_GetSetting(hSession, hProfile, PREFERRED_PSTATE_ID, &drsSetting);
if (status == NVAPI_SETTING_NOT_FOUND)
{ //only override if the user hasn't specifically set this setting
// (4) Specify that we want the VSYNC disabled setting
// (5) Specify that we want to enable maximum performance setting
// first we fill the NVDRS_SETTING struct, then we call the function
drsSetting.version = NVDRS_SETTING_VER;
drsSetting.settingId = PREFERRED_PSTATE_ID;
@ -302,7 +356,7 @@ void ll_nvapi_init(NvDRSSessionHandle hSession)
return;
}
// (5) Now we apply (or save) our changes to the system
// (6) Now we apply (or save) our changes to the system
status = NvAPI_DRS_SaveSettings(hSession);
if (status != NVAPI_OK)
{
@ -386,27 +440,31 @@ int APIENTRY WINMAIN(HINSTANCE hInstance,
LL_WARNS() << "Application init failed." << LL_ENDL;
return -1;
}
NvAPI_Status status;
// Initialize NVAPI
status = NvAPI_Initialize();
NvDRSSessionHandle hSession = 0;
if (status == NVAPI_OK)
{
// Create the session handle to access driver settings
status = NvAPI_DRS_CreateSession(&hSession);
if (status != NVAPI_OK)
{
nvapi_error(status);
}
else
{
//override driver setting as needed
ll_nvapi_init(hSession);
}
}
NvDRSSessionHandle hSession = 0;
static LLCachedControl<bool> use_nv_api(gSavedSettings, "NvAPICreateApplicationProfile", true);
if (use_nv_api)
{
NvAPI_Status status;
// Initialize NVAPI
status = NvAPI_Initialize();
if (status == NVAPI_OK)
{
// Create the session handle to access driver settings
status = NvAPI_DRS_CreateSession(&hSession);
if (status != NVAPI_OK)
{
nvapi_error(status);
}
else
{
//override driver setting as needed
ll_nvapi_init(hSession);
}
}
}
// Have to wait until after logging is initialized to display LFH info
if (num_heaps > 0)
@ -620,76 +678,81 @@ bool LLAppViewerWin32::init()
LLFile::remove(log_file, ENOENT);
}
std::string build_data_fname(
gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "build_data.json"));
// Use llifstream instead of std::ifstream because LL_PATH_EXECUTABLE
// could contain non-ASCII characters, which std::ifstream doesn't handle.
llifstream inf(build_data_fname.c_str());
if (! inf.is_open())
{
LL_WARNS("BUGSPLAT") << "Can't initialize BugSplat, can't read '" << build_data_fname
<< "'" << LL_ENDL;
}
else
{
Json::Reader reader;
Json::Value build_data;
if (! reader.parse(inf, build_data, false)) // don't collect comments
{
// gah, the typo is baked into Json::Reader API
LL_WARNS("BUGSPLAT") << "Can't initialize BugSplat, can't parse '" << build_data_fname
<< "': " << reader.getFormatedErrorMessages() << LL_ENDL;
}
else
{
Json::Value BugSplat_DB = build_data["BugSplat DB"];
if (! BugSplat_DB)
{
LL_WARNS("BUGSPLAT") << "Can't initialize BugSplat, no 'BugSplat DB' entry in '"
<< build_data_fname << "'" << LL_ENDL;
}
else
{
// Got BugSplat_DB, onward!
std::wstring version_string(WSTRINGIZE(LL_VIEWER_VERSION_MAJOR << '.' <<
LL_VIEWER_VERSION_MINOR << '.' <<
LL_VIEWER_VERSION_PATCH << '.' <<
LL_VIEWER_VERSION_BUILD));
// Win7 is no longer supported
bool is_win_7_or_below = LLOSInfo::getInstance()->mMajorVer <= 6 && LLOSInfo::getInstance()->mMajorVer <= 1;
DWORD dwFlags = MDSF_NONINTERACTIVE | // automatically submit report without prompting
MDSF_PREVENTHIJACKING; // disallow swiping Exception filter
bool needs_log_file = !isSecondInstance() && debugLoggingEnabled("BUGSPLAT");
if (needs_log_file)
if (!is_win_7_or_below)
{
std::string build_data_fname(
gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "build_data.json"));
// Use llifstream instead of std::ifstream because LL_PATH_EXECUTABLE
// could contain non-ASCII characters, which std::ifstream doesn't handle.
llifstream inf(build_data_fname.c_str());
if (!inf.is_open())
{
LL_WARNS("BUGSPLAT") << "Can't initialize BugSplat, can't read '" << build_data_fname
<< "'" << LL_ENDL;
}
else
{
Json::Reader reader;
Json::Value build_data;
if (!reader.parse(inf, build_data, false)) // don't collect comments
{
// gah, the typo is baked into Json::Reader API
LL_WARNS("BUGSPLAT") << "Can't initialize BugSplat, can't parse '" << build_data_fname
<< "': " << reader.getFormatedErrorMessages() << LL_ENDL;
}
else
{
Json::Value BugSplat_DB = build_data["BugSplat DB"];
if (!BugSplat_DB)
{
// Startup only!
LL_INFOS("BUGSPLAT") << "Engaged BugSplat logging to bugsplat.log" << LL_ENDL;
dwFlags |= MDSF_LOGFILE | MDSF_LOG_VERBOSE;
LL_WARNS("BUGSPLAT") << "Can't initialize BugSplat, no 'BugSplat DB' entry in '"
<< build_data_fname << "'" << LL_ENDL;
}
// have to convert normal wide strings to strings of __wchar_t
sBugSplatSender = new MiniDmpSender(
WCSTR(BugSplat_DB.asString()),
WCSTR(LL_TO_WSTRING(LL_VIEWER_CHANNEL)),
WCSTR(version_string),
nullptr, // szAppIdentifier -- set later
dwFlags);
sBugSplatSender->setCallback(bugsplatSendLog);
if (needs_log_file)
else
{
// Log file will be created in %TEMP%, but it will be moved into logs folder in case of crash
std::string log_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "bugsplat.log");
sBugSplatSender->setLogFilePath(WCSTR(log_file));
}
// Got BugSplat_DB, onward!
std::wstring version_string(WSTRINGIZE(LL_VIEWER_VERSION_MAJOR << '.' <<
LL_VIEWER_VERSION_MINOR << '.' <<
LL_VIEWER_VERSION_PATCH << '.' <<
LL_VIEWER_VERSION_BUILD));
// engage stringize() overload that converts from wstring
LL_INFOS("BUGSPLAT") << "Engaged BugSplat(" << LL_TO_STRING(LL_VIEWER_CHANNEL)
<< ' ' << stringize(version_string) << ')' << LL_ENDL;
} // got BugSplat_DB
} // parsed build_data.json
} // opened build_data.json
DWORD dwFlags = MDSF_NONINTERACTIVE | // automatically submit report without prompting
MDSF_PREVENTHIJACKING; // disallow swiping Exception filter
bool needs_log_file = !isSecondInstance() && debugLoggingEnabled("BUGSPLAT");
if (needs_log_file)
{
// Startup only!
LL_INFOS("BUGSPLAT") << "Engaged BugSplat logging to bugsplat.log" << LL_ENDL;
dwFlags |= MDSF_LOGFILE | MDSF_LOG_VERBOSE;
}
// have to convert normal wide strings to strings of __wchar_t
sBugSplatSender = new MiniDmpSender(
WCSTR(BugSplat_DB.asString()),
WCSTR(LL_TO_WSTRING(LL_VIEWER_CHANNEL)),
WCSTR(version_string),
nullptr, // szAppIdentifier -- set later
dwFlags);
sBugSplatSender->setCallback(bugsplatSendLog);
if (needs_log_file)
{
// Log file will be created in %TEMP%, but it will be moved into logs folder in case of crash
std::string log_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "bugsplat.log");
sBugSplatSender->setLogFilePath(WCSTR(log_file));
}
// engage stringize() overload that converts from wstring
LL_INFOS("BUGSPLAT") << "Engaged BugSplat(" << LL_TO_STRING(LL_VIEWER_CHANNEL)
<< ' ' << stringize(version_string) << ')' << LL_ENDL;
} // got BugSplat_DB
} // parsed build_data.json
} // opened build_data.json
} // !is_win_7_or_below
#endif // LL_BUGSPLAT
#endif // LL_SEND_CRASH_REPORTS

View File

@ -64,8 +64,13 @@ void LLCommandDispatcherListener::dispatch(const LLSD& params) const
// But for testing, allow a caller to specify untrusted.
trusted_browser = params["trusted"].asBoolean();
}
LLCommandDispatcher::dispatch(params["cmd"], params["params"], params["query"], "", NULL,
"clicked", trusted_browser);
LLCommandDispatcher::dispatch(params["cmd"],
params["params"],
params["query"],
"",
NULL,
LLCommandHandler::NAV_TYPE_CLICKED,
trusted_browser);
}
void LLCommandDispatcherListener::enumerate(const LLSD& params) const

View File

@ -40,6 +40,8 @@
static LLCommandDispatcherListener sCommandDispatcherListener;
const std::string LLCommandHandler::NAV_TYPE_CLICKED = "clicked";
const std::string LLCommandHandler::NAV_TYPE_EXTERNAL = "external";
const std::string LLCommandHandler::NAV_TYPE_NAVIGATED = "navigated";
//---------------------------------------------------------------------------
// Underlying registry for command handlers, not directly accessible.

View File

@ -70,6 +70,8 @@ public:
};
static const std::string NAV_TYPE_CLICKED;
static const std::string NAV_TYPE_EXTERNAL;
static const std::string NAV_TYPE_NAVIGATED;
LLCommandHandler(const char* command, EUntrustedAccess untrusted_access);
// Automatically registers object to get called when

View File

@ -247,8 +247,9 @@ namespace Details
errorCount = 0;
if (!result.isMap() ||
!result.get("events") ||
!result.get("id"))
!result.has("events") ||
!result["events"].isArray() ||
!result.has("id"))
{
LL_WARNS("LLEventPollImpl") << " <" << counter << "> received event poll with no events or id key: " << result << LL_ENDL;
continue;

View File

@ -499,6 +499,18 @@ bool LLFeatureManager::loadGPUClass()
{
mGPUClass = GPU_CLASS_5;
}
#if LL_WINDOWS
const F32Gigabytes MIN_PHYSICAL_MEMORY(2);
LLMemory::updateMemoryInfo();
F32Gigabytes physical_mem = LLMemory::getMaxMemKB();
if (MIN_PHYSICAL_MEMORY > physical_mem && mGPUClass > GPU_CLASS_1)
{
// reduce quality on systems that don't have enough memory
mGPUClass = (EGPUClass)(mGPUClass - 1);
}
#endif //LL_WINDOWS
} //end if benchmark
else
{

View File

@ -71,31 +71,36 @@ NSOpenPanel *init_panel(const std::vector<std::string>* allowed_types, unsigned
return panel;
}
std::unique_ptr<std::vector<std::string>> doLoadDialog(const std::vector<std::string>* allowed_types,
std::unique_ptr<std::vector<std::string>> doLoadDialog(const std::vector<std::string>* allowed_types,
unsigned int flags)
{
int result;
std::unique_ptr<std::vector<std::string>> outfiles;
NSOpenPanel *panel = init_panel(allowed_types,flags);
result = [panel runModal];
std::unique_ptr<std::vector<std::string>> outfiles = nullptr;
@autoreleasepool
{
int result;
//Aura TODO: We could init a small window and release it at the end of this routine
//for a modeless interface.
if (result == NSOKButton)
{
NSArray *filesToOpen = [panel URLs];
int count = [filesToOpen count];
NSOpenPanel *panel = init_panel(allowed_types,flags);
if (count > 0)
result = [panel runModal];
if (result == NSOKButton)
{
outfiles = std::make_unique<std::vector<std::string>>();
}
for (int i=0; i<count; i++) {
NSString *aFile = [filesToOpen objectAtIndex:i];
std::string afilestr = [[aFile stringByStandardizingPath] UTF8String];
outfiles->push_back(std::move(afilestr));
NSArray *filesToOpen = [panel URLs];
int i, count = [filesToOpen count];
if (count > 0)
{
outfiles.reset(new std::vector<std::string>);
}
for (i=0; i<count; i++) {
NSString *aFile = [[filesToOpen objectAtIndex:i] path];
std::string afilestr = std::string([aFile UTF8String]);
outfiles->push_back(afilestr);
}
}
}
return outfiles;
@ -106,11 +111,14 @@ void doLoadDialogModeless(const std::vector<std::string>* allowed_types,
void (*callback)(bool, std::vector<std::string> &, void*),
void *userdata)
{
// Note: might need to return and save this panel
// so that it does not close immediately
NSOpenPanel *panel = init_panel(allowed_types,flags);
@autoreleasepool
{
// Note: might need to return and save this panel
// so that it does not close immediately
NSOpenPanel *panel = init_panel(allowed_types,flags);
[panel beginWithCompletionHandler:^(NSModalResponse result)
[panel beginWithCompletionHandler:^(NSModalResponse result)
{
std::vector<std::string> outfiles;
if (result == NSOKButton)
@ -138,6 +146,7 @@ void doLoadDialogModeless(const std::vector<std::string>* allowed_types,
callback(false, outfiles, userdata);
}
}];
}
}
std::unique_ptr<std::string> doSaveDialog(const std::string* file,
@ -146,29 +155,32 @@ std::unique_ptr<std::string> doSaveDialog(const std::string* file,
const std::string* extension,
unsigned int flags)
{
NSSavePanel *panel = [NSSavePanel savePanel];
NSString *extensionns = [NSString stringWithCString:extension->c_str() encoding:[NSString defaultCStringEncoding]];
NSArray *fileType = [extensionns componentsSeparatedByString:@","];
//[panel setMessage:@"Save Image File"];
[panel setTreatsFilePackagesAsDirectories: ( flags & F_NAV_SUPPORT ) ];
[panel setCanSelectHiddenExtension:true];
[panel setAllowedFileTypes:fileType];
NSString *fileName = [NSString stringWithCString:file->c_str() encoding:[NSString defaultCStringEncoding]];
std::unique_ptr<std::string> outfile = nullptr;
NSURL* url = [NSURL fileURLWithPath:fileName];
[panel setNameFieldStringValue: fileName];
[panel setDirectoryURL: url];
if([panel runModal] ==
NSFileHandlingPanelOKButton)
{
NSURL* url = [panel URL];
NSString* p = [url path];
outfile = std::make_unique<std::string>( [p UTF8String] );
// write the file
}
std::unique_ptr<std::string> outfile;
@autoreleasepool
{
NSSavePanel *panel = [NSSavePanel savePanel];
NSString *extensionns = [NSString stringWithCString:extension->c_str() encoding:[NSString defaultCStringEncoding]];
NSArray *fileType = [extensionns componentsSeparatedByString:@","];
//[panel setMessage:@"Save Image File"];
[panel setTreatsFilePackagesAsDirectories: ( flags & F_NAV_SUPPORT ) ];
[panel setCanSelectHiddenExtension:true];
[panel setAllowedFileTypes:fileType];
NSString *fileName = [NSString stringWithCString:file->c_str() encoding:[NSString defaultCStringEncoding]];
NSURL* url = [NSURL fileURLWithPath:fileName];
[panel setNameFieldStringValue: fileName];
[panel setDirectoryURL: url];
if([panel runModal] ==
NSFileHandlingPanelOKButton)
{
NSURL* url = [panel URL];
NSString* p = [url path];
outfile.reset(new std::string([p UTF8String]));
// write the file
}
}
return outfile;
}
@ -180,38 +192,40 @@ void doSaveDialogModeless(const std::string* file,
void (*callback)(bool, std::string&, void*),
void *userdata)
{
NSSavePanel *panel = [NSSavePanel savePanel];
@autoreleasepool {
NSSavePanel *panel = [NSSavePanel savePanel];
NSString *extensionns = [NSString stringWithCString:extension->c_str() encoding:[NSString defaultCStringEncoding]];
NSArray *fileType = [extensionns componentsSeparatedByString:@","];
NSString *extensionns = [NSString stringWithCString:extension->c_str() encoding:[NSString defaultCStringEncoding]];
NSArray *fileType = [extensionns componentsSeparatedByString:@","];
//[panel setMessage:@"Save Image File"];
[panel setTreatsFilePackagesAsDirectories: ( flags & F_NAV_SUPPORT ) ];
[panel setCanSelectHiddenExtension:true];
[panel setAllowedFileTypes:fileType];
NSString *fileName = [NSString stringWithCString:file->c_str() encoding:[NSString defaultCStringEncoding]];
//[panel setMessage:@"Save Image File"];
[panel setTreatsFilePackagesAsDirectories: ( flags & F_NAV_SUPPORT ) ];
[panel setCanSelectHiddenExtension:true];
[panel setAllowedFileTypes:fileType];
NSString *fileName = [NSString stringWithCString:file->c_str() encoding:[NSString defaultCStringEncoding]];
NSURL* url = [NSURL fileURLWithPath:fileName];
[panel setNameFieldStringValue: fileName];
[panel setDirectoryURL: url];
NSURL* url = [NSURL fileURLWithPath:fileName];
[panel setNameFieldStringValue: fileName];
[panel setDirectoryURL: url];
[panel beginWithCompletionHandler:^(NSModalResponse result)
{
if (result == NSOKButton)
{
NSURL* url = [panel URL];
NSString* p = [url path];
std::string outfile([p UTF8String]);
[panel beginWithCompletionHandler:^(NSModalResponse result)
{
if (result == NSOKButton)
{
NSURL* url = [panel URL];
NSString* p = [url path];
std::string outfile([p UTF8String]);
callback(true, outfile, userdata);
}
else // cancel
{
std::string outfile;
callback(false, outfile, userdata);
}
}];
callback(true, outfile, userdata);
}
else // cancel
{
std::string outfile;
callback(false, outfile, userdata);
}
}];
}
}
#endif

View File

@ -165,10 +165,21 @@ void LLFloaterDisplayName::onReset()
{
return;
}
getChild<LLUICtrl>("display_name_editor")->setValue(av_name.getCompleteName());
getChild<LLUICtrl>("display_name_editor")->setValue(av_name.getUserName());
getChild<LLUICtrl>("display_name_confirm")->clear();
getChild<LLUICtrl>("display_name_confirm")->setFocus(TRUE);
if (getChild<LLUICtrl>("display_name_editor")->getEnabled())
{
// UI is enabled, fill the first field
getChild<LLUICtrl>("display_name_confirm")->clear();
getChild<LLUICtrl>("display_name_confirm")->setFocus(TRUE);
}
else
{
// UI is disabled, looks like we should allow resetting
// even if user already set a display name, enable save button
getChild<LLUICtrl>("display_name_confirm")->setValue(av_name.getUserName());
getChild<LLUICtrl>("save_btn")->setEnabled(true);
}
}
@ -183,6 +194,21 @@ void LLFloaterDisplayName::onSave()
return;
}
LLAvatarName av_name;
if (!LLAvatarNameCache::get(gAgent.getID(), &av_name))
{
return;
}
std::string user_name = av_name.getUserName();
if (display_name_utf8.compare(user_name) == 0
&& LLAvatarNameCache::getInstance()->hasNameLookupURL())
{
// A reset
LLViewerDisplayName::set("", boost::bind(&LLFloaterDisplayName::onCacheSetName, this, _1, _2, _3));
return;
}
const U32 DISPLAY_NAME_MAX_LENGTH = 31; // characters, not bytes
LLWString display_name_wstr = utf8string_to_wstring(display_name_utf8);
if (display_name_wstr.size() > DISPLAY_NAME_MAX_LENGTH)

View File

@ -39,6 +39,7 @@
#include "llfloaterworldmap.h"
#include "llproductinforequest.h"
#include "llscrolllistctrl.h"
#include "llsdutil.h"
#include "llstatusbar.h"
#include "lltextbox.h"
#include "llscrolllistctrl.h"
@ -79,24 +80,25 @@ BOOL LLFloaterLandHoldings::postBuild()
for(S32 i = 0; i < count; ++i)
{
LLUUID id(gAgent.mGroups.at(i).mID);
LLSD element;
element["id"] = id;
element["columns"][0]["column"] = "group";
element["columns"][0]["value"] = gAgent.mGroups.at(i).mName;
element["columns"][0]["font"] = "SANSSERIF";
LLUIString areastr = getString("area_string");
areastr.setArg("[AREA]", llformat("%d", gAgent.mGroups.at(i).mContribution));
element["columns"][1]["column"] = "area";
element["columns"][1]["value"] = areastr;
element["columns"][1]["font"] = "SANSSERIF";
grant_list->addElement(element);
grant_list->addElement(
llsd::map(
"id", id,
"columns", llsd::array(
llsd::map(
"column", "group",
"value", gAgent.mGroups.at(i).mName,
"font", "SANSSERIF"),
llsd::map(
"column", "area",
"value", areastr,
"font", "SANSSERIF"))));
}
center();
return TRUE;
}
@ -108,8 +110,8 @@ LLFloaterLandHoldings::~LLFloaterLandHoldings()
void LLFloaterLandHoldings::onOpen(const LLSD& key)
{
LLScrollListCtrl *list = getChild<LLScrollListCtrl>("parcel list");
list->clearRows();
LLScrollListCtrl *list = getChild<LLScrollListCtrl>("parcel list");
list->clearRows();
// query_id null is known to be us
const LLUUID& query_id = LLUUID::null;

View File

@ -182,11 +182,15 @@ void LLFolderViewModelItemInventory::setPassedFilter(bool passed, S32 filter_gen
bool generation_skip = mMarkedDirtyGeneration >= 0
&& mPrevPassedAllFilters
&& mMarkedDirtyGeneration < mRootViewModel.getFilter().getFirstSuccessGeneration();
S32 last_generation = mLastFilterGeneration;
LLFolderViewModelItemCommon::setPassedFilter(passed, filter_generation, string_offset, string_size);
bool before = mPrevPassedAllFilters;
mPrevPassedAllFilters = passedFilter(filter_generation);
if (before != mPrevPassedAllFilters || generation_skip)
if (before != mPrevPassedAllFilters // Change of state
|| generation_skip // Was marked dirty
// Potential change from being in-progress and invisible to visible)
|| (mPrevPassedAllFilters && last_generation < mRootViewModel.getFilter().getFirstRequiredGeneration()))
{
// Need to rearrange the folder if the filtered state of the item changed,
// previously passed item skipped filter generation changes while being dirty

View File

@ -52,7 +52,7 @@ class LLGroupHandler : public LLCommandHandler
{
public:
// requires trusted browser to trigger
LLGroupHandler() : LLCommandHandler("group", UNTRUSTED_CLICK_ONLY) { }
LLGroupHandler() : LLCommandHandler("group", UNTRUSTED_THROTTLE) { }
virtual bool canHandleUntrusted(
const LLSD& params,

View File

@ -346,7 +346,10 @@ public:
{
// will be deleted by ~LLInventoryModel
//delete mInvObserver;
LLVoiceClient::getInstance()->removeObserver(this);
if (LLVoiceClient::instanceExists())
{
LLVoiceClient::getInstance()->removeObserver(this);
}
LLAvatarTracker::instance().removeObserver(this);
}

View File

@ -172,11 +172,18 @@ LLSLURL::LLSLURL(const std::string& slurl)
}
else
{
// it wasn't a /secondlife/<region> or /app/<params>, so it must be secondlife://<region>
if(slurl_uri.hostName() == LLSLURL::SLURL_APP_PATH)
{
mType = APP;
}
else
{
// it wasn't a /secondlife/<region> or /app/<params>, so it must be secondlife://<region>
// therefore the hostname will be the region name, and it's a location type
mType = LOCATION;
// 'normalize' it so the region name is in fact the head of the path_array
path_array.insert(0, slurl_uri.hostName());
}
}
}
else if((slurl_uri.scheme() == LLSLURL::SLURL_HTTP_SCHEME) ||

View File

@ -323,6 +323,8 @@ void set_flags_and_update_appearance()
{
LLAppearanceMgr::instance().setAttachmentInvLinkEnable(true);
LLAppearanceMgr::instance().updateAppearanceFromCOF(true, true, no_op);
LLInventoryModelBackgroundFetch::instance().start();
}
// Returns false to skip other idle processing. Should only return
@ -3024,7 +3026,7 @@ bool LLStartUp::dispatchURL()
|| (dx*dx > SLOP*SLOP)
|| (dy*dy > SLOP*SLOP) )
{
LLURLDispatcher::dispatch(getStartSLURL().getSLURLString(), "clicked",
LLURLDispatcher::dispatch(getStartSLURL().getSLURLString(), LLCommandHandler::NAV_TYPE_CLICKED,
NULL, false);
}
return true;

View File

@ -220,7 +220,11 @@ void LLToast::hide()
/*virtual*/
void LLToast::setFocus(BOOL b)
{
if (b && !hasFocus() && mPanel)
if (b
&& !hasFocus()
&& mPanel
&& mWrapperPanel
&& !mWrapperPanel->getChildList()->empty())
{
LLModalDialog::setFocus(TRUE);
// mostly for buttons
@ -416,15 +420,18 @@ void LLToast::setVisible(BOOL show)
//hide "hide" button in case toast was hidden without mouse_leave
if(mHideBtn)
mHideBtn->setVisible(show);
}
LLFloater::setVisible(show);
if(mPanel)
{
if(!mPanel->isDead())
{
mPanel->setVisible(show);
}
}
}
LLFloater::setVisible(show);
if (mPanel
&& !mPanel->isDead()
&& mWrapperPanel
&& !mWrapperPanel->getChildList()->empty()
// LLInspectToast can take over, but LLToast still appears to act like a data storage
&& mPanel->getParent() == mWrapperPanel
)
{
mPanel->setVisible(show);
}
}
void LLToast::updateHoveredState()

View File

@ -144,7 +144,7 @@ bool LLURLDispatcherImpl::dispatchRightClick(const LLSLURL& slurl)
const bool right_click = true;
LLMediaCtrl* web = NULL;
const bool trusted_browser = false;
return dispatchCore(slurl, "clicked", right_click, web, trusted_browser);
return dispatchCore(slurl, LLCommandHandler::NAV_TYPE_CLICKED, right_click, web, trusted_browser);
}
// static
@ -414,7 +414,7 @@ bool LLURLDispatcher::dispatchFromTextEditor(const std::string& slurl, bool trus
// *TODO: Make this trust model more refined. JC
LLMediaCtrl* web = NULL;
return LLURLDispatcherImpl::dispatch(LLSLURL(slurl), "clicked", web, trusted_content);
return LLURLDispatcherImpl::dispatch(LLSLURL(slurl), LLCommandHandler::NAV_TYPE_CLICKED, web, trusted_content);
}

View File

@ -43,7 +43,7 @@ class LLHelpHandler : public LLCommandHandler
{
public:
// requests will be throttled from a non-trusted browser
LLHelpHandler() : LLCommandHandler("help", UNTRUSTED_THROTTLE) {}
LLHelpHandler() : LLCommandHandler("help", UNTRUSTED_CLICK_ONLY) {}
bool handle(const LLSD& params, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web)
{

View File

@ -2896,6 +2896,13 @@ void handle_object_open()
LLFloaterReg::showInstance("openobject");
}
bool enable_object_inspect()
{
LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection();
LLViewerObject* selected_objectp = selection->getFirstRootObject();
return selected_objectp != NULL;
}
bool enable_object_open()
{
// Look for contents in root object, which is all the LLFloaterOpenObject
@ -7952,7 +7959,7 @@ bool enable_object_take_copy()
bool all_valid = false;
if (LLSelectMgr::getInstance())
{
if (!LLSelectMgr::getInstance()->getSelection()->isEmpty())
if (LLSelectMgr::getInstance()->getSelection()->getRootObjectCount() > 0)
{
all_valid = true;
#ifndef HACKED_GODLIKE_VIEWER
@ -9684,6 +9691,7 @@ void initialize_menus()
commit.add("Object.Open", boost::bind(&handle_object_open));
commit.add("Object.Take", boost::bind(&handle_take));
commit.add("Object.ShowInspector", boost::bind(&handle_object_show_inspector));
enable.add("Object.EnableInspect", boost::bind(&enable_object_inspect));
enable.add("Object.EnableOpen", boost::bind(&enable_object_open));
enable.add("Object.EnableTouch", boost::bind(&enable_object_touch, _1));
enable.add("Object.EnableDelete", boost::bind(&enable_object_delete));

View File

@ -5839,12 +5839,8 @@ void process_script_question(LLMessageSystem *msg, void **user_data)
{
count++;
known_questions |= script_perm.permbit;
if (!LLMuteList::isLinden(owner_name))
{
// check whether permission question should cause special caution dialog
caution |= (script_perm.caution);
}
// check whether permission question should cause special caution dialog
caution |= (script_perm.caution);
if (("ScriptTakeMoney" == script_perm.question) && has_not_only_debit)
continue;
@ -6308,7 +6304,7 @@ bool handle_lure_callback(const LLSD& notification, const LLSD& response)
// More than OFFER_RECIPIENT_LIMIT targets will overload the message
// producing an llerror.
LLSD args;
args["OFFERS"] = notification["payload"]["ids"].size();
args["OFFERS"] = LLSD::Integer(notification["payload"]["ids"].size());
args["LIMIT"] = static_cast<int>(OFFER_RECIPIENT_LIMIT);
LLNotificationsUtil::add("TooManyTeleportOffers", args);
return false;

View File

@ -167,7 +167,7 @@ public:
}
// Process the SLapp as if it was a secondlife://{PLACE} SLurl
LLURLDispatcher::dispatch(url, "clicked", web, true);
LLURLDispatcher::dispatch(url, LLCommandHandler::NAV_TYPE_CLICKED, web, true);
return true;
}

View File

@ -35,6 +35,7 @@
#include "llrender.h"
#include "llenvironment.h"
#include "llerrorcontrol.h"
#include "llatmosphere.h"
#include "llworld.h"
#include "llsky.h"
@ -559,10 +560,15 @@ void LLViewerShaderMgr::setShaders()
std::string shader_name = loadBasicShaders();
if (shader_name.empty())
{
LL_INFOS() << "Loaded basic shaders." << LL_ENDL;
LL_INFOS("Shader") << "Loaded basic shaders." << LL_ENDL;
}
else
{
// "ShaderLoading" and "Shader" need to be logged
LLError::ELevel lvl = LLError::getDefaultLevel();
LLError::setDefaultLevel(LLError::LEVEL_DEBUG);
loadBasicShaders();
LLError::setDefaultLevel(lvl);
LL_ERRS() << "Unable to load basic shader " << shader_name << ", verify graphics driver installed and current." << LL_ENDL;
reentrance = false; // For hygiene only, re-try probably helps nothing
return;

View File

@ -39,6 +39,7 @@
#include "llagent.h"
#include "llagentcamera.h"
#include "llcommandhandler.h"
#include "llcommunicationchannel.h"
#include "llfloaterreg.h"
#include "llhudicon.h"
@ -1296,7 +1297,7 @@ LLWindowCallbacks::DragNDropResult LLViewerWindow::handleDragNDrop( LLWindow *wi
{
if (drop)
{
LLURLDispatcher::dispatch( dropped_slurl.getSLURLString(), "clicked", NULL, true );
LLURLDispatcher::dispatch( dropped_slurl.getSLURLString(), LLCommandHandler::NAV_TYPE_CLICKED, NULL, true );
return LLWindowCallbacks::DND_MOVE;
}
return LLWindowCallbacks::DND_COPY;
@ -1765,7 +1766,7 @@ void LLViewerWindow::handleDataCopy(LLWindow *window, S32 data_type, void *data)
LLMediaCtrl* web = NULL;
const bool trusted_browser = false;
// don't treat slapps coming from external browsers as "clicks" as this would bypass throttling
if (LLURLDispatcher::dispatch(url, "", web, trusted_browser))
if (LLURLDispatcher::dispatch(url, LLCommandHandler::NAV_TYPE_EXTERNAL, web, trusted_browser))
{
// bring window to foreground, as it has just been "launched" from a URL
mWindow->bringToFront();

View File

@ -142,6 +142,7 @@ LLVoiceClient::LLVoiceClient(LLPumpIO *pump)
LLVoiceClient::~LLVoiceClient()
{
llassert(!mVoiceModule);
}
void LLVoiceClient::init(LLPumpIO *pump)

View File

@ -1830,7 +1830,7 @@ BOOL LLWorldMapView::handleDoubleClick( S32 x, S32 y, MASK mask )
// Invoke the event details floater if someone is clicking on an event.
LLSD params(LLSD::emptyArray());
params.append(event_id);
LLCommandDispatcher::dispatch("event", params, LLSD(), LLGridManager::getInstance()->getGrid(), NULL, "clicked", true);
LLCommandDispatcher::dispatch("event", params, LLSD(), LLGridManager::getInstance()->getGrid(), NULL, LLCommandHandler::NAV_TYPE_CLICKED, true);
break;
}
case MAP_ITEM_LAND_FOR_SALE:

View File

@ -1,146 +1,58 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<floater name="floaterland" title="LAND-INFO">
<floater.string name="maturity_icon_general">
&quot;Parcel_PG_Dark&quot;
</floater.string>
<floater.string name="maturity_icon_moderate">
&quot;Parcel_M_Dark&quot;
</floater.string>
<floater.string name="maturity_icon_adult">
&quot;Parcel_R_Dark&quot;
</floater.string>
<floater.string name="Hours">
[HOURS] Stunden
</floater.string>
<floater.string name="Hour">
Std.
</floater.string>
<floater.string name="Minutes">
[MINUTES] Min.
</floater.string>
<floater.string name="Minute">
Min.
</floater.string>
<floater.string name="Seconds">
[SECONDS] Sek.
</floater.string>
<floater.string name="Remaining">
Restzeit
</floater.string>
<floater.string name="Always">
Immer
</floater.string>
<floater.string name="maturity_icon_general">&quot;Parcel_PG_Dark&quot;</floater.string>
<floater.string name="maturity_icon_moderate">&quot;Parcel_M_Dark&quot;</floater.string>
<floater.string name="maturity_icon_adult">&quot;Parcel_R_Dark&quot;</floater.string>
<floater.string name="Hours">[HOURS] Stunden</floater.string>
<floater.string name="Hour">Std.</floater.string>
<floater.string name="Minutes">[MINUTES] Min.</floater.string>
<floater.string name="Minute">Min.</floater.string>
<floater.string name="Seconds">[SECONDS] Sek.</floater.string>
<floater.string name="Remaining">Restzeit</floater.string>
<floater.string name="Always">Immer</floater.string>
<tab_container name="landtab" tab_min_width="40">
<panel label="ALLGEMEIN" name="land_general_panel">
<panel.string name="new users only">
Nur neue Benutzer
</panel.string>
<panel.string name="anyone">
Jeder
</panel.string>
<panel.string name="area_text">
Gebiet:
</panel.string>
<panel.string name="area_size_text">
[AREA] m².
</panel.string>
<panel.string name="auction_id_text">
Auktions-ID: [ID]
</panel.string>
<panel.string name="need_tier_to_modify">
Bestätigen Sie den Kauf, um dieses Land zu bearbeiten.
</panel.string>
<panel.string name="group_owned_text">
(In Gruppenbesitz)
</panel.string>
<panel.string name="profile_text">
Profil
</panel.string>
<panel.string name="info_text">
Info
</panel.string>
<panel.string name="public_text">
(öffentlich)
</panel.string>
<panel.string name="none_text">
(keiner)
</panel.string>
<panel.string name="sale_pending_text">
(Wird verkauft)
</panel.string>
<panel.string name="no_selection_text">
Keine Parzelle ausgewählt.
</panel.string>
<panel.string name="time_stamp_template">
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
</panel.string>
<text name="Name:">
Name:
</text>
<text name="Description:">
Beschreibung:
</text>
<text name="LandType">
Typ:
</text>
<text name="LandTypeText">
Mainland / Homestead
</text>
<text name="ContentRating">
Einstufung:
</text>
<text name="ContentRatingText">
Adult
</text>
<text name="Owner:">
Eigentümer:
</text>
<text name="Group:">
Gruppe:
</text>
<panel.string name="new users only">Nur neue Benutzer</panel.string>
<panel.string name="anyone">Jeder</panel.string>
<panel.string name="area_text">Gebiet:</panel.string>
<panel.string name="area_size_text">[AREA] m².</panel.string>
<panel.string name="auction_id_text">Auktions-ID: [ID]</panel.string>
<panel.string name="need_tier_to_modify">Bestätigen Sie den Kauf, um dieses Land zu bearbeiten.</panel.string>
<panel.string name="group_owned_text">(In Gruppenbesitz)</panel.string>
<panel.string name="profile_text">Profil</panel.string>
<panel.string name="info_text">Info</panel.string>
<panel.string name="public_text">(öffentlich)</panel.string>
<panel.string name="none_text">(keiner)</panel.string>
<panel.string name="sale_pending_text">(Wird verkauft)</panel.string>
<panel.string name="no_selection_text">Keine Parzelle ausgewählt.</panel.string>
<panel.string name="time_stamp_template">[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]</panel.string>
<text name="Name:">Name:</text>
<text name="Description:">Beschreibung:</text>
<text name="LandType">Typ:</text>
<text name="LandTypeText">Mainland / Homestead</text>
<text name="ContentRating">Einstufung:</text>
<text name="ContentRatingText">Adult</text>
<text name="Owner:">Eigentümer:</text>
<text name="Group:">Gruppe:</text>
<button label="Festlegen" label_selected="Einstellen..." name="Set..." width="90"/>
<check_box label="Übertragung an Gruppe zulassen" name="check deed" tool_tip="Ein Gruppen-Officer kann dieses Land der Gruppe übertragen. Das Land wird dann über die Landzuteilung der Gruppe verwaltet."/>
<button label="Übertragung" label_selected="Übertragen..." name="Deed..." tool_tip="Sie können Land nur übertragen, wenn Sie in der ausgewählten Gruppe Officer sind."/>
<check_box label="Eigentümer leistet Beitrag durch Übertragung" name="check contrib" tool_tip="Wenn das Land an die Gruppe übertragen wird, trägt der frühere Eigentümer ausreichend Landnutzungsrechte bei, um es zu halten."/>
<text name="For Sale:">
Zum Verkauf:
</text>
<text name="Not for sale.">
Nicht zu verkaufen
</text>
<text name="For Sale: Price L$[PRICE].">
Preis: [PRICE] L$ ([PRICE_PER_SQM]L$/m²)
</text>
<text name="For Sale:">Zum Verkauf:</text>
<text name="Not for sale.">Nicht zu verkaufen</text>
<text name="For Sale: Price L$[PRICE].">Preis: [PRICE] L$ ([PRICE_PER_SQM]L$/m²)</text>
<text name="SalePending"/>
<button label="Land verkaufen" label_selected="Land verkaufen..." name="Sell Land..."/>
<text name="For sale to">
Zum Verkauf an: [BUYER]
</text>
<text name="Sell with landowners objects in parcel.">
Objekte sind im Verkauf eingeschlossen
</text>
<text name="Selling with no objects in parcel.">
Objekte sind im Verkauf nicht eingeschlossen
</text>
<text name="For sale to">Zum Verkauf an: [BUYER]</text>
<text name="Sell with landowners objects in parcel.">Objekte sind im Verkauf eingeschlossen</text>
<text name="Selling with no objects in parcel.">Objekte sind im Verkauf nicht eingeschlossen</text>
<button label="Landverkauf abbrechen" label_selected="Landverkauf abbrechen" name="Cancel Land Sale"/>
<text name="Claimed:">
Gekauft am:
</text>
<text name="DateClaimText">
Dienstag, 15. Aug. 2006, 13:47:25
</text>
<text name="PriceLabel">
Gebiet:
</text>
<text name="PriceText">
4.048 m²
</text>
<text name="Traffic:">
Traffic:
</text>
<text name="DwellText">
Laden...
</text>
<text name="Claimed:">Gekauft am:</text>
<text name="DateClaimText">Dienstag, 15. Aug. 2006, 13:47:25</text>
<text name="PriceLabel">Gebiet:</text>
<text name="PriceText">4.048 m²</text>
<text name="Traffic:">Traffic:</text>
<text name="DwellText">Laden...</text>
<button label="Land kaufen" label_selected="Land kaufen..." name="Buy Land..."/>
<button label="Linden-Verkauf" label_selected="Linden-Verkauf..." name="Linden Sale..." tool_tip="Land muss Eigentum und auf Inhalt gesetzt sein und nicht zur Auktion stehen."/>
<button label="Skriptinfo" name="Scripts..."/>
@ -150,133 +62,55 @@
<button label="Land in Besitz nehmen" label_selected="Land in Besitz nehmen..." name="Reclaim Land..."/>
</panel>
<panel label="VERTRAG" name="land_covenant_panel">
<panel.string name="can_resell">
Gekauftes Land in dieser Region kann wiederverkauft werden.
</panel.string>
<panel.string name="can_not_resell">
Gekauftes Land in dieser Region kann nicht wiederverkauft werden.
</panel.string>
<panel.string name="can_change">
Gekauftes Land in dieser Region kann zusammengelegt und geteilt werden.
</panel.string>
<panel.string name="can_not_change">
Gekauftes Land in dieser Region kann nicht zusammengelegt und geteilt werden.
</panel.string>
<text name="estate_section_lbl">
Grundbesitz:
</text>
<text name="estate_name_text">
Mainland
</text>
<text name="estate_owner_lbl">
Eigentümer:
</text>
<text name="estate_owner_text">
(keiner)
</text>
<text_editor name="covenant_editor">
Für diesen Grundbesitz fehlt der Vertrag.
</text_editor>
<text name="covenant_timestamp_text">
Letzte Änderung am Mittwoch, den 31. Dez. 1969, 16:00:00
</text>
<text name="region_section_lbl">
Region:
</text>
<text name="region_name_text">
EricaVille
</text>
<text name="region_landtype_lbl">
Typ:
</text>
<text name="region_landtype_text">
Mainland / Homestead
</text>
<text name="region_maturity_lbl">
Einstufung:
</text>
<text name="region_maturity_text">
Adult
</text>
<text name="resellable_lbl">
Wiederverkauf:
</text>
<text name="resellable_clause">
Land in dieser Region kann nicht wiederverkauft werden.
</text>
<text name="changeable_lbl">
Unterteilen:
</text>
<text name="changeable_clause">
Land in dieser Region kann nicht zusammengelegt/geteilt
werden.
</text>
<panel.string name="can_resell">Gekauftes Land in dieser Region kann wiederverkauft werden.</panel.string>
<panel.string name="can_not_resell">Gekauftes Land in dieser Region kann nicht wiederverkauft werden.</panel.string>
<panel.string name="can_change">Gekauftes Land in dieser Region kann zusammengelegt und geteilt werden.</panel.string>
<panel.string name="can_not_change">Gekauftes Land in dieser Region kann nicht zusammengelegt und geteilt werden.</panel.string>
<text name="estate_section_lbl">Grundbesitz:</text>
<text name="estate_name_text">Mainland</text>
<text name="estate_owner_lbl">Eigentümer:</text>
<text name="estate_owner_text">(keiner)</text>
<text_editor name="covenant_editor">Für diesen Grundbesitz fehlt der Vertrag.</text_editor>
<text name="covenant_timestamp_text">Letzte Änderung am Mittwoch, den 31. Dez. 1969, 16:00:00</text>
<text name="region_section_lbl">Region:</text>
<text name="region_name_text">EricaVille</text>
<text name="region_landtype_lbl">Typ:</text>
<text name="region_landtype_text">Mainland / Homestead</text>
<text name="region_maturity_lbl">Einstufung:</text>
<text name="region_maturity_text">Adult</text>
<text name="resellable_lbl">Wiederverkauf:</text>
<text name="resellable_clause">Land in dieser Region kann nicht wiederverkauft werden.</text>
<text name="changeable_lbl">Unterteilen:</text>
<text name="changeable_clause">Land in dieser Region kann nicht zusammengelegt/geteilt
werden.</text>
</panel>
<panel label="OBJEKTE" name="land_objects_panel">
<panel.string name="objects_available_text">
[COUNT] von [MAX] ([AVAILABLE] verfügbar)
</panel.string>
<panel.string name="objects_deleted_text">
[COUNT] von [MAX] ([DELETED] werden gelöscht)
</panel.string>
<text name="parcel_object_bonus">
Objektbonusfaktor in Region: [BONUS]
</text>
<text name="Simulator primitive usage:">
Regionskapazität:
</text>
<text name="objects_available">
[COUNT] von [MAX] ([AVAILABLE] verfügbar)
</text>
<text name="Primitives parcel supports:">
Parzellenlandkapazität:
</text>
<text name="object_contrib_text">
[COUNT]
</text>
<text name="Primitives on parcel:">
Parzellenlandauswirkung:
</text>
<text name="total_objects_text">
[COUNT]
</text>
<text name="Owned by parcel owner:" width="200">
Im Eigentum des Parzellenbesitzers:
</text>
<text left_delta="204" name="owner_objects_text">
[COUNT]
</text>
<panel.string name="objects_available_text">[COUNT] von [MAX] ([AVAILABLE] verfügbar)</panel.string>
<panel.string name="objects_deleted_text">[COUNT] von [MAX] ([DELETED] werden gelöscht)</panel.string>
<text name="parcel_object_bonus">Objektbonusfaktor in Region: [BONUS]</text>
<text name="Simulator primitive usage:">Regionskapazität:</text>
<text name="objects_available">[COUNT] von [MAX] ([AVAILABLE] verfügbar)</text>
<text name="Primitives parcel supports:">Parzellenlandkapazität:</text>
<text name="object_contrib_text">[COUNT]</text>
<text name="Primitives on parcel:">Parzellenlandauswirkung:</text>
<text name="total_objects_text">[COUNT]</text>
<text name="Owned by parcel owner:" width="200">Im Eigentum des Parzellenbesitzers:</text>
<text left_delta="204" name="owner_objects_text">[COUNT]</text>
<button label="Anzeigen" label_selected="Anzeigen" name="ShowOwner"/>
<button label="Zurückgeben" label_selected="Zurückgeben..." name="ReturnOwner..." tool_tip="Objekte an ihre Eigentümer zurückgeben."/>
<text name="Set to group:">
Der Gruppe zugeordnet:
</text>
<text name="group_objects_text">
[COUNT]
</text>
<text name="Set to group:">Der Gruppe zugeordnet:</text>
<text name="group_objects_text">[COUNT]</text>
<button label="Anzeigen" label_selected="Anzeigen" name="ShowGroup"/>
<button label="Zurückgeben" label_selected="Zurückgeben..." name="ReturnGroup..." tool_tip="Objekte an ihre Eigentümer zurückgeben."/>
<text name="Owned by others:">
Im Eigentum anderer:
</text>
<text name="other_objects_text">
[COUNT]
</text>
<text name="Owned by others:">Im Eigentum anderer:</text>
<text name="other_objects_text">[COUNT]</text>
<button label="Anzeigen" label_selected="Anzeigen" name="ShowOther"/>
<button label="Zurückgeben" label_selected="Zurückgeben..." name="ReturnOther..." tool_tip="Objekte an ihre Eigentümer zurückgeben."/>
<text name="Selected / sat upon:">
Ausgewählt/gesessen auf:
</text>
<text name="selected_objects_text">
[COUNT]
</text>
<text name="Autoreturn">
Objekte anderer Einwohner automatisch zurückgeben (Minuten, 0 für aus):
</text>
<text name="Selected / sat upon:">Ausgewählt/gesessen auf:</text>
<text name="selected_objects_text">[COUNT]</text>
<text name="Autoreturn">Objekte anderer Einwohner automatisch zurückgeben (Minuten, 0 für aus):</text>
<line_editor name="clean other time"/>
<text name="Object Owners:">
Objekteigentümer:
</text>
<text name="Object Owners:">Objekteigentümer:</text>
<button label="Liste aktualisieren" label_selected="Liste aktualisieren" name="Refresh List" tool_tip="Objektliste aktualisieren"/>
<button label="Objekte zurückgeben" label_selected="Objekte zurückgeben..." name="Return objects..."/>
<name_list name="owner list">
@ -287,57 +121,27 @@ werden.
</name_list>
</panel>
<panel label="OPTIONEN" name="land_options_panel">
<panel.string name="search_enabled_tooltip">
Diese Parzelle in Suchergebnissen anzeigen.
</panel.string>
<panel.string name="search_disabled_small_tooltip">
Diese Option ist nicht aktiviert, weil die Parzelle 128 m² oder kleiner ist.
Nur große Parzellen können in der Suche aufgeführt werden.
</panel.string>
<panel.string name="search_disabled_permissions_tooltip">
Diese Option ist nicht aktiviert, da Sie die Parzellenoptionen nicht verändern können.
</panel.string>
<panel.string name="mature_check_mature">
Moderater Inhalt
</panel.string>
<panel.string name="mature_check_adult">
Adult-Inhalt
</panel.string>
<panel.string name="mature_check_mature_tooltip">
Die Informationen oder Inhalte Ihrer Parzelle sind „Moderat“.
</panel.string>
<panel.string name="mature_check_adult_tooltip">
Die Informationen oder Inhalte Ihrer Parzelle sind „Adult“.
</panel.string>
<panel.string name="landing_point_none">
(keiner)
</panel.string>
<panel.string name="push_restrict_text">
Kein Stoßen
</panel.string>
<panel.string name="push_restrict_region_text">
Kein Stoßen (regional)
</panel.string>
<text name="allow_label">
Anderen Einwohnern gestatten:
</text>
<text name="allow_label0">
Fliegen:
</text>
<panel.string name="search_enabled_tooltip">Diese Parzelle in Suchergebnissen anzeigen.</panel.string>
<panel.string name="search_disabled_small_tooltip">Diese Option ist nicht aktiviert, weil die Parzelle 128 m² oder kleiner ist.
Nur große Parzellen können in der Suche aufgeführt werden.</panel.string>
<panel.string name="search_disabled_permissions_tooltip">Diese Option ist nicht aktiviert, da Sie die Parzellenoptionen nicht verändern können.</panel.string>
<panel.string name="mature_check_mature">Moderater Inhalt</panel.string>
<panel.string name="mature_check_adult">Adult-Inhalt</panel.string>
<panel.string name="mature_check_mature_tooltip">Die Informationen oder Inhalte Ihrer Parzelle sind „Moderat“.</panel.string>
<panel.string name="mature_check_adult_tooltip">Die Informationen oder Inhalte Ihrer Parzelle sind „Adult“.</panel.string>
<panel.string name="landing_point_none">(keiner)</panel.string>
<panel.string name="push_restrict_text">Kein Stoßen</panel.string>
<panel.string name="push_restrict_region_text">Kein Stoßen (regional)</panel.string>
<text name="allow_label">Anderen Einwohnern gestatten:</text>
<text name="allow_label0">Fliegen:</text>
<check_box label="Jeder" name="check fly" tool_tip="Falls aktiviert, können Einwohner auf Ihrem Land fliegen. Falls nicht aktiviert, können Einwohner lediglich auf Ihr Land fliegen und dort landen (dann jedoch nicht wieder weiterfliegen) oder über Ihr Land hinweg fliegen."/>
<text name="allow_label2">
Bauen:
</text>
<text name="allow_label2">Bauen:</text>
<check_box label="Jeder" name="edit objects check" tool_tip="Wenn aktiviert, können Einwohner auf Ihrem Land Objekte erstellen und rezzen."/>
<check_box label="Gruppe" name="edit group objects check" tool_tip="Wenn aktiviert, können Parzellengruppen-Mitglieder auf Ihrem Land Objekte erstellen und rezzen."/>
<text name="allow_label3">
Objekteintritt:
</text>
<text name="allow_label3">Objekteintritt:</text>
<check_box label="Jeder" name="all object entry check" tool_tip="Wenn aktiviert, können Einwohner bestehende Objekte von anderen Parzellen auf diese Parzelle verschieben."/>
<check_box label="Gruppe" name="group object entry check" tool_tip="Wenn aktiviert, können Parzellengruppen-Mitglieder bestehende Objekte von anderen Parzellen auf diese Parzelle verschieben."/>
<text name="allow_label4">
Skripts ausführen:
</text>
<text name="allow_label4">Skripts ausführen:</text>
<check_box label="Jeder" name="check other scripts" tool_tip="Wenn aktiviert, können Einwohner auf Ihrer Parzelle Skripte inklusive Anhängen ausführen."/>
<check_box label="Gruppe" name="check group scripts" tool_tip="Wenn aktiviert, können Parzellengruppen-Mitglieder auf Ihrer Parzelle Skripte inklusive Anhängen ausführen."/>
<check_box label="Sicher (kein Schaden)" name="check safe" tool_tip="Falls aktiviert, wird Land auf Option „Sicher“ eingestellt, Kampfschäden sind deaktiviert. Ansonsten sind Kampfschäden aktiviert."/>
@ -359,22 +163,14 @@ Nur große Parzellen können in der Suche aufgeführt werden.
<combo_box.item label="Sonstige" name="item12"/>
</combo_box>
<check_box label="Moderater Inhalt" name="MatureCheck" tool_tip=""/>
<text name="Snapshot:">
Foto:
</text>
<text name="Snapshot:">Foto:</text>
<texture_picker label="" name="snapshot_ctrl" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
<text name="allow_see_label">
Avatare in anderen Parzellen können Avatare in dieser Parzelle sehen und mit ihnen chatten.
</text>
<text name="allow_see_label">Avatare in anderen Parzellen können Avatare in dieser Parzelle sehen und mit ihnen chatten.</text>
<check_box label="Avatare sehen" name="SeeAvatarsCheck" tool_tip="Gestattet sowohl Avataren auf anderen Parzellen, Avatare auf dieser Parzelle zu sehen und mit ihnen zu chatten, als auch Ihnen, diese Avatare auf anderen Parzellen zu sehen und mit ihnen zu chatten."/>
<text name="landing_point">
Landepunkt: [LANDING]
</text>
<text name="landing_point">Landepunkt: [LANDING]</text>
<button label="Festlegen" label_selected="Festlegen" name="Set" tool_tip="Legt Ihren Standort als Landepunkt fest, an dem Besucher ankommen. Legt die Position Ihres Avatars innerhalb dieser Parzelle fest." width="70"/>
<button label="Löschen" label_selected="Löschen" name="Clear" tool_tip="Landepunkt löschen" width="70"/>
<text name="Teleport Routing: ">
Teleport-Route:
</text>
<text name="Teleport Routing: ">Teleport-Route:</text>
<combo_box name="landing type" tool_tip="Teleport-Route -- festlegen, wie Teleports auf Ihrem Land gehandhabt werden sollen">
<combo_box.item label="Blockiert" name="Blocked"/>
<combo_box.item label="Landepunkt" name="LandingPoint"/>
@ -382,66 +178,38 @@ Nur große Parzellen können in der Suche aufgeführt werden.
</combo_box>
</panel>
<panel label="MEDIEN" name="land_media_panel">
<text name="with media:">
Typ:
</text>
<text name="with media:">Typ:</text>
<combo_box name="media type" tool_tip="Geben Sie einen URL für den Film, die Webseite oder ein anderes Medium ein"/>
<text name="at URL:">
Homepage:
</text>
<text name="at URL:">Homepage:</text>
<button label="Festlegen" name="set_media_url"/>
<text name="Description:">
Inhalt:
</text>
<text name="Description:">Inhalt:</text>
<line_editor name="url_description" tool_tip="Text, der neben der Abspielen/Laden-Schaltfläche angezeigt wird"/>
<text name="Media texture:">
Textur ersetzen:
</text>
<text name="Media texture:">Textur ersetzen:</text>
<texture_picker label="" name="media texture" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
<text name="replace_texture_help">
Objekte, die diese Textur verwenden, werden den Film oder die Webseite anzeigen, nachdem Sie auf den Pfeil (Wiedergabe) klicken. Wählen Sie das kleine Bild aus, um eine andere Textur auszuwählen.
</text>
<text name="replace_texture_help">Objekte, die diese Textur verwenden, werden den Film oder die Webseite anzeigen, nachdem Sie auf den Pfeil (Wiedergabe) klicken. Wählen Sie das kleine Bild aus, um eine andere Textur auszuwählen.</text>
<check_box label="Automatisch skalieren" name="media_auto_scale" tool_tip="Aktivieren Sie diese Option, um den Inhalt für diese Parzelle automatisch zu skalieren. Dies ist eventuell langsamer und die Qualität ist schlechter, aber Sie müssen keine weitere Texturskalierung oder -anpassung vornehmen."/>
<text name="media_size" tool_tip="Darstellungsgröße von Webmedien, für Standard bei 0 belassen.">
Größe:
</text>
<text name="media_size" tool_tip="Darstellungsgröße von Webmedien, für Standard bei 0 belassen.">Größe:</text>
<spinner name="media_size_width" tool_tip="Darstellungsgröße von Webmedien, für Standard bei 0 belassen."/>
<spinner name="media_size_height" tool_tip="Darstellungsgröße von Webmedien, für Standard bei 0 belassen."/>
<text name="pixels">
Pixel
</text>
<text name="Options:">
Optionen:
</text>
<text name="pixels">Pixel</text>
<text name="Options:">Optionen:</text>
<check_box label="Schleife" name="media_loop" tool_tip="Spielt das Medium in einer Schleife ab. Der Abspielvorgang wird immer wieder von vorne fortgesetzt."/>
</panel>
<panel label="SOUND" name="land_audio_panel">
<text name="MusicURL:">
Musik-URL:
</text>
<text name="Sound:">
Sound:
</text>
<text name="MusicURL:">Musik-URL:</text>
<text name="Sound:">Sound:</text>
<check_box label="Gesten- und Objektgeräusche auf diese Parzelle beschränken" name="check sound local"/>
<text name="Avatar Sounds:">
Avatarsounds:
</text>
<text name="Avatar Sounds:">Avatarsounds:</text>
<check_box label="Jeder" name="all av sound check"/>
<check_box label="Gruppe" name="group av sound check"/>
<text name="Voice settings:">
Voice:
</text>
<text name="Voice settings:">Voice:</text>
<check_box label="Voice aktivieren" name="parcel_enable_voice_channel"/>
<check_box label="Voice aktivieren (vom Grundbesitz eingerichtet)" name="parcel_enable_voice_channel_is_estate_disabled"/>
<check_box label="Voice auf diese Parzelle beschränken" name="parcel_enable_voice_channel_local"/>
</panel>
<panel label="ZUGANG" name="land_access_panel">
<panel.string name="access_estate_defined">
(Durch Grundbesitz festgelegt)
</panel.string>
<panel.string name="estate_override">
Eine oder mehrere dieser Optionen gelten auf Grundbesitzebene
</panel.string>
<panel.string name="access_estate_defined">(Durch Grundbesitz festgelegt)</panel.string>
<panel.string name="estate_override">Eine oder mehrere dieser Optionen gelten auf Grundbesitzebene</panel.string>
<check_box label="Alle Besucher sind zugelassen" tool_tip="Bei Deaktivierung dieser Option werden Bannlinien generiert" name="public_access"/>
<check_box label="Muss 18+ sein [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Nur Einwohner, die mindestens 18 Jahre alt sind, können diese Parzelle betreten. Weitere Informationen finden Sie unter [SUPPORT_SITE]."/>
<check_box label="Muss über Zahlungsinfo in Datei [ESTATE_PAYMENT_LIMIT] verfügen" name="limit_payment" tool_tip="Um diese Parzelle besuchen zu können, müssen Einwohner Zahlungsinformationen hinterlegt haben. Weitere Informationen finden Sie auf [SUPPORT_SITE]."/>
@ -453,21 +221,15 @@ Nur große Parzellen können in der Suche aufgeführt werden.
</combo_box>
<spinner label="Preis in L$:" name="PriceSpin"/>
<spinner label="Online-Zeit:" name="HoursSpin"/>
<text name="OwnerLimited">
(Der Grundbesitzer kann diese Auswahl eingeschränkt haben)
</text>
<text name="OwnerLimited">(Der Grundbesitzer kann diese Auswahl eingeschränkt haben)</text>
<panel name="Allowed_layout_panel">
<text label="Immer erlauben" name="AllowedText">
Immer zulässig ([COUNT], max. [MAX])
</text>
<text label="Immer erlauben" name="AllowedText">Immer zulässig ([COUNT], max. [MAX])</text>
<name_list name="AccessList" tool_tip="([LISTED] aufgeführt, [MAX] max)"/>
<button label="Hinzufügen" name="add_allowed"/>
<button label="Entfernen" label_selected="Entfernen" name="remove_allowed"/>
</panel>
<panel name="Banned_layout_panel">
<text label="Verbannen" name="BanCheck">
Verbannt ([COUNT], max. [MAX])
</text>
<text label="Verbannen" name="BanCheck">Verbannt ([COUNT], max. [MAX])</text>
<name_list name="BannedList" tool_tip="([LISTED] aufgeführt, [MAX] max)">
<columns label="Name" name="name"/>
<columns label="Dauer" name="duration"/>
@ -477,5 +239,6 @@ Nur große Parzellen können in der Suche aufgeführt werden.
</panel>
</panel>
<panel label="ERLEBNISSE" name="land_experiences_panel"/>
<panel name="land_environment_panel" label="UMGEBUNG"/>
</tab_container>
</floater>

View File

@ -1,18 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<floater name="avatar_texture_debug" title="AVATAR-TEXTUREN">
<floater.string name="InvalidAvatar">
UNGÜLTIGER AVATAR
</floater.string>
<floater.string name="InvalidAvatar">UNGÜLTIGER AVATAR</floater.string>
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
<text name="label">
Gebackene
Texturen
</text>
<text name="composite_label">
Zusammengesetzte
Texturen
</text>
<text name="label">Gebackene
Texturen</text>
<text name="composite_label">Zusammengesetzte
Texturen</text>
<button label="IDs an Konsole ausgeben" label_selected="Abladen" name="Dump"/>
<panel name="scroll_content_panel">
<texture_picker label="Haare" name="hair-baked"/>
@ -46,5 +40,21 @@ Texturen
<texture_picker label="Rock" name="skirt"/>
</panel>
</panel>
<texture_picker name="upper_universal_tattoo" label="Oberes Univ.-Tattoo"/>
<texture_picker name="aux1_tattoo" label="AUX 1 Tattoo"/>
<texture_picker name="leftarm-baked" label="Linker Arm"/>
<texture_picker name="aux1-baked" label="AUX 1"/>
<texture_picker name="skirt_tattoo" label="Rocktattoo"/>
<texture_picker name="aux2_tattoo" label="AUX 2 Tattoo"/>
<texture_picker name="eyes_tattoo" label="Augentattoo"/>
<texture_picker name="head_universal_tattoo" label="Kopf-Univ.-Tattoo"/>
<texture_picker name="leftleg_tattoo" label="Tattoo am linken Bein"/>
<texture_picker name="aux3-baked" label="AUX 3"/>
<texture_picker name="hair_tattoo" label="Haartattoo"/>
<texture_picker name="leftleg-baked" label="Linkes Bein"/>
<texture_picker name="aux2-baked" label="AUX 2"/>
<texture_picker name="aux3_tattoo" label="AUX 3 Tattoo"/>
<texture_picker name="leftarm_tattoo" label="Tattoo am linken Arm"/>
<texture_picker name="lower_universal_tattoo" label="Unteres Univ.-Tattoo"/>
</scroll_container>
</floater>

View File

@ -1,45 +1,27 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<floater name="camera_floater" title="KAMERASTEUERUNGEN">
<floater.string name="rotate_tooltip">
Kamera um Fokus drehen
</floater.string>
<floater.string name="zoom_tooltip">
Kamera auf Fokus zoomen
</floater.string>
<floater.string name="move_tooltip">
Kamera nach oben, unten, links und rechts bewegen
</floater.string>
<floater.string name="free_mode_title">
Objekt ansehen
</floater.string>
<floater.string name="rotate_tooltip">Kamera um Fokus drehen</floater.string>
<floater.string name="zoom_tooltip">Kamera auf Fokus zoomen</floater.string>
<floater.string name="move_tooltip">Kamera nach oben, unten, links und rechts bewegen</floater.string>
<floater.string name="free_mode_title">Objekt ansehen</floater.string>
<panel name="controls">
<panel name="preset_views_list">
<panel_camera_item name="front_view">
<panel_camera_item.text name="front_view_text">
Vorderansicht
</panel_camera_item.text>
<panel_camera_item name="front_view" tool_tip="Vorderansicht">
<panel_camera_item.text name="front_view_text">Vorderansicht</panel_camera_item.text>
</panel_camera_item>
<panel_camera_item name="group_view">
<panel_camera_item.text name="side_view_text">
Seitenansicht
</panel_camera_item.text>
<panel_camera_item name="group_view" tool_tip="Seitenansicht">
<panel_camera_item.text name="side_view_text">Seitenansicht</panel_camera_item.text>
</panel_camera_item>
<panel_camera_item name="rear_view">
<panel_camera_item.text name="rear_view_text">
Hinteransicht
</panel_camera_item.text>
<panel_camera_item name="rear_view" tool_tip="Rückansicht">
<panel_camera_item.text name="rear_view_text">Hinteransicht</panel_camera_item.text>
</panel_camera_item>
</panel>
<panel name="camera_modes_list">
<panel_camera_item name="object_view">
<panel_camera_item.text name="object_view_text">
Objektansicht
</panel_camera_item.text>
<panel_camera_item name="object_view" tool_tip="Objektansicht">
<panel_camera_item.text name="object_view_text">Objektansicht</panel_camera_item.text>
</panel_camera_item>
<panel_camera_item name="mouselook_view">
<panel_camera_item.text name="mouselook_view_text">
Mouselook
</panel_camera_item.text>
<panel_camera_item name="mouselook_view" tool_tip="Mouselook-Ansicht">
<panel_camera_item.text name="mouselook_view_text">Mouselook</panel_camera_item.text>
</panel_camera_item>
</panel>
<panel name="zoom" tool_tip="Kamera auf Fokus zoomen">
@ -47,10 +29,17 @@
<slider_bar name="zoom_slider" tool_tip="Kamera auf Fokus zoomen"/>
<joystick_track name="cam_track_stick" tool_tip="Kamera nach oben, unten, links und rechts bewegen"/>
</panel>
<text name="precise_ctrs_label">Präzise Steuerungen verwenden</text>
</panel>
<panel name="buttons">
<button label="" name="presets_btn" tool_tip="Ansichten"/>
<button label="" name="pan_btn" tool_tip="Kreisen - Zoomen - Schwenken"/>
<button label="" name="avatarview_btn" tool_tip="Kameramodi"/>
</panel>
<panel name="buttons_panel">
<button name="gear_btn" tool_tip="Meine Kameravoreinstellungen"/>
<button name="save_preset_btn" label="Als Voreinstellung speichern..."/>
<combo_box.item name="Use preset" label="Voreinstellung verwenden"/>
</panel>
<combo_box name="preset_combo"/>
</floater>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" ?>
<floater name="floater_camera_presets" title="MEINE KAMERAVOREINSTELLUNGEN"/>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" ?>
<floater name="groups" title="GESPEICHERTE BENUTZERNAMEN"/>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" ?>
<floater name="linkreplace" title="INVENTARLINKS ERSETZEN"/>

View File

@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<floater name="floater_people" title="LEUTE">
<panel_container name="main_panel">
<panel label="Gruppenprofil" name="panel_group_info_sidetray"/>
<panel label="Blockierte Einwohner und Objekte" name="panel_block_list_sidetray"/>
<panel name="panel_group_creation_sidetray" label="Gruppe erstellen"/>
</panel_container>
</floater>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" ?>
<floater name="floaterpreferencesviewadvanced" title="KAMERAPOSITION"/>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" ?>
<floater name="floater_preview_trash" title="PAPIERKORB">
<layout_panel name="empty_btn_lp"/>
<layout_stack name="button_panel_ls">
<button name="empty_btn" label="Papierkorb leeren"/>
</layout_stack>
</floater>

View File

@ -3,7 +3,7 @@
<panel name="panel_profile_view">
<tab_container name="panel_profile_tabs">
<panel label="Second Life" name="panel_profile_secondlife"/>
<panel label="Web" name="panel_profile_web"/>
<panel label="Feed" name="panel_profile_web"/>
<panel label="Interessen" name="panel_profile_interests"/>
<panel label="Auswahlen" name="panel_profile_picks"/>
<panel label="Anzeige" name="panel_profile_classifieds"/>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" ?>
<floater name="save_camera_preset" title="Kameravoreinstellung speichern">
<radio_group name="radio_save_preset">
<radio_item name="replace_preset" label="Eine Voreinstellung ersetzen"/>
<radio_item name="new_preset" label="Als neue Voreinstellung speichern"/>
</radio_group>
</floater>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" ?>
<context_menu name="Outfit">
<menu name="New Clothes" label="Neue Kleidung">
<menu_item_call name="New Skirt" label="Neuer Rock"/>
<menu_item_call name="New Underpants" label="Neue Unterhose"/>
<menu_item_call name="New Undershirt" label="Neues Unterhemd"/>
<menu_item_call name="New Shirt" label="Neues Shirt"/>
<menu_item_call name="New Pants" label="Neue Hose"/>
<menu_item_call name="New Tattoo" label="Neues Tattoo"/>
<menu_item_call name="New Physics" label="Neue Physik"/>
<menu_item_call name="New Jacket" label="Neue Jacke"/>
<menu_item_call name="New Shoes" label="Neue Schuhe"/>
<menu_item_call name="New Gloves" label="Neue Handschuhe"/>
<menu_item_call name="New Alpha" label="Neuer Alpha"/>
<menu_item_call name="New Socks" label="Neue Socken"/>
</menu>
<menu name="New Body Parts" label="Neue Körperteile">
<menu_item_call name="New Hair" label="Neue Haare"/>
<menu_item_call name="New Eyes" label="Neue Augen"/>
<menu_item_call name="New Shape" label="Neue Form"/>
<menu_item_call name="New Skin" label="Neue Haut"/>
</menu>
</context_menu>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<menu_bar name="Main Menu">
<menu label="Ich" name="Me">
<menu_item_call label="Profil..." name="Profile"/>
@ -429,6 +429,15 @@
<menu_item_call label="Admin-Status anfordern" name="Request Admin Options"/>
<menu_item_call label="Admin-Status verlassen" name="Leave Admin Options"/>
<menu_item_check label="Admin-Menü anzeigen" name="View Admin Options"/>
<menu_item_call name="All Animations 10 Slower" label="Alle Animationen 10% langsamer"/>
<menu_item_check name="Show Avatar Render Info" label="Avatar-Renderinfo anzeigen"/>
<menu_item_call name="All Animations 10 Faster" label="Alle Animationen 10 % schneller"/>
<menu_item_call name="Playback event recording" label="Eventaufzeichnung wiedergeben"/>
<menu_item_call name="FB Connect Test" label="FB-Verbindungsprüfung"/>
<menu_item_call name="Stop event recording" label="Eventaufzeichnung anhalten"/>
<menu_item_call name="Reset All Animation Speed" label="Alle Animationsgeschwindigkeiten zurücksetzen"/>
<menu_item_call name="Start event recording" label="Eventaufzeichnung starten"/>
<menu_item_check name="Slow Motion Animations" label="Zeitlupen-Animationen"/>
</menu>
<menu label="Admin" name="Admin">
<menu label="Objekt" name="AdminObject">
@ -481,4 +490,5 @@
</menu>
</menu>
</menu>
<menu name="Animation Speed" label="Animationsgeschwindigkeit"/>
</menu_bar>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,30 @@
<?xml version="1.0" ?>
<panel name="GroupCreation" label="Gruppenerstellung">
<panel name="group_info_top">
<line_editor name="group_name_editor" label="Gib deinen neuen Gruppennamen hier ein"/>
</panel>
<layout_panel name="group_info"/>
<layout_stack name="layout">
<texture_picker name="insignia" tool_tip="Klicke, um ein Bild auszuwählen"/>
<text_editor name="charter">Gruppencharakter</text_editor>
<button name="back" tool_tip="Zur Gruppenliste zurückgehen"/>
<text name="info_deletion">Hinweis: Nach 7 Tagen wird eine Gruppe ohne Mitglieder (mit Ausnahme des Erstellers) gelöscht.</text>
<check_box name="check_enrollment_fee" label="Kosten für den Beitritt" tool_tip="Legt fest, ob für den Beitritt zur Gruppe eine Aufnahmegebühr verlangt wird"/>
<combo_box.item name="pg" label="Allgemeine Inhalte"/>
<scroll_list.rows name="basic" value="Basis (Platzhalter)"/>
<button name="btn_create" label="Gruppe erstellen für [COST] L$" tool_tip="Neue Gruppe erstellen"/>
<text name="fee_information">Die Gebühr für die Erstellung einer Gruppe richtet sich nach deiner Mitgliedsstufe. [https://secondlife.com/my/account/membership.php Weitere Infos]</text>
<scroll_list.rows name="premium" value="Premium (Platzhalter)"/>
<check_box name="open_enrollement" label="Jeder kann beitreten" tool_tip="Legt fest, ob diese Gruppe neuen Mitgliedern den Beitritt erlaubt, ohne eingeladen zu werden."/>
<combo_item name="select_mature">- Reifeeinstufung auswählen -</combo_item>
<spinner name="spin_enrollment_fee" label="L$" tool_tip="Neue Mitglieder müssen diese Gebühr bezahlen, um der Gruppe beitreten zu können, wenn die Aufnahmegebühr festgelegt wird."/>
<combo_box.item name="mature" label="Moderate Inhalte"/>
</layout_stack>
<layout_panel name="layout_crt"/>
<layout_stack name="button_row_ls"/>
<layout_panel name="create_actions"/>
<panel name="preferences_container"/>
<combo_box name="group_mature_check" tool_tip="Reifeeinstufungen bezeichnen die Art des Inhalts und des Verhaltens, die in einer Gruppe erlaubt sind"/>
<scroll_list name="membership_list"/>
<layout_panel name="create_info"/>
</panel>

View File

@ -1,21 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<panel label="Mitglieder und Rollen" name="roles_tab">
<panel.string name="default_needs_apply_text">
Diese Änderungen wurden nicht gespeichert.
</panel.string>
<panel.string name="want_apply_text">
Möchten Sie Ihre Änderungen speichern?
</panel.string>
<panel.string name="default_needs_apply_text">Diese Änderungen wurden nicht gespeichert.</panel.string>
<panel.string name="want_apply_text">Möchten Sie Ihre Änderungen speichern?</panel.string>
<tab_container name="roles_tab_container">
<panel label="MITGLIEDER" name="members_sub_tab" tool_tip="Mitglieder">
<panel.string name="help_text">
Sie können Mitgliedern Rollen zuweisen und entziehen.
<panel.string name="help_text">Sie können Mitgliedern Rollen zuweisen und entziehen.
Drücken Sie die Strg-Taste und klicken Sie auf Namen,
um mehrere Mitglieder auszuwählen.
</panel.string>
<panel.string name="donation_area">
[AREA] m².
</panel.string>
um mehrere Mitglieder auszuwählen.</panel.string>
<panel.string name="donation_area">[AREA] m².</panel.string>
<filter_editor label="Mitglieder filtern" name="filter_input"/>
<name_list name="member_list">
<name_list.columns label="Mitglied" name="name" relative_width="0.30"/>
@ -28,24 +20,14 @@ um mehrere Mitglieder auszuwählen.
<button label="Mitglied(er) verbannen" name="member_ban"/>
</panel>
<panel label="ROLLEN" name="roles_sub_tab">
<panel.string name="help_text">
Rollen haben einen Titel und umfassen bestimmte
<panel.string name="help_text">Rollen haben einen Titel und umfassen bestimmte
Fähigkeiten. Mitglieder können mehrere
Rollen innehaben. Eine Gruppe kann bis zu 10 Rollen
aufweisen, darunter „Jeder“ und „Eigentümer“.
</panel.string>
<panel.string name="cant_delete_role">
Die Rollen „Jeder&quot; und „Eigentuemer&quot; sind besondere Rollen und können nicht gelöscht werden.
</panel.string>
<panel.string name="power_folder_icon">
Inv_FolderClosed
</panel.string>
<panel.string name="power_all_have_icon">
Checkbox_On
</panel.string>
<panel.string name="power_partial_icon">
Checkbox_Off
</panel.string>
aufweisen, darunter „Jeder“ und „Eigentümer“.</panel.string>
<panel.string name="cant_delete_role">Die Rollen „Jeder&quot; und „Eigentuemer&quot; sind besondere Rollen und können nicht gelöscht werden.</panel.string>
<panel.string name="power_folder_icon">Inv_FolderClosed</panel.string>
<panel.string name="power_all_have_icon">Checkbox_On</panel.string>
<panel.string name="power_partial_icon">Checkbox_Off</panel.string>
<filter_editor label="Rollen filtern" name="filter_input"/>
<scroll_list name="role_list">
<scroll_list.columns label="Rolle" name="name"/>
@ -56,22 +38,16 @@ um mehrere Mitglieder auszuwählen.
<button label="Rolle löschen" name="role_delete"/>
</panel>
<panel label="FÄHIGKEITEN" name="actions_sub_tab" tool_tip="Sie können eine Beschreibung der Fähigkeit anzeigen und welche Rollen bzw. Mitglieder über diese Fähigkeit verfügen.">
<panel.string name="help_text">
Fähigkeiten verleihen Mitgliedern in Rollen bestimmte
Rechte in einer Gruppe. Es gibt viele verschiedene Fähigkeiten.
</panel.string>
<panel.string name="help_text">Fähigkeiten verleihen Mitgliedern in Rollen bestimmte
Rechte in einer Gruppe. Es gibt viele verschiedene Fähigkeiten.</panel.string>
<filter_editor label="Fähigkeiten filtern" name="filter_input"/>
<scroll_list name="action_list" tool_tip="Eine Fähigkeit auswählen, um mehr Details anzuzeigen.">
<scroll_list.columns label="" name="action"/>
</scroll_list>
</panel>
<panel label="VERBANNTE EINWOHNER" name="banlist_sub_tab" tool_tip="Verbannte Einwohner in dieser Gruppe anzeigen.">
<panel.string name="help_text">
Einwohner auf der Bannliste können nicht der Gruppe beitreten.
</panel.string>
<panel.string name="ban_count_template">
Anzahl Verbannungen: [COUNT]/[LIMIT]
</panel.string>
<panel.string name="help_text">Einwohner auf der Bannliste können nicht der Gruppe beitreten.</panel.string>
<panel.string name="ban_count_template">Anzahl Verbannungen: [COUNT]/[LIMIT]</panel.string>
<name_list name="ban_list">
<name_list.columns label="Einwohner" name="name"/>
<name_list.columns label="Datum der Verbannung" name="ban_date"/>
@ -80,66 +56,43 @@ um mehrere Mitglieder auszuwählen.
<button label="Verbannung(en) entfernen" name="ban_delete" tool_tip="Verbannung für bestimmte Einwohner in Ihrer Gruppe aufheben"/>
<button name="ban_refresh" tool_tip="Bannliste aktualisieren"/>
</panel>
<button name="role_copy" label="Rolle kopieren"/>
</tab_container>
<panel name="members_footer">
<text name="static">
Rollen
</text>
<text name="static">Rollen</text>
<scroll_list name="member_assigned_roles">
<scroll_list.columns label="" name="checkbox"/>
<scroll_list.columns label="" name="role"/>
</scroll_list>
<text name="static2">
Zulässige Fähigkeiten
</text>
<text name="static2">Zulässige Fähigkeiten</text>
<scroll_list name="member_allowed_actions" tool_tip="Um detaillierte Informationen zu den Fähigkeiten anzuzeigen, siehe Registerkarte Fähigkeiten.">
<scroll_list.columns label="" name="action"/>
</scroll_list>
</panel>
<panel name="members_header">
<text_editor name="member_action_description">
Diese Fähigkeit wird als „Mitglieder dieser Gruppe verweisen“ bezeichnet. Eigentümer können nur von anderen Eigentümern verwiesen werden.
</text_editor>
<text_editor name="member_action_description">Diese Fähigkeit wird als „Mitglieder dieser Gruppe verweisen“ bezeichnet. Eigentümer können nur von anderen Eigentümern verwiesen werden.</text_editor>
</panel>
<panel name="roles_footer">
<text name="static">
Rolle:
</text>
<text name="static">Rolle:</text>
<line_editor name="role_name"/>
<text name="static3">
Rollentitel
</text>
<text name="static3">Rollentitel</text>
<line_editor name="role_title"/>
<text name="static2">
Beschreibung
</text>
<text name="static2">Beschreibung</text>
<text_editor name="role_description"/>
<text name="static4">
Mitglieder in Rolle
</text>
<check_box label="Mitglieder anzeigen" name="role_visible_in_list" tool_tip="Festlegen, ob Mitglieder in dieser Rolle auf der Registerkarte &apos;Allgemein &apos; für Personen außerhalb der Gruppe sichtbar sind."/>
<text name="static5" tool_tip="Eine Liste der Fähigkeiten der aktuell ausgewählten Rolle.">
Zulässige Fähigkeiten
</text>
<text name="static4">Mitglieder in Rolle</text>
<check_box label="Mitglieder anzeigen" name="role_visible_in_list" tool_tip="Festlegen, ob Mitglieder in dieser Rolle auf der Registerkarte 'Allgemein ' für Personen außerhalb der Gruppe sichtbar sind."/>
<text name="static5" tool_tip="Eine Liste der Fähigkeiten der aktuell ausgewählten Rolle.">Zulässige Fähigkeiten</text>
<scroll_list name="role_allowed_actions" tool_tip="Um detaillierte Informationen zu den Fähigkeiten anzuzeigen, siehe Registerkarte Fähigkeiten.">
<scroll_list.columns label="" name="checkbox"/>
<scroll_list.columns label="" name="action"/>
</scroll_list>
</panel>
<panel name="roles_header">
<text_editor name="role_action_description">
Diese Fähigkeit wird als „Mitglieder dieser Gruppe verweisen“ bezeichnet. Eigentümer können nur von anderen Eigentümern verwiesen werden.
</text_editor>
<text_editor name="role_action_description">Diese Fähigkeit wird als „Mitglieder dieser Gruppe verweisen“ bezeichnet. Eigentümer können nur von anderen Eigentümern verwiesen werden.</text_editor>
</panel>
<panel name="actions_footer">
<text_editor name="action_description">
Diese Fähigkeit heißt „Mitglieder aus dieser Gruppe werfen“. Eigentümer können nur von anderen Eigentümern hinausgeworfen werden.
</text_editor>
<text name="static2">
Rollen mit Fähigkeiten
</text>
<text name="static3">
Rollen mit dieser Fähigkeit
</text>
<text_editor name="action_description">Diese Fähigkeit heißt „Mitglieder aus dieser Gruppe werfen“. Eigentümer können nur von anderen Eigentümern hinausgeworfen werden.</text_editor>
<text name="static2">Rollen mit Fähigkeiten</text>
<text name="static3">Rollen mit dieser Fähigkeit</text>
</panel>
</panel>

View File

@ -1,11 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" ?>
<panel name="panel_login">
<panel.string name="forgot_password_url">
http://secondlife.com/account/request.php?lang=de
</panel.string>
<panel.string name="sign_up_url">
https://join.secondlife.com/
</panel.string>
<panel.string name="forgot_password_url">http://secondlife.com/account/request.php?lang=de</panel.string>
<panel.string name="sign_up_url">https://join.secondlife.com/</panel.string>
<layout_stack name="ui_stack">
<layout_panel name="ui_container">
<combo_box label="Benutzername" name="username_combo" tool_tip="Bei der Registrierung gewählter Benutzername wie „berndschmidt12“ oder „Liebe Sonne“"/>
@ -16,13 +12,11 @@
</combo_box>
<button label="Anmelden" name="connect_btn"/>
<check_box label="Details speichern" name="remember_check"/>
<text name="forgot_password_text">
Kennwort vergessen
</text>
<text name="forgot_password_text">Kennwort vergessen</text>
<combo_box label="Grid auswählen" name="server_combo"/>
<text name="sign_up_text">
Registrieren
</text>
<text name="sign_up_text">Registrieren</text>
</layout_panel>
<check_box name="remember_name" label="An mich erinnern" tool_tip="Bereits gespeicherte Benutzer können über Ich &gt; Präferenzen &gt; Erweitert &gt; Gespeicherte Benutzernamen vergessen werden."/>
<check_box name="remember_password" label="Kennwort speichern"/>
</layout_stack>
</panel>

View File

@ -0,0 +1,39 @@
<?xml version="1.0" ?>
<panel name="main_panel">
<panel name="sender_time_panel_exp"/>
<panel name="main_info_panel_expanded"/>
<layout_panel name="layout_panel_middle_exp"/>
<layout_stack name="horizontal_stack"/>
<panel name="panel_expanded_view"/>
<layout_panel name="layout_panel_expanded_view"/>
<layout_stack name="item_vertical_stack"/>
<panel name="panel_total_view">
<text name="notification_time_exp" value="24.12.2014 23:30"/>
<text name="sender_or_fee_box_exp">Absender: „Einwohner E i n w o h n e r E i n w o h n e r“</text>
<text name="notification_title_exp">Notiztitel Notiztitel N o t i t z T i t e l N o t i t z T i t e l</text>
<avatar_icon name="avatar_icon" tool_tip="Avatar"/>
<button name="join_btn" label="Beitreten"/>
<chat_editor name="notification_text_exp">Notiztext kommt hierhin bla bla .</chat_editor>
<button name="decline_btn" label="Ablehnen"/>
<group_icon name="group_icon_exp" tool_tip="Gruppe"/>
<text name="sender_or_fee_box">Absender: „Einwohner E i n w o h n e r E i n w o h n e r“</text>
<icon name="attachment_icon_exp" tool_tip="Anhang"/>
<icon name="system_notification_icon_exp" tool_tip="Symbol"/>
<text name="notification_title">Gruppenname: Notitztitel</text>
<button name="info_btn" label="Info"/>
<text name="group_name_exp">Gruppenname Gruppenname Gruppenna m e e</text>
<text name="attachment_text">Anhang kommt hierhin</text>
</panel>
<panel name="notification_title_panel_exp"/>
<layout_panel name="layout_panel_right"/>
<panel name="panel_condensed_view"/>
<layout_panel name="layout_panel_condensed_view"/>
<panel name="button_panel"/>
<panel name="notification_text_panel_exp"/>
<layout_panel name="layout_panel_right_exp"/>
<panel name="sender_time_panel"/>
<panel name="main_info_panel"/>
<layout_panel name="layout_panel_middle"/>
<panel name="notification_title_panel"/>
<panel name="attachment_panel"/>
</panel>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" ?>
<panel name="Outfit Gallery">
<panel name="bottom_panel">
<menu_button name="options_gear_btn" tool_tip="Zusätzliche Optionen anzeigen"/>
<button name="trash_btn" tool_tip="Ausgewähltes Outfit löschen"/>
</panel>
</panel>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" ?>
<panel name="gallery_item_panel">
<panel name="text_bg_panel">
<text name="outfit_name">Sommer-Hipster, Pierce Pierce Pierce Pierce</text>
<text name="outfit_worn_text">(getragen)</text>
</panel>
</panel>

View File

@ -1,13 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<panel label="Sounds" name="Preference Media panel">
<panel.string name="middle_mouse">
Mittlere Maustaste
</panel.string>
<panel.string name="middle_mouse">Mittlere Maustaste</panel.string>
<slider label="Master-Lautstärke" name="System Volume"/>
<check_box initial_value="true" name="mute_when_minimized"/>
<text name="mute_chb_label">
Stummschalten, wenn minimiert
</text>
<text name="mute_chb_label">Stummschalten, wenn minimiert</text>
<slider label="Schaltflächen" name="UI Volume"/>
<slider label="Umgebung" name="Wind Volume"/>
<slider label="Soundeffekte" name="SFX Volume"/>
@ -20,12 +16,8 @@
<check_box label="Automatische Wiedergabe zulassen" name="media_auto_play_btn" tool_tip="Hier aktivieren, um Medien automatisch wiederzugeben." value="true"/>
<check_box label="Medien, die an andere Avatare angehängt sind, wiedergeben." name="media_show_on_others_btn" tool_tip="Diese Option deaktivieren, um Medien für andere Avataren, die sich in der Nähe befinden, auszublenden." value="true"/>
<check_box label="Sounds von Gesten abspielen" name="gesture_audio_play_btn" tool_tip="Markieren, um Sounds von Gesten zu hören" value="true"/>
<text name="voice_chat_settings">
Voice-Chat-Einstellungen
</text>
<text name="Listen from">
Zuhören von:
</text>
<text name="voice_chat_settings">Voice-Chat-Einstellungen</text>
<text name="Listen from">Zuhören von:</text>
<radio_group name="ear_location">
<radio_item label="Kameraposition" name="0"/>
<radio_item label="Avatarposition" name="1"/>
@ -37,4 +29,9 @@
<button name="set_voice_middlemouse_button" tool_tip="Auf mittlere Maustaste zurücksetzen"/>
<button label="Eingabe-/Ausgabegeräte" name="device_settings_btn"/>
<panel label="Geräte-Einstellungen" name="device_settings_panel"/>
<combo_box name="media_auto_play_combo">
<item name="autoplay_enabled" label="Ja"/>
<item name="autoplay_ask" label="Fragen"/>
<item name="autoplay_disabled" label="Nein"/>
</combo_box>
</panel>

View File

@ -1,11 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<panel name="MediaControls">
<string name="control_background_image_name">
Inspector_Background
</string>
<string name="skip_step">
0.2
</string>
<string name="control_background_image_name">Inspector_Background</string>
<string name="skip_step">0.2</string>
<layout_stack name="progress_indicator_area">
<layout_panel name="media_progress_indicator">
<progress_bar name="media_progress_bar" tool_tip="Medien werden geladen"/>
@ -66,5 +62,6 @@
<layout_panel name="new_window">
<button name="new_window_btn" tool_tip="URL in Browser öffnen"/>
</layout_panel>
<icon name="media_secure_lock_flag" tool_tip="Sicheres Surfen"/>
</layout_stack>
</panel>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" ?>
<panel name="login_progress_panel">
<layout_panel name="panel_icons"/>
<layout_stack name="vertical_centering"/>
<layout_panel name="panel4"/>
<layout_panel name="center"/>
<layout_stack name="horizontal_centering">
<text name="logos_lbl">Second Life verwendet</text>
</layout_stack>
</panel>

View File

@ -1,40 +1,18 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<panel label="Umgebung" name="panel_env_info">
<string name="str_label_use_default">
Standardeinstellungen verwenden
</string>
<string name="str_label_use_region">
Regionseinstellungen verwenden
</string>
<string name="str_altitude_desription">
Himmel [INDEX]([ALTITUDE]m)
</string>
<string name="str_no_parcel">
Es ist keine Parzelle ausgewählt. Umgebungseinstellungen sind deaktiviert.
</string>
<string name="str_cross_region">
Umgebungseinstellungen sind außerhalb der Regionsgrenzen nicht verfügbar.
</string>
<string name="str_legacy">
Umgebungseinstellungen sind für diese Region nicht verfügbar
</string>
<string name="str_disallowed">
Der Grundbesitzverwalter lässt keine Änderung der Parzellenumgebungen in dieser Region zu.
</string>
<string name="str_too_small">
Die Parzellengröße muss mindestens 128 Quadratmeter betragen, um eine Umgebung zu unterstützen.
</string>
<string name="str_empty">
(leer)
</string>
<string name="str_region_env">
(Regionsumgebung)
</string>
<string name="str_label_use_default">Standardeinstellungen verwenden</string>
<string name="str_label_use_region">Regionseinstellungen verwenden</string>
<string name="str_altitude_desription">Himmel [INDEX]([ALTITUDE]m)</string>
<string name="str_no_parcel">Es ist keine Parzelle ausgewählt. Umgebungseinstellungen sind deaktiviert.</string>
<string name="str_cross_region">Umgebungseinstellungen sind außerhalb der Regionsgrenzen nicht verfügbar.</string>
<string name="str_legacy">Umgebungseinstellungen sind für diese Region nicht verfügbar</string>
<string name="str_disallowed">Der Grundbesitzverwalter lässt keine Änderung der Parzellenumgebungen in dieser Region zu.</string>
<string name="str_too_small">Die Parzellengröße muss mindestens 128 Quadratmeter betragen, um eine Umgebung zu unterstützen.</string>
<string name="str_empty">(leer)</string>
<string name="str_region_env">(Regionsumgebung)</string>
<layout_stack>
<layout_panel name="pnl_environment_disabled">
<text name="txt_environment_disabled">
...
</text>
<text name="txt_environment_disabled">...</text>
</layout_panel>
<layout_panel name="pnl_environment_config">
<layout_stack>
@ -47,42 +25,28 @@
<check_box label="Parzelleneigentümer können die Umgebung außer Kraft setzen" name="chk_allow_override"/>
</layout_panel>
<layout_panel name="pnl_environment_length">
<text name="lbl_apparent_time">
[HH]:[MM][AP] ([PRC]%)
</text>
<text name="lbl_apparent_time">[HH]:[MM][AP] ([PRC]%)</text>
</layout_panel>
<layout_panel name="pnl_environment_buttons"/>
</layout_stack>
</layout_panel>
<layout_panel name="pnl_environment_altitudes">
<panel name="pnl_alt1">
<text name="txt_alt1">
Himmel [INDEX]
[ALTITUDE]m
</text>
<line_editor name="edt_invname_alt1">
Unbekannt
</line_editor>
<text name="txt_alt1">Himmel [INDEX]
[ALTITUDE]m</text>
<line_editor name="edt_invname_alt1">Unbekannt</line_editor>
<settings_drop_target name="sdt_alt1" tool_tip="Ziehen Sie eine Einstellung aus dem Inventar auf dieses Zielfeld, um sie als aktuellen Himmel auszuwählen."/>
</panel>
<panel name="pnl_alt2">
<text name="txt_alt2">
Himmel [INDEX]
[ALTITUDE]m
</text>
<line_editor name="edt_invname_alt2">
Unbekannt
</line_editor>
<text name="txt_alt2">Himmel [INDEX]
[ALTITUDE]m</text>
<line_editor name="edt_invname_alt2">Unbekannt</line_editor>
<settings_drop_target name="sdt_alt2" tool_tip="Ziehen Sie eine Einstellung aus dem Inventar auf dieses Zielfeld, um sie als aktuellen Himmel auszuwählen."/>
</panel>
<panel name="pnl_alt3">
<text name="txt_alt3">
Himmel [INDEX]
[ALTITUDE]m
</text>
<line_editor name="edt_invname_alt3">
Unbekannt
</line_editor>
<text name="txt_alt3">Himmel [INDEX]
[ALTITUDE]m</text>
<line_editor name="edt_invname_alt3">Unbekannt</line_editor>
<settings_drop_target name="sdt_alt3" tool_tip="Ziehen Sie eine Einstellung aus dem Inventar auf dieses Zielfeld, um sie als aktuellen Himmel auszuwählen."/>
</panel>
<multi_slider initial_value="0" name="sld_altitudes">
@ -91,21 +55,13 @@
<slider name="sld3" value="3000"/>
</multi_slider>
<panel name="pnl_ground">
<text name="txt_ground">
Boden
</text>
<line_editor name="edt_invname_ground">
Unbekannt
</line_editor>
<text name="txt_ground">Boden</text>
<line_editor name="edt_invname_ground">Unbekannt</line_editor>
<settings_drop_target name="sdt_ground" tool_tip="Ziehen Sie eine Einstellung aus dem Inventar auf dieses Zielfeld, um sie als aktuellen Himmel auf Bodenhöhe auszuwählen."/>
</panel>
<panel name="pnl_water">
<text name="txt_water">
Wasser
</text>
<line_editor name="edt_invname_water">
Unbekannt
</line_editor>
<text name="txt_water">Wasser</text>
<line_editor name="edt_invname_water">Unbekannt</line_editor>
<settings_drop_target name="sdt_water" tool_tip="Ziehen Sie eine Einstellung aus dem Inventar auf dieses Zielfeld, um sie als aktuelles Wasser auszuwählen."/>
</panel>
<button label="Zurücksetzen" name="btn_rst_altitudes" tool_tip="Auf Standardhöhen zurücksetzen"/>
@ -113,4 +69,8 @@
</layout_stack>
</layout_panel>
</layout_stack>
<layout_panel name="pnl_environment_region_msg">
<text name="region_text_lbl">Region:</text>
<text name="region_text">unbekannt</text>
</layout_panel>
</panel>

File diff suppressed because it is too large Load Diff

View File

@ -1,94 +1,41 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<teleport_messages>
<message_set name="errors">
<message name="invalid_tport">
Bei der Bearbeitung Ihrer Teleport-Anfrage ist ein Problem aufgetreten. Sie müssen sich zum Teleportieren eventuell neu anmelden.
Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_SITE].
</message>
<message name="invalid_region_handoff">
Bei der Bearbeitung Ihres Regionswechsels ist ein Problem aufgetreten. Sie müssen eventuell neu anmelden, um die Region wechseln zu können.
Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_SITE].
</message>
<message name="blocked_tport">
Teleportieren ist zurzeit leider nicht möglich. Versuchen Sie es später noch einmal.
Wenn der Teleport dann immer noch nicht funktioniert, melden Sie sich bitte ab und wieder an.
</message>
<message name="nolandmark_tport">
Das System konnte das Landmarken-Ziel nicht finden.
</message>
<message name="timeout_tport">
Das System konnte keine Teleport-Verbindung herstellen.
Versuchen Sie es später noch einmal.
</message>
<message name="NoHelpIslandTP">
Sie können nicht zurück nach Welcome Island teleportieren.
Gehen Sie zu „Welcome Island Public“, um das Tutorial zu wiederholen.
</message>
<message name="noaccess_tport">
Sie haben leider keinen Zugang zu diesem Teleport-Ziel.
</message>
<message name="missing_attach_tport">
Ihre Anhänge sind noch nicht eingetroffen. Warten Sie kurz oder melden Sie sich ab und wieder an, bevor Sie einen neuen Teleport-Versuch unternehmen.
</message>
<message name="too_many_uploads_tport">
Die Asset-Warteschlange in dieser Region ist zurzeit überlastet.
Ihre Teleport-Anfrage kann nicht sofort bearbeitet werden. Versuchen Sie es in einigen Minuten erneut oder besuchen Sie eine weniger überfüllte Region.
</message>
<message name="expired_tport">
Das System konnte Ihre Teleport-Anfrage nicht rechtzeitig bearbeiten. Versuchen Sie es in einigen Minuten erneut.
</message>
<message name="expired_region_handoff">
Das System konnte Ihre Anfrage zum Regionswechsel nicht rechtzeitig bearbeiten. Versuchen Sie es in einigen Minuten erneut.
</message>
<message name="no_host">
Teleport-Ziel wurde nicht gefunden. Das Ziel ist entweder im Moment nicht verfügbar oder existiert nicht mehr. Versuchen Sie es in einigen Minuten erneut.
</message>
<message name="no_inventory_host">
Das Inventarsystem ist zurzeit nicht verfügbar.
</message>
<message name="MustGetAgeRegion">
Sie müssen mindestens 18 Jahre alt sein, um diese Region betreten zu können.
</message>
<message name="RegionTPSpecialUsageBlocked">
Betreten der Region nicht gestattet. „[REGION_NAME]“ ist eine Region für Geschicklichkeitsspiele. Der Zutritt ist Einwohnern vorbehalten, die bestimmte Kriterien erfüllen. Weitere Details finden Sie unter [http://wiki.secondlife.com/wiki/Linden_Lab_Official:Skill_Gaming_in_Second_Life Skill Gaming FAQ].
</message>
<message name="invalid_tport">Bei der Bearbeitung Ihrer Teleport-Anfrage ist ein Problem aufgetreten. Sie müssen sich zum Teleportieren eventuell neu anmelden.
Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_SITE].</message>
<message name="invalid_region_handoff">Bei der Bearbeitung Ihres Regionswechsels ist ein Problem aufgetreten. Sie müssen eventuell neu anmelden, um die Region wechseln zu können.
Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_SITE].</message>
<message name="blocked_tport">Teleportieren ist zurzeit leider nicht möglich. Versuchen Sie es später noch einmal.
Wenn der Teleport dann immer noch nicht funktioniert, melden Sie sich bitte ab und wieder an.</message>
<message name="nolandmark_tport">Das System konnte das Landmarken-Ziel nicht finden.</message>
<message name="timeout_tport">Das System konnte keine Teleport-Verbindung herstellen.
Versuchen Sie es später noch einmal.</message>
<message name="NoHelpIslandTP">Sie können nicht zurück nach Welcome Island teleportieren.
Gehen Sie zu „Welcome Island Public“, um das Tutorial zu wiederholen.</message>
<message name="noaccess_tport">Sie haben leider keinen Zugang zu diesem Teleport-Ziel.</message>
<message name="missing_attach_tport">Ihre Anhänge sind noch nicht eingetroffen. Warten Sie kurz oder melden Sie sich ab und wieder an, bevor Sie einen neuen Teleport-Versuch unternehmen.</message>
<message name="too_many_uploads_tport">Die Asset-Warteschlange in dieser Region ist zurzeit überlastet.
Ihre Teleport-Anfrage kann nicht sofort bearbeitet werden. Versuchen Sie es in einigen Minuten erneut oder besuchen Sie eine weniger überfüllte Region.</message>
<message name="expired_tport">Das System konnte Ihre Teleport-Anfrage nicht rechtzeitig bearbeiten. Versuchen Sie es in einigen Minuten erneut.</message>
<message name="expired_region_handoff">Das System konnte Ihre Anfrage zum Regionswechsel nicht rechtzeitig bearbeiten. Versuchen Sie es in einigen Minuten erneut.</message>
<message name="no_host">Teleport-Ziel wurde nicht gefunden. Das Ziel ist entweder im Moment nicht verfügbar oder existiert nicht mehr. Versuchen Sie es in einigen Minuten erneut.</message>
<message name="no_inventory_host">Das Inventarsystem ist zurzeit nicht verfügbar.</message>
<message name="MustGetAgeRegion">Sie müssen mindestens 18 Jahre alt sein, um diese Region betreten zu können.</message>
<message name="RegionTPSpecialUsageBlocked">Betreten der Region nicht gestattet. „[REGION_NAME]“ ist eine Region für Geschicklichkeitsspiele. Der Zutritt ist Einwohnern vorbehalten, die bestimmte Kriterien erfüllen. Weitere Details finden Sie unter [http://wiki.secondlife.com/wiki/Linden_Lab_Official:Skill_Gaming_in_Second_Life Skill Gaming FAQ].</message>
<message name="preexisting_tport">Entschuldigung, aber das System konnte deinen Teleport nicht starten. Versuche es bitte in ein paar Minuten noch einmal.</message>
</message_set>
<message_set name="progress">
<message name="sending_dest">
Transport zum Ziel.
</message>
<message name="redirecting">
Weiterleitung an anderes Ziel.
</message>
<message name="relaying">
Weiterleitung zum Ziel.
</message>
<message name="sending_home">
Zuhause-Position wird ermittelt.
</message>
<message name="sending_landmark">
Landmarken-Position wird ermittelt.
</message>
<message name="completing">
Teleport wird abgeschlossen.
</message>
<message name="completed_from">
Teleport aus [T_SLURL] wurde erfolgreich abgeschlossen.
</message>
<message name="resolving">
Ziel wird ermittelt.
</message>
<message name="contacting">
Verbindung zu neuer Region.
</message>
<message name="arriving">
Ziel erreicht...
</message>
<message name="requesting">
Teleport wird initialisiert...
</message>
<message name="pending">
Anstehender Teleport...
</message>
<message name="sending_dest">Transport zum Ziel.</message>
<message name="redirecting">Weiterleitung an anderes Ziel.</message>
<message name="relaying">Weiterleitung zum Ziel.</message>
<message name="sending_home">Zuhause-Position wird ermittelt.</message>
<message name="sending_landmark">Landmarken-Position wird ermittelt.</message>
<message name="completing">Teleport wird abgeschlossen.</message>
<message name="completed_from">Teleport aus [T_SLURL] wurde erfolgreich abgeschlossen.</message>
<message name="resolving">Ziel wird ermittelt.</message>
<message name="contacting">Verbindung zu neuer Region.</message>
<message name="arriving">Ziel erreicht...</message>
<message name="requesting">Teleport wird initialisiert...</message>
<message name="pending">Anstehender Teleport...</message>
</message_set>
</teleport_messages>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" ?>
<densityctrl name="density_ctrl" label="Dichte"/>

View File

@ -1606,7 +1606,7 @@ Only large parcels can be listed in search.
follows="left|top"
height="16"
layout="topleft"
left_pad="-134"
left_pad="6"
name="mime_type"
width="200" />
<text

View File

@ -67,7 +67,7 @@
<text
layout="topleft"
left="345"
left="389"
height="12"
name="font_size"
width="120"
@ -79,7 +79,7 @@
control_name="ChatFontSize"
height="23"
layout="topleft"
left="341"
left="385"
name="chat_font_size"
top_pad="5"
width="100">
@ -103,7 +103,7 @@
label="Bubble Chat"
layout="topleft"
top_pad="4"
left_delta="0"
left="340"
name="bubble_text_chat"
width="330">
</check_box>

View File

@ -41,6 +41,7 @@
width="359" />
<add_btn
name="add_wearable"
visible="false"
layout="topleft"
follows="top|right"
image_unselected="Add_Icon"
@ -52,6 +53,7 @@
tab_stop="false" />
<remove_btn
name="remove_wearable"
visible="false"
layout="topleft"
follows="top|right"
image_unselected="Remove_Icon"

View File

@ -0,0 +1,2 @@
<?xml version="1.0" ?>
<floater name="Anim Preview" title="ANIMACIÓN.ANIM"/>

View File

@ -0,0 +1,45 @@
<?xml version="1.0" ?>
<floater name="Animation Preview">
<combo_box name="emote_combo" tool_tip="Controla lo que hace la cara durante la animacion">
<item name="Aaaaah" label="Aaaah"/>
<item name="Bored" label="Aburrido"/>
<item name="Surprise" label="Sorpresa"/>
<item name="Frown" label="Entrecejo / Fruncir el ceño"/>
<item name="Wink" label="Guiño"/>
<item name="Worry" label="Preocupación"/>
<item name="BigSmile" label="Gran Sonrisa"/>
<item name="Sad" label="Triste"/>
<item name="Afraid" label="Temeroso"/>
<item name="Angry" label="Molesto"/>
<item name="Cry" label="Llorar"/>
<item name="Smile" label="Sonreir"/>
<item name="Shrug" label="Enconger Hombros"/>
<item name="Embarrassed" label="Avergonzado"/>
<item name="Kiss" label="Beso"/>
<item name="Plllppt" label="*"/>
<item name="Disdain" label="Desden"/>
<item name="Repulsed" label="Repudiar"/>
<item name="Laugh" label="Risa"/>
</combo_box>
<combo_box name="hand_pose_combo" tool_tip="Controla lo que hacen las manos durante la animación">
<combo_box.item name="PointBoth" label="Señalar Ambas"/>
<combo_box.item name="RelaxedRight" label="Derecha relajada"/>
<combo_box.item name="PointRight" label="Señalar derecha"/>
<combo_box.item name="Spread" label="Extenderse"/>
<combo_box.item name="Typing" label="Escribiendo"/>
<combo_box.item name="RelaxedLeft" label="Izquierda Relajada"/>
<combo_box.item name="FistLeft" label="Puño Izquierdo"/>
<combo_box.item name="Fist" label="Puño"/>
<combo_box.item name="PointLeft" label="Señalar Izquierda"/>
<combo_box.item name="SaluteRight" label="Saludar Derecha"/>
<combo_box.item name="Relaxed" label="Relajado"/>
<combo_box.item name="FistRight" label="Puño Derecho"/>
<combo_box.item name="PeaceRight" label="Paz Derecha"/>
</combo_box>
<combo_box name="preview_base_anim" tool_tip="Usa esto para probar el comportamiento de tu animación mientras tu avatar realiza acciones comunes.">
<item name="Walking" label="Caminando"/>
<item name="Standing" label="De pie"/>
<item name="Sitting" label="Sentado"/>
<item name="Flying" label="Volando"/>
</combo_box>
</floater>

View File

@ -1,16 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<floater name="avatar_texture_debug" title="TEXTURAS DEL AVATAR">
<floater.string name="InvalidAvatar">
AVATAR NO VÁLIDO
</floater.string>
<floater.string name="InvalidAvatar">AVATAR NO VÁLIDO</floater.string>
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
<text name="label">
Texturas obtenidas mediante bake
</text>
<text name="composite_label">
Texturas compuestas
</text>
<text name="label">Texturas obtenidas mediante bake</text>
<text name="composite_label">Texturas compuestas</text>
<button label="Volcar IDs a la consola" label_selected="Volcado" name="Dump"/>
<panel name="scroll_content_panel">
<texture_picker label="Pelo" name="hair-baked"/>
@ -44,5 +38,21 @@
<texture_picker label="Falda" name="skirt"/>
</panel>
</panel>
<texture_picker name="upper_universal_tattoo" label="Tatuaje superior Unv"/>
<texture_picker name="aux1_tattoo" label="Tatuaje Auxiliar 1"/>
<texture_picker name="leftarm-baked" label="Brazo Izquierdo"/>
<texture_picker name="aux1-baked" label="AUXILIAR 1"/>
<texture_picker name="skirt_tattoo" label="Tatuaje de Falda"/>
<texture_picker name="aux2_tattoo" label="Tatuaje AUXILIAR 2"/>
<texture_picker name="eyes_tattoo" label="Tatuaje de Ojos"/>
<texture_picker name="head_universal_tattoo" label="Tatuaje Unv en la cabeza"/>
<texture_picker name="leftleg_tattoo" label="Tatuaje en la pierna izquierda"/>
<texture_picker name="aux3-baked" label="AUXILIAR 3"/>
<texture_picker name="hair_tattoo" label="Tatuaje de Cabello"/>
<texture_picker name="leftleg-baked" label="Pierna izquierda"/>
<texture_picker name="aux2-baked" label="AUXILIAR 2"/>
<texture_picker name="aux3_tattoo" label="Tatuaje AUXILIAR 3"/>
<texture_picker name="leftarm_tattoo" label="Tatuaje brazo izquierdo"/>
<texture_picker name="lower_universal_tattoo" label="Tatuaje Bajo Unv"/>
</scroll_container>
</floater>

View File

@ -1,45 +1,27 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<floater name="camera_floater" title="CONTROLES DE LA CÁMARA">
<floater.string name="rotate_tooltip">
Girar la cámara alrededor de lo enfocado
</floater.string>
<floater.string name="zoom_tooltip">
Hacer zoom con la cámara en lo enfocado
</floater.string>
<floater.string name="move_tooltip">
Mover la cámara arriba y abajo, izquierda y derecha
</floater.string>
<floater.string name="free_mode_title">
Centrar el objeto
</floater.string>
<floater.string name="rotate_tooltip">Girar la cámara alrededor de lo enfocado</floater.string>
<floater.string name="zoom_tooltip">Hacer zoom con la cámara en lo enfocado</floater.string>
<floater.string name="move_tooltip">Mover la cámara arriba y abajo, izquierda y derecha</floater.string>
<floater.string name="free_mode_title">Centrar el objeto</floater.string>
<panel name="controls">
<panel name="preset_views_list">
<panel_camera_item name="front_view">
<panel_camera_item.text name="front_view_text">
De frente
</panel_camera_item.text>
<panel_camera_item name="front_view" tool_tip="Vista frontal">
<panel_camera_item.text name="front_view_text">De frente</panel_camera_item.text>
</panel_camera_item>
<panel_camera_item name="group_view">
<panel_camera_item.text name="side_view_text">
Vista lateral
</panel_camera_item.text>
<panel_camera_item name="group_view" tool_tip="Vista lateral">
<panel_camera_item.text name="side_view_text">Vista lateral</panel_camera_item.text>
</panel_camera_item>
<panel_camera_item name="rear_view">
<panel_camera_item.text name="rear_view_text">
Desde detrás
</panel_camera_item.text>
<panel_camera_item name="rear_view" tool_tip="Vista trasera">
<panel_camera_item.text name="rear_view_text">Desde detrás</panel_camera_item.text>
</panel_camera_item>
</panel>
<panel name="camera_modes_list">
<panel_camera_item name="object_view">
<panel_camera_item.text name="object_view_text">
Vista objetiva
</panel_camera_item.text>
<panel_camera_item name="object_view" tool_tip="Vista de objeto">
<panel_camera_item.text name="object_view_text">Vista objetiva</panel_camera_item.text>
</panel_camera_item>
<panel_camera_item name="mouselook_view">
<panel_camera_item.text name="mouselook_view_text">
Vista subjetiva
</panel_camera_item.text>
<panel_camera_item name="mouselook_view" tool_tip="Vista del puntero">
<panel_camera_item.text name="mouselook_view_text">Vista subjetiva</panel_camera_item.text>
</panel_camera_item>
</panel>
<panel name="zoom" tool_tip="Hacer zoom con la cámara en lo enfocado">
@ -47,10 +29,17 @@
<slider_bar name="zoom_slider" tool_tip="Hacer zoom en lo enfocado"/>
<joystick_track name="cam_track_stick" tool_tip="Mueve la cámara arriba y abajo, a izquierda y derecha"/>
</panel>
<text name="precise_ctrs_label">Usar controles precisos</text>
</panel>
<panel name="buttons">
<button label="" name="presets_btn" tool_tip="Vistas predefinidas"/>
<button label="" name="pan_btn" tool_tip="Orbital - Zoom - Panorámica"/>
<button label="" name="avatarview_btn" tool_tip="Modos de cámara"/>
</panel>
<panel name="buttons_panel">
<button name="gear_btn" tool_tip="Ajustes predefinidos de Mi Camara"/>
<button name="save_preset_btn" label="Guardar ajuste predefinido como…"/>
<combo_box.item name="Use preset" label="Usar ajustes predefinidos"/>
</panel>
<combo_box name="preset_combo"/>
</floater>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" ?>
<floater name="floater_camera_presets" title="AJUSTES PREDEFINIDOS DE MI CAMARA"/>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" ?>
<floater name="groups" title="NOMBRES DE USUARIOS GUARDADOS"/>

View File

@ -1,13 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<floater name="godtools floater" title="HERRAMIENTAS DE DIOS">
<tab_container name="GodTools Tabs">
<panel label="Red" name="grid">
<button label="Vaciar los caches de visibilidad del mapa de la región" label_selected="Vaciar los caches de visibilidad del mapa de la región" name="Flush This Region&apos;s Map Visibility Caches"/>
<button label="Vaciar los caches de visibilidad del mapa de la región" label_selected="Vaciar los caches de visibilidad del mapa de la región" name="Flush This Region's Map Visibility Caches"/>
</panel>
<panel label="Región" name="region">
<text name="Region Name:">
Nombre de la región:
</text>
<text name="Region Name:">Nombre de la región:</text>
<check_box label="Preludio" name="check prelude" tool_tip="Defina esté para hacer un preludio de la región."/>
<check_box label="Sol fijo" name="check fixed sun" tool_tip="Fijar la posición del sol (así como en Región/Propiedad &gt; Terreno."/>
<check_box label="Restaurar casa en el teletransporte" name="check reset home" tool_tip="When Resident teleports out, reset their home to the destination position."/>
@ -19,75 +17,52 @@
<button label="Formar terreno" label_selected="Formar terreno" name="Bake Terrain" tool_tip="Guardar el terreno actual como patrón."/>
<button label="Revertir terreno" label_selected="Revertir terreno" name="Revert Terrain" tool_tip="Sustituir el terreno actual por el patrón."/>
<button label="Cambiar terreno" label_selected="Cambiar terreno" name="Swap Terrain" tool_tip="Cambiar terreno actual por el patrón."/>
<text name="estate id">
ID de la propiedad:
</text>
<text name="parent id">
ID del padre:
</text>
<text name="estate id">ID de la propiedad:</text>
<text name="parent id">ID del padre:</text>
<line_editor name="parentestate" tool_tip="Ésta es una propiedad padre para esta región"/>
<text name="Grid Pos: ">
Red Pos:
</text>
<text name="Grid Pos: ">Red Pos:</text>
<line_editor name="gridposx" tool_tip="Ésta es la posición x de la reja para esta región"/>
<line_editor name="gridposy" tool_tip="Ésta es la posición y de la reja para esta región"/>
<text name="Redirect to Grid: ">
Redireccionar para red:
</text>
<text name="billable factor text">
Factor cobrable:
</text>
<text name="land cost text">
L$ por m²:
</text>
<text name="Redirect to Grid: ">Redireccionar para red:</text>
<text name="billable factor text">Factor cobrable:</text>
<text name="land cost text">L$ por m²:</text>
<button label="Actualizar" label_selected="Actualizar" name="Refresh" tool_tip="Haga clic aquí para actualizar la información arriba."/>
<button label="Aplicar" label_selected="Aplicar" name="Apply" tool_tip="Haga clic aquí para aplicar cualesquiera de las mudanzas arriba."/>
<button label="Seleccionar región" label_selected="Seleccionar región" name="Select Region" tool_tip="Seleccione toda la región con esta herramienta de terreno."/>
<button label="Guardado automático ahora" label_selected="Guardado automático ahora" name="Autosave now" tool_tip="Guardar estado con gzip en el directorio de guardado automático."/>
</panel>
<panel label="Objetos" name="objects">
<text name="Region Name:">
Nombre de la región:
</text>
<text name="region name">
Galés
</text>
<text name="Region Name:">Nombre de la región:</text>
<text name="region name">Galés</text>
<check_box label="Desactivar scripts" name="disable scripts" tool_tip="Defina esté para desactivar todos los scripts en esta región"/>
<check_box label="Desactivar colisiones" name="disable collisions" tool_tip="Defina esté para desactivar las colisiones entre no agentes en esta región"/>
<check_box label="Desactivar física" name="disable physics" tool_tip="Defina esté para desactivar toda la física en esta región"/>
<button label="Aplicar" label_selected="Aplicar" name="Apply" tool_tip="Haga clic aquí para aplicar cualesquiera de las mudanzas arriba."/>
<button label="Definir blanco" label_selected="Definir blanco" name="Set Target" tool_tip="Ajuste el avatar del blanco para la exclusión del objeto."/>
<text name="target_avatar_name">
(sin blanco)
</text>
<button label="Borrar objetos con script del blanco en otros terrenos" label_selected="Borrar objetos con script del blanco en otros terrenos" name="Delete Target&apos;s Scripted Objects On Others Land" tool_tip="Borrar todos los objetos con script pertenecientes al blanco en el terreno que no pertenece a él. Objetos (sin copia) retornarán."/>
<button label="Borrar objetos con script del blanco en *TODOS* los terrenos" label_selected="Borrar objetos con script del blanco en *TODOS* los terrenos" name="Delete Target&apos;s Scripted Objects On *Any* Land" tool_tip="Borrar todos los objetos con script pertenecientes al blanco en esta región. Objetos (sin copia) retornarán."/>
<button label="Borrar *TODOS* los objetos del blanco" label_selected="Borrar *TODOS* los objetos del blanco" name="Delete *ALL* Of Target&apos;s Objects" tool_tip="Borrar todos los objetos pertenecientes al blanco en esta región. Objetos (sin copia) retornarán."/>
<text name="target_avatar_name">(sin blanco)</text>
<button label="Borrar objetos con script del blanco en otros terrenos" label_selected="Borrar objetos con script del blanco en otros terrenos" name="Delete Target's Scripted Objects On Others Land" tool_tip="Borrar todos los objetos con script pertenecientes al blanco en el terreno que no pertenece a él. Objetos (sin copia) retornarán."/>
<button label="Borrar objetos con script del blanco en *TODOS* los terrenos" label_selected="Borrar objetos con script del blanco en *TODOS* los terrenos" name="Delete Target's Scripted Objects On *Any* Land" tool_tip="Borrar todos los objetos con script pertenecientes al blanco en esta región. Objetos (sin copia) retornarán."/>
<button label="Borrar *TODOS* los objetos del blanco" label_selected="Borrar *TODOS* los objetos del blanco" name="Delete *ALL* Of Target's Objects" tool_tip="Borrar todos los objetos pertenecientes al blanco en esta región. Objetos (sin copia) retornarán."/>
<button label="Obtener top de colisionadores" label_selected="Obtener top de colisionadores" name="Get Top Colliders" tool_tip="Coger lista de objetos que están recibiendo narrowphase callbacks."/>
<button label="Obtener top de scripts" label_selected="Obtener top de scripts" name="Get Top Scripts" tool_tip="Coger lista de objetos que están consumiendo más tiempo de ejecución de scripts."/>
<button label="Compilador de scripts" label_selected="Compilador de scripts" name="Scripts digest" tool_tip="Coger una lista de todos los scripts y sus respectivos números de ocurrencia."/>
</panel>
<panel label="Requerir" name="request">
<text name="Destination:">
Destino:
</text>
<text name="Destination:">Destino:</text>
<combo_box name="destination">
<combo_box.item label="Selección" name="item1"/>
<combo_box.item label="Agente de región" name="item2"/>
</combo_box>
<text name="Request:">
Exigencia:
</text>
<text name="Request:">Exigencia:</text>
<combo_box name="request">
<combo_box.item label="colisionadores &lt;pasos&gt;" name="item1"/>
<combo_box.item label="scripts &lt;contar&gt;,&lt;patrón opcional&gt;" name="item2"/>
<combo_box.item label="objetos &lt;patrón&gt;" name="item3"/>
<combo_box.item label="rez &lt;asset_id&gt;" name="item4"/>
</combo_box>
<text name="Parameter:">
Parámetro:
</text>
<text name="Parameter:">Parámetro:</text>
<button label="Hacer exigencia" label_selected="Hacer exigencia" name="Make Request"/>
</panel>
<panel.string name="no_target">(sin selección)</panel.string>
</tab_container>
</floater>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" ?>
<floater name="linkreplace" title="REEMPLAZAR VÍNCULOS DE INVENTARIO"/>

View File

@ -1,11 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<floater name="floater_about" title="NAVEGADOR">
<floater.string name="home_page_url">
http://es.secondlife.com
</floater.string>
<floater.string name="support_page_url">
http://es.secondlife.com/support
</floater.string>
<floater.string name="home_page_url">http://es.secondlife.com</floater.string>
<floater.string name="support_page_url">http://es.secondlife.com/support</floater.string>
<layout_stack name="stack1">
<layout_panel name="nav_controls">
<button label="Atrás" name="back" width="75"/>
@ -22,5 +18,9 @@
<check_box label="Abrir siempre en mi navegador" name="open_always"/>
<button label="Cerrar" name="close"/>
</layout_panel>
<button name="seek" label="Avanzar"/>
<button name="rewind" label="Rebobinar"/>
<button name="stop" label="Detener"/>
</layout_stack>
<layout_panel name="time_controls"/>
</floater>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" ?>
<floater name="notification" title="CONSOLA DE NOTIFICACIONES"/>

View File

@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<floater name="floater_people" title="GENTE">
<panel_container name="main_panel">
<panel label="Perfil del grupo" name="panel_group_info_sidetray"/>
<panel label="Residentes y objetos ignorados" name="panel_block_list_sidetray"/>
<panel name="panel_group_creation_sidetray" label="Crear grupo"/>
</panel_container>
</floater>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" ?>
<floater name="floaterpreferencesviewadvanced" title="POSICIÓN DE LA CAMARA"/>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" ?>
<floater name="floater_preview_trash" title="PAPELERA">
<layout_panel name="empty_btn_lp"/>
<layout_stack name="button_panel_ls">
<button name="empty_btn" label="Vaciar papelera"/>
</layout_stack>
</floater>

View File

@ -3,7 +3,7 @@
<panel name="panel_profile_view">
<tab_container name="panel_profile_tabs">
<panel label="Second Life" name="panel_profile_secondlife"/>
<panel label="Web" name="panel_profile_web"/>
<panel label="Noticias" name="panel_profile_web"/>
<panel label="Intereses" name="panel_profile_interests"/>
<panel label="Destacados" name="panel_profile_picks"/>
<panel label="Clasificado" name="panel_profile_classifieds"/>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" ?>
<floater name="save_camera_preset" title="Guardar Ajustes Predefinidos de Cámara">
<radio_group name="radio_save_preset">
<radio_item name="replace_preset" label="Reemplazar un ajuste predefinido"/>
<radio_item name="new_preset" label="Guardar como un nuevo ajuste predefinido"/>
</radio_group>
</floater>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<floater name="Statistics" title="ESTADÍSTICAS">
<scroll_container name="statistics_scroll">
<container_view name="statistics_view">
@ -93,5 +93,16 @@
</stat_view>
</stat_view>
</container_view>
<stat_bar name="simpendinguploads" label="Cargas pendientes"/>
<stat_bar name="simpendingdownloads" label="Descargas pendientes"/>
<stat_bar name="simchildagents" label="Agentes Secundarios"/>
<stat_bar name="simagentups" label="Actualizaciones del agente"/>
<stat_bar name="simscripteps" label="Eventos preestablecidos"/>
<stat_bar name="simmainagents" label="Agente Principal"/>
<stat_bar name="simactivescripts" label="Scripts/Eventos preestablecidos Activos"/>
<stat_bar name="simactiveobjects" label="Objetos activos"/>
<stat_bar name="simobjects" label="Objetos"/>
<stat_bar name="siminpps" label="Paquetes Entrantes"/>
<stat_bar name="simoutpps" label="Paquetes Salientes"/>
</scroll_container>
</floater>

View File

@ -1,43 +1,21 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<floater name="toolbox floater" short_title="HERRAMIENTAS DE CONSTRUCCIÓN" title="">
<floater.string name="status_rotate">
Arrastra las bandas de color para girar el objeto.
</floater.string>
<floater.string name="status_scale">
Pulsa y arrastra para estirar el lado seleccionado.
</floater.string>
<floater.string name="status_move">
Arrastrar para mover, Mayús.+arrastrar para copiar.
</floater.string>
<floater.string name="status_modifyland">
Mantén pulsado para modificar el terreno.
</floater.string>
<floater.string name="status_camera">
Pulsa y arrastra para mover la cámara.
</floater.string>
<floater.string name="status_grab">
Arrastrar para mover: Ctrl, verticalmente; Ctrl-Mayús., girando.
</floater.string>
<floater.string name="status_place">
Pulsa en el mundo para construir.
</floater.string>
<floater.string name="status_selectland">
Pulsa y arrastra para seleccionar el terreno.
</floater.string>
<floater.string name="status_selectcount">
[OBJ_COUNT] objetos seleccionados, impacto en el terreno [LAND_IMPACT] [secondlife:///app/openfloater/object_weights ?]
</floater.string>
<floater.string name="status_remaining_capacity">
Capacidad restante [LAND_CAPACITY].
</floater.string>
<floater.string name="status_rotate">Arrastra las bandas de color para girar el objeto.</floater.string>
<floater.string name="status_scale">Pulsa y arrastra para estirar el lado seleccionado.</floater.string>
<floater.string name="status_move">Arrastrar para mover, Mayús.+arrastrar para copiar.</floater.string>
<floater.string name="status_modifyland">Mantén pulsado para modificar el terreno.</floater.string>
<floater.string name="status_camera">Pulsa y arrastra para mover la cámara.</floater.string>
<floater.string name="status_grab">Arrastrar para mover: Ctrl, verticalmente; Ctrl-Mayús., girando.</floater.string>
<floater.string name="status_place">Pulsa en el mundo para construir.</floater.string>
<floater.string name="status_selectland">Pulsa y arrastra para seleccionar el terreno.</floater.string>
<floater.string name="status_selectcount">[OBJ_COUNT] objetos seleccionados, impacto en el terreno [LAND_IMPACT]</floater.string>
<floater.string name="status_remaining_capacity">Capacidad restante [LAND_CAPACITY].</floater.string>
<button label="" label_selected="" name="button focus" tool_tip="Visión"/>
<button label="" label_selected="" name="button move" tool_tip="Mover"/>
<button label="" label_selected="" name="button edit" tool_tip="Editar"/>
<button label="" label_selected="" name="button create" tool_tip="Crear"/>
<button label="" label_selected="" name="button land" tool_tip="Terreno"/>
<text name="text status" width="280">
Arrastrar para mover, Mayús.+arrastrar para copiar.
</text>
<text name="text status" width="280">Arrastrar para mover, Mayús.+arrastrar para copiar.</text>
<radio_group name="focus_radio_group">
<radio_item label="Zoom" name="radio zoom"/>
<radio_item label="Órbita (Ctrl)" name="radio orbit"/>
@ -89,90 +67,40 @@
<radio_item label="Escarpar" name="radio noise"/>
<radio_item label="Restablecer" name="radio revert"/>
</radio_group>
<text name="Bulldozer:">
Bulldozer:
</text>
<text name="Dozer Size:">
Tamaño
</text>
<text name="Strength:">
Fuerza
</text>
<text name="Bulldozer:">Bulldozer:</text>
<text name="Dozer Size:">Tamaño</text>
<text name="Strength:">Fuerza</text>
<button label="Aplicar" label_selected="Aplicar" left="146" name="button apply to selection" tool_tip="Modificar el terreno seleccionado"/>
<text name="selection_empty">
No está seleccionado nada.
</text>
<text name="remaining_capacity">
[CAPACITY_STRING] [secondlife:///app/openfloater/object_weights Más información]
</text>
<text name="selection_empty">No está seleccionado nada.</text>
<text name="remaining_capacity">[CAPACITY_STRING] [secondlife:///app/openfloater/object_weights Más información]</text>
<tab_container name="Object Info Tabs" tab_max_width="62" tab_min_width="30" width="288">
<panel label="General" name="General">
<panel.string name="text deed continued">
Transferir
</panel.string>
<panel.string name="text deed">
Transferir
</panel.string>
<panel.string name="text modify info 1">
Puedes modificar este objeto
</panel.string>
<panel.string name="text modify info 2">
Puedes modificar estos objetos
</panel.string>
<panel.string name="text modify info 3">
No puedes modificar este objeto
</panel.string>
<panel.string name="text modify info 4">
No puedes modificar estos objetos
</panel.string>
<panel.string name="text modify info 5">
No se puede modificar este objeto a través del límite de una región
</panel.string>
<panel.string name="text modify info 6">
No se pueden modificar estos objetos a través del límite de una región
</panel.string>
<panel.string name="text modify warning">
Para configurar los permisos, debes seleccionar el objeto completo
</panel.string>
<panel.string name="Cost Default">
Precio: L$
</panel.string>
<panel.string name="Cost Total">
Precio total: L$
</panel.string>
<panel.string name="Cost Per Unit">
Price Per: L$
</panel.string>
<panel.string name="Cost Mixed">
Precio variable
</panel.string>
<panel.string name="Sale Mixed">
Venta variable
</panel.string>
<text name="Name:">
Nombre:
</text>
<panel.string name="text deed continued">Transferir</panel.string>
<panel.string name="text deed">Transferir</panel.string>
<panel.string name="text modify info 1">Puedes modificar este objeto</panel.string>
<panel.string name="text modify info 2">Puedes modificar estos objetos</panel.string>
<panel.string name="text modify info 3">No puedes modificar este objeto</panel.string>
<panel.string name="text modify info 4">No puedes modificar estos objetos</panel.string>
<panel.string name="text modify info 5">No se puede modificar este objeto a través del límite de una región</panel.string>
<panel.string name="text modify info 6">No se pueden modificar estos objetos a través del límite de una región</panel.string>
<panel.string name="text modify warning">Para configurar los permisos, debes seleccionar el objeto completo</panel.string>
<panel.string name="Cost Default">Precio: L$</panel.string>
<panel.string name="Cost Total">Precio total: L$</panel.string>
<panel.string name="Cost Per Unit">Price Per: L$</panel.string>
<panel.string name="Cost Mixed">Precio variable</panel.string>
<panel.string name="Sale Mixed">Venta variable</panel.string>
<text name="Name:">Nombre:</text>
<line_editor name="Object Name" tool_tip="El nombre está limitado a 63 caracteres. Los nombres de prim más largos deberán abreviarse. Los nombres solo pueden tener caracteres imprimibles que formen parte del código de caracteres ASCII-7 (no extendido), exceptuando la barra vertical «|»."/>
<text name="Description:">
Descripción:
</text>
<text name="Description:">Descripción:</text>
<line_editor name="Object Description" tool_tip="Cuando la opción «Mostrar Consejos al pasar el cursor en Todos los objetos» en los parámetros del visor esté seleccionada, cada vez que coloques el cursor del mouse sobre un objeto aparecerá su descripción. La descripción del prim está limitada a 127 bytes, cualquier string más larga quedará recortada."/>
<text name="Creator:">
Creador:
</text>
<text name="Owner:">
Propietario:
</text>
<text name="Group:">
Grupo:
</text>
<text name="Creator:">Creador:</text>
<text name="Owner:">Propietario:</text>
<text name="Group:">Grupo:</text>
<name_box initial_value="Cargando..." name="Group Name Proxy"/>
<button label="Configurar..." label_selected="Configurar..." name="button set group" tool_tip="Elige un grupo con el que compartir los permisos de este objeto"/>
<check_box label="Compartir" name="checkbox share with group" tool_tip="Permite que todos los miembros del grupo compartan tus permisos de modificación en este objeto. Debes transferirlo para activar las restricciones según los roles."/>
<button label="Transferir" label_selected="Transferir" name="button deed" tool_tip="La transferencia entrega este objeto con los permisos del próximo propietario. Los objetos compartidos por el grupo pueden ser transferidos por un oficial del grupo."/>
<text name="label click action">
Al tocarlo:
</text>
<text name="label click action">Al tocarlo:</text>
<combo_box name="clickaction" tool_tip="Si haces clic izquierdo podrás interactuar con un objeto. Cada vez que hagas clic aparecerá un cursor indicando en qué consiste. Algunas acciones de clic tienen ciertos requerimientos para poder funcionar. Por ejemplo Tocar y Pagar requiere scripts">
<combo_box.item label="Tocarlo (por defecto)" name="Touch/grab(default)"/>
<combo_box.item label="Sentarse en el objeto" name="Sitonobject"/>
@ -191,43 +119,23 @@
</combo_box>
<check_box label="Mostrar en la búsqueda" name="search_check" tool_tip="Dejar que la gente vea este objeto en los resultados de la búsqueda"/>
<panel name="perms_build">
<text name="perm_modify">
Puedes modificar este objeto
</text>
<text name="Anyone can:">
Cualquiera:
</text>
<text name="perm_modify">Puedes modificar este objeto</text>
<text name="Anyone can:">Cualquiera:</text>
<check_box label="Moverlo" name="checkbox allow everyone move" tool_tip="Todos pueden mover el objeto."/>
<check_box label="Copiarlo" name="checkbox allow everyone copy" tool_tip="Todos pueden tomar una copia del objeto. El objeto y todos sus contenidos deben tener un permiso para copiar y transferir."/>
<text name="Next owner can:">
Próximo propietario:
</text>
<text name="Next owner can:">Próximo propietario:</text>
<check_box label="Modificarlo" name="checkbox next owner can modify" tool_tip="El próximo propietario puede editar ciertas propiedades como el nombre o la escala del objeto."/>
<check_box label="Copiarlo" left_delta="80" name="checkbox next owner can copy" tool_tip="El próximo propietario puede realizar copias ilimitadas de este objeto. Las copias mantienen la información del creador y nunca pueden ser más permisivas que el objeto que se está copiando."/>
<check_box label="Transferirlo" left_delta="67" name="checkbox next owner can transfer" tool_tip="El próximo propietario puede dar o revender este objeto."/>
<text name="B:">
B:
</text>
<text name="O:">
O:
</text>
<text name="G:">
G:
</text>
<text name="E:">
E:
</text>
<text name="N:">
N:
</text>
<text name="F:">
F:
</text>
<text name="B:">B:</text>
<text name="O:">O:</text>
<text name="G:">G:</text>
<text name="E:">E:</text>
<text name="N:">N:</text>
<text name="F:">F:</text>
</panel>
<panel name="pathfinding_attrs_panel">
<text name="pathfinding_attributes_label">
Atributos de pathfinding:
</text>
<text name="pathfinding_attributes_label">Atributos de pathfinding:</text>
</panel>
</panel>
<panel label="Objeto" name="Object">
@ -235,21 +143,15 @@
<check_box label="Material" name="Physical Checkbox Ctrl" tool_tip="Permite que el objeto pueda ser empujado y le afecte la gravedad."/>
<check_box label="Temporal" name="Temporary Checkbox Ctrl" tool_tip="Provoca que el objeto desaparezca 1 minuto después de ser creado"/>
<check_box label="Inmaterial" name="Phantom Checkbox Ctrl" tool_tip="Hace que el objeto no colisiones con otros objetos o avatares."/>
<text name="label position">
Posición (metros)
</text>
<text name="label position">Posición (metros)</text>
<spinner label="X" name="Pos X"/>
<spinner label="Y" name="Pos Y"/>
<spinner label="Z" name="Pos Z"/>
<text name="label size">
Tamaño (metros)
</text>
<text name="label size">Tamaño (metros)</text>
<spinner label="X" name="Scale X"/>
<spinner label="Y" name="Scale Y"/>
<spinner label="Z" name="Scale Z"/>
<text name="label rotation">
Rotación (grados)
</text>
<text name="label rotation">Rotación (grados)</text>
<spinner label="X" name="Rot X"/>
<spinner label="Y" name="Rot Y"/>
<spinner label="Z" name="Rot Z"/>
@ -263,72 +165,42 @@
<combo_box.item label="Cono truncado" name="Ring"/>
<combo_box.item label="Sculpted" name="Sculpted"/>
</combo_box>
<text name="text cut">
Corte (inicio/fin)
</text>
<text name="text cut">Corte (inicio/fin)</text>
<spinner label="I" name="cut begin"/>
<spinner label="F" name="cut end"/>
<text name="text hollow">
Hueco
</text>
<text name="text skew">
Sesgo
</text>
<text name="Hollow Shape">
Forma del hueco
</text>
<text name="text hollow">Hueco</text>
<text name="text skew">Sesgo</text>
<text name="Hollow Shape">Forma del hueco</text>
<combo_box name="hole">
<combo_box.item label="Por defecto" name="Default"/>
<combo_box.item label="Círculo" name="Circle"/>
<combo_box.item label="Cuadrado" name="Square"/>
<combo_box.item label="Triángulo" name="Triangle"/>
</combo_box>
<text name="text twist">
Torsión (inicio/fin)
</text>
<text name="text twist">Torsión (inicio/fin)</text>
<spinner label="I" name="Twist Begin"/>
<spinner label="F" name="Twist End"/>
<text name="scale_taper">
Biselar
</text>
<text name="scale_hole">
Tamaño del hueco
</text>
<text name="scale_taper">Biselar</text>
<text name="scale_hole">Tamaño del hueco</text>
<spinner label="X" name="Taper Scale X"/>
<spinner label="Y" name="Taper Scale Y"/>
<text name="text topshear">
Inclinación superior
</text>
<text name="text topshear">Inclinación superior</text>
<spinner label="X" name="Shear X"/>
<spinner label="Y" name="Shear Y"/>
<text name="advanced_cut">
Corte del perfil (inicio/fin)
</text>
<text name="advanced_dimple">
Horadar (inicio/fin)
</text>
<text name="advanced_slice">
Cortar (inicio/fin)
</text>
<text name="advanced_cut">Corte del perfil (inicio/fin)</text>
<text name="advanced_dimple">Horadar (inicio/fin)</text>
<text name="advanced_slice">Cortar (inicio/fin)</text>
<spinner label="I" name="Path Limit Begin"/>
<spinner label="F" name="Path Limit End"/>
<text name="text taper2">
Biselar
</text>
<text name="text taper2">Biselar</text>
<spinner label="X" name="Taper X"/>
<spinner label="Y" name="Taper Y"/>
<text name="text radius delta">
Radio
</text>
<text name="text revolutions">
Giros
</text>
<text name="text radius delta">Radio</text>
<text name="text revolutions">Giros</text>
<texture_picker label="Textura para sculpted" name="sculpt texture control" tool_tip="Pulse para elegir una imagen"/>
<check_box label="Espejo" name="sculpt mirror control" tool_tip="Girar el prim sculpted siguiendo el eje X"/>
<check_box label="Dentro-Fuera" name="sculpt invert control" tool_tip="Invertir los valores de los prims sculpted, haciendo aparecer fuera lo de dentro"/>
<text name="label sculpt type">
Tipo de unión
</text>
<text name="label sculpt type">Tipo de unión</text>
<combo_box name="sculpt type control">
<combo_box.item label="Esfera" name="Sphere"/>
<combo_box.item label="Toroide" name="Torus"/>
@ -337,21 +209,11 @@
</combo_box>
</panel>
<panel label="Caracter." name="Features">
<panel.string name="None">
Ninguno
</panel.string>
<panel.string name="Prim">
Prim
</panel.string>
<panel.string name="Convex Hull">
Apariencia convexa
</panel.string>
<text name="select_single">
Selecciona un sólo prim para editarlo.
</text>
<text name="edit_object">
Editar las características del objeto:
</text>
<panel.string name="None">Ninguno</panel.string>
<panel.string name="Prim">Prim</panel.string>
<panel.string name="Convex Hull">Apariencia convexa</panel.string>
<text name="select_single">Selecciona un sólo prim para editarlo.</text>
<text name="edit_object">Editar las características del objeto:</text>
<check_box label="Malla animada" name="Animated Mesh Checkbox Ctrl" tool_tip="Permite que los objetos de malla aparejados estén animados de manera independiente"/>
<check_box label="Flexibilidad" name="Flexible1D Checkbox Ctrl" tool_tip="Permite que el objeto flexione en el eje Z (sólo del lado del cliente)"/>
<spinner label="Blandura" name="FlexNumSections"/>
@ -371,9 +233,7 @@
<spinner label="Visión" name="Light Focus"/>
<spinner label="Atenuación" name="Light Falloff"/>
<spinner label="Ambiental" name="Light Ambiance"/>
<text name="label physicsshapetype">
Tipo de forma física:
</text>
<text name="label physicsshapetype">Tipo de forma física:</text>
<combo_box name="Physics Shape Type Combo Ctrl" tool_tip="Selecciona el tipo de forma física"/>
<combo_box name="material">
<combo_box.item label="Piedra" name="Stone"/>
@ -396,26 +256,21 @@
</panel>
</tab_container>
<panel name="land info panel">
<text name="label_parcel_info">
Información de la parcela
</text>
<text name="label_area_price">
Precio: [PRICE] L$ por [AREA] m²
</text>
<text name="label_area">
Área: [AREA] m²
</text>
<text name="label_parcel_info">Información de la parcela</text>
<text name="label_area_price">Precio: [PRICE] L$ por [AREA] m²</text>
<text name="label_area">Área: [AREA] m²</text>
<button label="Acerca del terreno" label_selected="Acerca del terreno" name="button about land"/>
<check_box label="Mostrar los propietarios" name="checkbox show owners" tool_tip="El color de las parcelas es según su propietario: Verde = Su terreno Agua = Terreno de sus grupos Rojo = Propiedad de otros Amarillo = En venta Morado = Para subasta Gris = Público"/>
<text name="label_parcel_modify">
Modificar la parcela
</text>
<text name="label_parcel_modify">Modificar la parcela</text>
<button label="Dividir" label_selected="Dividir" name="button subdivide land"/>
<button label="Unir" label_selected="Unir" name="button join land"/>
<text name="label_parcel_trans">
Transacciones de terreno
</text>
<text name="label_parcel_trans">Transacciones de terreno</text>
<button label="Comprar terreno" label_selected="Comprar terreno" name="button buy land"/>
<button label="Abandonar el terreno" label_selected="Abandonar el terreno" name="button abandon land"/>
</panel>
<combo_box name="combobox grid mode" tool_tip="Elige un tipo de regla de cuadrícula para posicionar el objeto">
<combo_box.item name="World" label="Mundo"/>
<combo_box.item name="Reference" label="Referencia"/>
<combo_box.item name="Local" label="Local"/>
</combo_box>
</floater>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" ?>
<context_menu name="Outfit">
<menu name="New Clothes" label="Nueva ropa">
<menu_item_call name="New Skirt" label="Nueva falda"/>
<menu_item_call name="New Underpants" label="Nuevos calzoncillos"/>
<menu_item_call name="New Undershirt" label="Nueva camiseta"/>
<menu_item_call name="New Shirt" label="Nueva camisa"/>
<menu_item_call name="New Pants" label="Nuevos pantalones"/>
<menu_item_call name="New Tattoo" label="Nuevo tatuaje"/>
<menu_item_call name="New Physics" label="Nuevo físico"/>
<menu_item_call name="New Jacket" label="Nueva chaqueta"/>
<menu_item_call name="New Shoes" label="Nuevos zapatos"/>
<menu_item_call name="New Gloves" label="Nuevos guantes"/>
<menu_item_call name="New Alpha" label="Nuevo Alfa"/>
<menu_item_call name="New Socks" label="Nuevos calcetines"/>
</menu>
<menu name="New Body Parts" label="Nuevas partes del cuerpo">
<menu_item_call name="New Hair" label="Nuevo cabello"/>
<menu_item_call name="New Eyes" label="Nuevos ojos"/>
<menu_item_call name="New Shape" label="Nueva forma"/>
<menu_item_call name="New Skin" label="Nueva piel"/>
</menu>
</context_menu>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<menu_bar name="Login Menu">
<menu label="Yo" name="File">
<menu_item_call label="Preferencias..." name="Preferences..."/>
@ -18,12 +18,12 @@
<menu_item_call label="Informar de un fallo" name="Report Bug"/>
<menu_item_call label="Acerca de [APP_NAME]" name="About Second Life"/>
</menu>
<menu_item_check label="Mostrar el menú &apos;Debug&apos;" name="Show Debug Menu"/>
<menu_item_check label="Mostrar el menú 'Debug'" name="Show Debug Menu"/>
<menu label="Depurar" name="Debug">
<menu_item_call label="Mostrar las configuraciones del depurador" name="Debug Settings"/>
<menu label="Pruebas de la interfaz" name="UI Tests"/>
<menu_item_call label="Definir el tamaño de la ventana..." name="Set Window Size..."/>
<menu_item_call label="Mostrar los &apos;TOS&apos;" name="TOS"/>
<menu_item_call label="Mostrar los 'TOS'" name="TOS"/>
<menu_item_call label="Mostrar mensaje crítico" name="Critical"/>
<menu_item_call label="Navegador de medios" name="Media Browser"/>
<menu label="Configurar el nivel de registro" name="Set Logging Level">
@ -34,5 +34,6 @@
<menu_item_check label="Ninguno" name="None"/>
</menu>
<menu_item_call label="Mostrar la consola de notificaciones" name="Show Notifications Console"/>
<menu_item_call name="UI Preview Tool" label="Herramienta de previsualización XUI"/>
</menu>
</menu_bar>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<menu_bar name="Main Menu">
<menu label="Yo" name="Me">
<menu_item_call label="Perfil..." name="Profile"/>
@ -235,7 +235,8 @@
<menu_item_call label="Alejar el zoom" name="Zoom Out"/>
</menu>
<menu_item_call label="Mostrar las configuraciones del depurador" name="Debug Settings"/>
<menu_item_check label="Mostrar el menú &apos;Develop&apos;" name="Debug Mode"/>
<menu_item_check label="Mostrar el menú 'Develop'" name="Debug Mode"/>
<menu_item_check name="Test FRInfo" label="Probar FRInfo"/>
</menu>
<menu label="Develop" name="Develop">
<menu label="Consoles" name="Consoles">
@ -371,6 +372,62 @@
<menu_item_call label="Request Admin Status" name="Request Admin Options"/>
<menu_item_call label="Leave Admin Status" name="Leave Admin Options"/>
<menu_item_check label="Show Admin Menu" name="View Admin Options"/>
<menu_item_check name="Texture Area" label="Area de textura"/>
<menu_item_call name="Print Agent Info" label="Imprimir Información del agente"/>
<menu_item_call name="Test Male" label="Probar Masculino"/>
<menu_item_check name="Shadow Frusta" label="Sombra Frusta"/>
<menu_item_check name="Debug GL" label="Depurar GL"/>
<menu_item_call name="Capabilities Info to Debug Console" label="Información de capacidades a Consola de Depuración"/>
<menu_item_check name="Face Area" label="Area del rostro"/>
<menu_item_check name="Debug Pipeline" label="Canalización de Depuración"/>
<menu_item_call name="Dump Scripted Camera" label="Desechar Camara Preestablecida"/>
<menu_item_check name="Show Avatar Render Info" label="Mostrar información de renderización del Avatar"/>
<menu_item_check name="Bounding Boxes" label="Cuadros delimitadores"/>
<menu_item_call name="Start Playback" label="Comenzar reproducion"/>
<menu_item_call name="Dump Attachments" label="Desechar de archivos adjuntos"/>
<menu_item_check name="Debug Views" label="Vista de Depuración"/>
<menu_item_call name="Stop Record" label="Detener grabación"/>
<menu_item_call name="Appearance To XML" label="Apariencia a XLM"/>
<menu_item_check name="Raycast" label="Raycast"/>
<menu_item_call name="Dump Focus Holder" label="Desechar centro de enfoque"/>
<menu_item_call name="Playback event recording" label="Reproducir evento grabado"/>
<menu_item_call name="Disable Message Log" label="Desactivar registro de mensajes"/>
<menu_item_call name="Selected Texture Info Basis" label="Información básica de la textura seleccionada"/>
<menu_item_check name="Object-Object Occlusion" label="Objeto - oclusión de objetos"/>
<menu_item_check name="Output Debug Minidump" label="Depurar Salida"/>
<menu_item_check name="Debug Keys" label="Claves de depuración"/>
<menu_item_check name="Texture Anim" label="Animación de textura"/>
<menu_item_call name="FB Connect Test" label="Prueba de conexión con facebook"/>
<menu_item_call name="Dump Timers" label="Desechar temporizadores"/>
<menu_item_check name="Error" label="error"/>
<menu_item_check name="Rull Res Textures" label="Texturas de Resolución completa"/>
<menu_item_call name="Dump Local Textures" label="Desechar texturas locales"/>
<menu_item_check name="Show Look At" label="Mostrar &quot;observar&quot;"/>
<menu_item_call name="Test Female" label="Prueba femenina"/>
<menu_item_check name="Info" label="Informacion"/>
<menu_item_check name="FOV" label="Campo de vision"/>
<menu_item_call name="Enable Visual Leak Detector" label="Habilitar detector de fuga visual"/>
<menu_item_call name="Stop event recording" label="Detener grabación de evento"/>
<menu_item_check name="Render Batches" label="Renderizar lotes"/>
<menu_item_check name="Lights" label="Luces"/>
<menu_item_call name="Start Record" label="Comenzar la grabación"/>
<menu_item_check name="Collision Skeleton" label="Esqueleto de colision"/>
<menu_item_check name="Show Matrices" label="Mostrar matrices"/>
<menu_item_call name="Stop Playback" label="Detener reproducción"/>
<menu_item_check name="Debug Name Tooltips" label="Depurar Nombres de Herramientas"/>
<menu_item_check name="Debug" label="Depurar"/>
<menu_item_call name="Dump Inventory" label="Desechar Inventario"/>
<menu_item_check name="Warning" label="Advertencia"/>
<menu_item_check name="Debug Joint Updates" label="Depurar Actualizaciones de Mezcla"/>
<menu_item_call name="Group Info to Debug Console" label="Información de Grupo a Consola de Depuración"/>
<menu_item_check name="Texture Priority" label="Prioridad de texturas"/>
<menu_item_check name="Loop Playback" label="Reproducir en bucle"/>
<menu_item_check name="Occlusion" label="Oclusion"/>
<menu_item_call name="Start event recording" label="Comenzar grabación del evento"/>
<menu_item_call name="Compress Images" label="Comprimir imágenes"/>
<menu_item_check name="Tangent Basis" label="Bases de Tangentes"/>
<menu_item_call name="Enable Message Log" label="Activar registro de mensajes"/>
<menu_item_check name="Show Point At" label="Mostrar &quot;Señalar&quot;"/>
</menu>
<menu label="Admin" name="Admin">
<menu label="Objeto" name="AdminObject">
@ -408,5 +465,24 @@
<menu_item_call label="Wiki QA" name="QA Wiki"/>
</menu>
</menu>
<menu name="Attach Object" label="Adjuntar objeto"/>
<menu_item_call name="Tattoo" label="Tatuaje"/>
<menu_item_call name="Alpha" label="Alfa"/>
<menu name="Detach Object" label="Despegar objeto"/>
<menu_item_call name="Menu Underpants" label="calzoncillos"/>
<menu_item_call name="Menu Undershirt" label="Camiseta"/>
</menu>
<menu name="Clothes &gt;"/>
<menu name="Take Off &gt;"/>
<menu name="Avatar">
<menu_item_call name="Gloves" label="Guantes"/>
<menu_item_call name="All Clothes" label="Toda la ropa"/>
<menu_item_call name="Skirt" label="Falda"/>
<menu_item_call name="Jacket" label="Chaqueta"/>
<menu_item_call name="Pants" label="Pantalones"/>
<menu_item_call name="Shirt" label="Camisa"/>
<menu_item_call name="Socks" label="Calcetines"/>
<menu_item_call name="Shoes" label="Zapatos"/>
</menu>
<menu name="Recorder" label="Grabadora"/>
</menu_bar>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
<?xml version="1.0" ?>
<panel name="avatar_tag_notification">
<panel name="msg_caption">
<text name="tag_time" value="23:30:00"/>
<text name="sender_tag_name">Angela Tester</text>
</panel>
</panel>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" ?>
<panel name="im_header" label="soy_titulo"/>

View File

@ -0,0 +1,30 @@
<?xml version="1.0" ?>
<panel name="GroupCreation" label="Creacion de grupo">
<panel name="group_info_top">
<line_editor name="group_name_editor" label="Escribe el nuevo nombre de tu grupo aquí"/>
</panel>
<layout_panel name="group_info"/>
<layout_stack name="layout">
<texture_picker name="insignia" tool_tip="Haz click para seleccionar una fotografía"/>
<text_editor name="charter">Reglas del grupo</text_editor>
<button name="back" tool_tip="Regresar al listado de grupos"/>
<text name="info_deletion">Nota: luego de 7 días, un grupo sin miembros (además del creador) sera eliminado.</text>
<check_box name="check_enrollment_fee" label="Costo para unirse" tool_tip="Establece si debe solicitar un costo para el unirse al grupo"/>
<combo_box.item name="pg" label="Contenido general"/>
<scroll_list.rows name="basic" value="Basico (marcador de posición)"/>
<button name="btn_create" label="Crear un grupo por L$" tool_tip="Crear un grupo nuevo"/>
<text name="fee_information">El costo para la creación de grupos esta basado en tu nivel de membresía</text>
<scroll_list.rows name="premium" value="Premium (Marcador de posición)"/>
<check_box name="open_enrollement" label="Cualquiera se puede unir" tool_tip="Establece si este grupo permite que se unan nuevos miembros sin ser invitados."/>
<combo_item name="select_mature">-Seleccionar clasificacion de madurez-</combo_item>
<spinner name="spin_enrollment_fee" label="L$" tool_tip="Los miembros nuevos deben pagar esta cuota para unirse al grupo cuando la Cuota de Enrolamiento está seleccionada"/>
<combo_box.item name="mature" label="Moderar Contenido"/>
</layout_stack>
<layout_panel name="layout_crt"/>
<layout_stack name="button_row_ls"/>
<layout_panel name="create_actions"/>
<panel name="preferences_container"/>
<combo_box name="group_mature_check" tool_tip="Las clasificaciones de madurez designan el tipo de contenido y comportamientos permitidos en un grupo"/>
<scroll_list name="membership_list"/>
<layout_panel name="create_info"/>
</panel>

View File

@ -1,20 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<panel label="Miembros y Roles" name="roles_tab">
<panel.string name="default_needs_apply_text">
Hay cambios sin guardar
</panel.string>
<panel.string name="want_apply_text">
¿Quieres guardar estos cambios?
</panel.string>
<panel.string name="default_needs_apply_text">Hay cambios sin guardar</panel.string>
<panel.string name="want_apply_text">¿Quieres guardar estos cambios?</panel.string>
<tab_container name="roles_tab_container">
<panel label="MIEMBROS" name="members_sub_tab" tool_tip="Miembros">
<panel.string name="help_text">
Puede añadir o quitar los roles asignados a los miembros.
Seleccione varios nombres manteniendo pulsada la tecla Ctrl y pulsando en cada uno de ellos.
</panel.string>
<panel.string name="donation_area">
[AREA] m²
</panel.string>
<panel.string name="help_text">Puede añadir o quitar los roles asignados a los miembros.
Seleccione varios nombres manteniendo pulsada la tecla Ctrl y pulsando en cada uno de ellos.</panel.string>
<panel.string name="donation_area">[AREA] m²</panel.string>
<filter_editor label="Filtrar los miembros" name="filter_input"/>
<name_list name="member_list">
<name_list.columns label="Miembro" name="name"/>
@ -27,18 +19,12 @@ Seleccione varios nombres manteniendo pulsada la tecla Ctrl y pulsando en cada u
<button label="Expulsar miembro(s)" name="member_ban"/>
</panel>
<panel label="ROLES" name="roles_sub_tab">
<panel.string name="help_text">
Los roles tienen una etiqueta propia y unas capacidades que se
<panel.string name="help_text">Los roles tienen una etiqueta propia y unas capacidades que se
permiten ejercer a sus miembros. Los miembros pueden
tener más de un rol. Un grupo puede tener hasta 10 roles,
incluidos los roles Todos y Propietarios.
</panel.string>
<panel.string name="cant_delete_role">
Los roles de &apos;Todos&apos; y &apos;Propietarios&apos; son especiales, y no pueden eliminarse.
</panel.string>
<panel.string name="power_folder_icon">
Inv_FolderClosed
</panel.string>
incluidos los roles Todos y Propietarios.</panel.string>
<panel.string name="cant_delete_role">Los roles de 'Todos' y 'Propietarios' son especiales, y no pueden eliminarse.</panel.string>
<panel.string name="power_folder_icon">Inv_FolderClosed</panel.string>
<filter_editor label="Filtrar los roles" name="filter_input"/>
<scroll_list name="role_list">
<scroll_list.columns label="Rol" name="name"/>
@ -49,10 +35,8 @@ Seleccione varios nombres manteniendo pulsada la tecla Ctrl y pulsando en cada u
<button label="Eliminar el rol" name="role_delete"/>
</panel>
<panel height="148" label="CAPACIDADES" name="actions_sub_tab" tool_tip="Puedes ver una descripción de la capacidad y qué miembros y roles la tienen.">
<panel.string name="help_text">
Las capacidades permiten a los miembros con roles hacer
cosas concretas en el grupo. Las hay de muchos tipos.
</panel.string>
<panel.string name="help_text">Las capacidades permiten a los miembros con roles hacer
cosas concretas en el grupo. Las hay de muchos tipos.</panel.string>
<filter_editor label="Filtrar las capacidades" name="filter_input"/>
<scroll_list bottom_delta="-120" height="118" name="action_list" tool_tip="Elige una capacidad para verla más en detalle">
<scroll_list.columns label="" name="icon"/>
@ -60,12 +44,8 @@ Seleccione varios nombres manteniendo pulsada la tecla Ctrl y pulsando en cada u
</scroll_list>
</panel>
<panel label="RESIDENTES EXPULSADOS" name="banlist_sub_tab" tool_tip="Muestra los residentes expulsados de este grupo.">
<panel.string name="help_text">
Los residentes que figuren en la lista de expulsados no podrán unirse al grupo.
</panel.string>
<panel.string name="ban_count_template">
Número de expulsados: [COUNT]/[LIMIT]
</panel.string>
<panel.string name="help_text">Los residentes que figuren en la lista de expulsados no podrán unirse al grupo.</panel.string>
<panel.string name="ban_count_template">Número de expulsados: [COUNT]/[LIMIT]</panel.string>
<name_list name="ban_list">
<name_list.columns label="Residente" name="name"/>
<name_list.columns label="Fecha de expulsión" name="ban_date"/>
@ -74,48 +54,33 @@ Seleccione varios nombres manteniendo pulsada la tecla Ctrl y pulsando en cada u
<button label="Anular expulsión" name="ban_delete" tool_tip="Readmite en el grupo a los residentes seleccionados"/>
<button name="ban_refresh" tool_tip="Actualiza la lista de expulsados"/>
</panel>
<button name="role_copy" label="Copiar rol"/>
</tab_container>
<panel name="members_footer">
<text name="static">
Roles asignados
</text>
<text name="static">Roles asignados</text>
<scroll_list name="member_assigned_roles">
<scroll_list.columns label="" name="checkbox"/>
<scroll_list.columns label="" name="role"/>
</scroll_list>
<text name="static2">
Capacidades permitidas
</text>
<text name="static2">Capacidades permitidas</text>
<scroll_list name="member_allowed_actions" tool_tip="Para más detalles de cada capacidad, ver la pestaña Capacidades">
<scroll_list.columns label="" name="icon"/>
<scroll_list.columns label="" name="action"/>
</scroll_list>
</panel>
<panel name="members_header">
<text_editor name="member_action_description">
Esta habilidad es &apos;Expulsar miembros de este grupo&apos;. Sólo un propietario puede expulsar a otro propietario.
</text_editor>
<text_editor name="member_action_description">Esta habilidad es 'Expulsar miembros de este grupo'. Sólo un propietario puede expulsar a otro propietario.</text_editor>
</panel>
<panel name="roles_footer">
<text name="static">
Nombre del rol
</text>
<text name="static">Nombre del rol</text>
<line_editor name="role_name"/>
<text name="static3">
Etiqueta del rol
</text>
<text name="static3">Etiqueta del rol</text>
<line_editor name="role_title"/>
<text name="static2">
Descripción
</text>
<text name="static2">Descripción</text>
<text_editor name="role_description"/>
<text name="static4">
Roles asignados
</text>
<text name="static4">Roles asignados</text>
<check_box label="Mostrar los miembros" name="role_visible_in_list" tool_tip="Establece si los miembros de este rol pueden ser vistos en la pestaña General por personas ajenas al grupo."/>
<text name="static5" tool_tip="Una lista de las capacidades que puede desarrollar el rol seleccionado actualmente.">
Capacidades asignadas
</text>
<text name="static5" tool_tip="Una lista de las capacidades que puede desarrollar el rol seleccionado actualmente.">Capacidades asignadas</text>
<scroll_list name="role_allowed_actions" tool_tip="Para más detalles de cada capacidad, ver la pestaña Capacidades">
<scroll_list.columns label="" name="icon"/>
<scroll_list.columns label="" name="checkbox"/>
@ -123,19 +88,11 @@ Seleccione varios nombres manteniendo pulsada la tecla Ctrl y pulsando en cada u
</scroll_list>
</panel>
<panel name="roles_header">
<text_editor name="role_action_description">
Esta habilidad es &apos;Expulsar miembros de este grupo&apos;. Sólo un propietario puede expulsar a otro propietario.
</text_editor>
<text_editor name="role_action_description">Esta habilidad es 'Expulsar miembros de este grupo'. Sólo un propietario puede expulsar a otro propietario.</text_editor>
</panel>
<panel name="actions_footer">
<text_editor name="action_description">
Esta capacidad es la de &apos;Expulsar miembros de este grupo&apos;. Sólo un propietario puede expulsar a otro.
</text_editor>
<text name="static2">
Roles con esta capacidad
</text>
<text name="static3">
Miembros con esta capacidad
</text>
<text_editor name="action_description">Esta capacidad es la de 'Expulsar miembros de este grupo'. Sólo un propietario puede expulsar a otro.</text_editor>
<text name="static2">Roles con esta capacidad</text>
<text name="static3">Miembros con esta capacidad</text>
</panel>
</panel>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" ?>
<panel name="im_panel" label="soy_panel"/>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" ?>
<panel name="landmark_info">
<string name="title_create_landmark" value="Crear un hito"/>
<string name="title_edit_landmark" value="Editar el hito"/>
@ -6,18 +6,10 @@
<string name="not_available" value="(No disp.)"/>
<string name="unknown" value="(desconocidas)"/>
<string name="public" value="(público)"/>
<string name="server_update_text">
Los datos de este lugar no están disponibles sin una actualización del servidor.
</string>
<string name="server_error_text">
Los datos de este lugar no están disponibles por el momento. Por favor, prueba más tarde.
</string>
<string name="server_forbidden_text">
Por restricciones en el acceso, los datos de esta localización no están disponibles. Por favor, revisa tus permisos con el propietario de la parcela.
</string>
<string name="acquired_date">
[wkday,datetime,local][day,datetime,local] [mth,datetime,local] [year,datetime,local][hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
</string>
<string name="server_update_text">Los datos de este lugar no están disponibles sin una actualización del servidor.</string>
<string name="server_error_text">Los datos de este lugar no están disponibles por el momento. Por favor, prueba más tarde.</string>
<string name="server_forbidden_text">Por restricciones en el acceso, los datos de esta localización no están disponibles. Por favor, revisa tus permisos con el propietario de la parcela.</string>
<string name="acquired_date">[wkday,datetime,local][day,datetime,local] [mth,datetime,local] [year,datetime,local][hour,datetime,local]:[min,datetime,local]:[second,datetime,local]</string>
<button name="back_btn" tool_tip="Atrás"/>
<text name="title" value="Perfil del lugar"/>
<scroll_container name="place_scroll">
@ -34,5 +26,6 @@
<text name="folder_label" value="Localización del hito:"/>
</panel>
</panel>
<text name="region_title" value="Región de muestra"/>
</scroll_container>
</panel>

View File

@ -1,11 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" ?>
<panel name="panel_login">
<panel.string name="forgot_password_url">
http://secondlife.com/account/request.php?lang=es
</panel.string>
<panel.string name="sign_up_url">
https://join.secondlife.com/
</panel.string>
<panel.string name="forgot_password_url">http://secondlife.com/account/request.php?lang=es</panel.string>
<panel.string name="sign_up_url">https://join.secondlife.com/</panel.string>
<layout_stack name="ui_stack">
<layout_panel name="ui_container">
<combo_box label="Nombre de usuario" name="username_combo" tool_tip="El nombre de usuario que elegiste al registrarte, como bobsmith12 o Steller Sunshine"/>
@ -16,13 +12,11 @@
</combo_box>
<button label="Iniciar sesión" name="connect_btn"/>
<check_box label="Recordarme" name="remember_check"/>
<text name="forgot_password_text">
Contraseña olvidada
</text>
<text name="forgot_password_text">Contraseña olvidada</text>
<combo_box label="Seleccionar cuadrícula" name="server_combo"/>
<text name="sign_up_text">
Regístrate
</text>
<text name="sign_up_text">Regístrate</text>
</layout_panel>
<check_box name="remember_name" label="Recordarme" tool_tip="Los usuarios guardados pueden ser eliminados desde Preferencias &gt; avanzadas &gt; nombre de usuario guardados"/>
<check_box name="remember_password" label="Recordar contraseña"/>
</layout_stack>
</panel>

View File

@ -0,0 +1,38 @@
<?xml version="1.0" ?>
<panel name="main_panel">
<panel name="sender_time_panel_exp"/>
<panel name="main_info_panel_expanded"/>
<layout_panel name="layout_panel_middle_exp"/>
<layout_stack name="horizontal_stack"/>
<panel name="panel_expanded_view"/>
<layout_panel name="layout_panel_expanded_view"/>
<layout_stack name="item_vertical_stack"/>
<panel name="panel_total_view">
<text name="notification_time_exp" value="24/12/2014 23:30"/>
<text name="sender_or_fee_box_exp">Remitente: &quot;Residente R e s i d e n t e R e s i d e n t e&quot;</text>
<text name="notification_title_exp">Título de notificación titulo de notificacion T i t u l o D e N o t i f i c a c i ó n</text>
<avatar_icon name="avatar_icon" tool_tip="Avatar"/>
<button name="join_btn" label="Unirse"/>
<chat_editor name="notification_text_exp">El Texto de notificación va aquí</chat_editor>
<button name="decline_btn" label="Rechazar"/>
<group_icon name="group_icon_exp" tool_tip="Grupo"/>
<text name="sender_or_fee_box">Remitente: &quot;Residente R e s i d e n t e R e s i d e n t e&quot;</text>
<icon name="attachment_icon_exp" tool_tip="Archivo adjunto"/>
<icon name="system_notification_icon_exp" tool_tip="Icono"/>
<text name="notification_title">Nombre del grupo: Titulo de Notificación T i t u l o D e N o t i f i c a c i ó n</text>
<text name="group_name_exp">Nombre del Grupo Nombre del Grupo Nombre del Grupo o o</text>
<text name="attachment_text">El archivo adjunto va aquí</text>
</panel>
<panel name="notification_title_panel_exp"/>
<layout_panel name="layout_panel_right"/>
<panel name="panel_condensed_view"/>
<layout_panel name="layout_panel_condensed_view"/>
<panel name="button_panel"/>
<panel name="notification_text_panel_exp"/>
<layout_panel name="layout_panel_right_exp"/>
<panel name="sender_time_panel"/>
<panel name="main_info_panel"/>
<layout_panel name="layout_panel_middle"/>
<panel name="notification_title_panel"/>
<panel name="attachment_panel"/>
</panel>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" ?>
<panel name="notifications_panel">
<scroll_list name="notifications_list"/>
<layout_panel name="notifications_list_panel"/>
<layout_stack name="stack1">
<scroll_list.columns name="name" label="Nombre"/>
<scroll_list.columns name="content" label="Contenido"/>
<scroll_list.columns name="date" label="Fecha"/>
</layout_stack>
</panel>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" ?>
<panel name="Outfit Gallery">
<panel name="bottom_panel">
<menu_button name="options_gear_btn" tool_tip="Mostrar opciones adicionales"/>
<button name="trash_btn" tool_tip="Borrar atuendo seleccionado"/>
</panel>
</panel>

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