diff options
| author | Erik Kundiman <erik@megapahit.org> | 2026-09-11 11:29:40 +0800 |
|---|---|---|
| committer | Erik Kundiman <erik@megapahit.org> | 2026-09-11 11:29:40 +0800 |
| commit | 9391fa2734ae74e9d49d74f7b2df181b526c6605 (patch) | |
| tree | a635dd244fe6b50c1fee5c177154cd3f6aae43d5 /indra | |
| parent | ede7041a12f9d5e3839d21e10f03e2a5ff4915c2 (diff) | |
| parent | d91cd7a07489c43bf922de246ec5f22f1b3874f3 (diff) | |
Merge tag 'Second_Life_Release#d91cd7a0-26.4' into 26.4
Diffstat (limited to 'indra')
22 files changed, 196 insertions, 80 deletions
diff --git a/indra/llfilesystem/lldir.cpp b/indra/llfilesystem/lldir.cpp index 72f74e1e97..46a94277c5 100644 --- a/indra/llfilesystem/lldir.cpp +++ b/indra/llfilesystem/lldir.cpp @@ -98,15 +98,29 @@ std::vector<std::string> LLDir::getFilesInDir(const std::string &dirname) if (std::filesystem::is_directory(dir_path, ec)) { std::filesystem::directory_iterator end_iter; - for (std::filesystem::directory_iterator dir_itr(dir_path); - dir_itr != end_iter; - ++dir_itr) + try { - if (std::filesystem::is_regular_file(dir_itr->status())) + for (std::filesystem::directory_iterator dir_itr(dir_path); + dir_itr != end_iter; + ++dir_itr) { - v.push_back(dir_itr->path().filename().string()); + try + { + if (std::filesystem::is_regular_file(dir_itr->status())) + { + v.push_back(fsyspath(dir_itr->path().filename()).string()); + } + } + catch (const std::system_error& e) + { + LL_WARNS() << "Exception accessing directory entry: " << e.what() << LL_ENDL; + } } } + catch (const std::system_error& e) + { + LL_WARNS() << "Exception iterating directory: " << e.what() << LL_ENDL; + } } return v; } diff --git a/indra/llfilesystem/lldiriterator.cpp b/indra/llfilesystem/lldiriterator.cpp index 60b55c7bf3..ca00d25fb7 100644 --- a/indra/llfilesystem/lldiriterator.cpp +++ b/indra/llfilesystem/lldiriterator.cpp @@ -126,20 +126,27 @@ bool LLDirIterator::Impl::next(std::string &fname) { while (mIter != end_itr && !found) { - boost::smatch match; - std::string name = mIter->path().filename().string(); - found = ll_regex_match(name, match, mFilterExp); - if (found) + try { - fname = name; + boost::smatch match; + std::string name = fsyspath(mIter->path().filename()).string(); + found = ll_regex_match(name, match, mFilterExp); + if (found) + { + fname = name; + } + } + catch (const std::system_error& e) + { + LL_WARNS() << "Exception accessing directory entry: " << e.what() << LL_ENDL; } ++mIter; } } - catch (const fs::filesystem_error& e) + catch (const std::system_error& e) { - LL_WARNS() << e.what() << LL_ENDL; + LL_WARNS() << "Exception iterating directory: " << e.what() << LL_ENDL; } return found; diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp index b1f1fb77f3..a728f66000 100644 --- a/indra/llui/llkeywords.cpp +++ b/indra/llui/llkeywords.cpp @@ -201,12 +201,7 @@ LLUIColor LLKeywords::getColorGroup(std::string_view key_in) const color_group = "SyntaxLslGodMode"; } else if (key_in == "constants" - || key_in == "constants-integer" - || key_in == "constants-float" - || key_in == "constants-string" - || key_in == "constants-key" - || key_in == "constants-rotation" - || key_in == "constants-vector") + || key_in.compare(0, 10, "constants-") == 0) { color_group = "SyntaxLslConstant"; } diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp index 7f371ff0cf..ab857fa58d 100644 --- a/indra/llwindow/llwindowwin32.cpp +++ b/indra/llwindow/llwindowwin32.cpp @@ -2550,7 +2550,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_ // minimize the viewer and hide its owned dialog. if (!activating && activating_same_process_thread) { - activating = TRUE; + return; } if (window_imp->mFullscreen) diff --git a/indra/newview/llpanelcontents.cpp b/indra/newview/llpanelcontents.cpp index c0b96ced2f..43dd1bfe40 100644 --- a/indra/newview/llpanelcontents.cpp +++ b/indra/newview/llpanelcontents.cpp @@ -119,6 +119,7 @@ void LLPanelContents::getState(LLViewerObject *objectp ) { if( !objectp ) { + mLastScriptObjectID.setNull(); getChildView("button new script")->setEnabled(false); getChildView("button new notecard")->setEnabled(false); mPublishButton->setEnabled(false); @@ -153,7 +154,14 @@ void LLPanelContents::getState(LLViewerObject *objectp ) region->getSimulatorFeatures(simulatorFeatures); lua_region = simulatorFeatures["LuaScriptsEnabled"].asBoolean(); } - getChild<LLComboBox>("button new script")->setEnabledByValue("lua", lua_region); + LLComboBox* new_script = getChild<LLComboBox>("button new script"); + new_script->setEnabledByValue("lua", lua_region); + if (mLastScriptObjectID != objectp->getID() || mLastLuaRegion != lua_region) + { + new_script->setValue(lua_region ? "lua" : "lsl"); + } + mLastScriptObjectID = objectp->getID(); + mLastLuaRegion = lua_region; getChildView("button permissions")->setEnabled(!objectp->isPermanentEnforced()); mPanelInventoryObject->setEnabled(!objectp->isPermanentEnforced()); diff --git a/indra/newview/llpanelcontents.h b/indra/newview/llpanelcontents.h index bbbd828f3c..d576b72353 100644 --- a/indra/newview/llpanelcontents.h +++ b/indra/newview/llpanelcontents.h @@ -81,6 +81,8 @@ protected: void onFilterEdit(); bool mDirtyFilter { false }; + LLUUID mLastScriptObjectID; + bool mLastLuaRegion { false }; public: class LLFilterEditor* mFilterEditor; diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index 354147336a..fbe6fc3e40 100644 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -85,6 +85,8 @@ #include <regex> const std::string HELP_LSL_PORTAL_TOPIC = "LSL_Portal"; +const std::string HELP_LUA_PORTAL_URL = "https://wiki.secondlife.com/wiki/Lua_Alpha"; +const std::string HELP_LUA_LIBRARY_URL = "https://luau.org/library"; const std::string DEFAULT_SCRIPT_NAME = "New Script"; // *TODO:Translate? const std::string DEFAULT_SCRIPT_DESC = "(No Description)"; // *TODO:Translate? @@ -93,6 +95,36 @@ const std::string DEFAULT_SCRIPT_DESC = "(No Description)"; // *TODO:Translate? const S32 MAX_HISTORY_COUNT = 10; const F32 LIVE_HELP_REFRESH_TIME = 1.f; +static bool is_luau_library_symbol(const std::string& symbol) +{ + return symbol.rfind("bit32.", 0) == 0 + || symbol.rfind("buffer.", 0) == 0 + || symbol.rfind("coroutine.", 0) == 0 + || symbol.rfind("debug.", 0) == 0 + || symbol.rfind("math.", 0) == 0 + || symbol.rfind("os.", 0) == 0 + || symbol.rfind("string.", 0) == 0 + || symbol.rfind("table.", 0) == 0 + || symbol.rfind("utf8.", 0) == 0; +} + +static std::string build_script_help_url(bool luau_language, const std::string& help_string) +{ + if (!luau_language || help_string.rfind("ll.", 0) == 0) + { + LLUIString url_string = gSavedSettings.getString("LSLHelpURL"); + std::string page = help_string; + if (luau_language) + { + page.erase(2, 1); // Lua's ll.GetOwner maps to LSL's llGetOwner. + } + url_string.setArg("[LSL_STRING]", page.empty() ? HELP_LSL_PORTAL_TOPIC : page); + return url_string.getString(); + } + + return is_luau_library_symbol(help_string) ? HELP_LUA_LIBRARY_URL : HELP_LUA_PORTAL_URL; +} + static bool have_script_upload_cap(LLUUID& object_id) { LLViewerObject* object = gObjectList.findObject(object_id); @@ -866,13 +898,9 @@ void LLScriptEdCore::setHelpPage(const std::string& help_string) LLComboBox* history_combo = help_floater->getChild<LLComboBox>("history_combo"); if (!history_combo) return; - LLUIString url_string = gSavedSettings.getString("LSLHelpURL"); - - url_string.setArg("[LSL_STRING]", help_string.empty() ? HELP_LSL_PORTAL_TOPIC : help_string); - addHelpItemToHistory(help_string); - web_browser->navigateTo(url_string); + web_browser->navigateTo(build_script_help_url(mEditor->getIsLuauLanguage(), help_string)); } @@ -1007,6 +1035,10 @@ void LLScriptEdCore::onBtnDynamicHelp() mLiveHelpHistorySize = 0; } + const bool luau_language = mEditor->getIsLuauLanguage(); + live_help_floater->setTitle(luau_language ? "LUA REFERENCE" : "LSL REFERENCE"); + live_help_floater->setHelpTopic(luau_language ? "Lua_Alpha" : "lsl_reference"); + bool visible = true; bool take_focus = true; live_help_floater->setVisible(visible); @@ -1080,9 +1112,7 @@ void LLScriptEdCore::onHelpComboCommit(LLUICtrl* ctrl, void* userdata) corep->addHelpItemToHistory(help_string); LLMediaCtrl* web_browser = live_help_floater->getChild<LLMediaCtrl>("lsl_guide_html"); - LLUIString url_string = gSavedSettings.getString("LSLHelpURL"); - url_string.setArg("[LSL_STRING]", help_string); - web_browser->navigateTo(url_string); + web_browser->navigateTo(build_script_help_url(corep->mEditor->getIsLuauLanguage(), help_string)); } } diff --git a/indra/newview/llscripteditorws.cpp b/indra/newview/llscripteditorws.cpp index 72b5b66463..93b1bd5eb0 100644 --- a/indra/newview/llscripteditorws.cpp +++ b/indra/newview/llscripteditorws.cpp @@ -300,6 +300,13 @@ LLScriptEditorWSServer::ptr_t LLScriptEditorWSServer::ensureServerRunning() ptr_t server = std::static_pointer_cast<LLScriptEditorWSServer>( wsmgr.findServerByName(DEFAULT_SERVER_NAME)); + if (server && !server->isRunning()) + { + // thread stopped/was joined + wsmgr.removeServer(DEFAULT_SERVER_NAME); + server.reset(); + } + if (!server) { U16 port = static_cast<U16>(gSavedSettings.getS32("ExternalWebsocketSyncPort")); @@ -1767,14 +1774,17 @@ LLSD LLScriptEditorWSServer::saveScript(LLViewerObject* prim, LLInventoryItem* i boost::smatch match; LLSD diagnostic; diagnostic["level"] = "ERROR"; + S32 line_number = 0; + S32 col_number = 0; if (is_lua && boost::regex_match( error.asString(), match, - LUAU_LOCATION_PATTERN)) + LUAU_LOCATION_PATTERN) && + LLStringUtil::convertToS32(match[2].str(), line_number)) { - diagnostic["row"] = std::stoi(match[2].str()); + diagnostic["row"] = line_number; diagnostic["column"] = 0; diagnostic["message"] = match[3].str(); } @@ -1782,12 +1792,14 @@ LLSD LLScriptEditorWSServer::saveScript(LLViewerObject* prim, LLInventoryItem* i boost::regex_match( error.asString(), match, - LSL_LOCATION_PATTERN)) + LSL_LOCATION_PATTERN) && + LLStringUtil::convertToS32(match[1].str(), line_number) && + LLStringUtil::convertToS32(match[2].str(), col_number) && + line_number < S32_MAX && + col_number < S32_MAX) { - diagnostic["row"] = - std::stoi(match[1].str()) + 1; - diagnostic["column"] = - std::stoi(match[2].str()) + 1; + diagnostic["row"] = line_number + 1; + diagnostic["column"] = col_number + 1; diagnostic["level"] = match[3].str(); diagnostic["message"] = match[4].str(); diagnostic["format"] = "lsl"; @@ -2215,9 +2227,10 @@ void LLScriptEditorWSServer::sendCompileResults(const std::string &script_id, co err_entry["column"] = 0; // TODO: Lua compiler does not provide column info err_entry["level"] = "ERROR"; - if (boost::regex_match(err.asString(), match, LUAU_LOCATION_PATTERN)) + S32 line_number = 0; + if (boost::regex_match(err.asString(), match, LUAU_LOCATION_PATTERN) && + LLStringUtil::convertToS32(match[2].str(), line_number)) { - S32 line_number = std::stoi(match[2].str()); std::string message = match[3].str(); err_entry["row"] = line_number; @@ -2238,10 +2251,14 @@ void LLScriptEditorWSServer::sendCompileResults(const std::string &script_id, co boost::smatch match; LLSD err_entry; - if (boost::regex_match(err.asString(), match, LSL_LOCATION_PATTERN)) + S32 line_number = 0; + S32 col_number = 0; + if (boost::regex_match(err.asString(), match, LSL_LOCATION_PATTERN) && + LLStringUtil::convertToS32(match[1].str(), line_number) && + LLStringUtil::convertToS32(match[2].str(), col_number) && + line_number < S32_MAX && + col_number < S32_MAX) { - S32 line_number = std::stoi(match[1].str()); - S32 col_number = std::stoi(match[2].str()); std::string severity = match[3].str(); std::string message = match[4].str(); diff --git a/indra/newview/llsidepaneliteminfo.cpp b/indra/newview/llsidepaneliteminfo.cpp index 6d50f216f5..98940d8cf2 100644 --- a/indra/newview/llsidepaneliteminfo.cpp +++ b/indra/newview/llsidepaneliteminfo.cpp @@ -129,8 +129,9 @@ LLSidepanelItemInfo::LLSidepanelItemInfo(const LLPanel::Params& p) , mObjectInventoryObserver(NULL) , mUpdatePendingId(-1) , mIsDirty(false) /*Not ready*/ - , mParentFloater(NULL) - , mLabelItemDesc(NULL) + , mParentFloater(nullptr) + , mLabelItemDescMultiLine(nullptr) + , mLabelItemDescSingleLine(nullptr) { gInventory.addObserver(this); gIdleCallbacks.addFunction(&LLSidepanelItemInfo::onIdle, (void*)this); @@ -161,11 +162,14 @@ bool LLSidepanelItemInfo::postBuild() mItemTypeIcon = getChild<LLIconCtrl>("item_type_icon"); mLabelOwnerName = getChild<LLTextBox>("LabelOwnerName"); mLabelCreatorName = getChild<LLTextBox>("LabelCreatorName"); - mLabelItemDesc = getChild<LLTextEditor>("LabelItemDesc"); + mLabelItemDescMultiLine = getChild<LLTextEditor>("LabelItemDescMultiLine"); + mLabelItemDescSingleLine = getChild<LLLineEditor>("LabelItemDescSingleLine"); getChild<LLLineEditor>("LabelItemName")->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe); getChild<LLUICtrl>("LabelItemName")->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onCommitName,this)); - mLabelItemDesc->setCommitCallback(boost::bind(&LLSidepanelItemInfo:: onCommitDescription, this)); + mLabelItemDescMultiLine->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onCommitDescription, this)); + mLabelItemDescSingleLine->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onCommitDescription, this)); + // Thumnail edition mChangeThumbnailBtn->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onEditThumbnail, this)); // acquired date @@ -346,10 +350,17 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item) getChildView("LabelItemName")->setEnabled(is_modifiable && !is_calling_card); // for now, don't allow rename of calling cards getChild<LLUICtrl>("LabelItemName")->setValue(item->getName()); getChildView("LabelItemDescTitle")->setEnabled(true); - getChildView("LabelItemDesc")->setEnabled(is_modifiable); - getChild<LLUICtrl>("LabelItemDesc")->setValue(item->getDescription()); getChild<LLUICtrl>("item_thumbnail")->setValue(item->getThumbnailUUID()); + // Rezzable objects do not support multiline descriptions. + const bool is_object = item->getInventoryType() == LLInventoryType::IT_OBJECT; + mLabelItemDescMultiLine->setEnabled(!is_object && is_modifiable); + mLabelItemDescSingleLine->setEnabled(is_object && is_modifiable); + mLabelItemDescMultiLine->setValue(item->getDescription()); + mLabelItemDescSingleLine->setValue(item->getDescription()); + mLabelItemDescMultiLine->setVisible(!is_object); + mLabelItemDescSingleLine->setVisible(is_object); + LLUIImagePtr icon_img = LLInventoryIcon::getIcon(item->getType(), item->getInventoryType(), item->getFlags(), false); mItemTypeIcon->setImage(icon_img); @@ -928,7 +939,7 @@ void LLSidepanelItemInfo::onCommitDescription() LLViewerInventoryItem* item = findItem(); if(!item) return; - if(!mLabelItemDesc) + if (!mLabelItemDescMultiLine) // either both are set or none, so just check one { return; } @@ -937,10 +948,18 @@ void LLSidepanelItemInfo::onCommitDescription() return; } std::string old_desc = item->getDescription(); - std::string new_desc = mLabelItemDesc->getText(); + std::string new_desc; + if (mLabelItemDescMultiLine->getVisible()) + { + new_desc = mLabelItemDescMultiLine->getText(); + } + else + { + new_desc = mLabelItemDescSingleLine->getText(); + } if(old_desc != new_desc) { - mLabelItemDesc->setSelectAllOnFocusReceived(false); + mLabelItemDescMultiLine->setSelectAllOnFocusReceived(false); LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item); new_item->setDescription(new_desc); @@ -1198,12 +1217,3 @@ LLViewerInventoryItem* LLSidepanelItemInfo::findItem() const } return item; } - -// virtual -void LLSidepanelItemInfo::save() -{ - onCommitName(); - onCommitDescription(); - updatePermissions(); - updateSaleInfo(); -} diff --git a/indra/newview/llsidepaneliteminfo.h b/indra/newview/llsidepaneliteminfo.h index 0895d3360c..154acfcbf4 100644 --- a/indra/newview/llsidepaneliteminfo.h +++ b/indra/newview/llsidepaneliteminfo.h @@ -47,6 +47,7 @@ class LLViewerObject; class LLPermissions; class LLTextBox; class LLTextEditor; +class LLLineEditor; class LLSidepanelItemInfo : public LLPanel, public LLInventoryObserver { @@ -76,7 +77,6 @@ public: protected: void refresh() override; - void save(); LLViewerInventoryItem* findItem() const; LLViewerObject* findObject() const; @@ -106,7 +106,8 @@ private: LLIconCtrl* mItemTypeIcon; LLTextBox* mLabelOwnerName; LLTextBox* mLabelCreatorName; - LLTextEditor* mLabelItemDesc; + LLTextEditor* mLabelItemDescMultiLine; + LLLineEditor* mLabelItemDescSingleLine; // // UI Elements diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index d726091f79..ce4c32e34e 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -5947,6 +5947,11 @@ class LLToolsToggleScriptEditorServer : public view_listener_t LLScriptEditorWSServer::ensureServerRunning(); } } + + if (gFloaterTools) + { + gFloaterTools->dirty(); + } return true; } }; diff --git a/indra/newview/skins/default/xui/de/sidepanel_item_info.xml b/indra/newview/skins/default/xui/de/sidepanel_item_info.xml index 78f1db943b..b9fda7064a 100644 --- a/indra/newview/skins/default/xui/de/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/de/sidepanel_item_info.xml @@ -41,7 +41,8 @@ <text name="LabelItemDescTitle"> Beschreibung: </text> - <text_editor name="LabelItemDesc" tool_tip="Bei Auswahl der Option "Mauszeiger-Tipps zu allen Objekten" in den Viewer-Einstellungen wird für alle Objekte das Popup mit der Objektbeschreibung unter dem Mauszeiger eingeblendet. Die formelle Beschreibung ist auf 127 Byte begrenzt, und alle längeren Zeichenketten werden gekürzt."/> + <line_editor name="LabelItemDescSingleLine" tool_tip="Bei Auswahl der Option "Mauszeiger-Tipps zu allen Objekten" in den Viewer-Einstellungen wird für alle Objekte das Popup mit der Objektbeschreibung unter dem Mauszeiger eingeblendet. Die formelle Beschreibung ist auf 127 Byte begrenzt, und alle längeren Zeichenketten werden gekürzt."/> + <text_editor name="LabelItemDescMultiLine" tool_tip="Bei Auswahl der Option "Mauszeiger-Tipps zu allen Objekten" in den Viewer-Einstellungen wird für alle Objekte das Popup mit der Objektbeschreibung unter dem Mauszeiger eingeblendet. Die formelle Beschreibung ist auf 127 Byte begrenzt, und alle längeren Zeichenketten werden gekürzt."/> <text name="LabelCreatorTitle"> Ersteller: </text> diff --git a/indra/newview/skins/default/xui/en/floater_buy_currency_html.xml b/indra/newview/skins/default/xui/en/floater_buy_currency_html.xml index 782d45120b..bf74a594ea 100644 --- a/indra/newview/skins/default/xui/en/floater_buy_currency_html.xml +++ b/indra/newview/skins/default/xui/en/floater_buy_currency_html.xml @@ -3,10 +3,10 @@ can_resize="true" can_minimize="false" can_close="true" - min_width="360" - min_height="400" - width="450" - height="650" + min_width="295" + min_height="260" + width="340" + height="480" layout="topleft" name="floater_buy_currency_html" save_rect="true" @@ -16,9 +16,9 @@ trusted_content="true" follows="all" layout="topleft" - left="1" - right="-1" - top="1" - bottom="-1" + left="0" + top="0" + width="340" + height="480" name="browser"/> </floater> diff --git a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml index 5f97f27db6..0366b849da 100644 --- a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml @@ -211,6 +211,23 @@ TestString PleaseIgnore width="78"> Description: </text> + <line_editor + prevalidator="ascii_printable_no_pipe" + commit_on_focus_lost="true" + border_style="line" + border_thickness="1" + use_ellipses="false" + follows="all" + layout="topleft" + left="5" + top_pad="5" + right="-5" + height="23" + max_length="127" + name="LabelItemDescSingleLine" + visible="false" + tool_tip="When people have 'Hover Tips on All Objects' selected in the viewer's settings, they'll see the object description pop-up for any object under their mouse pointer. The prim description is limited to 127 bytes. Any string longer then that will be truncated." + /> <text_editor prevalidator="ascii_with_newline_no_pipe" commit_on_focus_lost="true" @@ -221,12 +238,13 @@ TestString PleaseIgnore follows="all" layout="topleft" left="5" - top_pad="5" + top_delta="0" right="-5" height="46" max_length="127" - name="LabelItemDesc" - tool_tip="When people have 'Hover Tips on All Objects' selected in the viewer's settings, they'll see the object description pop-up for any object under their mouse pointer. The prim description is limited to 127 bytes any string longer then that will be truncated." /> + name="LabelItemDescMultiLine" + tool_tip="When people have 'Hover Tips on All Objects' selected in the viewer's settings, they'll see the object description pop-up for any object under their mouse pointer. The prim description is limited to 127 bytes. Any string longer then that will be truncated." + /> <text type="string" diff --git a/indra/newview/skins/default/xui/es/sidepanel_item_info.xml b/indra/newview/skins/default/xui/es/sidepanel_item_info.xml index c3f0a2995e..6d00319980 100644 --- a/indra/newview/skins/default/xui/es/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/es/sidepanel_item_info.xml @@ -38,7 +38,8 @@ <text name="LabelItemDescTitle"> Descripción: </text> - <text_editor name="LabelItemDesc" 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."/> + <line_editor name="LabelItemDescSingleLine" 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_editor name="LabelItemDescMultiLine" 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="LabelCreatorTitle"> Creador: </text> diff --git a/indra/newview/skins/default/xui/fr/sidepanel_item_info.xml b/indra/newview/skins/default/xui/fr/sidepanel_item_info.xml index 47bd7d5949..b3ff829698 100644 --- a/indra/newview/skins/default/xui/fr/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/fr/sidepanel_item_info.xml @@ -38,7 +38,8 @@ <text name="LabelItemDescTitle"> Description : </text> - <text_editor name="LabelItemDesc" tool_tip="Lorsque les utilisateurs sélectionnent 'Conseils de survol sur tous les objets' dans les paramètres de la visionneuse, la description contextuelle de chaque objet apparaît sous le pointeur de la souris. La description de la prim est limitée à 127 octets, toute chaîne supérieure à cette limite sera tronquée."/> + <line_editor name="LabelItemDescSingleLine" tool_tip="Lorsque les utilisateurs sélectionnent 'Conseils de survol sur tous les objets' dans les paramètres de la visionneuse, la description contextuelle de chaque objet apparaît sous le pointeur de la souris. La description de la prim est limitée à 127 octets, toute chaîne supérieure à cette limite sera tronquée."/> + <text_editor name="LabelItemDescMultiLine" tool_tip="Lorsque les utilisateurs sélectionnent 'Conseils de survol sur tous les objets' dans les paramètres de la visionneuse, la description contextuelle de chaque objet apparaît sous le pointeur de la souris. La description de la prim est limitée à 127 octets, toute chaîne supérieure à cette limite sera tronquée."/> <text name="LabelCreatorTitle"> Créateur : </text> diff --git a/indra/newview/skins/default/xui/it/sidepanel_item_info.xml b/indra/newview/skins/default/xui/it/sidepanel_item_info.xml index 2941b1ba04..5a482a8e7c 100644 --- a/indra/newview/skins/default/xui/it/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/it/sidepanel_item_info.xml @@ -38,7 +38,8 @@ <text name="LabelItemDescTitle"> Descrizione: </text> - <text_editor name="LabelItemDesc" tool_tip="Quando la dicitura "Vedi suggerimenti su tutti gli oggetti" è selezionata nelle impostazioni del Viewer, passando il mouse sopra un oggetto si vedrà la sua descrizione. La descrizione dei Prim è limitata a 127 bytes. Se più lunga, verrá troncata."/> + <line_editor name="LabelItemDescSingleLine" tool_tip="Quando la dicitura "Vedi suggerimenti su tutti gli oggetti" è selezionata nelle impostazioni del Viewer, passando il mouse sopra un oggetto si vedrà la sua descrizione. La descrizione dei Prim è limitata a 127 bytes. Se più lunga, verrá troncata."/> + <text_editor name="LabelItemDescMultiLine" tool_tip="Quando la dicitura "Vedi suggerimenti su tutti gli oggetti" è selezionata nelle impostazioni del Viewer, passando il mouse sopra un oggetto si vedrà la sua descrizione. La descrizione dei Prim è limitata a 127 bytes. Se più lunga, verrá troncata."/> <text name="LabelCreatorTitle"> Ideatore: </text> diff --git a/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml b/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml index b1ac5fd460..2718601d30 100644 --- a/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml @@ -38,7 +38,8 @@ <text name="LabelItemDescTitle"> 説明: </text> - <text_editor name="LabelItemDesc" tool_tip="ビューアの設定で[すべてのオブジェクト上でヒントを表示]が選択されている場合、オブジェクトにマウスのポインタをかざすとそのオブジェクトの説明がポップアップ表示されます。プリムの説明は最大127バイトまでに制限されているため、それよりも長い文字列は切り捨てられます。"/> + <line_editor name="LabelItemDescSingleLine" tool_tip="ビューアの設定で[すべてのオブジェクト上でヒントを表示]が選択されている場合、オブジェクトにマウスのポインタをかざすとそのオブジェクトの説明がポップアップ表示されます。プリムの説明は最大127バイトまでに制限されているため、それよりも長い文字列は切り捨てられます。"/> + <text_editor name="LabelItemDescMultiLine" tool_tip="ビューアの設定で[すべてのオブジェクト上でヒントを表示]が選択されている場合、オブジェクトにマウスのポインタをかざすとそのオブジェクトの説明がポップアップ表示されます。プリムの説明は最大127バイトまでに制限されているため、それよりも長い文字列は切り捨てられます。"/> <text name="LabelCreatorTitle"> 制作者: </text> diff --git a/indra/newview/skins/default/xui/pt/sidepanel_item_info.xml b/indra/newview/skins/default/xui/pt/sidepanel_item_info.xml index 33bd389c01..82ae893f76 100644 --- a/indra/newview/skins/default/xui/pt/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/pt/sidepanel_item_info.xml @@ -38,7 +38,8 @@ <text name="LabelItemDescTitle"> Descrição: </text> - <text_editor name="LabelItemDesc" tool_tip="Quando as pessoas selecionam 'Passe o mouse em todos os objetos’ na configuração de visualização, eles verão a descrição dos objetos em uma janela pop-up sempre que passar o mouse por cima. A descrição prim é limitada em 127 bytes, qualquer string maior ficará truncada."/> + <line_editor name="LabelItemDescSingleLine" tool_tip="Quando as pessoas selecionam 'Passe o mouse em todos os objetos’ na configuração de visualização, eles verão a descrição dos objetos em uma janela pop-up sempre que passar o mouse por cima. A descrição prim é limitada em 127 bytes, qualquer string maior ficará truncada."/> + <text_editor name="LabelItemDescMultiLine" tool_tip="Quando as pessoas selecionam 'Passe o mouse em todos os objetos’ na configuração de visualização, eles verão a descrição dos objetos em uma janela pop-up sempre que passar o mouse por cima. A descrição prim é limitada em 127 bytes, qualquer string maior ficará truncada."/> <text name="LabelCreatorTitle"> Criador: </text> diff --git a/indra/newview/skins/default/xui/ru/sidepanel_item_info.xml b/indra/newview/skins/default/xui/ru/sidepanel_item_info.xml index e9e03fc52d..3ab371ac6d 100644 --- a/indra/newview/skins/default/xui/ru/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/ru/sidepanel_item_info.xml @@ -38,7 +38,8 @@ <text name="LabelItemDescTitle"> Описание: </text> - <text_editor name="LabelItemDesc" tool_tip="Когда в настройках окна просмотра выбрано 'Всплывающие подсказки на всех объектах', у игроков появляется всплывающее окошко с описанием объекта при наведении мыши на любой объект. Описание примитива ограничивается 127 байтами и строка со значением, превышающим этот размер, усекается."/> + <line_editor name="LabelItemDescSingleLine" tool_tip="Когда в настройках окна просмотра выбрано 'Всплывающие подсказки на всех объектах', у игроков появляется всплывающее окошко с описанием объекта при наведении мыши на любой объект. Описание примитива ограничивается 127 байтами и строка со значением, превышающим этот размер, усекается."/> + <text_editor name="LabelItemDescMultiLine" tool_tip="Когда в настройках окна просмотра выбрано 'Всплывающие подсказки на всех объектах', у игроков появляется всплывающее окошко с описанием объекта при наведении мыши на любой объект. Описание примитива ограничивается 127 байтами и строка со значением, превышающим этот размер, усекается."/> <text name="LabelCreatorTitle"> Создатель: </text> diff --git a/indra/newview/skins/default/xui/tr/sidepanel_item_info.xml b/indra/newview/skins/default/xui/tr/sidepanel_item_info.xml index fcee742590..9f2cf40697 100644 --- a/indra/newview/skins/default/xui/tr/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/tr/sidepanel_item_info.xml @@ -38,7 +38,8 @@ <text name="LabelItemDescTitle"> Açıklama: </text> - <text_editor name="LabelItemDesc" tool_tip="Görüntüleyici ayarlarında 'İpuçlarını Tüm Nesnelerin Üzerine Getir' seçildiğinde, fare imlecinin altındaki herhangi bir nesneye ait nesne açıklaması açılır penceresi görülür. Prim (temel öğe) açıklaması 127 bayt ile sınırlıdır ve bundan daha uzun her dize kesilir."/> + <line_editor name="LabelItemDescSingleLine" tool_tip="Görüntüleyici ayarlarında 'İpuçlarını Tüm Nesnelerin Üzerine Getir' seçildiğinde, fare imlecinin altındaki herhangi bir nesneye ait nesne açıklaması açılır penceresi görülür. Prim (temel öğe) açıklaması 127 bayt ile sınırlıdır ve bundan daha uzun her dize kesilir."/> + <text_editor name="LabelItemDescMultiLine" tool_tip="Görüntüleyici ayarlarında 'İpuçlarını Tüm Nesnelerin Üzerine Getir' seçildiğinde, fare imlecinin altındaki herhangi bir nesneye ait nesne açıklaması açılır penceresi görülür. Prim (temel öğe) açıklaması 127 bayt ile sınırlıdır ve bundan daha uzun her dize kesilir."/> <text name="LabelCreatorTitle"> Oluşturan: </text> diff --git a/indra/newview/skins/default/xui/zh/sidepanel_item_info.xml b/indra/newview/skins/default/xui/zh/sidepanel_item_info.xml index 4737fe8776..7e05fd2a0b 100644 --- a/indra/newview/skins/default/xui/zh/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/zh/sidepanel_item_info.xml @@ -38,7 +38,8 @@ <text name="LabelItemDescTitle"> 描述: </text> - <text_editor name="LabelItemDesc" tool_tip="當人們在瀏覽器設定中選擇了「針對所有物件懸置顯示提醒」時,他們滑鼠所指的物件將會彈出描述該物件的內容。 幾何元件的描述內容不得超過127位元組,否則會被截短。"/> + <line_editor name="LabelItemDescSingleLine" tool_tip="當人們在瀏覽器設定中選擇了「針對所有物件懸置顯示提醒」時,他們滑鼠所指的物件將會彈出描述該物件的內容。 幾何元件的描述內容不得超過127位元組,否則會被截短。"/> + <text_editor name="LabelItemDescMultiLine" tool_tip="當人們在瀏覽器設定中選擇了「針對所有物件懸置顯示提醒」時,他們滑鼠所指的物件將會彈出描述該物件的內容。 幾何元件的描述內容不得超過127位元組,否則會被截短。"/> <text name="LabelCreatorTitle"> 創造者: </text> |
