diff --git a/.hgignore b/.hgignore index e3ad4fe7b2476111e8f027a4bd07ee5696886be7..403b73df6d28a41d669ab8abd0236a1c3df808d0 100644 --- a/.hgignore +++ b/.hgignore @@ -66,3 +66,4 @@ glob:indra/newview/search_history.txt glob:indra/newview/filters.xml glob:indra/newview/avatar_icons_cache.txt glob:indra/newview/avatar_lad.log +glob:*.diff diff --git a/.hgtags b/.hgtags index cf78c1ee49268ac1277cb7a5d0a30c9abfc40434..cd8c2b584ebc7005ed736d306083651dbe85e54f 100644 --- a/.hgtags +++ b/.hgtags @@ -215,3 +215,4 @@ e440cd1dfbd128d7d5467019e497f7f803640ad6 3.2.0-beta1 2a13d30ee50ccfed50268238e36bb90d738ccc9e 3.2.0-beta3 3150219d229d628f0c15e58e8a51511cbd97e58d DRTVWR-94_3.2.0-release 3150219d229d628f0c15e58e8a51511cbd97e58d 3.2.0-release +c4911ec8cd81e676dfd2af438b3e065407a94a7a 3.2.1-start diff --git a/doc/contributions.txt b/doc/contributions.txt index 988410701b741e0022592b6a1ca9c3305585a816..d719f64bafc4a9ee81860c870bfbc8467d31fe09 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -480,6 +480,7 @@ Ima Mechanique OPEN-50 OPEN-61 OPEN-76 + STORM-959 STORM-1175 Imnotgoing Sideways Inma Rau @@ -654,6 +655,8 @@ Lilly Zenovka Lizzy Macarthur Luban Yiyuan Luc Starsider +Luminous Luminos + STORM-959 Lunita Savira Maccus McCullough maciek marksman diff --git a/indra/linux_crash_logger/llcrashloggerlinux.cpp b/indra/linux_crash_logger/llcrashloggerlinux.cpp old mode 100644 new mode 100755 index 7316717193bbc1aa2b8f2ffaefdf90cbb01c76c1..62465f9937d486fd780fe4bd5a58738e35b89fcf --- a/indra/linux_crash_logger/llcrashloggerlinux.cpp +++ b/indra/linux_crash_logger/llcrashloggerlinux.cpp @@ -133,6 +133,12 @@ bool LLCrashLoggerLinux::mainLoop() return true; } +bool LLCrashLoggerLinux::cleanup() +{ + commonCleanup(); + return true; +} + void LLCrashLoggerLinux::updateApplication(const std::string& message) { LLCrashLogger::updateApplication(message); diff --git a/indra/linux_crash_logger/llcrashloggerlinux.h b/indra/linux_crash_logger/llcrashloggerlinux.h old mode 100644 new mode 100755 index 65d5e4e653b8dc19b14b33a8463f77fd597fdb2b..dae6c46651ba642e401aa09874d4c2d2567eb92f --- a/indra/linux_crash_logger/llcrashloggerlinux.h +++ b/indra/linux_crash_logger/llcrashloggerlinux.h @@ -39,6 +39,7 @@ class LLCrashLoggerLinux : public LLCrashLogger virtual bool mainLoop(); virtual void updateApplication(const std::string& = LLStringUtil::null); virtual void gatherPlatformSpecificFiles(); + virtual bool cleanup(); }; #endif diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h index 1dc22519d7532abe3c2d14596473286e7fccaa10..aa37a03ef85e65feb940ef13af3023bffcc38e4c 100644 --- a/indra/llcommon/llversionviewer.h +++ b/indra/llcommon/llversionviewer.h @@ -29,7 +29,7 @@ const S32 LL_VERSION_MAJOR = 3; const S32 LL_VERSION_MINOR = 2; -const S32 LL_VERSION_PATCH = 0; +const S32 LL_VERSION_PATCH = 1; const S32 LL_VERSION_BUILD = 0; const char * const LL_CHANNEL = "Second Life Developer"; diff --git a/indra/llcrashlogger/llcrashlogger.cpp b/indra/llcrashlogger/llcrashlogger.cpp old mode 100644 new mode 100755 index 331a1692ee8abff68e12d4d02173634011f1741d..3461aa3e6ccdc4b18dcc8a8a37d8b12f003a15a3 --- a/indra/llcrashlogger/llcrashlogger.cpp +++ b/indra/llcrashlogger/llcrashlogger.cpp @@ -42,6 +42,7 @@ #include "llpumpio.h" #include "llhttpclient.h" #include "llsdserialize.h" +#include "llproxy.h" LLPumpIO* gServicePump; BOOL gBreak = false; @@ -428,3 +429,9 @@ bool LLCrashLogger::init() return true; } + +// For cleanup code common to all platforms. +void LLCrashLogger::commonCleanup() +{ + LLProxy::cleanupClass(); +} diff --git a/indra/llcrashlogger/llcrashlogger.h b/indra/llcrashlogger/llcrashlogger.h old mode 100644 new mode 100755 index 5d0cb5931ce2875f40a5b790e7a17392b525b4e9..1510d7e0b3d33ea4d0acc4e012c496a824da1ac8 --- a/indra/llcrashlogger/llcrashlogger.h +++ b/indra/llcrashlogger/llcrashlogger.h @@ -48,7 +48,8 @@ class LLCrashLogger : public LLApp virtual void updateApplication(const std::string& message = LLStringUtil::null); virtual bool init(); virtual bool mainLoop() = 0; - virtual bool cleanup() { return true; } + virtual bool cleanup() = 0; + void commonCleanup(); void setUserText(const std::string& text) { mCrashInfo["UserNotes"] = text; } S32 getCrashBehavior() { return mCrashBehavior; } bool runCrashLogPost(std::string host, LLSD data, std::string msg, int retries, int timeout); diff --git a/indra/llmath/lloctree.h b/indra/llmath/lloctree.h index e5ca47da698efca948d96cc28998790c0b6e9185..3c1ae45d6862680e64101f2683756791675ce034 100644 --- a/indra/llmath/lloctree.h +++ b/indra/llmath/lloctree.h @@ -681,7 +681,7 @@ class LLOctreeRoot : public LLOctreeNode<T> if (lt != 0x7) { - OCT_ERRS << "!!! ELEMENT EXCEEDS RANGE OF SPATIAL PARTITION !!!" << llendl; + //OCT_ERRS << "!!! ELEMENT EXCEEDS RANGE OF SPATIAL PARTITION !!!" << llendl; return false; } diff --git a/indra/llmessage/llcurl.h b/indra/llmessage/llcurl.h old mode 100644 new mode 100755 diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp index aea58be12afaa3d6addcf5092ecbeca3fbce36bc..0fcd9373618968ccb72acd8e9870f7e123573b2c 100644 --- a/indra/llui/lldockablefloater.cpp +++ b/indra/llui/lldockablefloater.cpp @@ -239,8 +239,21 @@ void LLDockableFloater::setDockControl(LLDockControl* dockControl) setDocked(isDocked()); } -const LLUIImagePtr& LLDockableFloater::getDockTongue() +const LLUIImagePtr& LLDockableFloater::getDockTongue(LLDockControl::DocAt dock_side) { + switch(dock_side) + { + case LLDockControl::LEFT: + mDockTongue = LLUI::getUIImage("windows/Flyout_Left.png"); + break; + case LLDockControl::RIGHT: + mDockTongue = LLUI::getUIImage("windows/Flyout_Right.png"); + break; + default: + mDockTongue = LLUI::getUIImage("windows/Flyout_Pointer.png"); + break; + } + return mDockTongue; } diff --git a/indra/llui/lldockablefloater.h b/indra/llui/lldockablefloater.h index 8deb6c1159fa111ec0698b97c274b5cb6bf1aa9a..89c9852f4af3349fe8e3f4bd53ea889205954c15 100644 --- a/indra/llui/lldockablefloater.h +++ b/indra/llui/lldockablefloater.h @@ -113,6 +113,8 @@ class LLDockableFloater : public LLFloater bool getUniqueDocking() { return mUniqueDocking; } bool getUseTongue() { return mUseTongue; } + + void setUseTongue(bool use_tongue) { mUseTongue = use_tongue;} private: /** * Provides unique of dockable floater. @@ -122,7 +124,7 @@ class LLDockableFloater : public LLFloater protected: void setDockControl(LLDockControl* dockControl); - const LLUIImagePtr& getDockTongue(); + const LLUIImagePtr& getDockTongue(LLDockControl::DocAt dock_side = LLDockControl::TOP); // Checks if docking should be forced. // It may be useful e.g. if floater created in mouselook mode (see EXT-5609) diff --git a/indra/llui/lldockcontrol.cpp b/indra/llui/lldockcontrol.cpp index 6397bbd0dec8dc0a95fea7a3585c8597bd6311d8..af39e41fa6bd4898e652accdd2a409b48cd7970a 100644 --- a/indra/llui/lldockcontrol.cpp +++ b/indra/llui/lldockcontrol.cpp @@ -100,12 +100,16 @@ void LLDockControl::repositionDockable() if (!mDockWidget) return; LLRect dockRect = mDockWidget->calcScreenRect(); LLRect rootRect; + LLRect floater_rect = mDockableFloater->calcScreenRect(); mGetAllowedRectCallback(rootRect); - // recalculate dockable position if dock position changed, dock visibility changed, - // root view rect changed or recalculation is forced - if (mPrevDockRect != dockRect || mDockWidgetVisible != isDockVisible() - || mRootRect != rootRect || mRecalculateDocablePosition) + // recalculate dockable position if: + if (mPrevDockRect != dockRect //dock position changed + || mDockWidgetVisible != isDockVisible() //dock visibility changed + || mRootRect != rootRect //root view rect changed + || mFloaterRect != floater_rect //floater rect changed + || mRecalculateDockablePosition //recalculation is forced + ) { // undock dockable and off() if dock not visible if (!isDockVisible()) @@ -136,7 +140,8 @@ void LLDockControl::repositionDockable() mPrevDockRect = dockRect; mRootRect = rootRect; - mRecalculateDocablePosition = false; + mFloaterRect = floater_rect; + mRecalculateDockablePosition = false; mDockWidgetVisible = isDockVisible(); } } @@ -203,21 +208,33 @@ void LLDockControl::moveDockable() switch (mDockAt) { case LEFT: - x = dockRect.mLeft; - y = dockRect.mTop + mDockTongue->getHeight() + dockableRect.getHeight(); - // check is dockable inside root view rect - if (x < rootRect.mLeft) + + x = dockRect.mLeft - dockableRect.getWidth(); + y = dockRect.getCenterY() + dockableRect.getHeight() / 2; + + if (use_tongue) { - x = rootRect.mLeft; + x -= mDockTongue->getWidth(); } - if (x + dockableRect.getWidth() > rootRect.mRight) + + mDockTongueX = dockableRect.mRight; + mDockTongueY = dockableRect.getCenterY() - mDockTongue->getHeight() / 2; + + break; + + case RIGHT: + + x = dockRect.mRight; + y = dockRect.getCenterY() + dockableRect.getHeight() / 2; + + if (use_tongue) { - x = rootRect.mRight - dockableRect.getWidth(); + x += mDockTongue->getWidth(); } - - mDockTongueX = x + dockableRect.getWidth()/2 - mDockTongue->getWidth() / 2; - - mDockTongueY = dockRect.mTop; + + mDockTongueX = dockRect.mRight; + mDockTongueY = dockableRect.getCenterY() - mDockTongue->getHeight() / 2; + break; case TOP: @@ -315,13 +332,12 @@ void LLDockControl::moveDockable() dockableRect.setLeftTopAndSize(x, y, dockableRect.getWidth(), dockableRect.getHeight()); } + LLRect localDocableParentRect; - mDockableFloater->getParent()->screenRectToLocal(dockableRect, - &localDocableParentRect); - mDockableFloater->setRect(localDocableParentRect); - mDockableFloater->screenPointToLocal(mDockTongueX, mDockTongueY, - &mDockTongueX, &mDockTongueY); + mDockableFloater->getParent()->screenRectToLocal(dockableRect, &localDocableParentRect); + mDockableFloater->setRect(localDocableParentRect); + mDockableFloater->screenPointToLocal(mDockTongueX, mDockTongueY, &mDockTongueX, &mDockTongueY); } @@ -330,7 +346,7 @@ void LLDockControl::on() if (isDockVisible()) { mEnabled = true; - mRecalculateDocablePosition = true; + mRecalculateDockablePosition = true; } } @@ -341,7 +357,7 @@ void LLDockControl::off() void LLDockControl::forceRecalculatePosition() { - mRecalculateDocablePosition = true; + mRecalculateDockablePosition = true; } void LLDockControl::drawToungue() diff --git a/indra/llui/lldockcontrol.h b/indra/llui/lldockcontrol.h index 2e7359245f35f7ed5d20dae6dac4d7db4fbcdc6d..c9602011f654d3c5a92fb8ead6ad71bb5695fe5a 100644 --- a/indra/llui/lldockcontrol.h +++ b/indra/llui/lldockcontrol.h @@ -43,6 +43,7 @@ class LLDockControl { TOP, LEFT, + RIGHT, BOTTOM }; @@ -79,12 +80,13 @@ class LLDockControl private: get_allowed_rect_callback_t mGetAllowedRectCallback; bool mEnabled; - bool mRecalculateDocablePosition; + bool mRecalculateDockablePosition; bool mDockWidgetVisible; DocAt mDockAt; LLView* mDockWidget; LLRect mPrevDockRect; LLRect mRootRect; + LLRect mFloaterRect; LLFloater* mDockableFloater; LLUIImagePtr mDockTongue; S32 mDockTongueX; diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 7100ea13a7ec4035d7e102e298e84faa92d7631e..432397d3e9fb0fa902ffded0768d305e3d195976 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -935,7 +935,7 @@ void LLFloater::applyPositioning(LLFloater* other) case LLFloaterEnums::OPEN_POSITIONING_CASCADE_GROUP: case LLFloaterEnums::OPEN_POSITIONING_CASCADING: - if (other != NULL) + if (other != NULL && other != this) { stackWith(*other); } @@ -1070,7 +1070,7 @@ void LLFloater::handleReshape(const LLRect& new_rect, bool by_user) const LLRect old_rect = getRect(); LLView::handleReshape(new_rect, by_user); - if (by_user) + if (by_user && !isMinimized()) { storeRectControl(); mOpenPositioning = LLFloaterEnums::OPEN_POSITIONING_NONE; diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp index ceec9c7eb117db89dca53f84b8e3bd4422a49a8c..c1cd04186bda56afc329e0a255bc46269f56408f 100644 --- a/indra/llui/llkeywords.cpp +++ b/indra/llui/llkeywords.cpp @@ -57,6 +57,22 @@ LLKeywords::LLKeywords() : mLoaded(FALSE) { } +inline BOOL LLKeywordToken::isTail(const llwchar* s) const +{ + BOOL res = TRUE; + const llwchar* t = mDelimiter.c_str(); + S32 len = mDelimiter.size(); + for (S32 i=0; i<len; i++) + { + if (s[i] != t[i]) + { + res = FALSE; + break; + } + } + return res; +} + LLKeywords::~LLKeywords() { std::for_each(mWordTokenMap.begin(), mWordTokenMap.end(), DeletePairedPointer()); @@ -106,6 +122,7 @@ BOOL LLKeywords::loadFromFile( const std::string& filename ) std::string SOL_LINE("[line "); std::string SOL_ONE_SIDED_DELIMITER("[one_sided_delimiter "); std::string SOL_TWO_SIDED_DELIMITER("[two_sided_delimiter "); + std::string SOL_DOUBLE_QUOTATION_MARKS("[double_quotation_marks "); LLColor3 cur_color( 1, 0, 0 ); LLKeywordToken::TOKEN_TYPE cur_type = LLKeywordToken::WORD; @@ -137,6 +154,12 @@ BOOL LLKeywords::loadFromFile( const std::string& filename ) cur_type = LLKeywordToken::TWO_SIDED_DELIMITER; continue; } + else if( line.find(SOL_DOUBLE_QUOTATION_MARKS) == 0 ) + { + cur_color = readColor( line.substr(SOL_DOUBLE_QUOTATION_MARKS.size()) ); + cur_type = LLKeywordToken::DOUBLE_QUOTATION_MARKS; + continue; + } else if( line.find(SOL_ONE_SIDED_DELIMITER) == 0 ) { cur_color = readColor( line.substr(SOL_ONE_SIDED_DELIMITER.size()) ); @@ -154,10 +177,26 @@ BOOL LLKeywords::loadFromFile( const std::string& filename ) if( !token_buffer.empty() && token_word_iter != word_tokens.end() ) { - // first word is keyword + // first word is the keyword or a left delimiter std::string keyword = (*token_word_iter); LLStringUtil::trim(keyword); + // second word may be a right delimiter + std::string delimiter; + if (cur_type == LLKeywordToken::TWO_SIDED_DELIMITER) + { + while (delimiter.length() == 0 && ++token_word_iter != word_tokens.end()) + { + delimiter = *token_word_iter; + LLStringUtil::trim(delimiter); + } + } + else if (cur_type == LLKeywordToken::DOUBLE_QUOTATION_MARKS) + { + // Closing delimiter is identical to the opening one. + delimiter = keyword; + } + // following words are tooltip std::string tool_tip; while (++token_word_iter != word_tokens.end()) @@ -170,11 +209,11 @@ BOOL LLKeywords::loadFromFile( const std::string& filename ) { // Replace : with \n for multi-line tool tips. LLStringUtil::replaceChar( tool_tip, ':', '\n' ); - addToken(cur_type, keyword, cur_color, tool_tip ); + addToken(cur_type, keyword, cur_color, tool_tip, delimiter ); } else { - addToken(cur_type, keyword, cur_color, LLStringUtil::null ); + addToken(cur_type, keyword, cur_color, LLStringUtil::null, delimiter ); } } } @@ -189,23 +228,26 @@ BOOL LLKeywords::loadFromFile( const std::string& filename ) void LLKeywords::addToken(LLKeywordToken::TOKEN_TYPE type, const std::string& key_in, const LLColor3& color, - const std::string& tool_tip_in ) + const std::string& tool_tip_in, + const std::string& delimiter_in) { LLWString key = utf8str_to_wstring(key_in); LLWString tool_tip = utf8str_to_wstring(tool_tip_in); + LLWString delimiter = utf8str_to_wstring(delimiter_in); switch(type) { case LLKeywordToken::WORD: - mWordTokenMap[key] = new LLKeywordToken(type, color, key, tool_tip); + mWordTokenMap[key] = new LLKeywordToken(type, color, key, tool_tip, LLWStringUtil::null); break; case LLKeywordToken::LINE: - mLineTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip)); + mLineTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip, LLWStringUtil::null)); break; case LLKeywordToken::TWO_SIDED_DELIMITER: + case LLKeywordToken::DOUBLE_QUOTATION_MARKS: case LLKeywordToken::ONE_SIDED_DELIMITER: - mDelimiterTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip)); + mDelimiterTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip, delimiter)); break; default: @@ -357,7 +399,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW } // cur is now at the first non-whitespace character of a new line - + // Line start tokens { BOOL line_done = FALSE; @@ -418,14 +460,15 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW S32 seg_end = 0; seg_start = cur - base; - cur += cur_delimiter->getLength(); + cur += cur_delimiter->getLengthHead(); - if( cur_delimiter->getType() == LLKeywordToken::TWO_SIDED_DELIMITER ) + LLKeywordToken::TOKEN_TYPE type = cur_delimiter->getType(); + if( type == LLKeywordToken::TWO_SIDED_DELIMITER || type == LLKeywordToken::DOUBLE_QUOTATION_MARKS ) { - while( *cur && !cur_delimiter->isHead(cur)) + while( *cur && !cur_delimiter->isTail(cur)) { // Check for an escape sequence. - if (*cur == '\\') + if (type == LLKeywordToken::DOUBLE_QUOTATION_MARKS && *cur == '\\') { // Count the number of backslashes. S32 num_backslashes = 0; @@ -435,10 +478,10 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW between_delimiters++; cur++; } - // Is the next character the end delimiter? - if (cur_delimiter->isHead(cur)) + // If the next character is the end delimiter? + if (cur_delimiter->isTail(cur)) { - // Is there was an odd number of backslashes, then this delimiter + // If there was an odd number of backslashes, then this delimiter // does not end the sequence. if (num_backslashes % 2 == 1) { @@ -461,13 +504,13 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW if( *cur ) { - cur += cur_delimiter->getLength(); - seg_end = seg_start + between_delimiters + 2 * cur_delimiter->getLength(); + cur += cur_delimiter->getLengthHead(); + seg_end = seg_start + between_delimiters + cur_delimiter->getLengthHead() + cur_delimiter->getLengthTail(); } else { // eof - seg_end = seg_start + between_delimiters + cur_delimiter->getLength(); + seg_end = seg_start + between_delimiters + cur_delimiter->getLengthHead(); } } else @@ -479,7 +522,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW between_delimiters++; cur++; } - seg_end = seg_start + between_delimiters + cur_delimiter->getLength(); + seg_end = seg_start + between_delimiters + cur_delimiter->getLengthHead(); } insertSegments(wtext, *seg_list,cur_delimiter, text_len, seg_start, seg_end, defaultColor, editor); diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h index f6d75b7e755f3b7e74d8c7bbda6e0013186124c1..d050cd7d7c806b42389b1c0fa2d78eaee73869e1 100644 --- a/indra/llui/llkeywords.h +++ b/indra/llui/llkeywords.h @@ -41,23 +41,44 @@ typedef LLPointer<LLTextSegment> LLTextSegmentPtr; class LLKeywordToken { public: - enum TOKEN_TYPE { WORD, LINE, TWO_SIDED_DELIMITER, ONE_SIDED_DELIMITER }; + /** + * @brief Types of tokens/delimters being parsed. + * + * @desc Tokens/delimiters that need to be identified/highlighted. All are terminated if an EOF is encountered. + * - WORD are keywords in the normal sense, i.e. constants, events, etc. + * - LINE are for entire lines (currently only flow control labels use this). + * - ONE_SIDED_DELIMITER are for open-ended delimiters which are terminated by EOL. + * - TWO_SIDED_DELIMITER are for delimiters that end with a different delimiter than they open with. + * - DOUBLE_QUOTATION_MARKS are for delimiting areas using the same delimiter to open and close. + */ + typedef enum TOKEN_TYPE + { + WORD, + LINE, + TWO_SIDED_DELIMITER, + ONE_SIDED_DELIMITER, + DOUBLE_QUOTATION_MARKS + }; - LLKeywordToken( TOKEN_TYPE type, const LLColor3& color, const LLWString& token, const LLWString& tool_tip ) + LLKeywordToken( TOKEN_TYPE type, const LLColor3& color, const LLWString& token, const LLWString& tool_tip, const LLWString& delimiter ) : mType( type ), mToken( token ), mColor( color ), - mToolTip( tool_tip ) + mToolTip( tool_tip ), + mDelimiter( delimiter ) // right delimiter { } - S32 getLength() const { return mToken.size(); } + S32 getLengthHead() const { return mToken.size(); } + S32 getLengthTail() const { return mDelimiter.size(); } BOOL isHead(const llwchar* s) const; + BOOL isTail(const llwchar* s) const; const LLWString& getToken() const { return mToken; } const LLColor3& getColor() const { return mColor; } TOKEN_TYPE getType() const { return mType; } const LLWString& getToolTip() const { return mToolTip; } + const LLWString& getDelimiter() const { return mDelimiter; } #ifdef _DEBUG void dump(); @@ -68,6 +89,7 @@ class LLKeywordToken LLWString mToken; LLColor3 mColor; LLWString mToolTip; + LLWString mDelimiter; }; class LLKeywords @@ -85,7 +107,8 @@ class LLKeywords void addToken(LLKeywordToken::TOKEN_TYPE type, const std::string& key, const LLColor3& color, - const std::string& tool_tip = LLStringUtil::null); + const std::string& tool_tip = LLStringUtil::null, + const std::string& delimiter = LLStringUtil::null); // This class is here as a performance optimization. // The word token map used to be defined as std::map<LLWString, LLKeywordToken*>. diff --git a/indra/llui/lltoolbar.cpp b/indra/llui/lltoolbar.cpp index 515605200ed4fef1a3316601fa5a3797410fe136..287e3e2b41b4ec3d98e884fb05f19a9d46c0b2db 100644 --- a/indra/llui/lltoolbar.cpp +++ b/indra/llui/lltoolbar.cpp @@ -112,6 +112,10 @@ LLToolBar::LLToolBar(const LLToolBar::Params& p) mStartDragItemCallback(NULL), mHandleDragItemCallback(NULL), mHandleDropCallback(NULL), + mButtonAddSignal(NULL), + mButtonEnterSignal(NULL), + mButtonLeaveSignal(NULL), + mButtonRemoveSignal(NULL), mDragAndDropTarget(false) { mButtonParams[LLToolBarEnums::BTNTYPE_ICONS_WITH_TEXT] = p.button_icon_and_text; @@ -121,6 +125,10 @@ LLToolBar::LLToolBar(const LLToolBar::Params& p) LLToolBar::~LLToolBar() { delete mPopupMenuHandle.get(); + delete mButtonAddSignal; + delete mButtonEnterSignal; + delete mButtonLeaveSignal; + delete mButtonRemoveSignal; } void LLToolBar::createContextMenu() @@ -212,7 +220,6 @@ bool LLToolBar::addCommand(const LLCommandId& commandId, int rank) mButtonPanel->addChild(button); mButtonMap.insert(std::make_pair(commandId.uuid(), button)); - // Insert the command and button in the right place in their respective lists if ((rank >= mButtonCommands.size()) || (rank == RANK_NONE)) { @@ -238,6 +245,14 @@ bool LLToolBar::addCommand(const LLCommandId& commandId, int rank) mNeedsLayout = true; + updateLayoutAsNeeded(); + + + if (mButtonAddSignal) + { + (*mButtonAddSignal)(button); + } + return true; } @@ -264,6 +279,11 @@ int LLToolBar::removeCommand(const LLCommandId& commandId) ++rank; } + if (mButtonRemoveSignal) + { + (*mButtonRemoveSignal)(*it_button); + } + // Delete the button and erase the command and button records delete (*it_button); mButtonCommands.erase(it_command); @@ -352,6 +372,23 @@ bool LLToolBar::stopCommandInProgress(const LLCommandId& commandId) return (command_button != NULL); } +bool LLToolBar::flashCommand(const LLCommandId& commandId, bool flash) +{ + LLButton * command_button = NULL; + + if (commandId != LLCommandId::null) + { + command_id_map::iterator it = mButtonMap.find(commandId.uuid()); + if (it != mButtonMap.end()) + { + command_button = it->second; + command_button->setFlashing(flash ? TRUE : FALSE); + } + } + + return (command_button != NULL); +} + BOOL LLToolBar::handleRightMouseDown(S32 x, S32 y, MASK mask) { LLRect button_panel_rect; @@ -790,6 +827,11 @@ void LLToolBar::createButtons() { BOOST_FOREACH(LLToolBarButton* button, mButtons) { + if (mButtonRemoveSignal) + { + (*mButtonRemoveSignal)(button); + } + delete button; } mButtons.clear(); @@ -801,6 +843,11 @@ void LLToolBar::createButtons() mButtons.push_back(button); mButtonPanel->addChild(button); mButtonMap.insert(std::make_pair(command_id.uuid(), button)); + + if (mButtonAddSignal) + { + (*mButtonAddSignal)(button); + } } mNeedsLayout = true; } @@ -870,8 +917,7 @@ LLToolBarButton* LLToolBar::createButton(const LLCommandId& id) button->setCommitCallback(executeParam); } - - + // Set up "is running" query callback const std::string& isRunningFunction = commandp->isRunningFunctionName(); if (isRunningFunction.length() > 0) { @@ -898,6 +944,36 @@ LLToolBarButton* LLToolBar::createButton(const LLCommandId& id) return button; } +boost::signals2::connection connectSignal(LLToolBar::button_signal_t*& signal, const LLToolBar::button_signal_t::slot_type& cb) +{ + if (!signal) + { + signal = new LLToolBar::button_signal_t(); + } + + return signal->connect(cb); +} + +boost::signals2::connection LLToolBar::setButtonAddCallback(const button_signal_t::slot_type& cb) +{ + return connectSignal(mButtonAddSignal, cb); +} + +boost::signals2::connection LLToolBar::setButtonEnterCallback(const button_signal_t::slot_type& cb) +{ + return connectSignal(mButtonEnterSignal, cb); +} + +boost::signals2::connection LLToolBar::setButtonLeaveCallback(const button_signal_t::slot_type& cb) +{ + return connectSignal(mButtonLeaveSignal, cb); +} + +boost::signals2::connection LLToolBar::setButtonRemoveCallback(const button_signal_t::slot_type& cb) +{ + return connectSignal(mButtonRemoveSignal, cb); +} + BOOL LLToolBar::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, EDragAndDropType cargo_type, void* cargo_data, @@ -969,8 +1045,6 @@ LLToolBarButton::LLToolBarButton(const Params& p) mOriginalImageOverlayColor(p.image_overlay_color), mOriginalImageOverlaySelectedColor(p.image_overlay_selected_color) { - mButtonFlashRate = 0.0; - mButtonFlashCount = 0; } LLToolBarButton::~LLToolBarButton() @@ -1012,6 +1086,7 @@ BOOL LLToolBarButton::handleHover(S32 x, S32 y, MASK mask) { handled = LLButton::handleHover(x, y, mask); } + return handled; } @@ -1024,6 +1099,23 @@ void LLToolBarButton::onMouseEnter(S32 x, S32 y, MASK mask) { mNeedsHighlight = TRUE; } + + LLToolBar* parent_toolbar = getParentByType<LLToolBar>(); + if (parent_toolbar && parent_toolbar->mButtonEnterSignal) + { + (*(parent_toolbar->mButtonEnterSignal))(this); + } +} + +void LLToolBarButton::onMouseLeave(S32 x, S32 y, MASK mask) +{ + LLButton::onMouseLeave(x, y, mask); + + LLToolBar* parent_toolbar = getParentByType<LLToolBar>(); + if (parent_toolbar && parent_toolbar->mButtonLeaveSignal) + { + (*(parent_toolbar->mButtonLeaveSignal))(this); + } } void LLToolBarButton::onMouseCaptureLost() @@ -1072,25 +1164,25 @@ void LLToolBarButton::setEnabled(BOOL enabled) } } - const std::string LLToolBarButton::getToolTip() const { std::string tooltip; + if (labelIsTruncated() || getCurrentLabel().empty()) { - return LLTrans::getString(LLCommandManager::instance().getCommand(mId)->labelRef()) + " -- " + LLView::getToolTip(); + tooltip = LLTrans::getString(LLCommandManager::instance().getCommand(mId)->labelRef()) + " -- " + LLView::getToolTip(); } else { - return LLView::getToolTip(); + tooltip = LLView::getToolTip(); } -} - - - - - - + LLToolBar* parent_toolbar = getParentByType<LLToolBar>(); + if (parent_toolbar && parent_toolbar->mButtonTooltipSuffix.length() > 0) + { + tooltip = tooltip + "\n(" + parent_toolbar->mButtonTooltipSuffix + ")"; + } + return tooltip; +} diff --git a/indra/llui/lltoolbar.h b/indra/llui/lltoolbar.h index e634e57f93802d90456f8e519bb0417ed7cbb6c9..f10f39adc3f6f2d645ef8c91715497f19f0825f6 100644 --- a/indra/llui/lltoolbar.h +++ b/indra/llui/lltoolbar.h @@ -71,6 +71,7 @@ class LLToolBarButton : public LLButton void setHandleDragCallback(tool_handledrag_callback_t cb) { mHandleDragItemCallback = cb; } void onMouseEnter(S32 x, S32 y, MASK mask); + void onMouseLeave(S32 x, S32 y, MASK mask); void onMouseCaptureLost(); void onCommit(); @@ -120,6 +121,8 @@ namespace LLToolBarEnums SIDE_RIGHT, SIDE_TOP, }; + + LLLayoutStack::ELayoutOrientation getOrientation(SideType sideType); } // NOTE: This needs to occur before Param block declaration for proper compilation. @@ -142,6 +145,7 @@ namespace LLInitParam class LLToolBar : public LLUICtrl { + friend class LLToolBarButton; public: struct Params : public LLInitParam::Block<Params, LLUICtrl::Params> { @@ -187,6 +191,7 @@ class LLToolBar bool hasCommand(const LLCommandId& commandId) const; bool enableCommand(const LLCommandId& commandId, bool enabled); bool stopCommandInProgress(const LLCommandId& commandId); + bool flashCommand(const LLCommandId& commandId, bool flash); void setStartDragCallback(tool_startdrag_callback_t cb) { mStartDragItemCallback = cb; } void setHandleDragCallback(tool_handledrag_callback_t cb) { mHandleDragItemCallback = cb; } @@ -195,6 +200,15 @@ class LLToolBar LLToolBarButton* createButton(const LLCommandId& id); + typedef boost::signals2::signal<void (LLView* button)> button_signal_t; + boost::signals2::connection setButtonAddCallback(const button_signal_t::slot_type& cb); + boost::signals2::connection setButtonEnterCallback(const button_signal_t::slot_type& cb); + boost::signals2::connection setButtonLeaveCallback(const button_signal_t::slot_type& cb); + boost::signals2::connection setButtonRemoveCallback(const button_signal_t::slot_type& cb); + + void setTooltipButtonSuffix(const std::string& suffix) { mButtonTooltipSuffix = suffix; } + + LLToolBarEnums::SideType getSideType() const { return mSideType; } bool hasButtons() const { return !mButtons.empty(); } bool isModified() const { return mModified; } @@ -254,7 +268,14 @@ class LLToolBar LLToolBarButton::Params mButtonParams[LLToolBarEnums::BTNTYPE_COUNT]; - LLHandle<class LLContextMenu> mPopupMenuHandle; + LLHandle<class LLContextMenu> mPopupMenuHandle; + + button_signal_t* mButtonAddSignal; + button_signal_t* mButtonEnterSignal; + button_signal_t* mButtonLeaveSignal; + button_signal_t* mButtonRemoveSignal; + + std::string mButtonTooltipSuffix; }; diff --git a/indra/mac_crash_logger/llcrashloggermac.cpp b/indra/mac_crash_logger/llcrashloggermac.cpp old mode 100644 new mode 100755 index b555e92b96e563f42e167d1c3585aca610418338..8f1c1a2dd0fba32c849252a9cac5e4491fad7688 --- a/indra/mac_crash_logger/llcrashloggermac.cpp +++ b/indra/mac_crash_logger/llcrashloggermac.cpp @@ -249,5 +249,6 @@ void LLCrashLoggerMac::updateApplication(const std::string& message) bool LLCrashLoggerMac::cleanup() { + commonCleanup(); return true; } diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 7288bf6933889f1e9c984b8102c9c822d0919fc9..bef775cdb852056928da2df8ee9800a7822900c0 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -241,6 +241,7 @@ set(viewer_SOURCE_FILES llfloatertopobjects.cpp llfloatertos.cpp llfloatertoybox.cpp + llfloatertranslationsettings.cpp llfloateruipreview.cpp llfloaterurlentry.cpp llfloatervoiceeffect.cpp @@ -807,6 +808,7 @@ set(viewer_HEADER_FILES llfloatertopobjects.h llfloatertos.h llfloatertoybox.h + llfloatertranslationsettings.h llfloateruipreview.h llfloaterurlentry.h llfloatervoiceeffect.h @@ -1987,12 +1989,19 @@ if (LL_TESTS) llmediadataclient.cpp lllogininstance.cpp llremoteparcelrequest.cpp + lltranslate.cpp llviewerhelputil.cpp llversioninfo.cpp llworldmap.cpp llworldmipmap.cpp ) + set_source_files_properties( + lltranslate.cpp + PROPERTIES + LL_TEST_ADDITIONAL_LIBRARIES "${JSONCPP_LIBRARIES}" + ) + ################################################## # DISABLING PRECOMPILED HEADERS USAGE FOR TESTS ################################################## diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini index b5f105439cf037abb1b022ba2d389546b9d81654..82b43432eb32bcbbc2374e093af4d08e6158b90d 100644 --- a/indra/newview/app_settings/keywords.ini +++ b/indra/newview/app_settings/keywords.ini @@ -603,9 +603,11 @@ return Leave current function or event handler # Comment [one_sided_delimiter .8, .3, .15] // Comment:Non-functional commentary or disabled code +[two_sided_delimiter .8, .3, .15] +/* */ Comment:Non-functional commentary or disabled code # String literals -[two_sided_delimiter 0, .2, 0] +[double_quotation_marks 0, .2, 0] " String literal #functions are supplied by the program now diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 9f01674efe13c1780f2e04f66ff8c482380fb894..5c0ea2f7744ea28eb2c3e4c2b2ad6710ec52a3c9 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -11014,6 +11014,39 @@ <key>Value</key> <integer>0</integer> </map> + <key>TranslationService</key> + <map> + <key>Comment</key> + <string>Translation API to use. (google|bing)</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>String</string> + <key>Value</key> + <string>bing</string> + </map> + <key>GoogleTranslateAPIKey</key> + <map> + <key>Comment</key> + <string>Google Translate API key</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>String</string> + <key>Value</key> + <string></string> + </map> + <key>BingTranslateAPIKey</key> + <map> + <key>Comment</key> + <string>Bing AppID to use with the Microsoft Translator API</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>String</string> + <key>Value</key> + <string></string> + </map> <key>TutorialURL</key> <map> <key>Comment</key> @@ -13350,7 +13383,7 @@ <key>Comment</key> <string>Settings that are a applied per session (not saved).</string> <key>Persist</key> - <integer>1</integer> + <integer>0</integer> <key>Type</key> <string>String</string> <key>Value</key> @@ -13361,7 +13394,7 @@ <key>Comment</key> <string>User settings that are a applied per session (not saved).</string> <key>Persist</key> - <integer>1</integer> + <integer>0</integer> <key>Type</key> <string>String</string> <key>Value</key> diff --git a/indra/newview/app_settings/settings_per_account.xml b/indra/newview/app_settings/settings_per_account.xml index d8295ddb876a3d60eb6771f16f4a70fa1da17e29..6ed4480cb193050ed1db4bd24904f3763e66b92c 100644 --- a/indra/newview/app_settings/settings_per_account.xml +++ b/indra/newview/app_settings/settings_per_account.xml @@ -33,6 +33,17 @@ <key>Value</key> <string /> </map> + <key>DisplayDestinationsOnInitialRun</key> + <map> + <key>Comment</key> + <string>Display the destinations guide when a user first launches FUI.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>1</integer> + </map> <key>LastInventoryInboxActivity</key> <map> <key>Comment</key> diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml index 5d6b10c0470970367c0ea1b319ba4bf26217da07..6641c80b94b524e13c8a6efcab159673cf44b338 100644 --- a/indra/newview/character/avatar_lad.xml +++ b/indra/newview/character/avatar_lad.xml @@ -393,7 +393,26 @@ max_attachment_offset="2.0" visible_in_first_person="true" /> - + <attachment_point + id="39" + group="9" + pie_slice="1" + name="Neck" + joint="mNeck" + position="0 0 0" + rotation="0 0 0" + visible_in_first_person="true" /> + + <attachment_point + id="40" + group="9" + pie_slice="2" + name="Avatar Center" + joint="mRoot" + position="0 0 0" + rotation="0 0 0" + visible_in_first_person="true" /> + <param id="32" group="1" diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt old mode 100644 new mode 100755 diff --git a/indra/newview/installers/windows/lang_ru.nsi b/indra/newview/installers/windows/lang_ru.nsi index bd37e4ad4c1429750722df6f53214778d8a30cf7..de7affe08a3f5ff4f7e9619600ee715b0043e235 100644 Binary files a/indra/newview/installers/windows/lang_ru.nsi and b/indra/newview/installers/windows/lang_ru.nsi differ diff --git a/indra/newview/installers/windows/lang_tr.nsi b/indra/newview/installers/windows/lang_tr.nsi index 7b4ce358f3bce3f70189e3542a784bbd136f8bb1..5e7e3d797bc1b8e709396876d847798252a77ce4 100644 Binary files a/indra/newview/installers/windows/lang_tr.nsi and b/indra/newview/installers/windows/lang_tr.nsi differ diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp old mode 100644 new mode 100755 index ecfd101eebf2377263dccf11fd879829abff5270..dc88c81d6a675c5b19447d3da46d7b41e943d7c4 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -2825,48 +2825,15 @@ void LLAppViewer::initUpdater() void LLAppViewer::checkForCrash(void) { - #if LL_SEND_CRASH_REPORTS if (gLastExecEvent == LAST_EXEC_FROZE) { - llinfos << "Last execution froze, requesting to send crash report." << llendl; - // - // Pop up a freeze or crash warning dialog - // - S32 choice; - const S32 cb = gCrashSettings.getS32("CrashSubmitBehavior"); - if(cb == CRASH_BEHAVIOR_ASK) - { - std::ostringstream msg; - msg << LLTrans::getString("MBFrozenCrashed"); - std::string alert = LLTrans::getString("APP_NAME") + " " + LLTrans::getString("MBAlert"); - choice = OSMessageBox(msg.str(), - alert, - OSMB_YESNO); - } - else if(cb == CRASH_BEHAVIOR_NEVER_SEND) - { - choice = OSBTN_NO; - } - else - { - choice = OSBTN_YES; - } - - if (OSBTN_YES == choice) - { - llinfos << "Sending crash report." << llendl; + llinfos << "Last execution froze, sending a crash report." << llendl; - bool report_freeze = true; - handleCrashReporting(report_freeze); - } - else - { - llinfos << "Not sending crash report." << llendl; - } + bool report_freeze = true; + handleCrashReporting(report_freeze); } #endif // LL_SEND_CRASH_REPORTS - } // diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp index 98de41887852ee6178b2f42256d68b922daab3e1..6c9058caf14425451f8421ad5de0b5bd480fca0f 100644 --- a/indra/newview/llfavoritesbar.cpp +++ b/indra/newview/llfavoritesbar.cpp @@ -443,17 +443,17 @@ BOOL LLFavoritesBarCtrl::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, { setLandingTab(dest); } - /* - * the condition dest == NULL can be satisfied not only in the case - * of dragging to the right from the last tab of the favbar. there is a - * small gap between each tab. if the user drags something exactly there - * then mLandingTab will be set to NULL and the dragged item will be pushed - * to the end of the favorites bar. this is incorrect behavior. that's why - * we need an additional check which excludes the case described previously - * making sure that the mouse pointer is beyond the last tab. - */ - else if (mLastTab && x >= mLastTab->getRect().mRight) + else if (mLastTab && (x >= mLastTab->getRect().mRight)) { + /* + * the condition dest == NULL can be satisfied not only in the case + * of dragging to the right from the last tab of the favbar. there is a + * small gap between each tab. if the user drags something exactly there + * then mLandingTab will be set to NULL and the dragged item will be pushed + * to the end of the favorites bar. this is incorrect behavior. that's why + * we need an additional check which excludes the case described previously + * making sure that the mouse pointer is beyond the last tab. + */ setLandingTab(NULL); } @@ -467,7 +467,6 @@ BOOL LLFavoritesBarCtrl::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, if (drop) { handleExistingFavoriteDragAndDrop(x, y); - showDragMarker(FALSE); } } else @@ -490,7 +489,6 @@ BOOL LLFavoritesBarCtrl::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, setLandingTab(NULL); } handleNewFavoriteDragAndDrop(item, favorites_id, x, y); - showDragMarker(FALSE); } } } @@ -504,20 +502,29 @@ BOOL LLFavoritesBarCtrl::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, void LLFavoritesBarCtrl::handleExistingFavoriteDragAndDrop(S32 x, S32 y) { + // Identify the button hovered and the side to drop LLFavoriteLandmarkButton* dest = dynamic_cast<LLFavoriteLandmarkButton*>(mLandingTab); + bool insert_before = true; + if (!dest) + { + insert_before = false; + dest = dynamic_cast<LLFavoriteLandmarkButton*>(mLastTab); + } - // there is no need to handle if an item was dragged onto itself + // There is no need to handle if an item was dragged onto itself if (dest && dest->getLandmarkId() == mDragItemId) { return; } + // Insert the dragged item in the right place if (dest) { - LLInventoryModel::updateItemsOrder(mItems, mDragItemId, dest->getLandmarkId()); + LLInventoryModel::updateItemsOrder(mItems, mDragItemId, dest->getLandmarkId(), insert_before); } else { + // This can happen when the item list is empty mItems.push_back(gInventory.getItem(mDragItemId)); } @@ -534,22 +541,35 @@ void LLFavoritesBarCtrl::handleExistingFavoriteDragAndDrop(S32 x, S32 y) void LLFavoritesBarCtrl::handleNewFavoriteDragAndDrop(LLInventoryItem *item, const LLUUID& favorites_id, S32 x, S32 y) { - LLFavoriteLandmarkButton* dest = dynamic_cast<LLFavoriteLandmarkButton*>(mLandingTab); - - // there is no need to handle if an item was dragged onto itself + // Identify the button hovered and the side to drop + LLFavoriteLandmarkButton* dest = NULL; + bool insert_before = true; + if (!mItems.empty()) + { + dest = dynamic_cast<LLFavoriteLandmarkButton*>(mLandingTab); + if (!dest) + { + insert_before = false; + dest = dynamic_cast<LLFavoriteLandmarkButton*>(mLastTab); + } + } + + // There is no need to handle if an item was dragged onto itself if (dest && dest->getLandmarkId() == mDragItemId) { return; } - + LLPointer<LLViewerInventoryItem> viewer_item = new LLViewerInventoryItem(item); + // Insert the dragged item in the right place if (dest) { - insertBeforeItem(mItems, dest->getLandmarkId(), viewer_item); + insertItem(mItems, dest->getLandmarkId(), viewer_item, insert_before); } else { + // This can happen when the item list is empty mItems.push_back(viewer_item); } @@ -642,7 +662,7 @@ void LLFavoritesBarCtrl::draw() { // mouse pointer hovers over an existing tab LLRect rect = mLandingTab->getRect(); - mImageDragIndication->draw(rect.mLeft - w/2, rect.getHeight(), w, h); + mImageDragIndication->draw(rect.mLeft, rect.getHeight(), w, h); } else if (mLastTab) { @@ -650,6 +670,8 @@ void LLFavoritesBarCtrl::draw() LLRect rect = mLastTab->getRect(); mImageDragIndication->draw(rect.mRight, rect.getHeight(), w, h); } + // Once drawn, mark this false so we won't draw it again (unless we hit the favorite bar again) + mShowDragMarker = FALSE; } } @@ -721,7 +743,7 @@ void LLFavoritesBarCtrl::updateButtons() if (first_changed_item_index <= mItems.count()) { // Rebuild the buttons only - // child_list_t is a linked list, so safe to erase from the middle if we pre-incrament the iterator + // child_list_t is a linked list, so safe to erase from the middle if we pre-increment the iterator while (child_it != childs->end()) { @@ -810,9 +832,9 @@ LLButton* LLFavoritesBarCtrl::createButton(const LLPointer<LLViewerInventoryItem /** * WORKAROUND: - * there are some problem with displaying of fonts in buttons. - * Empty space (or ...) is displaying instead of last symbols, even though the width of the button is enough. - * Problem will gone, if we stretch out the button. For that reason I have to put additional 20 pixels. + * There are some problem with displaying of fonts in buttons. + * Empty space or ellipsis might be displayed instead of last symbols, even though the width of the button is enough. + * The problem disappears if we pad the button with 20 pixels. */ int required_width = mFont->getWidth(item->getName()) + 20; int width = required_width > def_button_width? def_button_width : required_width; @@ -840,7 +862,6 @@ LLButton* LLFavoritesBarCtrl::createButton(const LLPointer<LLViewerInventoryItem fav_btn->setRect(butt_rect); // change only left and save bottom fav_btn->setFont(mFont); - fav_btn->setName(item->getName()); fav_btn->setLabel(item->getName()); fav_btn->setToolTip(item->getName()); fav_btn->setCommitCallback(boost::bind(&LLFavoritesBarCtrl::onButtonClick, this, item->getUUID())); @@ -1298,25 +1319,24 @@ BOOL LLFavoritesBarCtrl::handleHover(S32 x, S32 y, MASK mask) LLUICtrl* LLFavoritesBarCtrl::findChildByLocalCoords(S32 x, S32 y) { - LLUICtrl* ctrl = 0; - S32 screenX, screenY; + LLUICtrl* ctrl = NULL; const child_list_t* list = getChildList(); - localPointToScreen(x, y, &screenX, &screenY); - - // look for a child which contains the point (screenX, screenY) in it's rectangle for (child_list_const_iter_t i = list->begin(); i != list->end(); ++i) { - LLRect rect; - localRectToScreen((*i)->getRect(), &rect); - - if (rect.pointInRect(screenX, screenY)) + // Look only for children that are favorite buttons + if ((*i)->getName() == "favorites_bar_btn") { - ctrl = dynamic_cast<LLUICtrl*>(*i); - break; + LLRect rect = (*i)->getRect(); + // We consider a button hit if the cursor is left of the right side + // This makes the hit a bit less finicky than hitting directly on the button itself + if (x <= rect.mRight) + { + ctrl = dynamic_cast<LLUICtrl*>(*i); + break; + } } } - return ctrl; } @@ -1337,29 +1357,28 @@ BOOL LLFavoritesBarCtrl::needToSaveItemsOrder(const LLInventoryModel::item_array return result; } -LLInventoryModel::item_array_t::iterator LLFavoritesBarCtrl::findItemByUUID(LLInventoryModel::item_array_t& items, const LLUUID& id) +void LLFavoritesBarCtrl::insertItem(LLInventoryModel::item_array_t& items, const LLUUID& dest_item_id, LLViewerInventoryItem* insertedItem, bool insert_before) { - LLInventoryModel::item_array_t::iterator result = items.end(); + // Get the iterator to the destination item + LLInventoryModel::item_array_t::iterator it_dest = LLInventoryModel::findItemIterByUUID(items, dest_item_id); + if (it_dest == items.end()) + return; - for (LLInventoryModel::item_array_t::iterator i = items.begin(); i != items.end(); ++i) + // Go to the next element if one wishes to insert after the dest element + if (!insert_before) { - if ((*i)->getUUID() == id) - { - result = i; - break; - } + ++it_dest; } - - return result; -} - -void LLFavoritesBarCtrl::insertBeforeItem(LLInventoryModel::item_array_t& items, const LLUUID& beforeItemId, LLViewerInventoryItem* insertedItem) -{ - LLViewerInventoryItem* beforeItem = gInventory.getItem(beforeItemId); - llassert(beforeItem); - if (beforeItem) + + // Insert the source item in the right place + if (it_dest != items.end()) + { + items.insert(it_dest, insertedItem); + } + else { - items.insert(findItemByUUID(items, beforeItem->getUUID()), insertedItem); + // Append to the list if it_dest reached the end + items.push_back(insertedItem); } } diff --git a/indra/newview/llfavoritesbar.h b/indra/newview/llfavoritesbar.h index 1b11d6196e8c787d85f4190f235442f2490993ac..2f75b3bb0eec119a4b66a660c6dd4a2abd5ea656 100644 --- a/indra/newview/llfavoritesbar.h +++ b/indra/newview/llfavoritesbar.h @@ -130,7 +130,7 @@ class LLFavoritesBarCtrl : public LLUICtrl, public LLInventoryObserver * inserts an item identified by insertedItemId BEFORE an item identified by beforeItemId. * this function assumes that an item identified by insertedItemId doesn't exist in items array. */ - void insertBeforeItem(LLInventoryModel::item_array_t& items, const LLUUID& beforeItemId, LLViewerInventoryItem* insertedItem); + void insertItem(LLInventoryModel::item_array_t& items, const LLUUID& dest_item_id, LLViewerInventoryItem* insertedItem, bool insert_before); // finds an item by it's UUID in the items array LLInventoryModel::item_array_t::iterator findItemByUUID(LLInventoryModel::item_array_t& items, const LLUUID& id); diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp index 22f500ba150fdb5f60ae0c61a405c630073ad56a..83fb887d81b3e2ad2c19fa193886d19e7ba3aa3e 100644 --- a/indra/newview/llfloaterabout.cpp +++ b/indra/newview/llfloaterabout.cpp @@ -384,6 +384,9 @@ void LLFloaterAbout::setSupportText(const std::string& server_release_notes_url) // Render the LLSD from getInfo() as a format_map_t LLStringUtil::format_map_t args; + // allow the "Release Notes" URL label to be localized + args["ReleaseNotes"] = LLTrans::getString("ReleaseNotes"); + for (LLSD::map_const_iterator ii(info.beginMap()), iend(info.endMap()); ii != iend; ++ii) { diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 5fdeb46daaf7088a57406ab5deb2031d53a5cc8d..a333989e7e5951319f38aa05027acc803965821e 100755 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -345,6 +345,7 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key) mCommitCallbackRegistrar.add("Pref.MaturitySettings", boost::bind(&LLFloaterPreference::onChangeMaturity, this)); mCommitCallbackRegistrar.add("Pref.BlockList", boost::bind(&LLFloaterPreference::onClickBlockList, this)); mCommitCallbackRegistrar.add("Pref.Proxy", boost::bind(&LLFloaterPreference::onClickProxySettings, this)); + mCommitCallbackRegistrar.add("Pref.TranslationSettings", boost::bind(&LLFloaterPreference::onClickTranslationSettings, this)); sSkin = gSavedSettings.getString("SkinCurrent"); @@ -599,6 +600,9 @@ void LLFloaterPreference::cancel() } // hide joystick pref floater LLFloaterReg::hideInstance("pref_joystick"); + + // hide translation settings floater + LLFloaterReg::hideInstance("prefs_translation"); // cancel hardware menu LLFloaterHardwareSettings* hardware_settings = LLFloaterReg::getTypedInstance<LLFloaterHardwareSettings>("prefs_hardware_settings"); @@ -1505,6 +1509,11 @@ void LLFloaterPreference::onClickProxySettings() LLFloaterReg::showInstance("prefs_proxy"); } +void LLFloaterPreference::onClickTranslationSettings() +{ + LLFloaterReg::showInstance("prefs_translation"); +} + void LLFloaterPreference::onClickActionChange() { mClickActionDirty = true; diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index 5c74e9f60ccedd72de6aa1e41d76bf46f39c739c..7ee3294478b9e6e2da634590c7a0ba76fca6eba8 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -156,6 +156,7 @@ class LLFloaterPreference : public LLFloater, public LLAvatarPropertiesObserver void onChangeMaturity(); void onClickBlockList(); void onClickProxySettings(); + void onClickTranslationSettings(); void applyUIColor(LLUICtrl* ctrl, const LLSD& param); void getUIColor(LLUICtrl* ctrl, const LLSD& param); diff --git a/indra/newview/llfloatertoybox.cpp b/indra/newview/llfloatertoybox.cpp index 66f644748eaef62735a83c1549a24f53d930bd15..f527937e8f5e20598618f3e40e15616e486d1a21 100644 --- a/indra/newview/llfloatertoybox.cpp +++ b/indra/newview/llfloatertoybox.cpp @@ -63,6 +63,7 @@ BOOL LLFloaterToybox::postBuild() mToolBar->setStartDragCallback(boost::bind(LLToolBarView::startDragTool,_1,_2,_3)); mToolBar->setHandleDragCallback(boost::bind(LLToolBarView::handleDragTool,_1,_2,_3,_4)); mToolBar->setHandleDropCallback(boost::bind(LLToolBarView::handleDropTool,_1,_2,_3,_4)); + mToolBar->setButtonEnterCallback(boost::bind(&LLFloaterToybox::onToolBarButtonEnter,this,_1)); // // Sort commands by localized labels so they will appear alphabetized in all languages @@ -105,8 +106,8 @@ void LLFloaterToybox::draw() { const LLCommandId& id = *it; - const bool commandOnToolbar = gToolBarView->hasCommand(id); - mToolBar->enableCommand(id, !commandOnToolbar); + const bool command_not_present = (gToolBarView->hasCommand(id) == LLToolBarView::TOOLBAR_NONE); + mToolBar->enableCommand(id, command_not_present); } LLFloater::draw(); @@ -140,5 +141,30 @@ BOOL LLFloaterToybox::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, return mToolBar->handleDragAndDrop(local_x, local_y, mask, drop, cargo_type, cargo_data, accept, tooltip_msg); } +void LLFloaterToybox::onToolBarButtonEnter(LLView* button) +{ + std::string suffix = ""; + + LLCommandId commandId(button->getName()); + LLCommand* command = LLCommandManager::instance().getCommand(commandId); + + if (command) + { + S32 command_loc = gToolBarView->hasCommand(commandId); + + switch(command_loc) + { + case LLToolBarView::TOOLBAR_BOTTOM: suffix = LLTrans::getString("Toolbar_Bottom_Tooltip"); break; + case LLToolBarView::TOOLBAR_LEFT: suffix = LLTrans::getString("Toolbar_Left_Tooltip"); break; + case LLToolBarView::TOOLBAR_RIGHT: suffix = LLTrans::getString("Toolbar_Right_Tooltip"); break; + + default: + break; + } + } + + mToolBar->setTooltipButtonSuffix(suffix); +} + // eof diff --git a/indra/newview/llfloatertoybox.h b/indra/newview/llfloatertoybox.h index 62bf68680dafd73afb32d6e4e2df17ea07531a1e..6f0275b8fe20876d9f46574f8e710a923d7d4459 100644 --- a/indra/newview/llfloatertoybox.h +++ b/indra/newview/llfloatertoybox.h @@ -52,6 +52,8 @@ class LLFloaterToybox : public LLFloater protected: void onBtnRestoreDefaults(); + void onToolBarButtonEnter(LLView* button); + public: LLToolBar * mToolBar; }; diff --git a/indra/newview/llfloatertranslationsettings.cpp b/indra/newview/llfloatertranslationsettings.cpp new file mode 100644 index 0000000000000000000000000000000000000000..959edff713fb35da98d6b18b7d5843d4da4a250b --- /dev/null +++ b/indra/newview/llfloatertranslationsettings.cpp @@ -0,0 +1,296 @@ +/** + * @file llfloatertranslationsettings.cpp + * @brief Machine translation settings for chat + * + * $LicenseInfo:firstyear=2011&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2011, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#include "llviewerprecompiledheaders.h" + +#include "llfloatertranslationsettings.h" + +// Viewer includes +#include "lltranslate.h" +#include "llviewercontrol.h" // for gSavedSettings + +// Linden library includes +#include "llbutton.h" +#include "llcheckboxctrl.h" +#include "llcombobox.h" +#include "llfloaterreg.h" +#include "lllineeditor.h" +#include "llnotificationsutil.h" +#include "llradiogroup.h" + +class EnteredKeyVerifier : public LLTranslate::KeyVerificationReceiver +{ +public: + EnteredKeyVerifier(LLTranslate::EService service, bool alert) + : LLTranslate::KeyVerificationReceiver(service) + , mAlert(alert) + { + } + +private: + /*virtual*/ void setVerificationStatus(bool ok) + { + LLFloaterTranslationSettings* floater = + LLFloaterReg::getTypedInstance<LLFloaterTranslationSettings>("prefs_translation"); + + if (!floater) + { + llwarns << "Cannot find translation settings floater" << llendl; + return; + } + + switch (getService()) + { + case LLTranslate::SERVICE_BING: + floater->setBingVerified(ok, mAlert); + break; + case LLTranslate::SERVICE_GOOGLE: + floater->setGoogleVerified(ok, mAlert); + break; + } + } + + bool mAlert; +}; + +LLFloaterTranslationSettings::LLFloaterTranslationSettings(const LLSD& key) +: LLFloater(key) +, mMachineTranslationCB(NULL) +, mLanguageCombo(NULL) +, mTranslationServiceRadioGroup(NULL) +, mBingAPIKeyEditor(NULL) +, mGoogleAPIKeyEditor(NULL) +, mBingVerifyBtn(NULL) +, mGoogleVerifyBtn(NULL) +, mOKBtn(NULL) +, mBingKeyVerified(false) +, mGoogleKeyVerified(false) +{ +} + +// virtual +BOOL LLFloaterTranslationSettings::postBuild() +{ + mMachineTranslationCB = getChild<LLCheckBoxCtrl>("translate_chat_checkbox"); + mLanguageCombo = getChild<LLComboBox>("translate_language_combo"); + mTranslationServiceRadioGroup = getChild<LLRadioGroup>("translation_service_rg"); + mBingAPIKeyEditor = getChild<LLLineEditor>("bing_api_key"); + mGoogleAPIKeyEditor = getChild<LLLineEditor>("google_api_key"); + mBingVerifyBtn = getChild<LLButton>("verify_bing_api_key_btn"); + mGoogleVerifyBtn = getChild<LLButton>("verify_google_api_key_btn"); + mOKBtn = getChild<LLButton>("ok_btn"); + + mMachineTranslationCB->setCommitCallback(boost::bind(&LLFloaterTranslationSettings::updateControlsEnabledState, this)); + mTranslationServiceRadioGroup->setCommitCallback(boost::bind(&LLFloaterTranslationSettings::updateControlsEnabledState, this)); + mOKBtn->setClickedCallback(boost::bind(&LLFloaterTranslationSettings::onBtnOK, this)); + getChild<LLButton>("cancel_btn")->setClickedCallback(boost::bind(&LLFloater::closeFloater, this, false)); + mBingVerifyBtn->setClickedCallback(boost::bind(&LLFloaterTranslationSettings::onBtnBingVerify, this)); + mGoogleVerifyBtn->setClickedCallback(boost::bind(&LLFloaterTranslationSettings::onBtnGoogleVerify, this)); + + mBingAPIKeyEditor->setFocusReceivedCallback(boost::bind(&LLFloaterTranslationSettings::onEditorFocused, this, _1)); + mBingAPIKeyEditor->setKeystrokeCallback(boost::bind(&LLFloaterTranslationSettings::onBingKeyEdited, this), NULL); + mGoogleAPIKeyEditor->setFocusReceivedCallback(boost::bind(&LLFloaterTranslationSettings::onEditorFocused, this, _1)); + mGoogleAPIKeyEditor->setKeystrokeCallback(boost::bind(&LLFloaterTranslationSettings::onGoogleKeyEdited, this), NULL); + + center(); + return TRUE; +} + +// virtual +void LLFloaterTranslationSettings::onOpen(const LLSD& key) +{ + mMachineTranslationCB->setValue(gSavedSettings.getBOOL("TranslateChat")); + mLanguageCombo->setSelectedByValue(gSavedSettings.getString("TranslateLanguage"), TRUE); + mTranslationServiceRadioGroup->setSelectedByValue(gSavedSettings.getString("TranslationService"), TRUE); + + std::string bing_key = gSavedSettings.getString("BingTranslateAPIKey"); + if (!bing_key.empty()) + { + mBingAPIKeyEditor->setText(bing_key); + mBingAPIKeyEditor->setTentative(FALSE); + verifyKey(LLTranslate::SERVICE_BING, bing_key, false); + } + else + { + mBingAPIKeyEditor->setTentative(TRUE); + mBingKeyVerified = FALSE; + } + + std::string google_key = gSavedSettings.getString("GoogleTranslateAPIKey"); + if (!google_key.empty()) + { + mGoogleAPIKeyEditor->setText(google_key); + mGoogleAPIKeyEditor->setTentative(FALSE); + verifyKey(LLTranslate::SERVICE_GOOGLE, google_key, false); + } + else + { + mGoogleAPIKeyEditor->setTentative(TRUE); + mGoogleKeyVerified = FALSE; + } + + updateControlsEnabledState(); +} + +void LLFloaterTranslationSettings::setBingVerified(bool ok, bool alert) +{ + if (alert) + { + showAlert(ok ? "bing_api_key_verified" : "bing_api_key_not_verified"); + } + + mBingKeyVerified = ok; + updateControlsEnabledState(); +} + +void LLFloaterTranslationSettings::setGoogleVerified(bool ok, bool alert) +{ + if (alert) + { + showAlert(ok ? "google_api_key_verified" : "google_api_key_not_verified"); + } + + mGoogleKeyVerified = ok; + updateControlsEnabledState(); +} + +std::string LLFloaterTranslationSettings::getSelectedService() const +{ + return mTranslationServiceRadioGroup->getSelectedValue().asString(); +} + +std::string LLFloaterTranslationSettings::getEnteredBingKey() const +{ + return mBingAPIKeyEditor->getTentative() ? LLStringUtil::null : mBingAPIKeyEditor->getText(); +} + +std::string LLFloaterTranslationSettings::getEnteredGoogleKey() const +{ + return mGoogleAPIKeyEditor->getTentative() ? LLStringUtil::null : mGoogleAPIKeyEditor->getText(); +} + +void LLFloaterTranslationSettings::showAlert(const std::string& msg_name) const +{ + LLSD args; + args["MESSAGE"] = getString(msg_name); + LLNotificationsUtil::add("GenericAlert", args); +} + +void LLFloaterTranslationSettings::updateControlsEnabledState() +{ + // Enable/disable controls based on the checkbox value. + bool on = mMachineTranslationCB->getValue().asBoolean(); + std::string service = getSelectedService(); + bool bing_selected = service == "bing"; + bool google_selected = service == "google"; + + mTranslationServiceRadioGroup->setEnabled(on); + mLanguageCombo->setEnabled(on); + + getChild<LLTextBox>("bing_api_key_label")->setEnabled(on); + mBingAPIKeyEditor->setEnabled(on); + + getChild<LLTextBox>("google_api_key_label")->setEnabled(on); + mGoogleAPIKeyEditor->setEnabled(on); + + mBingAPIKeyEditor->setEnabled(on && bing_selected); + mGoogleAPIKeyEditor->setEnabled(on && google_selected); + + mBingVerifyBtn->setEnabled(on && bing_selected && + !mBingKeyVerified && !getEnteredBingKey().empty()); + mGoogleVerifyBtn->setEnabled(on && google_selected && + !mGoogleKeyVerified && !getEnteredGoogleKey().empty()); + + mOKBtn->setEnabled( + !on || ( + (bing_selected && mBingKeyVerified) || + (google_selected && mGoogleKeyVerified) + )); +} + +void LLFloaterTranslationSettings::verifyKey(int service, const std::string& key, bool alert) +{ + LLTranslate::KeyVerificationReceiverPtr receiver = + new EnteredKeyVerifier((LLTranslate::EService) service, alert); + LLTranslate::verifyKey(receiver, key); +} + +void LLFloaterTranslationSettings::onEditorFocused(LLFocusableElement* control) +{ + LLLineEditor* editor = dynamic_cast<LLLineEditor*>(control); + if (editor && editor->hasTabStop()) // if enabled. getEnabled() doesn't work + { + if (editor->getTentative()) + { + editor->setText(LLStringUtil::null); + editor->setTentative(FALSE); + } + } +} + +void LLFloaterTranslationSettings::onBingKeyEdited() +{ + if (mBingAPIKeyEditor->isDirty()) + { + setBingVerified(false, false); + } +} + +void LLFloaterTranslationSettings::onGoogleKeyEdited() +{ + if (mGoogleAPIKeyEditor->isDirty()) + { + setGoogleVerified(false, false); + } +} + +void LLFloaterTranslationSettings::onBtnBingVerify() +{ + std::string key = getEnteredBingKey(); + if (!key.empty()) + { + verifyKey(LLTranslate::SERVICE_BING, key); + } +} + +void LLFloaterTranslationSettings::onBtnGoogleVerify() +{ + std::string key = getEnteredGoogleKey(); + if (!key.empty()) + { + verifyKey(LLTranslate::SERVICE_GOOGLE, key); + } +} + +void LLFloaterTranslationSettings::onBtnOK() +{ + gSavedSettings.setBOOL("TranslateChat", mMachineTranslationCB->getValue().asBoolean()); + gSavedSettings.setString("TranslateLanguage", mLanguageCombo->getSelectedValue().asString()); + gSavedSettings.setString("TranslationService", getSelectedService()); + gSavedSettings.setString("BingTranslateAPIKey", getEnteredBingKey()); + gSavedSettings.setString("GoogleTranslateAPIKey", getEnteredGoogleKey()); + closeFloater(false); +} diff --git a/indra/newview/llfloatertranslationsettings.h b/indra/newview/llfloatertranslationsettings.h new file mode 100644 index 0000000000000000000000000000000000000000..9b47ad72ed20bc16b7300c4c999bd982768f63fc --- /dev/null +++ b/indra/newview/llfloatertranslationsettings.h @@ -0,0 +1,76 @@ +/** + * @file llfloatertranslationsettings.h + * @brief Machine translation settings for chat + * + * $LicenseInfo:firstyear=2011&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2011, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#ifndef LL_LLFLOATERTRANSLATIONSETTINGS_H +#define LL_LLFLOATERTRANSLATIONSETTINGS_H + +#include "llfloater.h" + +class LLButton; +class LLCheckBoxCtrl; +class LLComboBox; +class LLLineEditor; +class LLRadioGroup; + +class LLFloaterTranslationSettings : public LLFloater +{ +public: + LLFloaterTranslationSettings(const LLSD& key); + /*virtual*/ BOOL postBuild(); + /*virtual*/ void onOpen(const LLSD& key); + + void setBingVerified(bool ok, bool alert); + void setGoogleVerified(bool ok, bool alert); + +private: + std::string getSelectedService() const; + std::string getEnteredBingKey() const; + std::string getEnteredGoogleKey() const; + void showAlert(const std::string& msg_name) const; + void updateControlsEnabledState(); + void verifyKey(int service, const std::string& key, bool alert = true); + + void onEditorFocused(LLFocusableElement* control); + void onBingKeyEdited(); + void onGoogleKeyEdited(); + void onBtnBingVerify(); + void onBtnGoogleVerify(); + void onBtnOK(); + + LLCheckBoxCtrl* mMachineTranslationCB; + LLComboBox* mLanguageCombo; + LLLineEditor* mBingAPIKeyEditor; + LLLineEditor* mGoogleAPIKeyEditor; + LLRadioGroup* mTranslationServiceRadioGroup; + LLButton* mBingVerifyBtn; + LLButton* mGoogleVerifyBtn; + LLButton* mOKBtn; + + bool mBingKeyVerified; + bool mGoogleKeyVerified; +}; + +#endif // LL_LLFLOATERTRANSLATIONSETTINGS_H diff --git a/indra/newview/llglsandbox.cpp b/indra/newview/llglsandbox.cpp index fa3f546157b17f35a8bdb7093c2ea9fb893b0911..2b9c113a72aac742b346230709be2f161235de69 100644 --- a/indra/newview/llglsandbox.cpp +++ b/indra/newview/llglsandbox.cpp @@ -240,7 +240,7 @@ void LLToolSelectRect::handleRectangleSelection(S32 x, S32 y, MASK mask) gViewerWindow->setup3DRender(); } -const F32 WIND_ALTITUDE = 180.f; +const F32 WIND_RELATIVE_ALTITUDE = 25.f; void LLWind::renderVectors() { @@ -254,13 +254,13 @@ void LLWind::renderVectors() gGL.pushMatrix(); LLVector3 origin_agent; origin_agent = gAgent.getPosAgentFromGlobal(mOriginGlobal); - gGL.translatef(origin_agent.mV[VX], origin_agent.mV[VY], WIND_ALTITUDE); + gGL.translatef(origin_agent.mV[VX], origin_agent.mV[VY], gAgent.getPositionAgent().mV[VZ] + WIND_RELATIVE_ALTITUDE); for (j = 0; j < mSize; j++) { for (i = 0; i < mSize; i++) { - x = mCloudVelX[i + j*mSize] * WIND_SCALE_HACK; - y = mCloudVelY[i + j*mSize] * WIND_SCALE_HACK; + x = mVelX[i + j*mSize] * WIND_SCALE_HACK; + y = mVelY[i + j*mSize] * WIND_SCALE_HACK; gGL.pushMatrix(); gGL.translatef((F32)i * region_width_meters/mSize, (F32)j * region_width_meters/mSize, 0.0); gGL.color3f(0,1,0); diff --git a/indra/newview/llimfloatercontainer.cpp b/indra/newview/llimfloatercontainer.cpp index 33cb3a54a7cf69b772e7b4b7e6a0d43f8424a30a..c8e48b0d428f0980c44c181129c9f63268b4b3c1 100644 --- a/indra/newview/llimfloatercontainer.cpp +++ b/indra/newview/llimfloatercontainer.cpp @@ -47,12 +47,13 @@ LLIMFloaterContainer::LLIMFloaterContainer(const LLSD& seed) LLIMFloaterContainer::~LLIMFloaterContainer() { + mNewMessageConnection.disconnect(); LLTransientFloaterMgr::getInstance()->removeControlView(LLTransientFloaterMgr::IM, this); } BOOL LLIMFloaterContainer::postBuild() { - LLIMModel::instance().mNewMsgSignal.connect(boost::bind(&LLIMFloaterContainer::onNewMessageReceived, this, _1)); + mNewMessageConnection = LLIMModel::instance().mNewMsgSignal.connect(boost::bind(&LLIMFloaterContainer::onNewMessageReceived, this, _1)); // Do not call base postBuild to not connect to mCloseSignal to not close all floaters via Close button // mTabContainer will be initialized in LLMultiFloater::addChild() return TRUE; diff --git a/indra/newview/llimfloatercontainer.h b/indra/newview/llimfloatercontainer.h index 53dfcd78ff1c7868a217f4b3ec4607828cc3b2c6..892ecef48d13ad5c07e64789b02a459612ebc7f5 100644 --- a/indra/newview/llimfloatercontainer.h +++ b/indra/newview/llimfloatercontainer.h @@ -62,7 +62,7 @@ class LLIMFloaterContainer : public LLMultiFloater private: typedef std::map<LLUUID,LLFloater*> avatarID_panel_map_t; avatarID_panel_map_t mSessions; - + boost::signals2::connection mNewMessageConnection; void onNewMessageReceived(const LLSD& data); }; diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 6e9baed5f2d12cea5dfde0c39614320723cff0d3..ed4bb727cd77043c0baebad5c881c37614df6420 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -1679,13 +1679,44 @@ BOOL LLCallDialog::postBuild() { if (!LLDockableFloater::postBuild() || !gToolBarView) return FALSE; + + dockToToolbarButton("speak"); + + return TRUE; +} + +void LLCallDialog::dockToToolbarButton(const std::string& toolbarButtonName) +{ + LLDockControl::DocAt dock_pos = getDockControlPos(toolbarButtonName); + LLView *anchor_panel = gToolBarView->findChildView(toolbarButtonName); - LLView *anchor_panel = gToolBarView->findChildView("speak"); - setDockControl(new LLDockControl(anchor_panel, this, getDockTongue(), LLDockControl::TOP)); + setUseTongue(anchor_panel); - return TRUE; + setDockControl(new LLDockControl(anchor_panel, this, getDockTongue(dock_pos), dock_pos)); } +LLDockControl::DocAt LLCallDialog::getDockControlPos(const std::string& toolbarButtonName) +{ + LLCommandId command_id(toolbarButtonName); + S32 toolbar_loc = gToolBarView->hasCommand(command_id); + + LLDockControl::DocAt doc_at = LLDockControl::TOP; + + switch (toolbar_loc) + { + case LLToolBarView::TOOLBAR_LEFT: + doc_at = LLDockControl::RIGHT; + break; + + case LLToolBarView::TOOLBAR_RIGHT: + doc_at = LLDockControl::LEFT; + break; + } + + return doc_at; +} + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Class LLOutgoingCallDialog //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h index 93b604d36aa2fe82216e7175f837c932899d9a99..b1be26a169ee962e80701cfed82cec74e1dd1e8e 100644 --- a/indra/newview/llimview.h +++ b/indra/newview/llimview.h @@ -491,14 +491,16 @@ class LLCallDialog : public LLDockableFloater { public: LLCallDialog(const LLSD& payload); - ~LLCallDialog(); + virtual ~LLCallDialog(); virtual BOOL postBuild(); + void dockToToolbarButton(const std::string& toolbarButtonName); + // check timer state /*virtual*/ void draw(); /*virtual*/ void onOpen(const LLSD& key); - + protected: // lifetime timer for a notification LLTimer mLifetimeTimer; @@ -519,6 +521,9 @@ class LLCallDialog : public LLDockableFloater void setIcon(const LLSD& session_id, const LLSD& participant_id); LLSD mPayload; + +private: + LLDockControl::DocAt getDockControlPos(const std::string& toolbarButtonName); }; class LLIncomingCallDialog : public LLCallDialog diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp index e86c427ae28630b7bf4768566f3cf144350146d4..fb02fe0ff7cc310a6a7b990739eaa1185f8dba4a 100644 --- a/indra/newview/llinventorymodel.cpp +++ b/indra/newview/llinventorymodel.cpp @@ -2879,40 +2879,62 @@ BOOL LLInventoryModel::getIsFirstTimeInViewer2() return sFirstTimeInViewer2; } -static LLInventoryModel::item_array_t::iterator find_item_iter_by_uuid(LLInventoryModel::item_array_t& items, const LLUUID& id) +LLInventoryModel::item_array_t::iterator LLInventoryModel::findItemIterByUUID(LLInventoryModel::item_array_t& items, const LLUUID& id) { - LLInventoryModel::item_array_t::iterator result = items.end(); + LLInventoryModel::item_array_t::iterator curr_item = items.begin(); - for (LLInventoryModel::item_array_t::iterator i = items.begin(); i != items.end(); ++i) + while (curr_item != items.end()) { - if ((*i)->getUUID() == id) + if ((*curr_item)->getUUID() == id) { - result = i; break; } + ++curr_item; } - return result; + return curr_item; } // static // * @param[in, out] items - vector with items to be updated. It should be sorted in a right way // * before calling this method. // * @param src_item_id - LLUUID of inventory item to be moved in new position -// * @param dest_item_id - LLUUID of inventory item before which source item should be placed. -void LLInventoryModel::updateItemsOrder(LLInventoryModel::item_array_t& items, const LLUUID& src_item_id, const LLUUID& dest_item_id) +// * @param dest_item_id - LLUUID of inventory item before (or after) which source item should +// * be placed. +// * @param insert_before - bool indicating if src_item_id should be placed before or after +// * dest_item_id. Default is true. +void LLInventoryModel::updateItemsOrder(LLInventoryModel::item_array_t& items, const LLUUID& src_item_id, const LLUUID& dest_item_id, bool insert_before) { - LLInventoryModel::item_array_t::iterator it_src = find_item_iter_by_uuid(items, src_item_id); - LLInventoryModel::item_array_t::iterator it_dest = find_item_iter_by_uuid(items, dest_item_id); + LLInventoryModel::item_array_t::iterator it_src = findItemIterByUUID(items, src_item_id); + LLInventoryModel::item_array_t::iterator it_dest = findItemIterByUUID(items, dest_item_id); - if (it_src == items.end() || it_dest == items.end()) return; + // If one of the passed UUID is not in the item list, bail out + if ((it_src == items.end()) || (it_dest == items.end())) + return; + // Erase the source element from the list, keep a copy before erasing. LLViewerInventoryItem* src_item = *it_src; items.erase(it_src); - // target iterator can not be valid because the container was changed, so update it. - it_dest = find_item_iter_by_uuid(items, dest_item_id); - items.insert(it_dest, src_item); + // Note: Target iterator is not valid anymore because the container was changed, so update it. + it_dest = findItemIterByUUID(items, dest_item_id); + + // Go to the next element if one wishes to insert after the dest element + if (!insert_before) + { + ++it_dest; + } + + // Reinsert the source item in the right place + if (it_dest != items.end()) + { + items.insert(it_dest, src_item); + } + else + { + // Append to the list if it_dest reached the end + items.push_back(src_item); + } } //* @param[in] items vector of items in order to be saved. diff --git a/indra/newview/llinventorymodel.h b/indra/newview/llinventorymodel.h index e0e81f10064adc4101230daf709abe659a5aa1c4..a0fd455cf3b75d8131734ff5fabd2542eeff367b 100644 --- a/indra/newview/llinventorymodel.h +++ b/indra/newview/llinventorymodel.h @@ -332,11 +332,16 @@ class LLInventoryModel //-------------------------------------------------------------------- public: // Changes items order by insertion of the item identified by src_item_id - // before the item identified by dest_item_id. Both items must exist in items array. - // Sorting is stored after method is finished. Only src_item_id is moved before dest_item_id. + // before (or after) the item identified by dest_item_id. Both items must exist in items array. + // Sorting is stored after method is finished. Only src_item_id is moved before (or after) dest_item_id. + // The parameter "insert_before" controls on which side of dest_item_id src_item_id gets rensinserted. static void updateItemsOrder(LLInventoryModel::item_array_t& items, const LLUUID& src_item_id, - const LLUUID& dest_item_id); + const LLUUID& dest_item_id, + bool insert_before = true); + // Gets an iterator on an item vector knowing only the item UUID. + // Returns end() of the vector if not found. + static LLInventoryModel::item_array_t::iterator findItemIterByUUID(LLInventoryModel::item_array_t& items, const LLUUID& id); // Saves current order of the passed items using inventory item sort field. // Resets 'items' sort fields and saves them on server. diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp index a8113322618d4058a1317e1acfeeab3bc223a037..4674c8532409e4498e7a6baad234fe341d2b0d46 100644 --- a/indra/newview/llnearbychatbar.cpp +++ b/indra/newview/llnearbychatbar.cpp @@ -147,12 +147,12 @@ LLNearbyChatBar* LLNearbyChatBar::getInstance() void LLNearbyChatBar::showHistory() { + openFloater(); + if (!getChildView("nearby_chat")->getVisible()) { onToggleNearbyChatPanel(); } - - openFloater(); } void LLNearbyChatBar::draw() @@ -379,7 +379,10 @@ void LLNearbyChatBar::onToggleNearbyChatPanel() if (nearby_chat->getVisible()) { - mExpandedHeight = getRect().getHeight(); + if (!isMinimized()) + { + mExpandedHeight = getRect().getHeight(); + } setResizeLimits(getMinWidth(), COLLAPSED_HEIGHT); nearby_chat->setVisible(FALSE); reshape(getRect().getWidth(), COLLAPSED_HEIGHT); @@ -396,6 +399,15 @@ void LLNearbyChatBar::onToggleNearbyChatPanel() } } +void LLNearbyChatBar::setMinimized(BOOL b) +{ + if (b != LLFloater::isMinimized()) + { + LLFloater::setMinimized(b); + getChildView("nearby_chat")->setVisible(!b); + } +} + void LLNearbyChatBar::onChatBoxCommit() { if (mChatBox->getText().length() > 0) diff --git a/indra/newview/llnearbychatbar.h b/indra/newview/llnearbychatbar.h index bc00c1b9fce9c209e27b4db3c9ee6ae42a4ff39e..e9734899b3118166265e88efcd004f34e8373c53 100644 --- a/indra/newview/llnearbychatbar.h +++ b/indra/newview/llnearbychatbar.h @@ -60,6 +60,7 @@ class LLNearbyChatBar : public LLFloater static void sendChatFromViewer(const LLWString &wtext, EChatType type, BOOL animate); void showHistory(); + /*virtual*/void setMinimized(BOOL b); protected: static BOOL matchChatTypeTrigger(const std::string& in_str, std::string* out_str); diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp index 330a21ef653a0fe4bca67c623402d4a7cc16e9e3..c43c95a366d4598a42261a3cffdfe44c04e8d9b0 100644 --- a/indra/newview/llnearbychathandler.cpp +++ b/indra/newview/llnearbychathandler.cpp @@ -568,7 +568,8 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg, // WARNING - not sChatWatcher->post(notification); - if( chat_bar->getVisible() && nearby_chat->getVisible() + if( !chat_bar->isMinimized() + && nearby_chat->isInVisibleChain() || ( chat_msg.mSourceType == CHAT_SOURCE_AGENT && gSavedSettings.getBOOL("UseChatBubbles") ) || !mChannel->getShowToasts() ) // to prevent toasts in Busy mode diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index d6c407d5489eff9b1058c8670a2f80d89b905190..9944b51902dd52b9b7450b429ca7a7585e9b14f0 100644 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -111,7 +111,7 @@ LLPanelMainInventory::LLPanelMainInventory(const LLPanel::Params& p) mCommitCallbackRegistrar.add("Inventory.EmptyTrash", boost::bind(&LLInventoryModel::emptyFolderType, &gInventory, "ConfirmEmptyTrash", LLFolderType::FT_TRASH)); mCommitCallbackRegistrar.add("Inventory.EmptyLostAndFound", boost::bind(&LLInventoryModel::emptyFolderType, &gInventory, "ConfirmEmptyLostAndFound", LLFolderType::FT_LOST_AND_FOUND)); mCommitCallbackRegistrar.add("Inventory.DoCreate", boost::bind(&LLPanelMainInventory::doCreate, this, _2)); - mCommitCallbackRegistrar.add("Inventory.NewWindow", boost::bind(&LLPanelMainInventory::newWindow, this)); + //mCommitCallbackRegistrar.add("Inventory.NewWindow", boost::bind(&LLPanelMainInventory::newWindow, this)); mCommitCallbackRegistrar.add("Inventory.ShowFilters", boost::bind(&LLPanelMainInventory::toggleFindOptions, this)); mCommitCallbackRegistrar.add("Inventory.ResetFilters", boost::bind(&LLPanelMainInventory::resetFilters, this)); mCommitCallbackRegistrar.add("Inventory.SetSortBy", boost::bind(&LLPanelMainInventory::setSortBy, this, _2)); diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp index ffe864e2207785e3436c9581bb0c300e2d850fd8..3aa6a3b7e5b7b428ffbd6e77ae6b55d91f2fab1f 100644 --- a/indra/newview/llsyswellwindow.cpp +++ b/indra/newview/llsyswellwindow.cpp @@ -203,10 +203,9 @@ void LLSysWellWindow::reshapeWindow() { new_window_height = MAX_WINDOW_HEIGHT; } - S32 newY = curRect.mTop + new_window_height - curRect.getHeight(); - S32 newWidth = curRect.getWidth() < MIN_WINDOW_WIDTH ? MIN_WINDOW_WIDTH - : curRect.getWidth(); - curRect.setLeftTopAndSize(curRect.mLeft, newY, newWidth, new_window_height); + S32 newWidth = curRect.getWidth() < MIN_WINDOW_WIDTH ? MIN_WINDOW_WIDTH : curRect.getWidth(); + + curRect.setLeftTopAndSize(curRect.mLeft, curRect.mTop, newWidth, new_window_height); reshape(curRect.getWidth(), curRect.getHeight(), TRUE); setRect(curRect); } diff --git a/indra/newview/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp index 5d2cebe031aa1e48e552c34602a9d0e5951276e5..ed1dfbb8cd5cb3f3508fb6d556b697ac4bdd76a4 100644 --- a/indra/newview/lltoolbarview.cpp +++ b/indra/newview/lltoolbarview.cpp @@ -30,12 +30,16 @@ #include "lltoolbarview.h" #include "llappviewer.h" +#include "llbutton.h" +#include "llclipboard.h" #include "lldir.h" -#include "llxmlnode.h" +#include "lldockablefloater.h" +#include "lldockcontrol.h" +#include "llimview.h" +#include "lltransientfloatermgr.h" #include "lltoolbar.h" -#include "llbutton.h" #include "lltooldraganddrop.h" -#include "llclipboard.h" +#include "llxmlnode.h" #include "llagent.h" // HACK for destinations guide on startup #include "llfloaterreg.h" // HACK for destinations guide on startup @@ -68,13 +72,14 @@ LLToolBarView::ToolbarSet::ToolbarSet() LLToolBarView::LLToolBarView(const LLToolBarView::Params& p) : LLUICtrl(p), - mToolbarLeft(NULL), - mToolbarRight(NULL), - mToolbarBottom(NULL), mDragStarted(false), mDragToolbarButton(NULL), mToolbarsLoaded(false) { + for (S32 i = 0; i < TOOLBAR_COUNT; i++) + { + mToolbars[i] = NULL; + } } void LLToolBarView::initFromParams(const LLToolBarView::Params& p) @@ -90,46 +95,100 @@ LLToolBarView::~LLToolBarView() BOOL LLToolBarView::postBuild() { - mToolbarLeft = getChild<LLToolBar>("toolbar_left"); - mToolbarRight = getChild<LLToolBar>("toolbar_right"); - mToolbarBottom = getChild<LLToolBar>("toolbar_bottom"); + mToolbars[TOOLBAR_LEFT] = getChild<LLToolBar>("toolbar_left"); + mToolbars[TOOLBAR_RIGHT] = getChild<LLToolBar>("toolbar_right"); + mToolbars[TOOLBAR_BOTTOM] = getChild<LLToolBar>("toolbar_bottom"); - mToolbarLeft->setStartDragCallback(boost::bind(LLToolBarView::startDragTool,_1,_2,_3)); - mToolbarLeft->setHandleDragCallback(boost::bind(LLToolBarView::handleDragTool,_1,_2,_3,_4)); - mToolbarLeft->setHandleDropCallback(boost::bind(LLToolBarView::handleDropTool,_1,_2,_3,_4)); - - mToolbarRight->setStartDragCallback(boost::bind(LLToolBarView::startDragTool,_1,_2,_3)); - mToolbarRight->setHandleDragCallback(boost::bind(LLToolBarView::handleDragTool,_1,_2,_3,_4)); - mToolbarRight->setHandleDropCallback(boost::bind(LLToolBarView::handleDropTool,_1,_2,_3,_4)); - - mToolbarBottom->setStartDragCallback(boost::bind(LLToolBarView::startDragTool,_1,_2,_3)); - mToolbarBottom->setHandleDragCallback(boost::bind(LLToolBarView::handleDragTool,_1,_2,_3,_4)); - mToolbarBottom->setHandleDropCallback(boost::bind(LLToolBarView::handleDropTool,_1,_2,_3,_4)); + for (int i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++) + { + mToolbars[i]->setStartDragCallback(boost::bind(LLToolBarView::startDragTool,_1,_2,_3)); + mToolbars[i]->setHandleDragCallback(boost::bind(LLToolBarView::handleDragTool,_1,_2,_3,_4)); + mToolbars[i]->setHandleDropCallback(boost::bind(LLToolBarView::handleDropTool,_1,_2,_3,_4)); + mToolbars[i]->setButtonAddCallback(boost::bind(LLToolBarView::onToolBarButtonAdded,_1)); + mToolbars[i]->setButtonRemoveCallback(boost::bind(LLToolBarView::onToolBarButtonRemoved,_1)); + } LLAppViewer::instance()->setOnLoginCompletedCallback(boost::bind(&handleLoginToolbarSetup)); return TRUE; } -bool LLToolBarView::hasCommand(const LLCommandId& commandId) const +S32 LLToolBarView::hasCommand(const LLCommandId& commandId) const +{ + S32 command_location = TOOLBAR_NONE; + + for (S32 loc = TOOLBAR_FIRST; loc <= TOOLBAR_LAST; loc++) + { + if (mToolbars[loc]->hasCommand(commandId)) + { + command_location = loc; + break; + } + } + + return command_location; +} + +S32 LLToolBarView::addCommand(const LLCommandId& commandId, EToolBarLocation toolbar, int rank) +{ + int old_rank; + removeCommand(commandId, old_rank); + + S32 command_location = mToolbars[toolbar]->addCommand(commandId, rank); + + return command_location; +} + +S32 LLToolBarView::removeCommand(const LLCommandId& commandId, int& rank) { - bool has_command = false; - if (mToolbarLeft && !has_command) + S32 command_location = hasCommand(commandId); + rank = LLToolBar::RANK_NONE; + + if (command_location != TOOLBAR_NONE) { - has_command = mToolbarLeft->hasCommand(commandId); + rank = mToolbars[command_location]->removeCommand(commandId); } - if (mToolbarRight && !has_command) + + return command_location; +} + +S32 LLToolBarView::enableCommand(const LLCommandId& commandId, bool enabled) +{ + S32 command_location = hasCommand(commandId); + + if (command_location != TOOLBAR_NONE) + { + mToolbars[command_location]->enableCommand(commandId, enabled); + } + + return command_location; +} + +S32 LLToolBarView::stopCommandInProgress(const LLCommandId& commandId) +{ + S32 command_location = hasCommand(commandId); + + if (command_location != TOOLBAR_NONE) { - has_command = mToolbarRight->hasCommand(commandId); + mToolbars[command_location]->stopCommandInProgress(commandId); } - if (mToolbarBottom && !has_command) + + return command_location; +} + +S32 LLToolBarView::flashCommand(const LLCommandId& commandId, bool flash) +{ + S32 command_location = hasCommand(commandId); + + if (command_location != TOOLBAR_NONE) { - has_command = mToolbarBottom->hasCommand(commandId); + mToolbars[command_location]->flashCommand(commandId, flash); } - return has_command; + + return command_location; } -bool LLToolBarView::addCommand(const LLCommandId& command, LLToolBar* toolbar) +bool LLToolBarView::addCommandInternal(const LLCommandId& command, LLToolBar* toolbar) { LLCommandManager& mgr = LLCommandManager::instance(); if (mgr.getCommand(command)) @@ -147,6 +206,7 @@ bool LLToolBarView::addCommand(const LLCommandId& command, LLToolBar* toolbar) bool LLToolBarView::loadToolbars(bool force_default) { LLToolBarView::ToolbarSet toolbar_set; + bool err = false; // Load the toolbars.xml file std::string toolbar_file = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "toolbars.xml"); @@ -164,80 +224,90 @@ bool LLToolBarView::loadToolbars(bool force_default) if(!LLXMLNode::parseFile(toolbar_file, root, NULL)) { llwarns << "Unable to load toolbars from file: " << toolbar_file << llendl; - return false; + err = true; } - if(!root->hasName("toolbars")) + + if (!err && !root->hasName("toolbars")) { llwarns << toolbar_file << " is not a valid toolbars definition file" << llendl; - return false; + err = true; } // Parse the toolbar settings LLXUIParser parser; + if (!err) + { parser.readXUI(root, toolbar_set, toolbar_file); - if (!toolbar_set.validateBlock()) + } + if (!err && !toolbar_set.validateBlock()) { - llerrs << "Unable to validate toolbars from file: " << toolbar_file << llendl; - return false; + llwarns << "Unable to validate toolbars from file: " << toolbar_file << llendl; + err = true; } - // Clear the toolbars now before adding the loaded commands and settings - if (mToolbarLeft) + if (err) { - mToolbarLeft->clearCommandsList(); + if (force_default) + { + llerrs << "Unable to load toolbars from default file : " << toolbar_file << llendl; + return false; } - if (mToolbarRight) - { - mToolbarRight->clearCommandsList(); + // Try to load the default toolbars + return loadToolbars(true); } - if (mToolbarBottom) + + // Clear the toolbars now before adding the loaded commands and settings + for (S32 i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++) { - mToolbarBottom->clearCommandsList(); + if (mToolbars[i]) + { + mToolbars[i]->clearCommandsList(); + } } // Add commands to each toolbar - if (toolbar_set.left_toolbar.isProvided() && mToolbarLeft) + if (toolbar_set.left_toolbar.isProvided() && mToolbars[TOOLBAR_LEFT]) { if (toolbar_set.left_toolbar.button_display_mode.isProvided()) { LLToolBarEnums::ButtonType button_type = toolbar_set.left_toolbar.button_display_mode; - mToolbarLeft->setButtonType(button_type); + mToolbars[TOOLBAR_LEFT]->setButtonType(button_type); } - BOOST_FOREACH(const LLCommandId::Params& command_name_param, toolbar_set.left_toolbar.commands) + BOOST_FOREACH(const LLCommandId::Params& command_params, toolbar_set.left_toolbar.commands) { - if (addCommand(LLCommandId(command_name_param), mToolbarLeft) == false) + if (addCommandInternal(LLCommandId(command_params), mToolbars[TOOLBAR_LEFT])) { - llwarns << "Error adding command '" << command_name_param.name() << "' to left toolbar." << llendl; + llwarns << "Error adding command '" << command_params.name() << "' to left toolbar." << llendl; } } } - if (toolbar_set.right_toolbar.isProvided() && mToolbarRight) + if (toolbar_set.right_toolbar.isProvided() && mToolbars[TOOLBAR_RIGHT]) { if (toolbar_set.right_toolbar.button_display_mode.isProvided()) { LLToolBarEnums::ButtonType button_type = toolbar_set.right_toolbar.button_display_mode; - mToolbarRight->setButtonType(button_type); + mToolbars[TOOLBAR_RIGHT]->setButtonType(button_type); } - BOOST_FOREACH(const LLCommandId::Params& command_name_param, toolbar_set.right_toolbar.commands) + BOOST_FOREACH(const LLCommandId::Params& command_params, toolbar_set.right_toolbar.commands) { - if (addCommand(LLCommandId(command_name_param), mToolbarRight) == false) + if (addCommandInternal(LLCommandId(command_params), mToolbars[TOOLBAR_RIGHT])) { - llwarns << "Error adding command '" << command_name_param.name() << "' to right toolbar." << llendl; + llwarns << "Error adding command '" << command_params.name() << "' to right toolbar." << llendl; } } } - if (toolbar_set.bottom_toolbar.isProvided() && mToolbarBottom) + if (toolbar_set.bottom_toolbar.isProvided() && mToolbars[TOOLBAR_BOTTOM]) { if (toolbar_set.bottom_toolbar.button_display_mode.isProvided()) { LLToolBarEnums::ButtonType button_type = toolbar_set.bottom_toolbar.button_display_mode; - mToolbarBottom->setButtonType(button_type); + mToolbars[TOOLBAR_BOTTOM]->setButtonType(button_type); } - BOOST_FOREACH(const LLCommandId::Params& command_name_param, toolbar_set.bottom_toolbar.commands) + BOOST_FOREACH(const LLCommandId::Params& command_params, toolbar_set.bottom_toolbar.commands) { - if (addCommand(LLCommandId(command_name_param), mToolbarBottom) == false) + if (addCommandInternal(LLCommandId(command_params), mToolbars[TOOLBAR_BOTTOM])) { - llwarns << "Error adding command '" << command_name_param.name() << "' to bottom toolbar." << llendl; + llwarns << "Error adding command '" << command_params.name() << "' to bottom toolbar." << llendl; } } } @@ -269,20 +339,20 @@ void LLToolBarView::saveToolbars() const // Build the parameter tree from the toolbar data LLToolBarView::ToolbarSet toolbar_set; - if (mToolbarLeft) + if (mToolbars[TOOLBAR_LEFT]) { - toolbar_set.left_toolbar.button_display_mode = mToolbarLeft->getButtonType(); - addToToolset(mToolbarLeft->getCommandsList(),toolbar_set.left_toolbar); + toolbar_set.left_toolbar.button_display_mode = mToolbars[TOOLBAR_LEFT]->getButtonType(); + addToToolset(mToolbars[TOOLBAR_LEFT]->getCommandsList(), toolbar_set.left_toolbar); } - if (mToolbarRight) + if (mToolbars[TOOLBAR_RIGHT]) { - toolbar_set.right_toolbar.button_display_mode = mToolbarRight->getButtonType(); - addToToolset(mToolbarRight->getCommandsList(),toolbar_set.right_toolbar); + toolbar_set.right_toolbar.button_display_mode = mToolbars[TOOLBAR_RIGHT]->getButtonType(); + addToToolset(mToolbars[TOOLBAR_RIGHT]->getCommandsList(), toolbar_set.right_toolbar); } - if (mToolbarBottom) + if (mToolbars[TOOLBAR_BOTTOM]) { - toolbar_set.bottom_toolbar.button_display_mode = mToolbarBottom->getButtonType(); - addToToolset(mToolbarBottom->getCommandsList(),toolbar_set.bottom_toolbar); + toolbar_set.bottom_toolbar.button_display_mode = mToolbars[TOOLBAR_BOTTOM]->getButtonType(); + addToToolset(mToolbars[TOOLBAR_BOTTOM]->getCommandsList(), toolbar_set.bottom_toolbar); } // Serialize the parameter tree @@ -323,35 +393,122 @@ void LLToolBarView::addToToolset(command_id_list_t& command_list, Toolbar& toolb } } -void LLToolBarView::draw() +void LLToolBarView::onToolBarButtonAdded(LLView* button) { - //LLPanel* sizer_left = getChild<LLPanel>("sizer_left"); + llassert(button); - LLRect bottom_rect, left_rect, right_rect; + if (button->getName() == "speak") + { + // Add the "Speak" button as a control view in LLTransientFloaterMgr + // to prevent hiding the transient IM floater upon pressing "Speak". + LLTransientFloaterMgr::getInstance()->addControlView(button); + + // Redock incoming and/or outgoing call windows, if applicable + + LLFloater* incoming_floater = LLFloaterReg::getLastFloaterInGroup("incoming_call"); + LLFloater* outgoing_floater = LLFloaterReg::getLastFloaterInGroup("outgoing_call"); + + if (incoming_floater && incoming_floater->isShown()) + { + LLCallDialog* incoming = dynamic_cast<LLCallDialog *>(incoming_floater); + llassert(incoming); + + LLDockControl* dock_control = incoming->getDockControl(); + if (dock_control->getDock() == NULL) + { + incoming->dockToToolbarButton("speak"); + } + } + + if (outgoing_floater && outgoing_floater->isShown()) + { + LLCallDialog* outgoing = dynamic_cast<LLCallDialog *>(outgoing_floater); + llassert(outgoing); + + LLDockControl* dock_control = outgoing->getDockControl(); + if (dock_control->getDock() == NULL) + { + outgoing->dockToToolbarButton("speak"); + } + } + } + else if (button->getName() == "voice") + { + // Add the "Voice controls" button as a control view in LLTransientFloaterMgr + // to prevent hiding the transient IM floater upon pressing "Voice controls". + LLTransientFloaterMgr::getInstance()->addControlView(button); + } +} - if (mToolbarBottom) +void LLToolBarView::onToolBarButtonRemoved(LLView* button) +{ + llassert(button); + + if (button->getName() == "speak") { - mToolbarBottom->getParent()->reshape(mToolbarBottom->getParent()->getRect().getWidth(), mToolbarBottom->getRect().getHeight()); - mToolbarBottom->localRectToOtherView(mToolbarBottom->getLocalRect(), &bottom_rect, this); + LLTransientFloaterMgr::getInstance()->removeControlView(button); + + // Undock incoming and/or outgoing call windows + + LLFloater* incoming_floater = LLFloaterReg::getLastFloaterInGroup("incoming_call"); + LLFloater* outgoing_floater = LLFloaterReg::getLastFloaterInGroup("outgoing_call"); + + if (incoming_floater && incoming_floater->isShown()) + { + LLDockableFloater* incoming = dynamic_cast<LLDockableFloater *>(incoming_floater); + llassert(incoming); + + LLDockControl* dock_control = incoming->getDockControl(); + dock_control->setDock(NULL); + } + + if (outgoing_floater && outgoing_floater->isShown()) + { + LLDockableFloater* outgoing = dynamic_cast<LLDockableFloater *>(outgoing_floater); + llassert(outgoing); + + LLDockControl* dock_control = outgoing->getDockControl(); + dock_control->setDock(NULL); + } } - if (mToolbarLeft) + else if (button->getName() == "voice") { - mToolbarLeft->getParent()->reshape(mToolbarLeft->getRect().getWidth(), mToolbarLeft->getParent()->getRect().getHeight()); - mToolbarLeft->localRectToOtherView(mToolbarLeft->getLocalRect(), &left_rect, this); + LLTransientFloaterMgr::getInstance()->removeControlView(button); } - if (mToolbarRight) +} + +void LLToolBarView::draw() +{ + LLRect toolbar_rects[TOOLBAR_COUNT]; + + for (S32 i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++) { - mToolbarRight->getParent()->reshape(mToolbarRight->getRect().getWidth(), mToolbarRight->getParent()->getRect().getHeight()); - mToolbarRight->localRectToOtherView(mToolbarRight->getLocalRect(), &right_rect, this); + if (mToolbars[i]) + { + LLLayoutStack::ELayoutOrientation orientation = LLToolBarEnums::getOrientation(mToolbars[i]->getSideType()); + + if (orientation == LLLayoutStack::HORIZONTAL) + { + mToolbars[i]->getParent()->reshape(mToolbars[i]->getParent()->getRect().getWidth(), mToolbars[i]->getRect().getHeight()); + } + else + { + mToolbars[i]->getParent()->reshape(mToolbars[i]->getRect().getWidth(), mToolbars[i]->getParent()->getRect().getHeight()); + } + + mToolbars[i]->localRectToOtherView(mToolbars[i]->getLocalRect(), &toolbar_rects[i], this); + } } // Draw drop zones if drop of a tool is active if (isToolDragged()) { LLColor4 drop_color = LLUIColorTable::instance().getColor( "ToolbarDropZoneColor" ); - gl_rect_2d(bottom_rect, drop_color, TRUE); - gl_rect_2d(left_rect, drop_color, TRUE); - gl_rect_2d(right_rect, drop_color, TRUE); + + for (S32 i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++) + { + gl_rect_2d(toolbar_rects[i], drop_color, TRUE); + } } LLUICtrl::draw(); @@ -363,9 +520,9 @@ void LLToolBarView::draw() // ---------------------------------------- -void LLToolBarView::startDragTool(S32 x, S32 y, LLToolBarButton* button) +void LLToolBarView::startDragTool(S32 x, S32 y, LLToolBarButton* toolbarButton) { - resetDragTool(button); + resetDragTool(toolbarButton); // Flag the tool dragging but don't start it yet LLToolDragAndDrop::getInstance()->setDragStart( x, y ); @@ -391,9 +548,7 @@ BOOL LLToolBarView::handleDragTool( S32 x, S32 y, const LLUUID& uuid, LLAssetTyp // Second, stop the command if it is in progress and requires stopping! LLCommandId command_id = LLCommandId(uuid); - gToolBarView->mToolbarLeft->stopCommandInProgress(command_id); - gToolBarView->mToolbarRight->stopCommandInProgress(command_id); - gToolBarView->mToolbarBottom->stopCommandInProgress(command_id); + gToolBarView->stopCommandInProgress(command_id); gToolBarView->mDragStarted = true; return TRUE; @@ -424,10 +579,10 @@ BOOL LLToolBarView::handleDropTool( void* cargo_data, S32 x, S32 y, LLToolBar* t { // Suppress the command from the toolbars (including the one it's dropped in, // this will handle move position). - bool command_present = gToolBarView->hasCommand(command_id); + S32 old_toolbar_loc = gToolBarView->hasCommand(command_id); LLToolBar* old_toolbar = NULL; - if (command_present) + if (old_toolbar_loc != TOOLBAR_NONE) { llassert(gToolBarView->mDragToolbarButton); old_toolbar = gToolBarView->mDragToolbarButton->getParentByType<LLToolBar>(); @@ -437,9 +592,8 @@ BOOL LLToolBarView::handleDropTool( void* cargo_data, S32 x, S32 y, LLToolBar* t } else { - gToolBarView->mToolbarBottom->removeCommand(command_id); - gToolBarView->mToolbarLeft->removeCommand(command_id); - gToolBarView->mToolbarRight->removeCommand(command_id); + int old_rank = LLToolBar::RANK_NONE; + gToolBarView->removeCommand(command_id, old_rank); } } @@ -463,27 +617,29 @@ BOOL LLToolBarView::handleDropTool( void* cargo_data, S32 x, S32 y, LLToolBar* t return handled; } -void LLToolBarView::resetDragTool(LLToolBarButton* button) +void LLToolBarView::resetDragTool(LLToolBarButton* toolbarButton) { // Clear the saved command, toolbar and rank gToolBarView->mDragStarted = false; - gToolBarView->mDragToolbarButton = button; + gToolBarView->mDragToolbarButton = toolbarButton; } void LLToolBarView::setToolBarsVisible(bool visible) { - mToolbarBottom->getParent()->setVisible(visible); - mToolbarLeft->getParent()->setVisible(visible); - mToolbarRight->getParent()->setVisible(visible); + for (S32 i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++) + { + mToolbars[i]->getParent()->setVisible(visible); + } } bool LLToolBarView::isModified() const { bool modified = false; - modified |= mToolbarBottom->isModified(); - modified |= mToolbarLeft->isModified(); - modified |= mToolbarRight->isModified(); + for (S32 i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++) + { + modified |= mToolbars[i]->isModified(); + } return modified; } @@ -496,9 +652,11 @@ bool LLToolBarView::isModified() const void handleLoginToolbarSetup() { // Open the destinations guide by default on first login, per Rhett - if (gSavedSettings.getBOOL("FirstLoginThisInstall") || gAgent.isFirstLogin()) + if (gSavedPerAccountSettings.getBOOL("DisplayDestinationsOnInitialRun") || gAgent.isFirstLogin()) { LLFloaterReg::showInstance("destinations"); + + gSavedPerAccountSettings.setBOOL("DisplayDestinationsOnInitialRun", FALSE); } } diff --git a/indra/newview/lltoolbarview.h b/indra/newview/lltoolbarview.h index 2b26db3802332461ae8fba9c02ce43a3daa9102b..4307d1025804c082a5e3e8983fb2ba1b5129ff13 100644 --- a/indra/newview/lltoolbarview.h +++ b/indra/newview/lltoolbarview.h @@ -39,6 +39,19 @@ class LLUICtrlFactory; class LLToolBarView : public LLUICtrl { public: + typedef enum + { + TOOLBAR_NONE = 0, + TOOLBAR_LEFT, + TOOLBAR_RIGHT, + TOOLBAR_BOTTOM, + + TOOLBAR_COUNT, + + TOOLBAR_FIRST = TOOLBAR_LEFT, + TOOLBAR_LAST = TOOLBAR_BOTTOM, + } EToolBarLocation; + // Xui structure of the toolbar panel struct Params : public LLInitParam::Block<Params, LLUICtrl::Params> {}; @@ -52,6 +65,7 @@ class LLToolBarView : public LLUICtrl { Mandatory<LLToolBarEnums::ButtonType> button_display_mode; Multiple<LLCommandId::Params> commands; + Toolbar(); }; struct ToolbarSet : public LLInitParam::Block<ToolbarSet> @@ -59,6 +73,7 @@ class LLToolBarView : public LLUICtrl Optional<Toolbar> left_toolbar, right_toolbar, bottom_toolbar; + ToolbarSet(); }; @@ -66,9 +81,16 @@ class LLToolBarView : public LLUICtrl virtual ~LLToolBarView(); virtual BOOL postBuild(); virtual void draw(); + // Toolbar view interface with the rest of the world - // Checks if the commandId is being used somewhere in one of the toolbars - bool hasCommand(const LLCommandId& commandId) const; + // Checks if the commandId is being used somewhere in one of the toolbars, returns EToolBarLocation + S32 hasCommand(const LLCommandId& commandId) const; + S32 addCommand(const LLCommandId& commandId, EToolBarLocation toolbar, int rank = LLToolBar::RANK_NONE); + S32 removeCommand(const LLCommandId& commandId, int& rank); // Sets the rank the removed command was at, RANK_NONE if not found + S32 enableCommand(const LLCommandId& commandId, bool enabled); + S32 stopCommandInProgress(const LLCommandId& commandId); + S32 flashCommand(const LLCommandId& commandId, bool flash); + // Loads the toolbars from the existing user or default settings bool loadToolbars(bool force_default = false); // return false if load fails @@ -76,10 +98,10 @@ class LLToolBarView : public LLUICtrl static bool loadDefaultToolbars(); - static void startDragTool(S32 x, S32 y, LLToolBarButton* button); + static void startDragTool(S32 x, S32 y, LLToolBarButton* toolbarButton); static BOOL handleDragTool(S32 x, S32 y, const LLUUID& uuid, LLAssetType::EType type); static BOOL handleDropTool(void* cargo_data, S32 x, S32 y, LLToolBar* toolbar); - static void resetDragTool(LLToolBarButton* button); + static void resetDragTool(LLToolBarButton* toolbarButton); bool isModified() const; @@ -91,13 +113,14 @@ class LLToolBarView : public LLUICtrl private: void saveToolbars() const; - bool addCommand(const LLCommandId& commandId, LLToolBar* toolbar); + bool addCommandInternal(const LLCommandId& commandId, LLToolBar* toolbar); void addToToolset(command_id_list_t& command_list, Toolbar& toolbar) const; + static void onToolBarButtonAdded(LLView* button); + static void onToolBarButtonRemoved(LLView* button); + // Pointers to the toolbars handled by the toolbar view - LLToolBar* mToolbarLeft; - LLToolBar* mToolbarRight; - LLToolBar* mToolbarBottom; + LLToolBar* mToolbars[TOOLBAR_COUNT]; bool mToolbarsLoaded; bool mDragStarted; diff --git a/indra/newview/lltransientfloatermgr.cpp b/indra/newview/lltransientfloatermgr.cpp index c648a6a28adc892ced97913667ebcf0cb61c36b3..3d68c104894f5f59815221ed7655116948beb52d 100644 --- a/indra/newview/lltransientfloatermgr.cpp +++ b/indra/newview/lltransientfloatermgr.cpp @@ -42,9 +42,9 @@ LLTransientFloaterMgr::LLTransientFloaterMgr() &LLTransientFloaterMgr::leftMouseClickCallback, this, _2, _3, _4)); } - mGroupControls.insert(std::pair<ETransientGroup, std::set<LLView*> >(GLOBAL, std::set<LLView*>())); - mGroupControls.insert(std::pair<ETransientGroup, std::set<LLView*> >(DOCKED, std::set<LLView*>())); - mGroupControls.insert(std::pair<ETransientGroup, std::set<LLView*> >(IM, std::set<LLView*>())); + mGroupControls.insert(std::pair<ETransientGroup, controls_set_t >(GLOBAL, controls_set_t())); + mGroupControls.insert(std::pair<ETransientGroup, controls_set_t >(DOCKED, controls_set_t())); + mGroupControls.insert(std::pair<ETransientGroup, controls_set_t >(IM, controls_set_t())); } void LLTransientFloaterMgr::registerTransientFloater(LLTransientFloater* floater) @@ -59,12 +59,16 @@ void LLTransientFloaterMgr::unregisterTransientFloater(LLTransientFloater* float void LLTransientFloaterMgr::addControlView(ETransientGroup group, LLView* view) { - mGroupControls.find(group)->second.insert(view); + if (!view) return; + + mGroupControls.find(group)->second.insert(view->getHandle()); } void LLTransientFloaterMgr::removeControlView(ETransientGroup group, LLView* view) { - mGroupControls.find(group)->second.erase(view); + if (!view) return; + + mGroupControls.find(group)->second.erase(view->getHandle()); } void LLTransientFloaterMgr::addControlView(LLView* view) @@ -89,7 +93,7 @@ void LLTransientFloaterMgr::hideTransientFloaters(S32 x, S32 y) { ETransientGroup group = floater->getGroup(); - bool hide = isControlClicked(mGroupControls.find(group)->second, x, y); + bool hide = isControlClicked(group, mGroupControls.find(group)->second, x, y); if (hide) { floater->setTransientVisible(FALSE); @@ -98,13 +102,25 @@ void LLTransientFloaterMgr::hideTransientFloaters(S32 x, S32 y) } } -bool LLTransientFloaterMgr::isControlClicked(std::set<LLView*>& set, S32 x, S32 y) +bool LLTransientFloaterMgr::isControlClicked(ETransientGroup group, controls_set_t& set, S32 x, S32 y) { + std::list< LLHandle<LLView> > dead_handles; + bool res = true; for (controls_set_t::iterator it = set.begin(); it != set.end(); it++) { - LLView* control_view = *it; + LLView* control_view = NULL; + + LLHandle<LLView> handle = *it; + if (handle.isDead()) + { + dead_handles.push_back(handle); + continue; + } + + control_view = handle.get(); + if (!control_view->getVisible()) { continue; @@ -118,6 +134,13 @@ bool LLTransientFloaterMgr::isControlClicked(std::set<LLView*>& set, S32 x, S32 break; } } + + for (std::list< LLHandle<LLView> >::iterator it = dead_handles.begin(); it != dead_handles.end(); ++it) + { + LLHandle<LLView> handle = *it; + mGroupControls.find(group)->second.erase(handle); + } + return res; } @@ -130,8 +153,8 @@ void LLTransientFloaterMgr::leftMouseClickCallback(S32 x, S32 y, return; } - bool hide = isControlClicked(mGroupControls.find(DOCKED)->second, x, y) - && isControlClicked(mGroupControls.find(GLOBAL)->second, x, y); + bool hide = isControlClicked(DOCKED, mGroupControls.find(DOCKED)->second, x, y) + && isControlClicked(GLOBAL, mGroupControls.find(GLOBAL)->second, x, y); if (hide) { hideTransientFloaters(x, y); diff --git a/indra/newview/lltransientfloatermgr.h b/indra/newview/lltransientfloatermgr.h index 2919244121bdbe80dd0979a8f18d76344f42ecae..b4611c8c87bb4d2954938fba16110e08d9c72a06 100644 --- a/indra/newview/lltransientfloatermgr.h +++ b/indra/newview/lltransientfloatermgr.h @@ -56,14 +56,15 @@ class LLTransientFloaterMgr: public LLSingleton<LLTransientFloaterMgr> void removeControlView(LLView* view); private: + typedef std::set<LLHandle<LLView> > controls_set_t; + typedef std::map<ETransientGroup, controls_set_t > group_controls_t; + void hideTransientFloaters(S32 x, S32 y); void leftMouseClickCallback(S32 x, S32 y, MASK mask); - bool isControlClicked(std::set<LLView*>& set, S32 x, S32 y); -private: + bool isControlClicked(ETransientGroup group, controls_set_t& set, S32 x, S32 y); + std::set<LLTransientFloater*> mTransSet; - typedef std::set<LLView*> controls_set_t; - typedef std::map<ETransientGroup, std::set<LLView*> > group_controls_t; group_controls_t mGroupControls; }; diff --git a/indra/newview/lltranslate.cpp b/indra/newview/lltranslate.cpp index 2f60b6b90b4aa9c18fb91fbcf299fa7927337393..7eb54271f405eb8f96096ad99c3cd18f9b3aef95 100644 --- a/indra/newview/lltranslate.cpp +++ b/indra/newview/lltranslate.cpp @@ -31,82 +31,294 @@ #include <curl/curl.h> #include "llbufferstream.h" +#include "lltrans.h" #include "llui.h" #include "llversioninfo.h" #include "llviewercontrol.h" #include "reader.h" -// These two are concatenated with the language specifiers to form a complete Google Translate URL -const char* LLTranslate::m_GoogleURL = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q="; -const char* LLTranslate::m_GoogleLangSpec = "&langpair="; -float LLTranslate::m_GoogleTimeout = 5; +// virtual +void LLGoogleTranslationHandler::getTranslateURL( + std::string &url, + const std::string &from_lang, + const std::string &to_lang, + const std::string &text) const +{ + url = std::string("https://www.googleapis.com/language/translate/v2?key=") + + getAPIKey() + "&q=" + LLURI::escape(text) + "&target=" + to_lang; + if (!from_lang.empty()) + { + url += "&source=" + from_lang; + } +} -LLSD LLTranslate::m_Header; -// These constants are for the GET header. -const char* LLTranslate::m_AcceptHeader = "Accept"; -const char* LLTranslate::m_AcceptType = "text/plain"; -const char* LLTranslate::m_AgentHeader = "User-Agent"; +// virtual +void LLGoogleTranslationHandler::getKeyVerificationURL( + std::string& url, + const std::string& key) const +{ + url = std::string("https://www.googleapis.com/language/translate/v2/languages?key=") + + key + "&target=en"; +} -// These constants are in the JSON returned from Google -const char* LLTranslate::m_GoogleData = "responseData"; -const char* LLTranslate::m_GoogleTranslation = "translatedText"; -const char* LLTranslate::m_GoogleLanguage = "detectedSourceLanguage"; +// virtual +bool LLGoogleTranslationHandler::parseResponse( + int& status, + const std::string& body, + std::string& translation, + std::string& detected_lang, + std::string& err_msg) const +{ + Json::Value root; + Json::Reader reader; -//static -void LLTranslate::translateMessage(LLHTTPClient::ResponderPtr &result, const std::string &from_lang, const std::string &to_lang, const std::string &mesg) + if (!reader.parse(body, root)) + { + err_msg = reader.getFormatedErrorMessages(); + return false; + } + + if (!root.isObject()) // empty response? should not happen + { + return false; + } + + if (status != STATUS_OK) + { + // Request failed. Extract error message from the response. + parseErrorResponse(root, status, err_msg); + return false; + } + + // Request succeeded, extract translation from the response. + return parseTranslation(root, translation, detected_lang); +} + +// static +void LLGoogleTranslationHandler::parseErrorResponse( + const Json::Value& root, + int& status, + std::string& err_msg) { - std::string url; - getTranslateUrl(url, from_lang, to_lang, mesg); + const Json::Value& error = root.get("error", 0); + if (!error.isObject() || !error.isMember("message") || !error.isMember("code")) + { + return; + } - std::string user_agent = llformat("%s %d.%d.%d (%d)", - LLVersionInfo::getChannel().c_str(), - LLVersionInfo::getMajor(), - LLVersionInfo::getMinor(), - LLVersionInfo::getPatch(), - LLVersionInfo::getBuild()); + err_msg = error["message"].asString(); + status = error["code"].asInt(); +} - if (!m_Header.size()) +// static +bool LLGoogleTranslationHandler::parseTranslation( + const Json::Value& root, + std::string& translation, + std::string& detected_lang) +{ + // JsonCpp is prone to aborting the program on failed assertions, + // so be super-careful and verify the response format. + const Json::Value& data = root.get("data", 0); + if (!data.isObject() || !data.isMember("translations")) { - m_Header.insert(m_AcceptHeader, LLSD(m_AcceptType)); - m_Header.insert(m_AgentHeader, LLSD(user_agent)); + return false; + } + + const Json::Value& translations = data["translations"]; + if (!translations.isArray() || translations.size() == 0) + { + return false; + } + + const Json::Value& first = translations[0U]; + if (!first.isObject() || !first.isMember("translatedText")) + { + return false; } - LLHTTPClient::get(url, result, m_Header, m_GoogleTimeout); + translation = first["translatedText"].asString(); + detected_lang = first.get("detectedSourceLanguage", "").asString(); + return true; } -//static -void LLTranslate::getTranslateUrl(std::string &translate_url, const std::string &from_lang, const std::string &to_lang, const std::string &mesg) +// static +std::string LLGoogleTranslationHandler::getAPIKey() +{ + return gSavedSettings.getString("GoogleTranslateAPIKey"); +} + +// virtual +void LLBingTranslationHandler::getTranslateURL( + std::string &url, + const std::string &from_lang, + const std::string &to_lang, + const std::string &text) const { - char * curl_str = curl_escape(mesg.c_str(), mesg.size()); - std::string const escaped_mesg(curl_str); - curl_free(curl_str); + url = std::string("http://api.microsofttranslator.com/v2/Http.svc/Translate?appId=") + + getAPIKey() + "&text=" + LLURI::escape(text) + "&to=" + to_lang; + if (!from_lang.empty()) + { + url += "&from=" + from_lang; + } +} - translate_url = m_GoogleURL - + escaped_mesg + m_GoogleLangSpec - + from_lang // 'from' language; empty string for auto - + "%7C" // | - + to_lang; // 'to' language +// virtual +void LLBingTranslationHandler::getKeyVerificationURL( + std::string& url, + const std::string& key) const +{ + url = std::string("http://api.microsofttranslator.com/v2/Http.svc/GetLanguagesForTranslate?appId=") + + key; } -//static -bool LLTranslate::parseGoogleTranslate(const std::string& body, std::string &translation, std::string &detected_language) +// virtual +bool LLBingTranslationHandler::parseResponse( + int& status, + const std::string& body, + std::string& translation, + std::string& detected_lang, + std::string& err_msg) const { - Json::Value root; - Json::Reader reader; - - bool success = reader.parse(body, root); - if (!success) + if (status != STATUS_OK) { - LL_WARNS("Translate") << "Non valid response from Google Translate API: '" << reader.getFormatedErrorMessages() << "'" << LL_ENDL; + static const std::string MSG_BEGIN_MARKER = "Message: "; + size_t begin = body.find(MSG_BEGIN_MARKER); + if (begin != std::string::npos) + { + begin += MSG_BEGIN_MARKER.size(); + } + else + { + begin = 0; + err_msg.clear(); + } + size_t end = body.find("</p>", begin); + err_msg = body.substr(begin, end-begin); + LLStringUtil::replaceString(err_msg, "
", ""); // strip CR return false; } - - translation = root[m_GoogleData].get(m_GoogleTranslation, "").asString(); - detected_language = root[m_GoogleData].get(m_GoogleLanguage, "").asString(); + + // Sample response: <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">Hola</string> + size_t begin = body.find(">"); + if (begin == std::string::npos || begin >= (body.size() - 1)) + { + begin = 0; + } + else + { + ++begin; + } + + size_t end = body.find("</string>", begin); + + detected_lang = ""; // unsupported by this API + translation = body.substr(begin, end-begin); + LLStringUtil::replaceString(translation, "
", ""); // strip CR return true; } +// static +std::string LLBingTranslationHandler::getAPIKey() +{ + return gSavedSettings.getString("BingTranslateAPIKey"); +} + +LLTranslate::TranslationReceiver::TranslationReceiver(const std::string& from_lang, const std::string& to_lang) +: mFromLang(from_lang) +, mToLang(to_lang) +, mHandler(LLTranslate::getPreferredHandler()) +{ +} + +// virtual +void LLTranslate::TranslationReceiver::completedRaw( + U32 http_status, + const std::string& reason, + const LLChannelDescriptors& channels, + const LLIOPipe::buffer_ptr_t& buffer) +{ + LLBufferStream istr(channels, buffer.get()); + std::stringstream strstrm; + strstrm << istr.rdbuf(); + + const std::string body = strstrm.str(); + std::string translation, detected_lang, err_msg; + int status = http_status; + LL_DEBUGS("Translate") << "HTTP status: " << status << " " << reason << LL_ENDL; + LL_DEBUGS("Translate") << "Response body: " << body << LL_ENDL; + if (mHandler.parseResponse(status, body, translation, detected_lang, err_msg)) + { + // Fix up the response + LLStringUtil::replaceString(translation, "<", "<"); + LLStringUtil::replaceString(translation, ">",">"); + LLStringUtil::replaceString(translation, ""","\""); + LLStringUtil::replaceString(translation, "'","'"); + LLStringUtil::replaceString(translation, "&","&"); + LLStringUtil::replaceString(translation, "'","'"); + + handleResponse(translation, detected_lang); + } + else + { + if (err_msg.empty()) + { + err_msg = LLTrans::getString("TranslationResponseParseError"); + } + + llwarns << "Translation request failed: " << err_msg << llendl; + handleFailure(status, err_msg); + } +} + +LLTranslate::KeyVerificationReceiver::KeyVerificationReceiver(EService service) +: mService(service) +{ +} + +LLTranslate::EService LLTranslate::KeyVerificationReceiver::getService() const +{ + return mService; +} + +// virtual +void LLTranslate::KeyVerificationReceiver::completedRaw( + U32 http_status, + const std::string& reason, + const LLChannelDescriptors& channels, + const LLIOPipe::buffer_ptr_t& buffer) +{ + bool ok = (http_status == 200); + setVerificationStatus(ok); +} + +//static +void LLTranslate::translateMessage( + TranslationReceiverPtr &receiver, + const std::string &from_lang, + const std::string &to_lang, + const std::string &mesg) +{ + std::string url; + receiver->mHandler.getTranslateURL(url, from_lang, to_lang, mesg); + + LL_DEBUGS("Translate") << "Sending translation request: " << url << LL_ENDL; + sendRequest(url, receiver); +} + +// static +void LLTranslate::verifyKey( + KeyVerificationReceiverPtr& receiver, + const std::string& key) +{ + std::string url; + const LLTranslationAPIHandler& handler = getHandler(receiver->getService()); + handler.getKeyVerificationURL(url, key); + + LL_DEBUGS("Translate") << "Sending key verification request: " << url << LL_ENDL; + sendRequest(url, receiver); +} + //static std::string LLTranslate::getTranslateLanguage() { @@ -119,3 +331,52 @@ std::string LLTranslate::getTranslateLanguage() return language; } +// static +const LLTranslationAPIHandler& LLTranslate::getPreferredHandler() +{ + EService service = SERVICE_BING; + + std::string service_str = gSavedSettings.getString("TranslationService"); + if (service_str == "google") + { + service = SERVICE_GOOGLE; + } + + return getHandler(service); +} + +// static +const LLTranslationAPIHandler& LLTranslate::getHandler(EService service) +{ + static LLGoogleTranslationHandler google; + static LLBingTranslationHandler bing; + + if (service == SERVICE_GOOGLE) + { + return google; + } + + return bing; +} + +// static +void LLTranslate::sendRequest(const std::string& url, LLHTTPClient::ResponderPtr responder) +{ + static const float REQUEST_TIMEOUT = 5; + static LLSD sHeader; + + if (!sHeader.size()) + { + std::string user_agent = llformat("%s %d.%d.%d (%d)", + LLVersionInfo::getChannel().c_str(), + LLVersionInfo::getMajor(), + LLVersionInfo::getMinor(), + LLVersionInfo::getPatch(), + LLVersionInfo::getBuild()); + + sHeader.insert("Accept", "text/plain"); + sHeader.insert("User-Agent", user_agent); + } + + LLHTTPClient::get(url, responder, sHeader, REQUEST_TIMEOUT); +} diff --git a/indra/newview/lltranslate.h b/indra/newview/lltranslate.h index e85a42e878d3116206c0cfc278d7497a8bc9904e..c2330daa8176628ca9a92cf560d10202d4823684 100644 --- a/indra/newview/lltranslate.h +++ b/indra/newview/lltranslate.h @@ -30,89 +30,257 @@ #include "llhttpclient.h" #include "llbufferstream.h" +namespace Json +{ + class Value; +} + +/** + * Handler of an HTTP machine translation service. + * + * Derived classes know the service URL + * and how to parse the translation result. + */ +class LLTranslationAPIHandler +{ +public: + /** + * Get URL for translation of the given string. + * + * Sending HTTP GET request to the URL will initiate translation. + * + * @param[out] url Place holder for the result. + * @param from_lang Source language. Leave empty for auto-detection. + * @param to_lang Target language. + * @param text Text to translate. + */ + virtual void getTranslateURL( + std::string &url, + const std::string &from_lang, + const std::string &to_lang, + const std::string &text) const = 0; + + /** + * Get URL to verify the given API key. + * + * Sending request to the URL verifies the key. + * Positive HTTP response (code 200) means that the key is valid. + * + * @param[out] url Place holder for the URL. + * @param[in] key Key to verify. + */ + virtual void getKeyVerificationURL( + std::string &url, + const std::string &key) const = 0; + + /** + * Parse translation response. + * + * @param[in,out] status HTTP status. May be modified while parsing. + * @param body Response text. + * @param[out] translation Translated text. + * @param[out] detected_lang Detected source language. May be empty. + * @param[out] err_msg Error message (in case of error). + */ + virtual bool parseResponse( + int& status, + const std::string& body, + std::string& translation, + std::string& detected_lang, + std::string& err_msg) const = 0; + + virtual ~LLTranslationAPIHandler() {} + +protected: + static const int STATUS_OK = 200; +}; + +/// Google Translate v2 API handler. +class LLGoogleTranslationHandler : public LLTranslationAPIHandler +{ + LOG_CLASS(LLGoogleTranslationHandler); + +public: + /*virtual*/ void getTranslateURL( + std::string &url, + const std::string &from_lang, + const std::string &to_lang, + const std::string &text) const; + /*virtual*/ void getKeyVerificationURL( + std::string &url, + const std::string &key) const; + /*virtual*/ bool parseResponse( + int& status, + const std::string& body, + std::string& translation, + std::string& detected_lang, + std::string& err_msg) const; + +private: + static void parseErrorResponse( + const Json::Value& root, + int& status, + std::string& err_msg); + static bool parseTranslation( + const Json::Value& root, + std::string& translation, + std::string& detected_lang); + static std::string getAPIKey(); +}; + +/// Microsoft Translator v2 API handler. +class LLBingTranslationHandler : public LLTranslationAPIHandler +{ + LOG_CLASS(LLBingTranslationHandler); + +public: + /*virtual*/ void getTranslateURL( + std::string &url, + const std::string &from_lang, + const std::string &to_lang, + const std::string &text) const; + /*virtual*/ void getKeyVerificationURL( + std::string &url, + const std::string &key) const; + /*virtual*/ bool parseResponse( + int& status, + const std::string& body, + std::string& translation, + std::string& detected_lang, + std::string& err_msg) const; +private: + static std::string getAPIKey(); +}; + +/** + * Entry point for machine translation services. + * + * Basically, to translate a string, we need to know the URL + * of a translation service, have a valid API for the service + * and be given the target language. + * + * Callers specify the string to translate and the target language, + * LLTranslate takes care of the rest. + * + * API keys for translation are taken from saved settings. + */ class LLTranslate { LOG_CLASS(LLTranslate); + public : + + typedef enum e_service { + SERVICE_BING, + SERVICE_GOOGLE, + } EService; + + /** + * Subclasses are supposed to handle translation results (e.g. show them in chat) + */ class TranslationReceiver: public LLHTTPClient::Responder { + public: + + /** + * Using mHandler, parse incoming response. + * + * Calls either handleResponse() or handleFailure() + * depending on the HTTP status code and parsing success. + * + * @see handleResponse() + * @see handleFailure() + * @see mHandler + */ + /*virtual*/ void completedRaw( + U32 http_status, + const std::string& reason, + const LLChannelDescriptors& channels, + const LLIOPipe::buffer_ptr_t& buffer); + protected: - TranslationReceiver(const std::string &from_lang, const std::string &to_lang) - : m_fromLang(from_lang), - m_toLang(to_lang) - { - } + friend class LLTranslate; - virtual void handleResponse(const std::string &translation, const std::string &recognized_lang) {}; - virtual void handleFailure() {}; + /// Remember source and target languages for subclasses to be able to filter inappropriate results. + TranslationReceiver(const std::string& from_lang, const std::string& to_lang); + /// Override point to handle successful translation. + virtual void handleResponse(const std::string &translation, const std::string &recognized_lang) = 0; + + /// Override point to handle unsuccessful translation. + virtual void handleFailure(int status, const std::string& err_msg) = 0; + + std::string mFromLang; + std::string mToLang; + const LLTranslationAPIHandler& mHandler; + }; + + /** + * Subclasses are supposed to handle API key verification result. + */ + class KeyVerificationReceiver: public LLHTTPClient::Responder + { public: - ~TranslationReceiver() - { - } - - virtual void completedRaw( U32 status, - const std::string& reason, - const LLChannelDescriptors& channels, - const LLIOPipe::buffer_ptr_t& buffer) - { - if (200 <= status && status < 300) - { - LLBufferStream istr(channels, buffer.get()); - std::stringstream strstrm; - strstrm << istr.rdbuf(); - - const std::string result = strstrm.str(); - std::string translation; - std::string detected_language; - - if (!parseGoogleTranslate(result, translation, detected_language)) - { - handleFailure(); - return; - } - - // Fix up the response - LLStringUtil::replaceString(translation, "<", "<"); - LLStringUtil::replaceString(translation, ">",">"); - LLStringUtil::replaceString(translation, ""","\""); - LLStringUtil::replaceString(translation, "'","'"); - LLStringUtil::replaceString(translation, "&","&"); - LLStringUtil::replaceString(translation, "'","'"); - - handleResponse(translation, detected_language); - } - else - { - LL_WARNS("Translate") << "HTTP request for Google Translate failed with status " << status << ", reason: " << reason << LL_ENDL; - handleFailure(); - } - } + EService getService() const; protected: - const std::string m_toLang; - const std::string m_fromLang; + /** + * Save the translation service the key belongs to. + * + * Subclasses need to know it. + * + * @see getService() + */ + KeyVerificationReceiver(EService service); + + /** + * Parse verification response. + * + * Calls setVerificationStatus() with the verification status, + * which is true if HTTP status code is 200. + * + * @see setVerificationStatus() + */ + /*virtual*/ void completedRaw( + U32 http_status, + const std::string& reason, + const LLChannelDescriptors& channels, + const LLIOPipe::buffer_ptr_t& buffer); + + /** + * Override point for subclasses to handle key verification status. + */ + virtual void setVerificationStatus(bool ok) = 0; + + EService mService; }; - static void translateMessage(LLHTTPClient::ResponderPtr &result, const std::string &from_lang, const std::string &to_lang, const std::string &mesg); - static float m_GoogleTimeout; + typedef boost::intrusive_ptr<TranslationReceiver> TranslationReceiverPtr; + typedef boost::intrusive_ptr<KeyVerificationReceiver> KeyVerificationReceiverPtr; + + /** + * Translate given text. + * + * @param receiver Object to pass translation result to. + * @param from_lang Source language. Leave empty for auto-detection. + * @param to_lang Target language. + * @param mesg Text to translate. + */ + static void translateMessage(TranslationReceiverPtr &receiver, const std::string &from_lang, const std::string &to_lang, const std::string &mesg); + + /** + * Verify given API key of a translation service. + * + * @param receiver Object to pass verification result to. + * @param key Key to verify. + */ + static void verifyKey(KeyVerificationReceiverPtr& receiver, const std::string& key); static std::string getTranslateLanguage(); private: - static void getTranslateUrl(std::string &translate_url, const std::string &from_lang, const std::string &to_lang, const std::string &text); - static bool parseGoogleTranslate(const std::string& body, std::string &translation, std::string &detected_language); - - static LLSD m_Header; - static const char* m_GoogleURL; - static const char* m_GoogleLangSpec; - static const char* m_AcceptHeader; - static const char* m_AcceptType; - static const char* m_AgentHeader; - static const char* m_UserAgent; - - static const char* m_GoogleData; - static const char* m_GoogleTranslation; - static const char* m_GoogleLanguage; + static const LLTranslationAPIHandler& getPreferredHandler(); + static const LLTranslationAPIHandler& getHandler(EService service); + static void sendRequest(const std::string& url, LLHTTPClient::ResponderPtr responder); }; #endif diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index ba53540374680e821dbd19f6a65c03f311956ab1..c761969fcfaab2b49986ac5e8e1c966f2c07a84c 100644 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -107,6 +107,7 @@ #include "llfloatertos.h" #include "llfloatertopobjects.h" #include "llfloatertoybox.h" +#include "llfloatertranslationsettings.h" #include "llfloateruipreview.h" #include "llfloatervoiceeffect.h" #include "llfloaterwhitelistentry.h" @@ -248,6 +249,7 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterReg::add("preferences", "floater_preferences.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPreference>); LLFloaterReg::add("prefs_proxy", "floater_preferences_proxy.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPreferenceProxy>); LLFloaterReg::add("prefs_hardware_settings", "floater_hardware_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterHardwareSettings>); + LLFloaterReg::add("prefs_translation", "floater_translation_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterTranslationSettings>); LLFloaterReg::add("perm_prefs", "floater_perm_prefs.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPerms>); LLFloaterReg::add("picks", "floater_picks.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSidePanelContainer>); LLFloaterReg::add("pref_joystick", "floater_joystick.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterJoystick>); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 2345fbfd6a2377f41a4665261e8d61776d2593f6..22d95563d86d78f206ccdfe1c988ff46aa367e5c 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -968,6 +968,10 @@ U32 info_display_from_string(std::string info_display) { return LLPipeline::RENDER_DEBUG_SCULPTED; } + else if ("wind vectors" == info_display) + { + return LLPipeline::RENDER_DEBUG_WIND_VECTORS; + } else { return 0; @@ -980,6 +984,8 @@ class LLAdvancedToggleInfoDisplay : public view_listener_t { U32 info_display = info_display_from_string( userdata.asString() ); + LL_INFOS("ViewerMenu") << "toggle " << userdata.asString() << LL_ENDL; + if ( info_display != 0 ) { LLPipeline::toggleRenderDebug( (void*)info_display ); @@ -997,6 +1003,8 @@ class LLAdvancedCheckInfoDisplay : public view_listener_t U32 info_display = info_display_from_string( userdata.asString() ); bool new_value = false; + LL_INFOS("ViewerMenu") << "check " << userdata.asString() << LL_ENDL; + if ( info_display != 0 ) { new_value = LLPipeline::toggleRenderDebugControl( (void*)info_display ); @@ -7962,6 +7970,9 @@ void initialize_menus() view_listener_t::addEnable(new LLUploadCostCalculator(), "Upload.CalculateCosts"); + + commit.add("Inventory.NewWindow", boost::bind(&LLFloaterInventory::showAgentInventory)); + // Agent commit.add("Agent.toggleFlying", boost::bind(&LLAgent::toggleFlying)); enable.add("Agent.enableFlying", boost::bind(&LLAgent::enableFlying)); @@ -8337,6 +8348,8 @@ void initialize_menus() view_listener_t::addMenu(new LLGoToObject(), "GoToObject"); commit.add("PayObject", boost::bind(&handle_give_money_dialog)); + commit.add("Inventory.NewWindow", boost::bind(&LLFloaterInventory::showAgentInventory)); + enable.add("EnablePayObject", boost::bind(&enable_pay_object)); enable.add("EnablePayAvatar", boost::bind(&enable_pay_avatar)); enable.add("EnableEdit", boost::bind(&enable_object_edit)); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index f0d53668d40c567d13a2287541eb4294b1dbc65e..a9ca70fd26f8fe731db1066c25cf82fcca1f7330 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -3121,7 +3121,7 @@ public : { // filter out non-interesting responeses if ( !translation.empty() - && (m_toLang != detected_language) + && (mToLang != detected_language) && (LLStringUtil::compareInsensitive(translation, m_origMesg) != 0) ) { m_chat.mText += " (" + translation + ")"; @@ -3130,10 +3130,13 @@ public : LLNotificationsUI::LLNotificationManager::instance().onChat(m_chat, m_toastArgs); } - void handleFailure() + void handleFailure(int status, const std::string& err_msg) { - LLTranslate::TranslationReceiver::handleFailure(); - m_chat.mText += " (?)"; + llwarns << "Translation failed for mesg " << m_origMesg << " toLang " << mToLang << " fromLang " << mFromLang << llendl; + + std::string msg = LLTrans::getString("TranslationFailed", LLSD().with("[REASON]", err_msg)); + LLStringUtil::replaceString(msg, "\n", " "); // we want one-line error messages + m_chat.mText += " (" + msg + ")"; LLNotificationsUI::LLNotificationManager::instance().onChat(m_chat, m_toastArgs); } @@ -3371,7 +3374,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data) const std::string from_lang = ""; // leave empty to trigger autodetect const std::string to_lang = LLTranslate::getTranslateLanguage(); - LLHTTPClient::ResponderPtr result = ChatTranslationReceiver::build(from_lang, to_lang, mesg, chat, args); + LLTranslate::TranslationReceiverPtr result = ChatTranslationReceiver::build(from_lang, to_lang, mesg, chat, args); LLTranslate::translateMessage(result, from_lang, to_lang, mesg); } else diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp old mode 100644 new mode 100755 diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp old mode 100644 new mode 100755 diff --git a/indra/newview/llwind.cpp b/indra/newview/llwind.cpp index 69d309044296bdbfca9c6ec5c8bb1fa44d2db54c..4c39fb5b749f304bdbff03dd844ea2ec5d9672f0 100644 --- a/indra/newview/llwind.cpp +++ b/indra/newview/llwind.cpp @@ -46,16 +46,12 @@ #include "llworld.h" -const F32 CLOUD_DIVERGENCE_COEF = 0.5f; - - ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// LLWind::LLWind() -: mSize(16), - mCloudDensityp(NULL) +: mSize(16) { init(); } @@ -65,8 +61,6 @@ LLWind::~LLWind() { delete [] mVelX; delete [] mVelY; - delete [] mCloudVelX; - delete [] mCloudVelY; } @@ -77,31 +71,23 @@ LLWind::~LLWind() void LLWind::init() { + LL_DEBUGS("Wind") << "initializing wind size: "<< mSize << LL_ENDL; + // Initialize vector data mVelX = new F32[mSize*mSize]; mVelY = new F32[mSize*mSize]; - mCloudVelX = new F32[mSize*mSize]; - mCloudVelY = new F32[mSize*mSize]; - S32 i; for (i = 0; i < mSize*mSize; i++) { mVelX[i] = 0.5f; mVelY[i] = 0.5f; - mCloudVelX[i] = 0.0f; - mCloudVelY[i] = 0.0f; } } void LLWind::decompress(LLBitPack &bitpack, LLGroupHeader *group_headerp) { - if (!mCloudDensityp) - { - return; - } - LLPatchHeader patch_header; S32 buffer[16*16]; @@ -122,22 +108,15 @@ void LLWind::decompress(LLBitPack &bitpack, LLGroupHeader *group_headerp) decode_patch(bitpack, buffer); decompress_patch(mVelY, buffer, &patch_header); - - S32 i, j, k; - // HACK -- mCloudVelXY is the same as mVelXY, except we add a divergence - // that is proportional to the gradient of the cloud density - // ==> this helps to clump clouds together - // NOTE ASSUMPTION: cloud density has the same dimensions as the wind field - // This needs to be fixed... causes discrepency at region boundaries for (j=1; j<mSize-1; j++) { for (i=1; i<mSize-1; i++) { k = i + j * mSize; - *(mCloudVelX + k) = *(mVelX + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k + 1) - *(mCloudDensityp + k - 1)); - *(mCloudVelY + k) = *(mVelY + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k + mSize) - *(mCloudDensityp + k - mSize)); + *(mVelX + k) = *(mVelX + k); + *(mVelY + k) = *(mVelY + k); } } @@ -145,29 +124,29 @@ void LLWind::decompress(LLBitPack &bitpack, LLGroupHeader *group_headerp) for (j=1; j<mSize-1; j++) { k = i + j * mSize; - *(mCloudVelX + k) = *(mVelX + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k) - *(mCloudDensityp + k - 2)); - *(mCloudVelY + k) = *(mVelY + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k + mSize) - *(mCloudDensityp + k - mSize)); + *(mVelX + k) = *(mVelX + k); + *(mVelY + k) = *(mVelY + k); } i = 0; for (j=1; j<mSize-1; j++) { k = i + j * mSize; - *(mCloudVelX + k) = *(mVelX + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k + 2) - *(mCloudDensityp + k)); - *(mCloudVelY + k) = *(mVelY + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k + mSize) - *(mCloudDensityp + k + mSize)); + *(mVelX + k) = *(mVelX + k); + *(mVelY + k) = *(mVelY + k); } j = mSize - 1; for (i=1; i<mSize-1; i++) { k = i + j * mSize; - *(mCloudVelX + k) = *(mVelX + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k + 1) - *(mCloudDensityp + k - 1)); - *(mCloudVelY + k) = *(mVelY + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k) - *(mCloudDensityp + k - 2*mSize)); + *(mVelX + k) = *(mVelX + k); + *(mVelY + k) = *(mVelY + k); } j = 0; for (i=1; i<mSize-1; i++) { k = i + j * mSize; - *(mCloudVelX + k) = *(mVelX + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k + 1) - *(mCloudDensityp + k -1)); - *(mCloudVelY + k) = *(mVelY + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k + 2*mSize) - *(mCloudDensityp + k)); + *(mVelX + k) = *(mVelX + k); + *(mVelY + k) = *(mVelY + k); } } @@ -280,74 +259,6 @@ LLVector3 LLWind::getVelocity(const LLVector3 &pos_region) return r_val * WIND_SCALE_HACK; } - -LLVector3 LLWind::getCloudVelocity(const LLVector3 &pos_region) -{ - llassert(mSize == 16); - // Resolves value of wind at a location relative to SW corner of region - // - // Returns wind magnitude in X,Y components of vector3 - LLVector3 r_val; - F32 dx,dy; - S32 k; - - LLVector3 pos_clamped_region(pos_region); - - F32 region_width_meters = LLWorld::getInstance()->getRegionWidthInMeters(); - - if (pos_clamped_region.mV[VX] < 0.f) - { - pos_clamped_region.mV[VX] = 0.f; - } - else if (pos_clamped_region.mV[VX] >= region_width_meters) - { - pos_clamped_region.mV[VX] = (F32) fmod(pos_clamped_region.mV[VX], region_width_meters); - } - - if (pos_clamped_region.mV[VY] < 0.f) - { - pos_clamped_region.mV[VY] = 0.f; - } - else if (pos_clamped_region.mV[VY] >= region_width_meters) - { - pos_clamped_region.mV[VY] = (F32) fmod(pos_clamped_region.mV[VY], region_width_meters); - } - - - S32 i = llfloor(pos_clamped_region.mV[VX] * mSize / region_width_meters); - S32 j = llfloor(pos_clamped_region.mV[VY] * mSize / region_width_meters); - k = i + j*mSize; - dx = ((pos_clamped_region.mV[VX] * mSize / region_width_meters) - (F32) i); - dy = ((pos_clamped_region.mV[VY] * mSize / region_width_meters) - (F32) j); - - if ((i < mSize-1) && (j < mSize-1)) - { - // Interior points, no edges - r_val.mV[VX] = mCloudVelX[k]*(1.0f - dx)*(1.0f - dy) + - mCloudVelX[k + 1]*dx*(1.0f - dy) + - mCloudVelX[k + mSize]*dy*(1.0f - dx) + - mCloudVelX[k + mSize + 1]*dx*dy; - r_val.mV[VY] = mCloudVelY[k]*(1.0f - dx)*(1.0f - dy) + - mCloudVelY[k + 1]*dx*(1.0f - dy) + - mCloudVelY[k + mSize]*dy*(1.0f - dx) + - mCloudVelY[k + mSize + 1]*dx*dy; - } - else - { - r_val.mV[VX] = mCloudVelX[k]; - r_val.mV[VY] = mCloudVelY[k]; - } - - r_val.mV[VZ] = 0.f; - return r_val * WIND_SCALE_HACK; -} - - -void LLWind::setCloudDensityPointer(F32 *densityp) -{ - mCloudDensityp = densityp; -} - void LLWind::setOriginGlobal(const LLVector3d &origin_global) { mOriginGlobal = origin_global; diff --git a/indra/newview/llwind.h b/indra/newview/llwind.h index 925cb6d6428c79bfb2cda780af9e560a93affd9f..3b57f07124d2ad0563c046e8324028b969b56daa 100644 --- a/indra/newview/llwind.h +++ b/indra/newview/llwind.h @@ -27,7 +27,6 @@ #ifndef LL_LLWIND_H #define LL_LLWIND_H -//#include "vmath.h" #include "llmath.h" #include "v3math.h" #include "v3dmath.h" @@ -44,25 +43,21 @@ class LLWind ~LLWind(); void renderVectors(); LLVector3 getVelocity(const LLVector3 &location); // "location" is region-local - LLVector3 getCloudVelocity(const LLVector3 &location); // "location" is region-local LLVector3 getVelocityNoisy(const LLVector3 &location, const F32 dim); // "location" is region-local void decompress(LLBitPack &bitpack, LLGroupHeader *group_headerp); LLVector3 getAverage(); - void setCloudDensityPointer(F32 *densityp); void setOriginGlobal(const LLVector3d &origin_global); private: S32 mSize; F32 * mVelX; F32 * mVelY; - F32 * mCloudVelX; - F32 * mCloudVelY; - F32 * mCloudDensityp; LLVector3d mOriginGlobal; void init(); + LOG_CLASS(LLWind); }; #endif diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index a50f66f2829d46690f2475c5a562f0d8a3ec224c..93354e65797e6e6f4c8e19790a077ed6ea451016 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -4383,6 +4383,11 @@ void LLPipeline::renderDebug() } } + if (mRenderDebugMask & RENDER_DEBUG_WIND_VECTORS) + { + gAgent.getRegion()->mWind.renderVectors(); + } + if (mRenderDebugMask & RENDER_DEBUG_COMPOSITION) { // Debug composition layers diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h index 27ee2745b502ded96937f976b86c7f161353ff34..0661de8cec237418f952910c6eaae08f78ca20a4 100644 --- a/indra/newview/pipeline.h +++ b/indra/newview/pipeline.h @@ -438,7 +438,7 @@ class LLPipeline RENDER_DEBUG_VERIFY = 0x0000002, RENDER_DEBUG_BBOXES = 0x0000004, RENDER_DEBUG_OCTREE = 0x0000008, - RENDER_DEBUG_PICKING = 0x0000010, + RENDER_DEBUG_WIND_VECTORS = 0x0000010, RENDER_DEBUG_OCCLUSION = 0x0000020, RENDER_DEBUG_POINTS = 0x0000040, RENDER_DEBUG_TEXTURE_PRIORITY = 0x0000080, diff --git a/indra/newview/skins/default/textures/windows/Flyout_Left.png b/indra/newview/skins/default/textures/windows/Flyout_Left.png new file mode 100644 index 0000000000000000000000000000000000000000..6ac9fe2efd4bad4f71070826fd23b1a64eb5080a Binary files /dev/null and b/indra/newview/skins/default/textures/windows/Flyout_Left.png differ diff --git a/indra/newview/skins/default/textures/windows/Flyout_Right.png b/indra/newview/skins/default/textures/windows/Flyout_Right.png new file mode 100644 index 0000000000000000000000000000000000000000..aa1f0625aadf1c81e5034f21eb66ecfa88a451ae Binary files /dev/null and b/indra/newview/skins/default/textures/windows/Flyout_Right.png differ diff --git a/indra/newview/skins/default/xui/da/floater_about.xml b/indra/newview/skins/default/xui/da/floater_about.xml index 0ccaab73bafb02d312ca3d07dabd073fd8713229..fc8bc33096d17eb5a96f689fb1511afe9ef87da1 100644 --- a/indra/newview/skins/default/xui/da/floater_about.xml +++ b/indra/newview/skins/default/xui/da/floater_about.xml @@ -10,7 +10,7 @@ <floater.string name="AboutPosition"> Du er ved [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1] i regionen [REGION] lokaliseret ved <nolink>[HOSTNAME]</nolink> ([HOSTIP]) [SERVER_VERSION] -[[SERVER_RELEASE_NOTES_URL] [ReleaseNotes]] +[SERVER_RELEASE_NOTES_URL] </floater.string> <floater.string name="AboutSystem"> CPU: [CPU] diff --git a/indra/newview/skins/default/xui/de/inspect_group.xml b/indra/newview/skins/default/xui/de/inspect_group.xml index d85ca7ce4dde0b22a63db7e5b855dfd0938d5f6b..60fa8ff0d83b8bc47a08203732b2b0bf8ca8882f 100644 --- a/indra/newview/skins/default/xui/de/inspect_group.xml +++ b/indra/newview/skins/default/xui/de/inspect_group.xml @@ -26,7 +26,7 @@ Hoch solln sie leben! Elche forever! Und auch Mungos! <text name="group_cost"> Mitgliedschaft: 123 L$ </text> - <button label="Zusammen" name="join_btn"/> + <button label="Beitreten" name="join_btn"/> <button label="Verlassen" name="leave_btn"/> <button label="Profil anzeigen" name="view_profile_btn"/> </floater> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_general.xml b/indra/newview/skins/default/xui/de/panel_preferences_general.xml index 5c8b8302c8ead0cd48a74abb41669d815d08a1bd..979ccba48d1fc4dbe72908f446a1f089953765b5 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_general.xml @@ -16,7 +16,7 @@ <combo_box.item label="РуÑÑкий (Russisch) – Beta" name="Russian"/> <combo_box.item label="Türkçe (Türkisch) – Beta" name="Turkish"/> <combo_box.item label="日本語 (Japanisch) - Beta" name="(Japanese)"/> - <combo_box.item label="æ£é«” (Traditionelles Chinesisch) – Beta" name="Traditional Chinese"/> + <combo_box.item label="æ£é«”䏿–‡ (Traditionelles Chinesisch) – Beta" name="Traditional Chinese"/> </combo_box> <text name="language_textbox2"> (Erfordert Neustart) diff --git a/indra/newview/skins/default/xui/en/floater_chat_bar.xml b/indra/newview/skins/default/xui/en/floater_chat_bar.xml index 989b4a0580291b268ce78582cd65674b76793bbe..87606c1a2aaeb61e0ca8ebd30f8c02498fb776d6 100644 --- a/indra/newview/skins/default/xui/en/floater_chat_bar.xml +++ b/indra/newview/skins/default/xui/en/floater_chat_bar.xml @@ -15,6 +15,7 @@ min_height="60" min_width="150" can_resize="true" + default_tab_group="1" name="chat_bar" width="380"> <panel @@ -26,50 +27,56 @@ visible="false" filename="panel_nearby_chat.xml" name="nearby_chat" /> - <panel width="380" height="31" left="0" bottom="-1" follows="left|right|bottom"> - <line_editor - border_style="line" - border_thickness="1" - follows="left|right" - height="23" - label="Click here to chat." - layout="topleft" - left_delta="7" - left="0" - max_length_bytes="1023" - name="chat_box" - text_pad_left="5" - text_pad_right="25" - tool_tip="Press Enter to say, Ctrl+Enter to shout" - top="2" - width="335" /> - <output_monitor - auto_update="true" - follows="right" - draw_border="false" - height="16" - layout="topleft" - left_pad="-24" - mouse_opaque="true" - name="chat_zone_indicator" - top="6" - visible="true" - width="20" /> - <button - follows="right" - is_toggle="true" - width="20" - top="2" - layout="topleft" - left_pad="12" - image_disabled="ComboButton_UpOff" - image_unselected="ComboButton_UpOff" - image_selected="ComboButton_On" - image_pressed="ComboButton_UpSelected" - image_pressed_selected="ComboButton_Selected" - height="23" - name="show_nearby_chat" - tool_tip="Shows/hides nearby chat log"> - </button> + <panel width="380" + height="31" + left="0" + bottom="-1" + follows="left|right|bottom" + tab_group="1"> + <line_editor + border_style="line" + border_thickness="1" + follows="left|right" + height="23" + label="Click here to chat." + layout="topleft" + left_delta="7" + left="0" + max_length_bytes="1023" + name="chat_box" + text_pad_left="5" + text_pad_right="25" + tool_tip="Press Enter to say, Ctrl+Enter to shout" + top="2" + width="335" /> + <output_monitor + auto_update="true" + follows="right" + draw_border="false" + height="16" + layout="topleft" + left_pad="-24" + mouse_opaque="true" + name="chat_zone_indicator" + top="6" + visible="true" + width="20" /> + <button + follows="right" + is_toggle="true" + width="20" + top="2" + layout="topleft" + left_pad="12" + image_disabled="ComboButton_UpOff" + image_unselected="ComboButton_UpOff" + image_selected="ComboButton_On" + image_pressed="ComboButton_UpSelected" + image_pressed_selected="ComboButton_Selected" + height="23" + chrome="true" + name="show_nearby_chat" + tool_tip="Shows/hides nearby chat log"> + </button> </panel> </floater> diff --git a/indra/newview/skins/default/xui/en/floater_model_preview.xml b/indra/newview/skins/default/xui/en/floater_model_preview.xml old mode 100644 new mode 100755 diff --git a/indra/newview/skins/default/xui/en/floater_outgoing_call.xml b/indra/newview/skins/default/xui/en/floater_outgoing_call.xml index 9db6568ee3965a766cdb9a9d5f45f2ae1c0dc407..ffbb6aa28b4af568d0d616d66b6bfaa7be4bb866 100644 --- a/indra/newview/skins/default/xui/en/floater_outgoing_call.xml +++ b/indra/newview/skins/default/xui/en/floater_outgoing_call.xml @@ -8,6 +8,7 @@ layout="topleft" name="outgoing call" help_topic="outgoing_call" + save_dock_state="true" title="CALLING" width="410"> <floater.string diff --git a/indra/newview/skins/default/xui/en/floater_toybox.xml b/indra/newview/skins/default/xui/en/floater_toybox.xml index c7e09bf45e2ed4f33b4b628f9c7b2d2fe2cfb3dc..ef3951a1cda3895e9e68a9d1c569bb8a63b26fe1 100644 --- a/indra/newview/skins/default/xui/en/floater_toybox.xml +++ b/indra/newview/skins/default/xui/en/floater_toybox.xml @@ -13,7 +13,7 @@ open_positioning="centered" save_rect="true" single_instance="true" - title="CUSTOMIZE TOOLBARS" + title="TOOLBAR BUTTONS" width="650"> <text follows="left|top" diff --git a/indra/newview/skins/default/xui/en/floater_translation_settings.xml b/indra/newview/skins/default/xui/en/floater_translation_settings.xml new file mode 100644 index 0000000000000000000000000000000000000000..c03f7512656885979c35150b31aca036d92c7c08 --- /dev/null +++ b/indra/newview/skins/default/xui/en/floater_translation_settings.xml @@ -0,0 +1,244 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<floater + legacy_header_height="18" + height="310" + layout="topleft" + name="floater_translation_settings" + help_topic="environment_editor_floater" + save_rect="true" + title="CHAT TRANSLATION SETTINGS" + width="485"> + + <string name="bing_api_key_not_verified">Bing appID not verified. Please try again.</string> + <string name="google_api_key_not_verified">Google API key not verified. Please try again.</string> + + <string name="bing_api_key_verified">Bing appID verified.</string> + <string name="google_api_key_verified">Google API key verified.</string> + + <check_box + height="16" + label="Enable machine translation while chatting" + layout="topleft" + left="10" + name="translate_chat_checkbox" + top="30" + width="20" /> + <text + height="20" + follows="left|top" + layout="topleft" + left="40" + name="translate_language_label" + top_pad="20" + width="130"> + Translate chat into: + </text> + <combo_box + allow_text_entry="true" + follows="left|top" + height="23" + left_pad="10" + max_chars="135" + mouse_opaque="true" + name="translate_language_combo" + top_delta="-5" + width="190"> + <combo_box.item + label="System Default" + name="System Default Language" + value="default" /> + <combo_box.item + label="English" + name="English" + value="en" /> + <!-- After "System Default" and "English", please keep the rest of these combo_box.items in alphabetical order by the first character in the string. --> + <combo_box.item + label="Dansk (Danish)" + name="Danish" + value="da" /> + <combo_box.item + label="Deutsch (German)" + name="German" + value="de" /> + <combo_box.item + label="Español (Spanish)" + name="Spanish" + value="es" /> + <combo_box.item + label="Français (French)" + name="French" + value="fr" /> + <combo_box.item + label="Italiano (Italian)" + name="Italian" + value="it" /> + <combo_box.item + label="Magyar (Hungarian)" + name="Hungarian" + value="hu" /> + <combo_box.item + label="Nederlands (Dutch)" + name="Dutch" + value="nl" /> + <combo_box.item + label="Polski (Polish)" + name="Polish" + value="pl" /> + <combo_box.item + label="Português (Portuguese)" + name="Portugese" + value="pt" /> + <combo_box.item + label="РуÑÑкий (Russian)" + name="Russian" + value="ru" /> + <combo_box.item + label="Türkçe (Turkish)" + name="Turkish" + value="tr" /> + <combo_box.item + label="УкраїнÑька (Ukrainian)" + name="Ukrainian" + value="uk" /> + <combo_box.item + label="䏿–‡ (æ£é«”) (Chinese)" + name="Chinese" + value="zh" /> + <combo_box.item + label="日本語 (Japanese)" + name="Japanese" + value="ja" /> + <combo_box.item + label="한êµì–´ (Korean)" + name="Korean" + value="ko" /> + </combo_box> + + <text + follows="top|left|right" + height="15" + layout="topleft" + left="40" + name="tip" + top_pad="20" + width="330" + wrap="true"> + Choose translation service: + </text> + + <radio_group + follows="top|left" + height="80" + layout="topleft" + left_delta="10" + name="translation_service_rg" + top_pad="20" + width="320"> + <radio_item + initial_value="bing" + label="Bing Translator" + layout="topleft" + name="bing" /> + <radio_item + initial_value="google" + label="Google Translate" + layout="topleft" + name="google" + top_pad="55" /> + </radio_group> + + <text + type="string" + length="1" + follows="top|right" + height="20" + layout="topleft" + left="70" + name="bing_api_key_label" + top_pad="-55" + width="85"> + Bing [http://www.bing.com/developers/createapp.aspx AppID]: + </text> + <line_editor + default_text="Enter Bing AppID and click "Verify"" + follows="top|left" + height="20" + layout="topleft" + left_pad="10" + max_length_chars="50" + top_delta="-4" + name="bing_api_key" + width="210" /> + <button + follows="left|top" + height="23" + label="Verify" + layout="topleft" + left_pad="10" + name="verify_bing_api_key_btn" + top_delta="-2" + width="90" /> + + <text + follows="top|right" + height="20" + layout="topleft" + left="70" + length="1" + name="google_api_key_label" + top_pad="50" + type="string" + width="85"> + Google [http://code.google.com/apis/language/translate/v2/getting_started.html#auth API key]: + </text> + <line_editor + default_text="Enter Google API key and click "Verify"" + follows="top|left" + height="20" + layout="topleft" + left_pad="10" + max_length_chars="50" + top_delta="-4" + name="google_api_key" + width="210" /> + <button + follows="left|top" + height="23" + label="Verify" + layout="topleft" + left_pad="10" + name="verify_google_api_key_btn" + top_delta="-2" + width="90" /> + + <text + follows="top|right" + height="20" + layout="topleft" + left="185" + length="1" + name="google_links_text" + top_delta="-23" + type="string" + width="100"> + [http://code.google.com/apis/language/translate/v2/pricing.html Pricing] | [https://code.google.com/apis/console Stats] + </text> + + <button + follows="left|top" + height="23" + label="OK" + layout="topleft" + right="-120" + name="ok_btn" + top="-30" + width="100" /> + <button + follows="left|top" + height="23" + label="Cancel" + layout="topleft" + left_pad="10" + name="cancel_btn" + width="100" /> +</floater> diff --git a/indra/newview/skins/default/xui/en/floater_voice_controls.xml b/indra/newview/skins/default/xui/en/floater_voice_controls.xml index 93a04050b64025f869f924f0552ae9bb9df58b96..6807b01fa3ebe2eae75334b0a01aaa0dfc182efa 100644 --- a/indra/newview/skins/default/xui/en/floater_voice_controls.xml +++ b/indra/newview/skins/default/xui/en/floater_voice_controls.xml @@ -89,7 +89,7 @@ visible="true" width="20" /> </layout_panel> - <layout_panel name="leave_call_panel" height="26" auto_resize="false"> + <layout_panel name="leave_call_panel" height="26" min_height="26" user_resize="false" auto_resize="false"> <layout_stack clip="true" follows="left|top|right" diff --git a/indra/newview/skins/default/xui/en/inspect_remote_object.xml b/indra/newview/skins/default/xui/en/inspect_remote_object.xml index ef3dd844cd04fe8f2278bb9f08c4ba40e6993d14..e83257d2a0da096229b6c9eeee6295b3b8238e63 100644 --- a/indra/newview/skins/default/xui/en/inspect_remote_object.xml +++ b/indra/newview/skins/default/xui/en/inspect_remote_object.xml @@ -36,7 +36,7 @@ height="16" left="8" name="object_owner_label" - width="55" + width="65" top_pad="12"> Owner: </text> diff --git a/indra/newview/skins/default/xui/en/menu_toolbars.xml b/indra/newview/skins/default/xui/en/menu_toolbars.xml index 59912b5503639e7a1087d1496396e61740973c31..7384114d7d9036816b4105de14bf7c657f41e0f1 100644 --- a/indra/newview/skins/default/xui/en/menu_toolbars.xml +++ b/indra/newview/skins/default/xui/en/menu_toolbars.xml @@ -3,7 +3,7 @@ layout="topleft" name="Toolbars Popup" visible="false"> - <menu_item_call label="Choose buttons..." + <menu_item_call label="Toolbar buttons..." layout="topleft" name="Chose Buttons"> <menu_item_call.on_click function="Floater.Show" diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 63e50b0b9f7ceba094b453f89d22adca97e917f5..9c44d90a6ec7959d47b81955e1bca86b7849663d 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -43,6 +43,15 @@ function="Floater.Toggle" parameter="inventory" /> </menu_item_check> + <menu_item_call + label="New Inventory Window" + name="NewInventoryWindow" + shortcut="control|shift|I" + visible="false"> + <menu_item_call.on_click + function="Inventory.NewWindow" + parameter="" /> + </menu_item_call> <menu_item_check label="Gestures..." name="Gestures" @@ -166,7 +175,7 @@ parameter="preferences" /> </menu_item_call> <menu_item_call - label="Toolbars..." + label="Toolbar buttons..." name="Toolbars" shortcut="control|T"> <menu_item_call.on_click @@ -2437,6 +2446,16 @@ parameter="raycast" /> </menu_item_check> <menu_item_check + label="Wind Vectors" + name="Wind Vectors"> + <menu_item_check.on_check + function="Advanced.CheckInfoDisplay" + parameter="wind vectors" /> + <menu_item_check.on_click + function="Advanced.ToggleInfoDisplay" + parameter="wind vectors" /> + </menu_item_check> + <menu_item_check label="Render Complexity" name="rendercomplexity"> <menu_item_check.on_check diff --git a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml index 52be80526038a7b21f45f960c08e01038627fc45..caf7fc85f569d5d50a1cf40eeb4b98244885afd0 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml @@ -204,119 +204,16 @@ name="nearby_toasts_fadingtime" top_pad="3" width="325" /> - - <check_box - control_name="TranslateChat" - enabled="true" - height="16" - layout="topleft" - left="30" - name="translate_chat_checkbox" - top_pad="5" - width="400" /> - <!-- *HACK - After storm-1109 will be fixed: instead of using this text_box, word_wrap should be applied for "translate_chat_checkbox" check_box's label.--> - <text - follows="top|left" - height="15" - layout="topleft" - left="50" - name="translate_chb_label" - top_delta="1" - width="450" - wrap="true"> - Use machine translation while chatting (powered by Google) - </text> - <text - top_pad="20" - name="translate_language_text" - follows="left|top" - layout="topleft" - left_delta="20" - height="20" - width="110"> - Translate chat into: - </text> - <combo_box - allow_text_entry="true" - bottom_delta="3" - control_name="TranslateLanguage" - enabled="true" - follows="left|top" - height="23" - left_delta="110" - max_chars="135" - mouse_opaque="true" - name="translate_language_combobox" - width="146"> - <combo_box.item - label="System Default" - name="System Default Language" - value="default" /> - <combo_box.item - label="English" - name="English" - value="en" /> - <!-- After "System Default" and "English", please keep the rest of these combo_box.items in alphabetical order by the first character in the string. --> - <combo_box.item - label="Dansk (Danish)" - name="Danish" - value="da" /> - <combo_box.item - label="Deutsch (German)" - name="German" - value="de" /> - <combo_box.item - label="Español (Spanish)" - name="Spanish" - value="es" /> - <combo_box.item - label="Français (French)" - name="French" - value="fr" /> - <combo_box.item - label="Italiano (Italian)" - name="Italian" - value="it" /> - <combo_box.item - label="Magyar (Hungarian)" - name="Hungarian" - value="hu" /> - <combo_box.item - label="Nederlands (Dutch)" - name="Dutch" - value="nl" /> - <combo_box.item - label="Polski (Polish)" - name="Polish" - value="pl" /> - <combo_box.item - label="Português (Portuguese)" - name="Portugese" - value="pt" /> - <combo_box.item - label="РуÑÑкий (Russian)" - name="Russian" - value="ru" /> - <combo_box.item - label="Türkçe (Turkish)" - name="Turkish" - value="tr" /> - <combo_box.item - label="УкраїнÑька (Ukrainian)" - name="Ukrainian" - value="uk" /> - <combo_box.item - label="䏿–‡ (æ£é«”) (Chinese)" - name="Chinese" - value="zh" /> - <combo_box.item - label="日本語 (Japanese)" - name="Japanese" - value="ja" /> - <combo_box.item - label="한êµì–´ (Korean)" - name="Korean" - value="ko" /> - </combo_box> + <button + follows="left|top" + height="23" + label="Chat Translation Settings" + layout="topleft" + left="30" + name="ok_btn" + top="-40" + width="170"> + <button.commit_callback + function="Pref.TranslationSettings" /> + </button> </panel> \ No newline at end of file diff --git a/indra/newview/skins/default/xui/en/panel_preferences_general.xml b/indra/newview/skins/default/xui/en/panel_preferences_general.xml index 0a1c0872e92a00a1b7ef0edb101090e007382a15..4079a80924972fc55a5b92724d524faac1701323 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_general.xml @@ -92,7 +92,7 @@ value="ja" /> <combo_box.item enabled="true" - label="æ£é«” (Traditional Chinese) - Beta" + label="æ£é«”䏿–‡ (Traditional Chinese) - Beta" name="Traditional Chinese" value="zh" /> </combo_box> diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml index 422bbada7ff49071c79a6b9ebe129b69dc8963bf..3239c4e531f56f3ad379b60e8a5f7157e119ea25 100644 --- a/indra/newview/skins/default/xui/en/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml @@ -2,7 +2,7 @@ <panel background_opaque="true" background_visible="true" - bg_opaque_color="MouseGray" + bg_opaque_color="DkGray" chrome="true" follows="top|right" height="19" @@ -39,10 +39,7 @@ width="160" top="1" follows="right|top" - name="balance_bg" - bg_visible="true" - background_opaque="true" - bg_opaque_image="bevel_background"> + name="balance_bg"> <text halign="center" font="SansSerifSmall" diff --git a/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml b/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml index 79f29777ce62d9e737d614c394cebcc4fb422401..fc527f5f9d2182fb20b04d31e68445c8e6acf7f2 100644 --- a/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml @@ -4,7 +4,7 @@ background_opaque="false" bg_opaque_color="Black_50" bg_alpha_color="Black_50" - follows="left|top|right" + follows="left|top" height="19" layout="topleft" name="topinfo_bar" diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index c4031de0f875a7fd16626e37ac18334ec5519ccb..ec230773cc5a37074553c504dc32bccbd0892321 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -2183,6 +2183,8 @@ Returns a string with the requested data about the region <string name="Stomach">Stomach</string> <string name="Left Pec">Left Pec</string> <string name="Right Pec">Right Pec</string> + <string name="Neck">Neck</string> + <string name="Avatar Center">Avatar Center</string> <string name="Invalid Attachment">Invalid Attachment Point</string> <!-- Avatar age computation, see LLDateUtil::ageFromDate --> @@ -2269,7 +2271,7 @@ Returns a string with the requested data about the region <string name="NextStipendDay" value="The next stipend day is " /> <string name="GroupPlanningDate">[mthnum,datetime,utc]/[day,datetime,utc]/[year,datetime,utc]</string> <string name="GroupIndividualShare" value=" Group Individual Share" /> - <string name="GroupColumn" value=" Group" /> + <string name="GroupColumn" value=" Group" /> <string name="Balance">Balance</string> <string name="Credits">Credits</string> <string name="Debits">Debits</string> @@ -3529,6 +3531,10 @@ Try enclosing path to the editor with double quotes. <string name="ExternalEditorCommandParseError">Error parsing the external editor command.</string> <string name="ExternalEditorFailedToRun">External editor failed to run.</string> + <!-- Machine translation of chat messahes --> + <string name="TranslationFailed">Translation failed: [REASON]</string> + <string name="TranslationResponseParseError">Error parsing translation response.</string> + <!-- Key names begin --> <string name="Esc">Esc</string> <string name="Space">Space</string> @@ -3705,6 +3711,10 @@ Try enclosing path to the editor with double quotes. <string name="Command_View_Tooltip">Changing camera angle</string> <string name="Command_Voice_Tooltip">Volume controls for calls and people near you in world</string> + <string name="Toolbar_Bottom_Tooltip">currently in your bottom toolbar</string> + <string name="Toolbar_Left_Tooltip" >currently in your left toolbar</string> + <string name="Toolbar_Right_Tooltip" >currently in your right toolbar</string> + <!-- Mesh UI terms --> <string name="Retain%">Retain%</string> <string name="Detail">Detail</string> diff --git a/indra/newview/skins/default/xui/en/widgets/toolbar.xml b/indra/newview/skins/default/xui/en/widgets/toolbar.xml index 7e7a9c61cfc6399ada520398700fd74620e5e13b..0aa478ace9fc66945f817d827bad357f255d1f0b 100644 --- a/indra/newview/skins/default/xui/en/widgets/toolbar.xml +++ b/indra/newview/skins/default/xui/en/widgets/toolbar.xml @@ -30,6 +30,8 @@ image_overlay_alignment="left" use_ellipses="true" auto_resize="true" + button_flash_count="99999" + button_flash_rate="1.0" flash_color="EmphasisColor"/> <button_icon pad_left="10" pad_right="10" @@ -49,5 +51,7 @@ chrome="true" use_ellipses="true" auto_resize="true" + button_flash_count="99999" + button_flash_rate="1.0" flash_color="EmphasisColor"/> </toolbar> diff --git a/indra/newview/skins/default/xui/es/floater_about.xml b/indra/newview/skins/default/xui/es/floater_about.xml index 93bb8444b453eb95e9050bda6ccf263aff0353e4..b7c9cc27acd730ba30bfa2c2df4e7c6d2154a303 100644 --- a/indra/newview/skins/default/xui/es/floater_about.xml +++ b/indra/newview/skins/default/xui/es/floater_about.xml @@ -10,7 +10,7 @@ <floater.string name="AboutPosition"> Estás en la posición [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1], de [REGION], alojada en <nolink>[HOSTNAME]</nolink> ([HOSTIP]) [SERVER_VERSION] -[[SERVER_RELEASE_NOTES_URL] [ReleaseNotes]] +[SERVER_RELEASE_NOTES_URL] </floater.string> <floater.string name="AboutSystem"> CPU: [CPU] @@ -37,6 +37,9 @@ Versión del servidor de voz: [VOICE_VERSION] <floater.string name="AboutTraffic"> Paquetes perdidos: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) </floater.string> + <floater.string name="ErrorFetchingServerReleaseNotesURL"> + Error al obtener la URL de las notas de la versión del servidor. + </floater.string> <tab_container name="about_tab"> <panel label="Información" name="support_panel"> <button label="Copiar al portapapeles" name="copy_btn" width="165"/> diff --git a/indra/newview/skins/default/xui/es/floater_about_land.xml b/indra/newview/skins/default/xui/es/floater_about_land.xml index 83749fc5359164220146850268c9c2e650bac8bd..b6391e28a01e73f51d3225b82962be1e692e0df0 100644 --- a/indra/newview/skins/default/xui/es/floater_about_land.xml +++ b/indra/newview/skins/default/xui/es/floater_about_land.xml @@ -213,19 +213,19 @@ Vaya al menú Mundo > Acerca del terreno o seleccione otra parcela para ver s Plus de objetos en la región: [BONUS] </text> <text name="Simulator primitive usage:"> - Uso de primitivas: + Capacidad de la región: </text> <text name="objects_available"> [COUNT] de un máx. de [MAX] ([AVAILABLE] disponibles) </text> <text name="Primitives parcel supports:"> - Prims que admite la parcela: + Capacidad del terreno de la parcela: </text> <text name="object_contrib_text"> [COUNT] </text> <text name="Primitives on parcel:"> - Prims en la parcela: + Impacto en el terreno de la parcela: </text> <text name="total_objects_text"> [COUNT] diff --git a/indra/newview/skins/default/xui/es/floater_avatar.xml b/indra/newview/skins/default/xui/es/floater_avatar.xml new file mode 100644 index 0000000000000000000000000000000000000000..7c87fbe01ccc128ba05e22766ae02aede90d8bfb --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_avatar.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Avatar" title="SELECTOR DE AVATAR"/> diff --git a/indra/newview/skins/default/xui/es/floater_camera.xml b/indra/newview/skins/default/xui/es/floater_camera.xml index 04f743b6590b04c6c0d2ab19d2f719ca1aa96265..cdcb9a146b2e0e10d9ae457fa803185e90919870 100644 --- a/indra/newview/skins/default/xui/es/floater_camera.xml +++ b/indra/newview/skins/default/xui/es/floater_camera.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="camera_floater" title=""> +<floater name="camera_floater" title="VER"> <floater.string name="rotate_tooltip"> Girar la cámara alrededor de lo enfocado </floater.string> diff --git a/indra/newview/skins/default/xui/es/floater_chat_bar.xml b/indra/newview/skins/default/xui/es/floater_chat_bar.xml new file mode 100644 index 0000000000000000000000000000000000000000..5e5ef616b8db3096fcfa4847dec79ac5bd62fba4 --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_chat_bar.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="chat_bar" title="CHAT"> + <panel> + <line_editor label="Pulsa aquà para chatear." name="chat_box" tool_tip="Pulsa Enter para decirlo o Ctrl+Enter para gritarlo"/> + <button name="show_nearby_chat" tool_tip="Muestra o esconde el registro del chat"/> + </panel> +</floater> diff --git a/indra/newview/skins/default/xui/es/floater_destinations.xml b/indra/newview/skins/default/xui/es/floater_destinations.xml new file mode 100644 index 0000000000000000000000000000000000000000..df18698d2fdf72b24538012fd39076e96204eeeb --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_destinations.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Destinations" title="DESTINOS"/> diff --git a/indra/newview/skins/default/xui/es/floater_fast_timers.xml b/indra/newview/skins/default/xui/es/floater_fast_timers.xml new file mode 100644 index 0000000000000000000000000000000000000000..eeb39583efcb84bc612d653da49fcfc3bbf60f2f --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_fast_timers.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="fast_timers"> + <string name="pause"> + Pausa + </string> + <string name="run"> + Correr + </string> + <button label="Pausa" name="pause_btn"/> +</floater> diff --git a/indra/newview/skins/default/xui/es/floater_how_to.xml b/indra/newview/skins/default/xui/es/floater_how_to.xml new file mode 100644 index 0000000000000000000000000000000000000000..4a57dc364370618a6e606801e852c21d7ea8ebd8 --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_how_to.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_how_to" title="CÓMO"/> diff --git a/indra/newview/skins/default/xui/es/floater_map.xml b/indra/newview/skins/default/xui/es/floater_map.xml index 370b7f5053df72f5fe96d40bbe1dbeb938e2e02f..69f638418e4177423e3e4fce3bd7a27e94000ea5 100644 --- a/indra/newview/skins/default/xui/es/floater_map.xml +++ b/indra/newview/skins/default/xui/es/floater_map.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Map" title=""> +<floater name="Map" title="MINIMAPA"> <floater.string name="ToolTipMsg"> [REGIÓN](Haz doble clic para abrir el mapa y pulsa la tecla Mayús y arrastra para obtener una vista panorámica) </floater.string> @@ -7,7 +7,7 @@ [REGION](Pulsa dos veces para teleportarte, pulsa mayús y arrastra para obtener una panorámica) </floater.string> <floater.string name="mini_map_caption"> - MINIMAPA + Minimapa </floater.string> <text label="N" name="floater_map_north" text="N"> N diff --git a/indra/newview/skins/default/xui/es/floater_model_preview.xml b/indra/newview/skins/default/xui/es/floater_model_preview.xml index 36f988b25f2ca9f2b3188b4132e855b2ceb6f9fd..3e774536129a67e5b1553a481ca917321b618a8f 100644 --- a/indra/newview/skins/default/xui/es/floater_model_preview.xml +++ b/indra/newview/skins/default/xui/es/floater_model_preview.xml @@ -1,10 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Model Preview" title="Cargar modelo"> - <string name="status_idle"> - Inactivo - </string> +<floater name="Model Preview" title="SUBIR MODELO"> + <string name="status_idle"/> <string name="status_parse_error"> - Problema de análisis de DAE - consulta los datos en el registro. + Error: Problema de análisis de DAE - consulta los datos en el registro. </string> <string name="status_reading_file"> Cargando... @@ -51,6 +49,9 @@ <string name="mesh_status_missing_lod"> Falta un nivel de detalle requerido. </string> + <string name="mesh_status_invalid_material_list"> + Los materiales con niveles de detalle no son un subconjunto del modelo de referencia. + </string> <string name="layer_all"> Todo </string> @@ -63,188 +64,211 @@ <string name="tbd"> TBD </string> - <text name="name_label"> - Nombre: - </text> - <text name="lod_label"> - Vista previa: - </text> - <combo_box name="preview_lod_combo" tool_tip="Nivel de detalle disponible en la vista previa"> - <combo_item name="high"> - Nivel de detalle: Alto - </combo_item> - <combo_item name="medium"> - Nivel de detalle: Media - </combo_item> - <combo_item name="low"> - Nivel de detalle: Bajo - </combo_item> - <combo_item name="lowest"> - Nivel de detalle: MÃnimo - </combo_item> - </combo_box> - <text name="warning_title"> - ATENCIÓN: - </text> - <text name="warning_message"> - No podrás terminar de subir este modelo a los servidores de Second Life. [[VURL] Averigua cómo] puedes obtener autorización para subir modelos de malla. - </text> - <text name="weights_text"> - Descargar: -FÃsica: -Servidor: - -Equiv. en prims: - </text> - <text name="weights"> - [ST] -[PH] -[SIM] - -[EQ] - </text> - <tab_container name="import_tab"> - <panel label="Nivel de detalle" name="lod_panel"> - <text name="lod_table_header"> - Seleccionar nivel de detalle: - </text> - <text name="high_label" value="Alto"/> - <text name="high_triangles" value="0"/> - <text name="high_vertices" value="0"/> - <text name="medium_label" value="Media"/> - <text name="medium_triangles" value="0"/> - <text name="medium_vertices" value="0"/> - <text name="low_label" value="Bajo"/> - <text name="low_triangles" value="0"/> - <text name="low_vertices" value="0"/> - <text name="lowest_label" value="MÃnimo"/> - <text name="lowest_triangles" value="0"/> - <text name="lowest_vertices" value="0"/> - <text name="lod_table_footer"> - Nivel de detalle: [DETALLE] - </text> - <radio_group name="lod_file_or_limit" value="lod_from_file"> - <radio_item label="Cargar desde el archivo" name="lod_from_file"/> - <radio_item label="Generar automáticamente" name="lod_auto_generate"/> - <radio_item label="Ninguno" name="lod_none"/> - </radio_group> - <button label="Examinar..." name="lod_browse"/> - <combo_box name="lod_mode"> - <combo_item name="triangle_limit"> - LÃmite de triángulo - </combo_item> - <combo_item name="error_threshold"> - Margen de error - </combo_item> - </combo_box> - <text name="build_operator_text"> - Crear operador: + <panel name="left_panel"> + <panel name="model_name_representation_panel"> + <text name="name_label"> + Nombre del modelo: </text> - <text name="queue_mode_text"> - Modo de cola: + <text name="model_category_label"> + Este modelo representa... </text> - <combo_box name="build_operator"> - <combo_item name="edge_collapse"> - Cerrar bordes - </combo_item> - <combo_item name="half_edge_collapse"> - Cerrar la mitad de los bordes - </combo_item> - </combo_box> - <combo_box name="queue_mode"> - <combo_item name="greedy"> - EgoÃsta - </combo_item> - <combo_item name="lazy"> - Vago - </combo_item> - <combo_item name="independent"> - Independiente - </combo_item> + <combo_box name="model_category_combo"> + <combo_item label="Elegir uno..." name="Choose one"/> + <combo_item label="Forma del avatar" name="Avatar shape"/> + <combo_item label="Anexo del avatar" name="Avatar attachment"/> + <combo_item label="Objeto en movimiento (vehÃculo, animal)" name="Moving object (vehicle, animal)"/> + <combo_item label="Componente de construcción" name="Building Component"/> + <combo_item label="Grande, sin movimiento, etc." name="Large, non moving etc"/> + <combo_item label="Más pequeño, sin movimiento, etc." name="Smaller, non-moving etc"/> + <combo_item label="No es exactamente ninguno de estos" name="Not really any of these"/> </combo_box> - <text name="border_mode_text"> - Modo de borde: - </text> - <text name="share_tolderance_text"> - Tolerancia de uso compartido: - </text> - <combo_box name="border_mode"> - <combo_item name="border_unlock"> - Desbloquear - </combo_item> - <combo_item name="border_lock"> - Lock - </combo_item> - </combo_box> - <text name="crease_label"> - Ãngulo de marca: - </text> - <spinner name="crease_angle" value="75"/> </panel> - <panel label="FÃsica" name="physics_panel"> - <panel name="physics geometry"> - <radio_group name="physics_load_radio" value="physics_load_from_file"> - <radio_item label="Archivo:" name="physics_load_from_file"/> - <radio_item label="Utilizar nivel de detalle:" name="physics_use_lod"/> - </radio_group> - <combo_box name="physics_lod_combo" tool_tip="Nivel de detalle para forma fÃsica"> - <combo_item name="physics_lowest"> - MÃnimo - </combo_item> - <combo_item name="physics_low"> - Bajo - </combo_item> - <combo_item name="physics_medium"> - Media - </combo_item> - <combo_item name="physics_high"> - Alto - </combo_item> - </combo_box> - <button label="Examinar..." name="physics_browse"/> + <tab_container name="import_tab"> + <panel label="Nivel de detalle" name="lod_panel" title="Nivel de detalle"> + <text initial_value="Origen" name="source" value="Origen"/> + <text initial_value="Triángulos" name="triangles" value="Triángulos"/> + <text initial_value="Vértices" name="vertices" value="Vértices"/> + <text initial_value="Alto" name="high_label" value="Alto"/> + <button label="Buscar..." name="lod_browse_high"/> + <text initial_value="0" name="high_triangles" value="0"/> + <text initial_value="0" name="high_vertices" value="0"/> + <text initial_value="Medio" name="medium_label" value="Medio"/> + <button label="Buscar..." name="lod_browse_medium"/> + <text initial_value="0" name="medium_triangles" value="0"/> + <text initial_value="0" name="medium_vertices" value="0"/> + <text initial_value="Bajo" name="low_label" value="Bajo"/> + <button label="Buscar..." name="lod_browse_low"/> + <text initial_value="0" name="low_triangles" value="0"/> + <text initial_value="0" name="low_vertices" value="0"/> + <text initial_value="MÃnimo" name="lowest_label" value="MÃnimo"/> + <button label="Buscar..." name="lod_browse_lowest"/> + <text initial_value="0" name="lowest_triangles" value="0"/> + <text initial_value="0" name="lowest_vertices" value="0"/> + <check_box label="Generar normales" name="gen_normals"/> + <text initial_value="Ãngulo de pliegue:" name="crease_label" value="Ãngulo de pliegue:"/> + <spinner name="crease_angle" value="75"/> </panel> - <panel name="physics analysis"> - <slider label="Leve:" name="Smooth"/> - <check_box label="Cerrar agujeros (lento)" name="Close Holes (Slow)"/> - <button label="Analizar" name="Decompose"/> - <button label="Cancelar" name="decompose_cancel"/> + <panel label="FÃsica" name="physics_panel"> + <panel name="physics geometry"> + <text name="first_step_name"> + Paso 1: Nivel de detalle + </text> + <combo_box name="physics_lod_combo" tool_tip="Niveles de detalle para utilizar con la forma fÃsica"> + <combo_item name="choose_one"> + Elegir uno... + </combo_item> + <combo_item name="physics_high"> + Alto + </combo_item> + <combo_item name="physics_medium"> + Medio + </combo_item> + <combo_item name="physics_low"> + Bajo + </combo_item> + <combo_item name="physics_lowest"> + MÃnimo + </combo_item> + <combo_item name="load_from_file"> + De archivo + </combo_item> + </combo_box> + <button label="Buscar..." name="physics_browse"/> + </panel> + <panel name="physics analysis"> + <text name="method_label"> + Paso 2: Analizar + </text> + <text name="analysis_method_label"> + Método: + </text> + <text name="quality_label"> + Calidad: + </text> + <text name="smooth_method_label"> + Leve: + </text> + <check_box label="Cerrar agujeros" name="Close Holes (Slow)"/> + <button label="Analizar" name="Decompose"/> + <button label="Cancelar" name="decompose_cancel"/> + </panel> + <panel name="physics simplification"> + <text name="second_step_label"> + Paso 3: Simplificar + </text> + <text name="simp_method_header"> + Método: + </text> + <text name="pass_method_header"> + Pases: + </text> + <text name="Detail Scale label"> + Escala de detalle: + </text> + <text name="Retain%_label"> + Retención: + </text> + <combo_box name="Combine Quality" value="1"/> + <button label="Simplificar" name="Simplify"/> + <button label="Cancelar" name="simplify_cancel"/> + </panel> + <panel name="physics info"> + <text name="results_text"> + Resultados: + </text> + <text name="physics_triangles"> + Triángulos: [TRIANGLES], + </text> + <text name="physics_points"> + Vértices: [POINTS], + </text> + <text name="physics_hulls"> + Apariencias: [HULLS] + </text> + </panel> </panel> - <panel name="physics simplification"> - <slider label="Pases:" name="Combine Quality"/> - <slider label="Escala de detalle:" name="Detail Scale"/> - <slider label="Retener:" name="Retain%"/> - <button label="Simplificar" name="Simplify"/> - <button label="Cancelar" name="simplify_cancel"/> - </panel> - <panel name="physics info"> - <slider label="Ampliación de vista previa:" name="physics_explode"/> - <text name="physics_triangles"> - Triángulos: [TRIÃNGULOS] + <panel label="Opciones de subida" name="modifiers_panel"> + <text name="scale_label"> + Escala (1=sin ajuste de escala): + </text> + <spinner name="import_scale" value="1.0"/> + <text name="dimensions_label"> + Dimensiones: </text> - <text name="physics_points"> - Intersecciones: [PUNTOS] + <text name="import_dimensions"> + [X] X [Y] X [Z] </text> - <text name="physics_hulls"> - Aspecto exterior: [ASPECTO EXTERIOR] + <check_box label="Incluir texturas" name="upload_textures"/> + <text name="include_label"> + Solo para modelos de avatar: </text> + <check_box label="Incluir el peso de la piel" name="upload_skin"/> + <check_box label="Incluir posturas de las articulaciones" name="upload_joints"/> + <text name="pelvis_offset_label"> + Desplazamiento Z (subir o bajar el avatar): + </text> + <spinner name="pelvis_offset" value="0.0"/> </panel> - </panel> - <panel label="Modificadores" name="modifiers_panel"> - <spinner name="import_scale" value="1.0"/> - <text name="import_dimensions"> - [X] x [Y] x [Z] m + </tab_container> + <panel name="weights_and_warning_panel"> + <button label="Calcular pesos y precio" name="calculate_btn" tool_tip="Calcular pesos y precio"/> + <button label="Cancelar" name="cancel_btn"/> + <button label="subir" name="ok_btn" tool_tip="Subir al simulador"/> + <button label="Limpiar la configuración y reiniciar el formulario" name="reset_btn"/> + <text name="upload_fee"> + Precio de subida: L$ [FEE] + </text> + <text name="prim_weight"> + Impacto en el terreno: [EQ] + </text> + <text name="download_weight"> + Descargar: [ST] + </text> + <text name="physics_weight"> + FÃsica: [PH] + </text> + <text name="server_weight"> + Servidor: [SIM] + </text> + <text name="warning_title"> + NOTA: + </text> + <text name="warning_message"> + No tienes derechos para subir modelos de malla. [[VURL] Averigua cómo] puedes obtener la autorización. + </text> + <text name="status"> + [STATUS] </text> - <check_box label="Texturas" name="upload_textures"/> - <check_box label="Peso de la piel" name="upload_skin"/> - <check_box label="Posturas de las articulaciones" name="upload_joints"/> - <spinner name="pelvis_offset" value="0.0"/> </panel> - </tab_container> - <text name="upload_fee"> - Precio de subida: L$ [FEE] + </panel> + <text name="lod_label"> + Vista previa: </text> - <button label="Establecer en valores predeterminados" name="reset_btn" tool_tip="Establecer en valores predeterminados"/> - <button label="Calcular pesos y precio" name="calculate_btn" tool_tip="Calcular pesos y precio"/> - <button label="Subir" name="ok_btn" tool_tip="Cargar al simulador"/> - <button label="Cancelar" name="cancel_btn"/> + <panel name="right_panel"> + <combo_box name="preview_lod_combo" tool_tip="LOD para ver en renderizado de prueba"> + <combo_item name="high"> + Alto + </combo_item> + <combo_item name="medium"> + Media + </combo_item> + <combo_item name="low"> + Bajo + </combo_item> + <combo_item name="lowest"> + MÃnimo + </combo_item> + </combo_box> + <text name="label_display"> + Mostrar... + </text> + <check_box label="Bordes" name="show_edges"/> + <check_box label="FÃsica" name="show_physics"/> + <check_box label="Texturas" name="show_textures"/> + <check_box label="Pesos de la piel" name="show_skin_weight"/> + <check_box label="Articulaciones" name="show_joint_positions"/> + <text name="physics_explode_label"> + Ampliación de vista previa: + </text> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/es/floater_model_wizard.xml b/indra/newview/skins/default/xui/es/floater_model_wizard.xml index 86de557ed9e819c1d3faf6ac7f03010003df37ef..c4eb5e955ad6fe7c8bfa6ecda19fc9b56bd64976 100644 --- a/indra/newview/skins/default/xui/es/floater_model_wizard.xml +++ b/indra/newview/skins/default/xui/es/floater_model_wizard.xml @@ -6,26 +6,20 @@ <button label="2. Optimizar" name="optimize_btn"/> <button label="1. Seleccionar archivo" name="choose_file_btn"/> <panel name="choose_file_panel"> - <panel name="choose_file_header_panel"> - <text name="choose_file_header_text"> + <panel name="header_panel"> + <text name="header_text"> Elige el archivo de modelo </text> </panel> - <panel name="choose_file_content_panel"> + <panel name="content"> <text name="advanced_users_text"> Usuarios avanzados: si tienes experiencia con las herramientas de creación de contenidos 3D, quizá te interese utilizar la función de subida avanzada. </text> <button label="Cambiar al modo Avanzado" name="switch_to_advanced"/> - <text name="choose_model_file_label"> + <text name="Cache location"> Elige el archivo de modelo que deseas subir </text> <button label="Buscar..." label_selected="Buscar..." name="browse"/> - <text name="support_collada_text"> - ‎Second Life admite los archivos COLLADA (.dae) - </text> - <text name="dimensions_label"> - Dimensiones (metros): - </text> <text name="dimensions"> X Y Z </text> @@ -38,18 +32,15 @@ </panel> </panel> <panel name="optimize_panel"> - <panel name="optimize_header_panel"> - <text name="optimize_header_text"> + <panel name="header_panel"> + <text name="header_text"> Optimizar el modelo </text> </panel> - <text name="optimize_hint"> + <text name="description"> Hemos optimizado el rendimiento del modelo, pero puedes ajustarlo más si lo deseas. </text> - <panel name="optimize_content_panel"> - <text name="generating_lod_label"> - Generando el nivel de detalle - </text> + <panel name="content"> <text name="high_detail_text"> Generar el nivel de detalle: Alto </text> @@ -64,123 +55,64 @@ </text> </panel> <panel name="content2"> - <text name="optimize_performance_text"> - Rendimiento - </text> - <text name="optimize_faster_rendering_text"> - Renderizado más rápido -Menos detalles -Menos peso de prim - </text> - <text name="optimize_accuracy_text"> - Precisión - </text> - <text name="optimize_slower_rendering_text"> - Renderizado más lento -Más detalles -Más peso de prim - </text> - <text name="accuracy_slider_mark1"> - ' - </text> - <text name="accuracy_slider_mark2"> - ' - </text> - <text name="accuracy_slider_mark3"> - ' - </text> <button label="Recalcular la geometrÃa" name="recalculate_geometry_btn"/> - <text name="geometry_preview_label"> + <text name="lod_label"> Vista previa de geometrÃa </text> <combo_box name="preview_lod_combo" tool_tip="LOD para ver en renderizado de prueba"> - <combo_item name="preview_lod_high"> + <combo_item name="high"> Detalle alto </combo_item> - <combo_item name="preview_lod_medium"> + <combo_item name="medium"> Detalles medios </combo_item> - <combo_item name="preview_lod_low"> + <combo_item name="low"> Detalle bajo </combo_item> - <combo_item name="preview_lod_lowest"> + <combo_item name="lowest"> Detalles mÃnimos </combo_item> </combo_box> </panel> </panel> <panel name="physics_panel"> - <panel name="physics_header_panel"> - <text name="physics_header_text"> + <panel name="header_panel"> + <text name="header_text"> Ajustar la fÃsica </text> </panel> - <text name="physics_hint"> + <text name="description"> Crearemos una forma para la apariencia exterior del modelo. Ajusta el nivel de detalle de la forma según se necesite para el propósito proyectado del modelo. </text> - <panel name="physics_content_panel"> - <text name="physics_performance_text"> - Rendimiento - </text> - <text name="physics_faster_rendering_text"> - Renderizado más rápido -Menos detalles -Menos peso de prim - </text> - <text name="physics_accuracy_text"> - Precisión - </text> - <text name="physics_slower_dendering_text"> - Renderizado más lento -Más detalles -Más peso de prim - </text> - <text name="physics_example_1"> - Ejemplos: -Objetos en movimiento -Objetos voladores -VehÃculos - </text> - <text name="physics_example_2"> - Ejemplos: -Objetos estáticos pequeños -Objetos con menos detalles -Muebles sencillos - </text> - <text name="physics_example_3"> - Ejemplos: -Objetos estáticos -Objetos con detalles -Edificios - </text> + <panel name="content"> <button label="Recalcular fÃsica" name="recalculate_physics_btn"/> <button label="Recalculando..." name="recalculating_physics_btn"/> - <text name="physics_preview_label"> + <text name="lod_label"> Prueba de fÃsica </text> <combo_box name="preview_lod_combo2" tool_tip="LOD para ver en renderizado de prueba"> - <combo_item name="preview_lod2_high"> + <combo_item name="high"> Detalle alto </combo_item> - <combo_item name="preview_lod2_medium"> + <combo_item name="medium"> Detalles medios </combo_item> - <combo_item name="preview_lod2_low"> + <combo_item name="low"> Detalle bajo </combo_item> - <combo_item name="preview_lod2_lowest"> + <combo_item name="lowest"> Detalles mÃnimos </combo_item> </combo_box> </panel> </panel> <panel name="review_panel"> - <panel name="review_header_panel"> - <text name="review_header_text"> + <panel name="header_panel"> + <text name="header_text"> Revisar </text> </panel> - <panel name="review_content_panel"> + <panel name="content"> <text name="review_prim_equiv"> Impacto en la parcela/región: [EQUIV] equivalentes en prim </text> @@ -193,8 +125,8 @@ Edificios </panel> </panel> <panel name="upload_panel"> - <panel name="upload_header_panel"> - <text name="upload_header_text"> + <panel name="header_panel"> + <text name="header_text"> Subida finalizada </text> </panel> diff --git a/indra/newview/skins/default/xui/es/floater_moveview.xml b/indra/newview/skins/default/xui/es/floater_moveview.xml index 258f84c36193e26ccab433cc809250aa7daeebe1..b29fe0484863622337e9fb478a1e8c6a4af1828f 100644 --- a/indra/newview/skins/default/xui/es/floater_moveview.xml +++ b/indra/newview/skins/default/xui/es/floater_moveview.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="move_floater"> +<floater name="move_floater" title="MOVERME"> <string name="walk_forward_tooltip"> Caminar hacia adelante (cursor arriba o W) </string> @@ -58,14 +58,14 @@ Volar </string> <panel name="panel_actions"> - <button label="" label_selected="" name="move up btn" tool_tip="Volar (pulsa E para subir)"/> <button label="" label_selected="" name="turn left btn" tool_tip="Girar a la izq. (cursor izq. o A)"/> <joystick_slide name="move left btn" tool_tip="Caminar a la izq. (pulsa Mayúsculas + cursor izq. o A)"/> - <button label="" label_selected="" name="move down btn" tool_tip="Volar (pulsa C para descender)"/> <button label="" label_selected="" name="turn right btn" tool_tip="Girar a la der. (cursor der. o D)"/> <joystick_slide name="move right btn" tool_tip="Caminar a la der. (pulsa Mayúsculas + cursor der. o D)"/> <joystick_turn name="forward btn" tool_tip="Caminar hacia adelante (cursor arriba o W)"/> <joystick_turn name="backward btn" tool_tip="Caminar de espaldas (cursor abajo o S)"/> + <button label="" label_selected="" name="move up btn" tool_tip="Volar (pulsa E para subir)"/> + <button label="" label_selected="" name="move down btn" tool_tip="Volar (pulsa C para descender)"/> </panel> <panel name="panel_modes"> <button label="" name="mode_walk_btn" tool_tip="Modo de caminar"/> diff --git a/indra/newview/skins/default/xui/es/floater_my_appearance.xml b/indra/newview/skins/default/xui/es/floater_my_appearance.xml new file mode 100644 index 0000000000000000000000000000000000000000..774babf04e7baf6a8c1fbbd97f804fd73b909b81 --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_my_appearance.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_my_appearance" title="APARIENCIA"> + <panel label="Modificar la apariencia" name="main_panel"/> +</floater> diff --git a/indra/newview/skins/default/xui/es/floater_my_inventory.xml b/indra/newview/skins/default/xui/es/floater_my_inventory.xml new file mode 100644 index 0000000000000000000000000000000000000000..0efd9f1c6d5c0cc19adcc2429596c87d4a17f094 --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_my_inventory.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_my_inventory" title="INVENTARIO"/> diff --git a/indra/newview/skins/default/xui/es/floater_object_weights.xml b/indra/newview/skins/default/xui/es/floater_object_weights.xml new file mode 100644 index 0000000000000000000000000000000000000000..50c4f0518d855867769d4cfd7ca7b45e363155ff --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_object_weights.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="object_weights" title="AVANZADAS"> + <floater.string name="nothing_selected" value="--"/> + <text name="selected_text" value="SELECCIONADOS"/> + <text name="objects" value="--"/> + <text name="objects_label" value="Objetos"/> + <text name="prims" value="--"/> + <text name="prims_label" value="Primitivas"/> + <text name="weights_of_selected_text" value="PESOS DE SELECCIONADOS"/> + <text name="download" value="--"/> + <text name="download_label" value="Descargar"/> + <text name="physics" value="--"/> + <text name="physics_label" value="FÃsica"/> + <text name="server" value="--"/> + <text name="server_label" value="Servidor"/> + <text name="display" value="--"/> + <text name="display_label" value="Mostrar"/> + <text name="land_impacts_text" value="IMPACTOS EN EL TERRENO"/> + <text name="selected" value="--"/> + <text name="selected_label" value="Seleccionados"/> + <text name="rezzed_on_land" value="--"/> + <text name="rezzed_on_land_label" value="Colocados en el terreno"/> + <text name="remaining_capacity" value="--"/> + <text name="remaining_capacity_label" value="Capacidad restante"/> + <text name="total_capacity" value="--"/> + <text name="total_capacity_label" value="Capacidad total"/> + <text name="help_SLURL" value="[secondlife:///app/help/object_weights ¿Qué es todo esto?...]"/> +</floater> diff --git a/indra/newview/skins/default/xui/es/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/es/floater_outfit_save_as.xml new file mode 100644 index 0000000000000000000000000000000000000000..f48d0d2d0ca21b9d76f76627b9b012b6ac35b7dd --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_outfit_save_as.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="modal container" title="GUARDAR EL VESTUARIO"/> diff --git a/indra/newview/skins/default/xui/es/floater_people.xml b/indra/newview/skins/default/xui/es/floater_people.xml new file mode 100644 index 0000000000000000000000000000000000000000..f5a3eab008517b3f5556ab986eb3f8d73a590592 --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_people.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<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_container> +</floater> diff --git a/indra/newview/skins/default/xui/es/floater_picks.xml b/indra/newview/skins/default/xui/es/floater_picks.xml new file mode 100644 index 0000000000000000000000000000000000000000..255aa5dcdc1ebc1f649027a4373fa03e8ad4d0a0 --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_picks.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_picks" title="Destacados"/> diff --git a/indra/newview/skins/default/xui/es/floater_places.xml b/indra/newview/skins/default/xui/es/floater_places.xml new file mode 100644 index 0000000000000000000000000000000000000000..12c6548205fb3a2bb018095f55c9502ca05dd2b7 --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_places.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_places" title="LUGARES"> + <panel label="Lugares" name="main_panel"/> +</floater> diff --git a/indra/newview/skins/default/xui/es/floater_sound_devices.xml b/indra/newview/skins/default/xui/es/floater_sound_devices.xml index a5ffbd517a1b22996a615d70b98d96b2946ba952..0291f9e7960e77751a775217837e4192a25c4357 100644 --- a/indra/newview/skins/default/xui/es/floater_sound_devices.xml +++ b/indra/newview/skins/default/xui/es/floater_sound_devices.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_sound_devices" title="Dispositivos de sonido"> +<floater name="floater_sound_devices" title="DISPOSITIVOS DE SONIDO"> <text name="voice_label"> Chat de voz </text> diff --git a/indra/newview/skins/default/xui/es/floater_stats.xml b/indra/newview/skins/default/xui/es/floater_stats.xml index 5f4fabf375e37f6d349c4086befd2c5852ab4ee8..ba4af2e8669b8426a95988549f094730b982f8e5 100644 --- a/indra/newview/skins/default/xui/es/floater_stats.xml +++ b/indra/newview/skins/default/xui/es/floater_stats.xml @@ -10,8 +10,8 @@ </stat_view> <stat_view label="Avanzado" name="advanced"> <stat_view label="Renderización" name="render"> - <stat_bar label="KTris generados" name="ktrisframe"/> - <stat_bar label="KTris generados" name="ktrissec"/> + <stat_bar label="KTris generados por fotograma" name="ktrisframe"/> + <stat_bar label="KTris generados por segundo" name="ktrissec"/> <stat_bar label="Objetos en total" name="objs"/> <stat_bar label="Objetos nuevos" name="newobjs"/> </stat_view> @@ -43,18 +43,6 @@ <stat_bar label="Pin de objetos" name="physicspinnedtasks"/> <stat_bar label="Objetos con bajo nivel de detalle" name="physicslodtasks"/> <stat_bar label="Memoria asignada" name="physicsmemoryallocated"/> - <stat_bar label="Agentes: actual./seg." name="simagentups"/> - <stat_bar label="Agentes del grid principal" name="simmainagents"/> - <stat_bar label="Agentes secundarios" name="simchildagents"/> - <stat_bar label="Objetos" name="simobjects"/> - <stat_bar label="Objetos activos" name="simactiveobjects"/> - <stat_bar label="Scripts activos" name="simactivescripts"/> - <stat_bar label="Eventos de scripts" name="simscripteps"/> - <stat_bar label="Paquetes salientes" name="siminpps"/> - <stat_bar label="Paquetes entrantes" name="simoutpps"/> - <stat_bar label="Descargas pendientes" name="simpendingdownloads"/> - <stat_bar label="Subidas pendientes" name="simpendinguploads"/> - <stat_bar label="Total de bytes no reconocidos" name="simtotalunackedbytes"/> </stat_view> <stat_view label="Tiempo (ms)" name="simperf"> <stat_bar label="Tiempo total de los frames" name="simframemsec"/> @@ -64,6 +52,14 @@ <stat_bar label="Tiempo de los agentes" name="simagentmsec"/> <stat_bar label="Tiempo de las imágenes" name="simimagesmsec"/> <stat_bar label="Tiempo de los scripts" name="simscriptmsec"/> + <stat_bar label="Tiempo libre" name="simsparemsec"/> + <stat_view label="Datos de tiempo (ms)" name="timedetails"> + <stat_bar label="Paso de fÃsica" name="simsimphysicsstepmsec"/> + <stat_bar label="Actualizar formas fÃsicas" name="simsimphysicsshapeupdatemsec"/> + <stat_bar label="Otros (FÃsica)" name="simsimphysicsothermsec"/> + <stat_bar label="Tiempo de suspensión" name="simsleepmsec"/> + <stat_bar label="E/S bombeo" name="simpumpiomsec"/> + </stat_view> </stat_view> </stat_view> </container_view> diff --git a/indra/newview/skins/default/xui/es/floater_tools.xml b/indra/newview/skins/default/xui/es/floater_tools.xml index f6e246ebaea173390cef86c889ffa1ff29d8a5c0..650b4b457d41cf6ee94eec855278addb21864379 100644 --- a/indra/newview/skins/default/xui/es/floater_tools.xml +++ b/indra/newview/skins/default/xui/es/floater_tools.xml @@ -25,10 +25,10 @@ Pulsa y arrastra para seleccionar el terreno. </floater.string> <floater.string name="status_selectcount"> - [OBJ_COUNT] objetos ( [PRIM_COUNT] prims[PE_STRING] ) seleccionados + [OBJ_COUNT] objetos seleccionados, impacto en el terreno [LAND_IMPACT] </floater.string> - <floater.string name="status_selectprimequiv"> - , [SEL_WEIGHT] equivalentes en prim + <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"/> @@ -105,8 +105,8 @@ <text name="selection_empty"> No está seleccionado nada. </text> - <text name="selection_weight"> - Peso de fÃsica [PHYS_WEIGHT], Coste de renderizado [DISP_WEIGHT]. + <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"> @@ -319,7 +319,6 @@ Tipo de unión </text> <combo_box name="sculpt type control"> - <combo_box.item label="(ninguna)" name="None"/> <combo_box.item label="Esfera" name="Sphere"/> <combo_box.item label="Toroide" name="Torus"/> <combo_box.item label="Plano" name="Plane"/> diff --git a/indra/newview/skins/default/xui/es/floater_toybox.xml b/indra/newview/skins/default/xui/es/floater_toybox.xml new file mode 100644 index 0000000000000000000000000000000000000000..b36a05a6e4bea3a8798725e735dc53190c4dffaa --- /dev/null +++ b/indra/newview/skins/default/xui/es/floater_toybox.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Toybox" title="PERSONALIZAR BARRAS DE HERRAMIENTAS"> + <text name="toybox label 1"> + Puedes agregar o quitar botones arrastrándolos a las barras de herramientas o desde ellas. + </text> + <text name="toybox label 2"> + Los botones aparecerán como se muestra o solo como iconos, según la configuración de cada barra de herramientas. + </text> + <button label="Restaurar valores predeterminados" label_selected="Restaurar valores predeterminados" name="btn_restore_defaults"/> +</floater> diff --git a/indra/newview/skins/default/xui/es/floater_voice_controls.xml b/indra/newview/skins/default/xui/es/floater_voice_controls.xml index f02855123c861081e142676a8b09ff6d3e9a260a..cefec2a7a16cfd2e5eea09837f379cc7978c1ab3 100644 --- a/indra/newview/skins/default/xui/es/floater_voice_controls.xml +++ b/indra/newview/skins/default/xui/es/floater_voice_controls.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_voice_controls" title="Controles de Voz"> +<floater name="floater_voice_controls" title="CONTROLES DE LA VOZ"> <string name="title_nearby"> - CHAT DE VOZ + Chat de voz </string> <string name="title_group"> Multiconferencia de voz con [GROUP] diff --git a/indra/newview/skins/default/xui/es/menu_hide_navbar.xml b/indra/newview/skins/default/xui/es/menu_hide_navbar.xml index 22a1873234ad48c587bd32c40930a7774743d4a0..9945908c4fb6bd7a63ae1a799f9045a7b2f41e35 100644 --- a/indra/newview/skins/default/xui/es/menu_hide_navbar.xml +++ b/indra/newview/skins/default/xui/es/menu_hide_navbar.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="hide_navbar_menu"> - <menu_item_check label="Mostrar la barra de navegación" name="ShowNavbarNavigationPanel"/> + <menu_item_check label="Mostrar la barra de navegación y de favoritos" name="ShowNavbarNavigationPanel"/> <menu_item_check label="Mostrar la barra de favoritos" name="ShowNavbarFavoritesPanel"/> <menu_item_check label="Mostrar mini-barra de ubicación" name="ShowMiniLocationPanel"/> </menu> diff --git a/indra/newview/skins/default/xui/es/menu_login.xml b/indra/newview/skins/default/xui/es/menu_login.xml index cabcacaed52295d2e16f5e3e6e306aa2551867dc..e3abf7ad6295795919f834f1990b0c20505ce6bc 100644 --- a/indra/newview/skins/default/xui/es/menu_login.xml +++ b/indra/newview/skins/default/xui/es/menu_login.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu_bar name="Login Menu"> <menu label="Yo" name="File"> - <menu_item_call label="Preferencias" name="Preferences..."/> + <menu_item_call label="Preferencias..." name="Preferences..."/> <menu_item_call label="Salir de [APP_NAME]" name="Quit"/> </menu> <menu label="Ayuda" name="Help"> diff --git a/indra/newview/skins/default/xui/es/menu_toolbars.xml b/indra/newview/skins/default/xui/es/menu_toolbars.xml new file mode 100644 index 0000000000000000000000000000000000000000..f8ed1c54ca3bdbc3b7e2c3885d3a55d4a7b5ed7f --- /dev/null +++ b/indra/newview/skins/default/xui/es/menu_toolbars.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<context_menu name="Toolbars Popup"> + <menu_item_call label="Elegir botones..." name="Chose Buttons"/> + <menu_item_check label="Iconos y etiquetas" name="icons_with_text"/> + <menu_item_check label="Solo iconos" name="icons_only"/> +</context_menu> diff --git a/indra/newview/skins/default/xui/es/menu_viewer.xml b/indra/newview/skins/default/xui/es/menu_viewer.xml index bc8a5731ab9709bf59ffe5656120f302b5bb0038..0714e7f2c6b7246f40c8485f99766330581a03d3 100644 --- a/indra/newview/skins/default/xui/es/menu_viewer.xml +++ b/indra/newview/skins/default/xui/es/menu_viewer.xml @@ -1,29 +1,30 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu_bar name="Main Menu"> <menu label="Yo" name="Me"> - <menu_item_call label="Preferencias" name="Preferences"/> - <menu_item_call label="Mi panel de control" name="Manage My Account"> + <menu_item_call label="Panel de control..." name="Manage My Account"> <menu_item_call.on_click name="ManageMyAccount_url" parameter="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=es"/> </menu_item_call> - <menu_item_call label="Comprar L$" name="Buy and Sell L$"/> - <menu_item_call label="Mi perfil" name="Profile"/> - <menu_item_call label="Mi apariencia" name="ChangeOutfit"/> - <menu_item_check label="Mi Inventario" name="Inventory"/> - <menu_item_check label="Mi Inventario" name="ShowSidetrayInventory"/> - <menu_item_check label="Mis gestos" name="Gestures"/> - <menu_item_check label="Mi voz" name="ShowVoice"/> + <menu_item_call label="Perfil..." name="Profile"/> + <menu_item_call label="Apariencia" name="ChangeOutfit"/> + <menu_item_check label="Inventario..." name="Inventory"/> + <menu_item_check label="Gestos..." name="Gestures"/> + <menu_item_check label="Voz..." name="ShowVoice"/> <menu label="Movimiento" name="Movement"> <menu_item_call label="Sentarte" name="Sit Down Here"/> <menu_item_check label="Volar" name="Fly"/> <menu_item_check label="Correr siempre" name="Always Run"/> <menu_item_call label="Parar mis animaciones" name="Stop Animating My Avatar"/> </menu> - <menu label="Mi estado" name="Status"> + <menu label="Estado" name="Status"> <menu_item_call label="Ausente" name="Set Away"/> <menu_item_call label="Ocupado" name="Set Busy"/> </menu> <menu_item_call label="Solicitar estatus de Administrador" name="Request Admin Options"/> <menu_item_call label="Dejar el estatus de Administrador" name="Leave Admin Options"/> + <menu_item_call label="Comprar L$" name="Buy and Sell L$"/> + <menu_item_call label="Preferencias..." name="Preferences"/> + <menu_item_call label="Barras de herramientas..." name="Toolbars"/> + <menu_item_call label="Ocultar todos los controles" name="Hide UI"/> <menu_item_call label="Salir de [APP_NAME]" name="Quit"/> </menu> <menu label="Comunicarme" name="Communicate"> @@ -145,7 +146,6 @@ </menu> <menu label="Ayuda" name="Help"> <menu_item_call label="Ayuda de [SECOND_LIFE]" name="Second Life Help"/> - <menu_item_check label="Permitir consejos" name="Enable Hints"/> <menu_item_call label="Denunciar una infracción" name="Report Abuse"/> <menu_item_call label="Informar de un fallo" name="Report Bug"/> <menu_item_call label="Acerca de [APP_NAME]" name="About Second Life"/> @@ -161,7 +161,7 @@ <menu label="Herramientas de rendimiento" name="Performance Tools"> <menu_item_call label="Medidor de lag" name="Lag Meter"/> <menu_item_check label="EstadÃsticas" name="Statistics Bar"/> - <menu_item_check label="Mostrar cuánto cuesta renderizar el avatar" name="Avatar Rendering Cost"/> + <menu_item_check label="Mostrar el peso del dibujo de los avatares" name="Avatar Rendering Cost"/> </menu> <menu label="Realzado y Visibilidad" name="Highlighting and Visibility"> <menu_item_check label="Baliza con destellos" name="Cheesy Beacon"/> @@ -271,6 +271,7 @@ <menu_item_check label="Actualizar el tipo" name="Update Type"/> <menu_item_check label="Información sobre el nivel de detalle" name="LOD Info"/> <menu_item_check label="Crear cola" name="Build Queue"/> + <menu_item_check label="Complejidad del renderizado" name="rendercomplexity"/> <menu_item_check label="Esculpir" name="Sculpt"/> </menu> <menu label="Rendering" name="Rendering"> diff --git a/indra/newview/skins/default/xui/es/notifications.xml b/indra/newview/skins/default/xui/es/notifications.xml index 4fb29b942748da52283c2ea5498f85d8b85d7b45..3fe0072a200c0220d946758a5bae4de369ff8294 100644 --- a/indra/newview/skins/default/xui/es/notifications.xml +++ b/indra/newview/skins/default/xui/es/notifications.xml @@ -1919,6 +1919,12 @@ Dado que estos objetos tienen scripts, moverlos a tu inventario puede provocar u ¿Estás seguro de que quieres salir? <usetemplate ignoretext="Confirmar antes de salir" name="okcancelignore" notext="No salir" yestext="Salir"/> </notification> + <notification name="ConfirmRestoreToybox"> + ¿Estás seguro de que quieres restaurar los botones y barras de herramientas predeterminados? + +Esta acción no se puede deshacer. + <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> + </notification> <notification name="DeleteItems"> [QUESTION] <usetemplate ignoretext="Confirmar antes de eliminar elementos" name="okcancelignore" notext="Cancelar" yestext="OK"/> @@ -2999,10 +3005,6 @@ Al ocultar el botón Hablar se desactiva la función de voz. <button name="cancel" text="Cancelar"/> </form> </notification> - <notification label="" name="ModeChange"> - Para cambiar de modo tienes que salir y reiniciar. - <usetemplate name="okcancelbuttons" notext="No salir" yestext="Salir"/> - </notification> <notification label="" name="NoClassifieds"> La creación y edición de clasificados sólo está disponible en el modo Avanzado. ¿Quieres salir y cambiar de modo? El selector de modo se encuentra en la pantalla de inicio de sesión. <usetemplate name="okcancelbuttons" notext="No salir" yestext="Salir"/> @@ -3047,6 +3049,10 @@ Al ocultar el botón Hablar se desactiva la función de voz. Las búsquedas solo están disponibles en el modo Avanzado. ¿Quieres cerrar sesión y cambiar de modo? <usetemplate name="okcancelbuttons" notext="No salir" yestext="Salir"/> </notification> + <notification label="" name="ConfirmHideUI"> + Esta acción ocultará todos los botones y elementos de menú. Para restaurarlos, pulsa otra vez en [SHORTCUT]. + <usetemplate ignoretext="Confirmar antes de ocultar la IU" name="okcancelignore" notext="Cancelar" yestext="OK"/> + </notification> <global name="UnsupportedGLRequirements"> Parece que no tienes el hardware apropiado para [APP_NAME]. [APP_NAME] requiere una tarjeta gráfica OpenGL que admita texturas múltiples ('multitexture support'). Si la tienes, comprueba que tienes los últimos 'drivers' para tu tarjeta gráfica, asà como los últimos parches y 'service packs' para tu sistema operativo. diff --git a/indra/newview/skins/default/xui/es/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/es/panel_chiclet_bar.xml new file mode 100644 index 0000000000000000000000000000000000000000..eaaa5dbe78a36ad5f7e2ee1ac5b422a557d04f00 --- /dev/null +++ b/indra/newview/skins/default/xui/es/panel_chiclet_bar.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="chiclet_bar"> + <layout_stack name="toolbar_stack"> + <layout_panel name="im_well_panel"> + <chiclet_im_well name="im_well"> + <button name="Unread IM messages" tool_tip="Conversaciones"/> + </chiclet_im_well> + </layout_panel> + <layout_panel name="notification_well_panel"> + <chiclet_notification name="notification_well"> + <button name="Unread" tool_tip="Notificaciones"/> + </chiclet_notification> + </layout_panel> + </layout_stack> +</panel> diff --git a/indra/newview/skins/default/xui/es/panel_me.xml b/indra/newview/skins/default/xui/es/panel_me.xml index ed253904aa3f7157f95dcd2c89ef6a595f8183f7..850cd6ec7190d824cdda70c3a998bac220dd2338 100644 --- a/indra/newview/skins/default/xui/es/panel_me.xml +++ b/indra/newview/skins/default/xui/es/panel_me.xml @@ -1,7 +1,4 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Mi perfil" name="panel_me"> - <tab_container name="tabs"> - <panel label="MI PERFIL" name="panel_profile"/> - <panel label="MIS DESTACADOS" name="panel_picks"/> - </tab_container> + <panel label="MIS DESTACADOS" name="panel_picks"/> </panel> diff --git a/indra/newview/skins/default/xui/es/panel_navigation_bar.xml b/indra/newview/skins/default/xui/es/panel_navigation_bar.xml index 293c9ef1d9491fc8b21ff5dc62bc6db7dd281f86..1b7f5d5a9f43e9bc4c9015b453f8fa8ba7ed6a39 100644 --- a/indra/newview/skins/default/xui/es/panel_navigation_bar.xml +++ b/indra/newview/skins/default/xui/es/panel_navigation_bar.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="navigation_bar"> - <panel name="navigation_panel"> - <pull_button name="back_btn" tool_tip="Volver a la localización anterior"/> - <pull_button name="forward_btn" tool_tip="Ir una localización adelante"/> - <button name="home_btn" tool_tip="Teleportar a mi Base"/> - <location_input label="Localización" name="location_combo"/> - <search_combo_box label="Buscar" name="search_combo_box" tool_tip="Buscar"> - <combo_editor label="Buscar en [SECOND_LIFE]" name="search_combo_editor"/> - </search_combo_box> - </panel> - <favorites_bar name="favorite" tool_tip="¡Accede rápidamente a tus lugares favoritos de Second Life arrastrando hitos hasta aquÃ!"> - <label name="favorites_bar_label" tool_tip="¡Accede rápidamente a tus lugares favoritos de Second Life arrastrando hitos hasta aquÃ!"> - Barra de Favoritos - </label> - <chevron_button name=">>" tool_tip="Ver más de Mis favoritos"/> - </favorites_bar> + <layout_stack name="nvp_stack"> + <layout_panel name="navigation_layout_panel"> + <panel name="navigation_panel"> + <pull_button name="back_btn" tool_tip="Volver a lo localización anterior"/> + <pull_button name="forward_btn" tool_tip="Ir una localización adelante"/> + <button name="home_btn" tool_tip="Teleportar a mi Base"/> + <location_input label="Lugar" name="location_combo"/> + </panel> + </layout_panel> + <layout_panel name="favorites_layout_panel"> + <favorites_bar name="favorite" tool_tip="¡Accede rápidamente a tus lugares favoritos de Second Life arrastrando hitos hasta aquÃ!"> + <label name="favorites_bar_label" tool_tip="¡Accede rápidamente a tus lugares favoritos de Second Life arrastrando hitos hasta aquÃ!"> + Barra de Favoritos + </label> + <more_button name=">>" tool_tip="Ver más de Mis favoritos"> + Más â–¼ + </more_button> + </favorites_bar> + </layout_panel> + </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/es/panel_nearby_chat.xml b/indra/newview/skins/default/xui/es/panel_nearby_chat.xml new file mode 100644 index 0000000000000000000000000000000000000000..95ce14c9a7b9b9b8956e095334013bf6926c3e06 --- /dev/null +++ b/indra/newview/skins/default/xui/es/panel_nearby_chat.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="nearby_chat"> + <check_box label="Traducir chat (mediante Google)" name="translate_chat_checkbox"/> +</panel> diff --git a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml index a15c8deaf93028d0c69030da39a8f4ec64d78ed8..4625075aa5772e20df290b46d0c5e8176e12633b 100644 --- a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml @@ -51,7 +51,7 @@ <combo_box.item label="РуÑÑкий (ruso)" name="Russian"/> <combo_box.item label="Türkçe (turco)" name="Turkish"/> <combo_box.item label="УкраїнÑька (ucraniano)" name="Ukrainian"/> - <combo_box.item label="䏿–‡ (æ£é«”) (chino)" name="Chinese"/> + <combo_box.item label="䏿–‡ (æ£é«”) (Chino)" name="Chinese"/> <combo_box.item label="日本語 (japonés)" name="Japanese"/> <combo_box.item label="한êµì–´ (coreano)" name="Korean"/> </combo_box> diff --git a/indra/newview/skins/default/xui/es/panel_preferences_general.xml b/indra/newview/skins/default/xui/es/panel_preferences_general.xml index c762e6b7fef6684bfe6d3d15f1494b85346a8779..4fc163f5b67e02c5bed29c213356842c7e0844e9 100644 --- a/indra/newview/skins/default/xui/es/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/es/panel_preferences_general.xml @@ -13,7 +13,10 @@ <combo_box.item label="Italiano - Beta" name="Italian"/> <combo_box.item label="Polski (Polaco) - Beta" name="Polish"/> <combo_box.item label="Português (portugués) - Beta" name="Portugese"/> + <combo_box.item label="РуÑÑкий (Ruso) - Beta" name="Russian"/> + <combo_box.item label="Türkçe (Turco) - Beta" name="Turkish"/> <combo_box.item label="日本語 (Japonés) - Beta" name="(Japanese)"/> + <combo_box.item label="æ£é«”䏿–‡ (Chino tradicional) - Beta" name="Traditional Chinese"/> </combo_box> <text name="language_textbox2"> (requiere reiniciar) @@ -48,7 +51,6 @@ <check_box label="TÃtulos de grupos" name="show_all_title_checkbox1" tool_tip="Mostrar tÃtulos de grupos, como Jefe o Miembro"/> <check_box label="Realzar amigos" name="show_friends" tool_tip="Realzar las etiquetas de los nombres de tus amigos"/> <check_box label="Ver nombres mostrados" name="display_names_check" tool_tip="Comprobar para utilizar nombres mostrados en chat, MI, etiquetas de nombres, etc."/> - <check_box label="Permitir los consejos de la IU del visor" name="viewer_hints_check"/> <text name="inworld_typing_rg_label"> Si pulsas las teclas de letras: </text> diff --git a/indra/newview/skins/default/xui/es/panel_preferences_move.xml b/indra/newview/skins/default/xui/es/panel_preferences_move.xml index d95e1673612d60c55037570fe35aa21325e2c154..b2ff6b61c2db25ce0b3830aeb4fa2473f5b4ff99 100644 --- a/indra/newview/skins/default/xui/es/panel_preferences_move.xml +++ b/indra/newview/skins/default/xui/es/panel_preferences_move.xml @@ -7,18 +7,33 @@ </text> <check_box label="Construir/Editar" name="edit_camera_movement" tool_tip="Usar el posicionamiento automático de la cámara al entrar en o salir del modo de edición"/> <check_box label="Apariencia" name="appearance_camera_movement" tool_tip="Usar el posicionamiento automático de la cámara mientras se está editando"/> - <check_box initial_value="verdadero" label="Barra lateral" name="appearance_sidebar_positioning" tool_tip="Usar el posicionamiento automático de la cámara para la barra lateral"/> + <text name="keyboard_lbl"> + Teclado: + </text> + <check_box label="Las teclas del cursor siempre para moverme" name="arrow_keys_move_avatar_check"/> + <check_box label="Correr siempre: atajo de teclado" name="tap_tap_hold_to_run"/> + <text name="mouse_lbl"> + Ratón: + </text> <check_box label="Verme en vista subjetiva" name="first_person_avatar_visible"/> <text name=" Mouse Sensitivity"> Sensibilidad del ratón en la Vista subjetiva: </text> <check_box label="Invertir" name="invert_mouse"/> - <check_box label="Las teclas del cursor siempre para moverme" name="arrow_keys_move_avatar_check"/> - <check_box label="Correr siempre: atajo de teclado" name="tap_tap_hold_to_run"/> - <check_box label="Haz doble clic para:" name="double_click_chkbox"/> - <radio_group name="double_click_action"> - <radio_item label="Teleportarte" name="radio_teleport"/> - <radio_item label="Piloto automático" name="radio_autopilot"/> - </radio_group> + <text name="single_click_action_lbl"> + Un clic en el terreno: + </text> + <combo_box name="single_click_action_combo"> + <combo_box.item label="Ninguna acción" name="0"/> + <combo_box.item label="Ir al punto seleccionado" name="1"/> + </combo_box> + <text name="double_click_action_lbl"> + Doble clic en el terreno: + </text> + <combo_box name="double_click_action_combo"> + <combo_box.item label="Ninguna acción" name="0"/> + <combo_box.item label="Ir al punto seleccionado" name="1"/> + <combo_box.item label="Teleportarte al punto seleccionado" name="2"/> + </combo_box> <button label="Otros dispositivos" name="joystick_setup_button"/> </panel> diff --git a/indra/newview/skins/default/xui/es/panel_status_bar.xml b/indra/newview/skins/default/xui/es/panel_status_bar.xml index 0391258b755d9d19f0fe99cb35ca62627a6490c1..d43790c8c6fe4cef88e71aebff2c70c825ee82d6 100644 --- a/indra/newview/skins/default/xui/es/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/es/panel_status_bar.xml @@ -17,12 +17,9 @@ </panel.string> <panel name="balance_bg"> <text name="balance" tool_tip="Haz clic para actualizar tu saldo en L$" value="20 L$"/> - <button label="COMPRAR L$" name="buyL" tool_tip="Pulsa para comprar más L$"/> + <button label="Comprar L$" name="buyL" tool_tip="Pulsa para comprar más L$"/> + <button label="Comprar" name="goShop" tool_tip="Abrir el mercado de Second Life"/> </panel> - <combo_box name="mode_combo" tool_tip="Selecciona el modo. Elige Básico para una exploración rápida y fácil y para chatear. Elige Avanzado para tener acceso a más funciones."> - <combo_box.item label="Modo Básico" name="Basic"/> - <combo_box.item label="Modo Avanzado" name="Advanced"/> - </combo_box> <text name="TimeText" tool_tip="Hora actual (PacÃfico)"> 24:00 AM PST </text> diff --git a/indra/newview/skins/default/xui/es/sidepanel_inventory.xml b/indra/newview/skins/default/xui/es/sidepanel_inventory.xml index aae9bfc11355b194f9f7a7ff7f919f44137cd259..79d0cb84e8990b374ccf379d9b6b78a1d1b03680 100644 --- a/indra/newview/skins/default/xui/es/sidepanel_inventory.xml +++ b/indra/newview/skins/default/xui/es/sidepanel_inventory.xml @@ -14,7 +14,7 @@ </string> <button label="Objetos recibidos" name="inbox_btn"/> <text name="inbox_fresh_new_count"> - [NUM] Nuevos + [NUM] nuevos </text> <panel tool_tip="Drag and drop items to your inventory to manage and use them"> <text name="inbox_inventory_placeholder"> diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml index cc044ba416b3863c4ff0de1456b85d06be08bc65..83747b85c0318e02e23f2c7225b10b805a6c493d 100644 --- a/indra/newview/skins/default/xui/es/strings.xml +++ b/indra/newview/skins/default/xui/es/strings.xml @@ -34,6 +34,9 @@ <string name="ProgressChangingResolution"> Cambiando la resolución... </string> + <string name="Fullbright"> + Brillo al máximo (antiguo) + </string> <string name="LoginInProgress"> Iniciando la sesión. [APP_NAME] debe de aparecer congelado. Por favor, espere. </string> @@ -116,7 +119,7 @@ No se pudo verificar la firma del certificado devuelta por el servidor de la cuadrÃcula. Ponte en contacto con el administrador de la cuadrÃcula. </string> <string name="LoginFailedNoNetwork"> - Error de red: no se ha podido conectar; por favor, revisa tu conexión a Internet. + Error de red: no se ha podido conectar; por favor, revisa tu conexión a internet. </string> <string name="LoginFailed"> Error en el inicio de sesión. @@ -1255,6 +1258,9 @@ Intenta iniciar sesión de nuevo en unos instantes. <string name="Marketplace Error Internal Import"> Error: Este objeto tiene un problema. Vuelve a intentarlo más tarde. </string> + <string name="Open landmarks"> + Abrir hitos + </string> <string name="no_transfer" value="(no transferible)"/> <string name="no_modify" value="(no modificable)"/> <string name="no_copy" value="(no copiable)"/> @@ -4158,8 +4164,8 @@ Denuncia de infracción <string name="Female - Wow"> Mujer - Admiración </string> - <string name="/bow1"> - /reverencia1 + <string name="/bow"> + /reverencia </string> <string name="/clap"> /aplaudir @@ -4671,4 +4677,172 @@ Inténtalo incluyendo la ruta de acceso al editor entre comillas <string name="ParticleHiding"> Ocultando las partÃculas </string> + <string name="Command_AboutLand_Label"> + Acerca del terreno + </string> + <string name="Command_Appearance_Label"> + Apariencia + </string> + <string name="Command_Avatar_Label"> + Avatar + </string> + <string name="Command_Build_Label"> + Construir + </string> + <string name="Command_Chat_Label"> + Chat + </string> + <string name="Command_Compass_Label"> + Brújula + </string> + <string name="Command_Destinations_Label"> + Destinos + </string> + <string name="Command_Gestures_Label"> + Gestos + </string> + <string name="Command_HowTo_Label"> + Cómo + </string> + <string name="Command_Inventory_Label"> + Inventario + </string> + <string name="Command_Map_Label"> + Mapa + </string> + <string name="Command_Marketplace_Label"> + Mercado + </string> + <string name="Command_MiniMap_Label"> + Minimapa + </string> + <string name="Command_Move_Label"> + Moverme + </string> + <string name="Command_People_Label"> + Gente + </string> + <string name="Command_Picks_Label"> + Destacados + </string> + <string name="Command_Places_Label"> + Lugares + </string> + <string name="Command_Preferences_Label"> + Preferencias + </string> + <string name="Command_Profile_Label"> + Perfil + </string> + <string name="Command_Search_Label"> + Buscar + </string> + <string name="Command_Snapshot_Label"> + Foto + </string> + <string name="Command_Speak_Label"> + Hablar + </string> + <string name="Command_View_Label"> + Visión + </string> + <string name="Command_Voice_Label"> + Chat de voz + </string> + <string name="Command_AboutLand_Tooltip"> + Información sobre el terreno que vas a visitar + </string> + <string name="Command_Appearance_Tooltip"> + Cambiar tu avatar + </string> + <string name="Command_Avatar_Tooltip"> + Elegir un avatar completo + </string> + <string name="Command_Build_Tooltip"> + Construir objetos y modificar la forma del terreno + </string> + <string name="Command_Chat_Tooltip"> + Habla por chat de texto con las personas próximas + </string> + <string name="Command_Compass_Tooltip"> + Brújula + </string> + <string name="Command_Destinations_Tooltip"> + Destinos de interés + </string> + <string name="Command_Gestures_Tooltip"> + Gestos para tu avatar + </string> + <string name="Command_HowTo_Tooltip"> + Cómo hacer las tareas habituales + </string> + <string name="Command_Inventory_Tooltip"> + Ver y usar tus pertenencias + </string> + <string name="Command_Map_Tooltip"> + Mapa del mundo + </string> + <string name="Command_Marketplace_Tooltip"> + Ir de compras + </string> + <string name="Command_MiniMap_Tooltip"> + Mostrar la gente que está cerca + </string> + <string name="Command_Move_Tooltip"> + Desplazando el avatar + </string> + <string name="Command_People_Tooltip"> + Amigos, grupos y personas próximas + </string> + <string name="Command_Picks_Tooltip"> + Lugares que se mostrarán como favoritos en tu perfil + </string> + <string name="Command_Places_Tooltip"> + Lugares que has guardado + </string> + <string name="Command_Preferences_Tooltip"> + Preferencias + </string> + <string name="Command_Profile_Tooltip"> + Consulta o edita tu perfil + </string> + <string name="Command_Search_Tooltip"> + Buscar lugares, eventos y personas + </string> + <string name="Command_Snapshot_Tooltip"> + Tomar una fotografÃa + </string> + <string name="Command_Speak_Tooltip"> + Utiliza el micrófono para hablar con las personas próximas + </string> + <string name="Command_View_Tooltip"> + Cambiando el ángulo de la cámara + </string> + <string name="Command_Voice_Tooltip"> + Personas próximas con capacidad de voz + </string> + <string name="Retain%"> + % retención + </string> + <string name="Detail"> + Detalle + </string> + <string name="Better Detail"> + Mejor detalle + </string> + <string name="Surface"> + Superficie + </string> + <string name="Solid"> + Sólido + </string> + <string name="Wrap"> + Envoltura + </string> + <string name="Preview"> + Vista previa + </string> + <string name="Normal"> + Normal + </string> </strings> diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml index dd4c1c9f63fbcc285be46c097231230c40a1c22d..66b84af3aa57168c81a6468b94cbde0052c2423e 100644 --- a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml @@ -16,7 +16,7 @@ <combo_box.item label="РуÑÑкий (Russe) - Bêta" name="Russian"/> <combo_box.item label="Türkçe (Turc) - Bêta" name="Turkish"/> <combo_box.item label="日本語 (Japonais) - Bêta" name="(Japanese)"/> - <combo_box.item label="æ£é«” (Chinois traditionnel) - Bêta" name="Traditional Chinese"/> + <combo_box.item label="æ£é«”䏿–‡ (Chinois traditionnel) - Bêta" name="Traditional Chinese"/> </combo_box> <text name="language_textbox2"> (redémarrage requis) diff --git a/indra/newview/skins/default/xui/it/panel_preferences_general.xml b/indra/newview/skins/default/xui/it/panel_preferences_general.xml index 4f521054049338e961eb191e861d5e7cad896148..90a833471ceb4a019974a91346eae64ffce6f8ff 100644 --- a/indra/newview/skins/default/xui/it/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/it/panel_preferences_general.xml @@ -16,7 +16,7 @@ <combo_box.item label="РуÑÑкий (Russo) - Beta" name="Russian"/> <combo_box.item label="Türkçe (Turco) - Beta" name="Turkish"/> <combo_box.item label="日本語 (Giapponese) - Beta" name="(Japanese)"/> - <combo_box.item label="æ£é«” (Cinese tradizionale) - Beta" name="Traditional Chinese"/> + <combo_box.item label="æ£é«”䏿–‡ (Cinese tradizionale) - Beta" name="Traditional Chinese"/> </combo_box> <text name="language_textbox2"> (Richiede il riavvio) diff --git a/indra/newview/skins/default/xui/ja/floater_about.xml b/indra/newview/skins/default/xui/ja/floater_about.xml index 47bb2455cf825d63730d434de493b1c47038ba38..c628ade43e75c02b7c91c146fac03ccb36fbc0af 100644 --- a/indra/newview/skins/default/xui/ja/floater_about.xml +++ b/indra/newview/skins/default/xui/ja/floater_about.xml @@ -10,7 +10,7 @@ <floater.string name="AboutPosition"> ã‚ãªãŸã®ç¾åœ¨åœ°ã¯ã€[POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1] ã® [REGION] ã§ã™ã€‚ä½ç½®ã¯ <nolink>[HOSTNAME]</nolink> ã§ã™ã€‚([HOSTIP]) [SERVER_VERSION] -[[SERVER_RELEASE_NOTES_URL] [リリースノート]] +[SERVER_RELEASE_NOTES_URL] </floater.string> <floater.string name="AboutSystem"> CPU: [CPU] @@ -37,6 +37,9 @@ Qt Webkit ãƒãƒ¼ã‚¸ãƒ§ãƒ³ï¼š [QT_WEBKIT_VERSION] <floater.string name="AboutTraffic"> パケットãƒã‚¹ï¼š [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) </floater.string> + <floater.string name="ErrorFetchingServerReleaseNotesURL"> + サーãƒãƒ¼ã®ãƒªãƒªãƒ¼ã‚¹ãƒŽãƒ¼ãƒˆã® URL ã‚’å–å¾—ä¸ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ + </floater.string> <tab_container name="about_tab"> <panel label="æƒ…å ±" name="support_panel"> <button label="クリップボードã«ã‚³ãƒ”ー" name="copy_btn"/> diff --git a/indra/newview/skins/default/xui/ja/floater_about_land.xml b/indra/newview/skins/default/xui/ja/floater_about_land.xml index e870a8ace931b22b1c5719c7f928d5e3c63f21c6..3c88c902f88c8f8757ffdea00c8197733d0c88af 100644 --- a/indra/newview/skins/default/xui/ja/floater_about_land.xml +++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml @@ -214,19 +214,19 @@ オブジェクトボーナス: [BONUS] </text> <text name="Simulator primitive usage:"> - プリム使用状æ³ï¼š + リージョン(地域)ã®è¨±å®¹æ•°ï¼š </text> <text name="objects_available"> [MAX] ã®å†… [COUNT] ([AVAILABLE] 利用å¯èƒ½ï¼‰ </text> <text name="Primitives parcel supports:"> - 区画ã§ã‚µãƒãƒ¼ãƒˆã•れるプリム数: + 区画ã®è¨±å®¹æ•°ï¼š </text> <text name="object_contrib_text"> [COUNT] </text> <text name="Primitives on parcel:"> - 区画上ã®ãƒ—リム数: + 区画ã®è² è·ï¼š </text> <text name="total_objects_text"> [COUNT] diff --git a/indra/newview/skins/default/xui/ja/floater_avatar.xml b/indra/newview/skins/default/xui/ja/floater_avatar.xml new file mode 100644 index 0000000000000000000000000000000000000000..c4455282d2baddb28cef0a27a7c117ff695b522c --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_avatar.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Avatar" title="ã‚¢ãƒã‚¿ãƒ¼ãƒ”ッカー"/> diff --git a/indra/newview/skins/default/xui/ja/floater_camera.xml b/indra/newview/skins/default/xui/ja/floater_camera.xml index 71a20c8e187f183eebce5ae1ef4783e67a9ef8b3..5d3a048975617f76cd2c4db3dcd165e078c3965f 100644 --- a/indra/newview/skins/default/xui/ja/floater_camera.xml +++ b/indra/newview/skins/default/xui/ja/floater_camera.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="camera_floater"> +<floater name="camera_floater" title="表示"> <floater.string name="rotate_tooltip"> フォーカスをä¸å¿ƒã«ã‚«ãƒ¡ãƒ©ã‚’回転 </floater.string> diff --git a/indra/newview/skins/default/xui/ja/floater_chat_bar.xml b/indra/newview/skins/default/xui/ja/floater_chat_bar.xml new file mode 100644 index 0000000000000000000000000000000000000000..9735afb101edd670be8fe9047e747378a4996589 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_chat_bar.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="chat_bar" title="è¿‘ãã®ãƒãƒ£ãƒƒãƒˆ"> + <panel> + <line_editor label="ã“ã“をクリックã—ã¦ãƒãƒ£ãƒƒãƒˆã‚’é–‹å§‹ã—ã¾ã™ã€‚" name="chat_box" tool_tip="Enter ã‚ーを押ã—ã¦è©±ã—ã€Ctrl + Enter ã‚ーã§å«ã³ã¾ã™ã€‚"/> + <button name="show_nearby_chat" tool_tip="è¿‘ãã®ãƒãƒ£ãƒƒãƒˆãƒã‚°ã‚’表示・éžè¡¨ç¤º"/> + </panel> +</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_destinations.xml b/indra/newview/skins/default/xui/ja/floater_destinations.xml new file mode 100644 index 0000000000000000000000000000000000000000..b7f6ad4d4e3687ac3be57e42527831e55221f501 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_destinations.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Destinations" title="行ãå…ˆ"/> diff --git a/indra/newview/skins/default/xui/ja/floater_fast_timers.xml b/indra/newview/skins/default/xui/ja/floater_fast_timers.xml new file mode 100644 index 0000000000000000000000000000000000000000..5f538ecdb0ed2934c01e96f36e2ff1c337d7110e --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_fast_timers.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="fast_timers"> + <string name="pause"> + ä¸€æ™‚åœæ¢ + </string> + <string name="run"> + èµ°ã‚‹ + </string> + <button label="ä¸€æ™‚åœæ¢" name="pause_btn"/> +</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_how_to.xml b/indra/newview/skins/default/xui/ja/floater_how_to.xml new file mode 100644 index 0000000000000000000000000000000000000000..4cebe27226c2c7d3a60532a8dbb55423311e4c81 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_how_to.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_how_to" title="ãƒã‚¦ãƒ„ー"/> diff --git a/indra/newview/skins/default/xui/ja/floater_map.xml b/indra/newview/skins/default/xui/ja/floater_map.xml index ff5a25fd7b1811ac1ebe8be92917202fdfb9cd47..11222034465da586228bc8ada3aebe565804913c 100644 --- a/indra/newview/skins/default/xui/ja/floater_map.xml +++ b/indra/newview/skins/default/xui/ja/floater_map.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Map" title=""> +<floater name="Map" title="ミニマップ"> <floater.string name="ToolTipMsg"> [REGION](ダブルクリックã§åœ°å›³ã‚’é–‹ã。Shiftâ€ãƒ‰ãƒ©ãƒƒã‚°ã§æ°´å¹³ãƒ»åž‚直移動) </floater.string> diff --git a/indra/newview/skins/default/xui/ja/floater_model_preview.xml b/indra/newview/skins/default/xui/ja/floater_model_preview.xml index 07667bb697e0f12adc7a6a5737f80437b98e5a57..157c68a5705bd9e282ea57c7a2ea75773f08b3d4 100644 --- a/indra/newview/skins/default/xui/ja/floater_model_preview.xml +++ b/indra/newview/skins/default/xui/ja/floater_model_preview.xml @@ -1,10 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Model Preview" title="モデルをアップãƒãƒ¼ãƒ‰"> - <string name="status_idle"> - 待機状態 - </string> +<floater name="Model Preview" title="モデルウィザード"> + <string name="status_idle"/> <string name="status_parse_error"> - Dae ã«å•題ãŒè¦‹ã¤ã‹ã‚Šã¾ã—㟠- 詳細ã«ã¤ã„ã¦ã¯ãƒã‚°ã‚’ã”å‚ç…§ãã ã•ã„。 + エラー:Dae ã«å•題ãŒè¦‹ã¤ã‹ã‚Šã¾ã—㟠- 詳細ã«ã¤ã„ã¦ã¯ãƒã‚°ã‚’ã”å‚ç…§ãã ã•ã„。 </string> <string name="status_reading_file"> ãƒãƒ¼ãƒ‡ã‚£ãƒ³ã‚°... @@ -51,6 +49,9 @@ <string name="mesh_status_missing_lod"> å¿…è¦ãªæç”»è©³ç´°åº¦ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。 </string> + <string name="mesh_status_invalid_material_list"> + LOD 付ãã®ææ–™ã¯å‚考モデルã®ã‚µãƒ–セットã§ã¯ã‚りã¾ã›ã‚“。 + </string> <string name="layer_all"> 全㦠</string> @@ -63,188 +64,211 @@ <string name="tbd"> 未定 </string> - <text name="name_label"> - åå‰ï¼š - </text> - <text name="lod_label"> - プレビュー: - </text> - <combo_box name="preview_lod_combo" tool_tip="プレビュー表示ã®LODè¨å®š"> - <combo_item name="high"> - æç”»è©³ç´°åº¦ï¼šé«˜ - </combo_item> - <combo_item name="medium"> - æç”»è©³ç´°åº¦ï¼šä¸ - </combo_item> - <combo_item name="low"> - æç”»è©³ç´°åº¦ï¼šä½Ž - </combo_item> - <combo_item name="lowest"> - æç”»è©³ç´°åº¦ï¼šæœ€ä½Ž - </combo_item> - </combo_box> - <text name="warning_title"> - è¦å‘Šï¼š - </text> - <text name="warning_message"> - ã“ã®ãƒ¢ãƒ‡ãƒ«ã‚’ Second Life サーãƒãƒ¼ã«ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。メッシュモデルã®ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰æ‰‹é †ã«ã¤ã„ã¦ã¯ [[VURL] ã“ã¡ã‚‰ã‚’å‚ç…§ã—ã¦ãã ã•ã„]。 - </text> - <text name="weights_text"> - ダウンãƒãƒ¼ãƒ‰ï¼š -ç‰©ç†æ¼”算: -サーãƒãƒ¼è² è·ï¼š - -プリムæ›ç®—: - </text> - <text name="weights"> - [ST] -[PH] -[SIM] - -[EQ] - </text> - <tab_container name="import_tab"> - <panel label="æç”»è©³ç´°åº¦" name="lod_panel"> - <text name="lod_table_header"> - æç”»è©³ç´°åº¦ã‚’é¸æŠžï¼š - </text> - <text name="high_label" value="高"/> - <text name="high_triangles" value="0"/> - <text name="high_vertices" value="0"/> - <text name="medium_label" value="ä¸"/> - <text name="medium_triangles" value="0"/> - <text name="medium_vertices" value="0"/> - <text name="low_label" value="低"/> - <text name="low_triangles" value="0"/> - <text name="low_vertices" value="0"/> - <text name="lowest_label" value="最低"/> - <text name="lowest_triangles" value="0"/> - <text name="lowest_vertices" value="0"/> - <text name="lod_table_footer"> - æç”»è©³ç´°åº¦ï¼š [DETAIL] - </text> - <radio_group name="lod_file_or_limit" value="lod_from_file"> - <radio_item label="ファイルã‹ã‚‰ãƒãƒ¼ãƒ‰" name="lod_from_file"/> - <radio_item label="自動作æˆ" name="lod_auto_generate"/> - <radio_item label="ãªã—" name="lod_none"/> - </radio_group> - <button label="å‚ç…§" name="lod_browse"/> - <combo_box name="lod_mode"> - <combo_item name="triangle_limit"> - 三角形ã®é™åº¦æ•° - </combo_item> - <combo_item name="error_threshold"> - エラーã—ãã„値 - </combo_item> - </combo_box> - <text name="build_operator_text"> - 制作演算å: + <panel name="left_panel"> + <panel name="model_name_representation_panel"> + <text name="name_label"> + モデルå: </text> - <text name="queue_mode_text"> - ã‚ューモード: + <text name="model_category_label"> + ã“ã®ãƒ¢ãƒ‡ãƒ«ã¯... </text> - <combo_box name="build_operator"> - <combo_item name="edge_collapse"> - 稜ã®å®Œå…¨è¤‡åˆ - </combo_item> - <combo_item name="half_edge_collapse"> - 稜ã®åŠè¤‡åˆ - </combo_item> - </combo_box> - <combo_box name="queue_mode"> - <combo_item name="greedy"> - グリーディ - </combo_item> - <combo_item name="lazy"> - レイジー - </combo_item> - <combo_item name="independent"> - インディペンデント - </combo_item> + <combo_box name="model_category_combo"> + <combo_item label="1ã¤ã‚’é¸æŠž..." name="Choose one"/> + <combo_item label="ã‚¢ãƒã‚¿ãƒ¼ã®å½¢" name="Avatar shape"/> + <combo_item label="ã‚¢ãƒã‚¿ãƒ¼ã®ã‚¢ã‚¿ãƒƒãƒãƒ¡ãƒ³ãƒˆ" name="Avatar attachment"/> + <combo_item label="å‹•ãオブジェクト(車ã€å‹•物)" name="Moving object (vehicle, animal)"/> + <combo_item label="制作用コンãƒãƒ¼ãƒãƒ³ãƒˆ" name="Building Component"/> + <combo_item label="大型ã€ä¸å‹•ã€ç‰" name="Large, non moving etc"/> + <combo_item label="ã‚„ã‚„å°åž‹ã€ä¸å‹•ã€ç‰" name="Smaller, non-moving etc"/> + <combo_item label="ã„ãšã‚Œã«ã‚‚該当ã—ãªã„" name="Not really any of these"/> </combo_box> - <text name="border_mode_text"> - 境界線モード: - </text> - <text name="share_tolderance_text"> - 共有誤差: - </text> - <combo_box name="border_mode"> - <combo_item name="border_unlock"> - ãƒãƒƒã‚¯è§£é™¤ - </combo_item> - <combo_item name="border_lock"> - ãƒãƒƒã‚¯ - </combo_item> - </combo_box> - <text name="crease_label"> - 折れ角度: - </text> - <spinner name="crease_angle" value="75"/> </panel> - <panel label="物ç†åŠ¹æžœ" name="physics_panel"> - <panel name="physics geometry"> - <radio_group name="physics_load_radio" value="physics_load_from_file"> - <radio_item label="ファイル:" name="physics_load_from_file"/> - <radio_item label="æ¬¡ã®æç”»è©³ç´°åº¦ã‚’ä½¿ç”¨ï¼š" name="physics_use_lod"/> - </radio_group> - <combo_box name="physics_lod_combo" tool_tip="実åƒã«é©ç”¨ã™ã‚‹LOD"> - <combo_item name="physics_lowest"> - 最低 - </combo_item> - <combo_item name="physics_low"> - 低 - </combo_item> - <combo_item name="physics_medium"> - ä¸ - </combo_item> - <combo_item name="physics_high"> - 高 - </combo_item> - </combo_box> - <button label="å‚ç…§" name="physics_browse"/> + <tab_container name="import_tab"> + <panel label="æç”»è©³ç´°åº¦" name="lod_panel" title="æç”»è©³ç´°åº¦"> + <text initial_value="データæº" name="source" value="データæº"/> + <text initial_value="三角形" name="triangles" value="三角形"/> + <text initial_value="é ‚ç‚¹" name="vertices" value="é ‚ç‚¹"/> + <text initial_value="高" name="high_label" value="高"/> + <button label="å‚ç…§" name="lod_browse_high"/> + <text initial_value="0" name="high_triangles" value="0"/> + <text initial_value="0" name="high_vertices" value="0"/> + <text initial_value="ä¸" name="medium_label" value="ä¸"/> + <button label="å‚ç…§" name="lod_browse_medium"/> + <text initial_value="0" name="medium_triangles" value="0"/> + <text initial_value="0" name="medium_vertices" value="0"/> + <text initial_value="低" name="low_label" value="低"/> + <button label="å‚ç…§" name="lod_browse_low"/> + <text initial_value="0" name="low_triangles" value="0"/> + <text initial_value="0" name="low_vertices" value="0"/> + <text initial_value="最低" name="lowest_label" value="最低"/> + <button label="å‚ç…§" name="lod_browse_lowest"/> + <text initial_value="0" name="lowest_triangles" value="0"/> + <text initial_value="0" name="lowest_vertices" value="0"/> + <check_box label="ノーマルã®ä½œæˆ" name="gen_normals"/> + <text initial_value="折れ角度:" name="crease_label" value="折れ角度:"/> + <spinner name="crease_angle" value="75"/> </panel> - <panel name="physics analysis"> - <slider label="滑らã‹ã•:" name="Smooth"/> - <check_box label="ç©´ã‚’é–‰ã˜ã‚‹ï¼ˆã‚¹ãƒãƒ¼ï¼‰" name="Close Holes (Slow)"/> - <button label="分æž" name="Decompose"/> - <button label="å–り消ã—" name="decompose_cancel"/> + <panel label="物ç†åŠ¹æžœ" name="physics_panel"> + <panel name="physics geometry"> + <text name="first_step_name"> + æ‰‹é †1:æç”»è©³ç´°åº¦ + </text> + <combo_box name="physics_lod_combo" tool_tip="実åƒã«é©ç”¨ã™ã‚‹LOD"> + <combo_item name="choose_one"> + 1ã¤ã‚’é¸æŠž... + </combo_item> + <combo_item name="physics_high"> + 高 + </combo_item> + <combo_item name="physics_medium"> + ä¸ + </combo_item> + <combo_item name="physics_low"> + 低 + </combo_item> + <combo_item name="physics_lowest"> + 最低 + </combo_item> + <combo_item name="load_from_file"> + ファイルã‹ã‚‰ + </combo_item> + </combo_box> + <button label="å‚ç…§" name="physics_browse"/> + </panel> + <panel name="physics analysis"> + <text name="method_label"> + æ‰‹é †2ï¼šåˆ†æž + </text> + <text name="analysis_method_label"> + 方法: + </text> + <text name="quality_label"> + å“質: + </text> + <text name="smooth_method_label"> + 滑らã‹ã•: + </text> + <check_box label="ç©´ã‚’é–‰ã˜ã‚‹" name="Close Holes (Slow)"/> + <button label="分æž" name="Decompose"/> + <button label="å–り消ã—" name="decompose_cancel"/> + </panel> + <panel name="physics simplification"> + <text name="second_step_label"> + æ‰‹é †3:å˜ç´”化 + </text> + <text name="simp_method_header"> + 方法: + </text> + <text name="pass_method_header"> + パス: + </text> + <text name="Detail Scale label"> + 詳細度: + </text> + <text name="Retain%_label"> + ç¶æŒçŽ‡ï¼š + </text> + <combo_box name="Combine Quality" value="1"/> + <button label="å˜ç´”化" name="Simplify"/> + <button label="å–り消ã—" name="simplify_cancel"/> + </panel> + <panel name="physics info"> + <text name="results_text"> + çµæžœï¼š + </text> + <text name="physics_triangles"> + 三角形:[TRIANGLES], + </text> + <text name="physics_points"> + é ‚ç‚¹ï¼š[POINTS], + </text> + <text name="physics_hulls"> + å¤–æ®»æ§‹é€ ï¼š[HULLS] + </text> + </panel> </panel> - <panel name="physics simplification"> - <slider label="パス:" name="Combine Quality"/> - <slider label="詳細度:" name="Detail Scale"/> - <slider label="ç¶æŒçŽ‡ï¼š" name="Retain%"/> - <button label="å˜ç´”化" name="Simplify"/> - <button label="å–り消ã—" name="simplify_cancel"/> - </panel> - <panel name="physics info"> - <slider label="プレビュースプレッド:" name="physics_explode"/> - <text name="physics_triangles"> - 三角形: [TRIANGLES] + <panel label="アップãƒãƒ¼ãƒ‰ã®ã‚ªãƒ—ション" name="modifiers_panel"> + <text name="scale_label"> + スケール(1=増減ãªã—): + </text> + <spinner name="import_scale" value="1.0"/> + <text name="dimensions_label"> + サイズ: </text> - <text name="physics_points"> - é ‚ç‚¹ï¼š [POINTS] + <text name="import_dimensions"> + [X] X [Y] X [Z] </text> - <text name="physics_hulls"> - å¤–æ®»æ§‹é€ ï¼š [HULLS] + <check_box label="テクスãƒãƒ£ã‚’å«ã‚€" name="upload_textures"/> + <text name="include_label"> + ã‚¢ãƒã‚¿ãƒ¼ãƒ¢ãƒ‡ãƒ«å°‚用: </text> + <check_box label="スã‚ンã®é‡ã•ã‚’å«ã‚€" name="upload_skin"/> + <check_box label="ジョイントãƒã‚¸ã‚·ãƒ§ãƒ³ã‚’å«ã‚€" name="upload_joints"/> + <text name="pelvis_offset_label"> + Z オフセット(アãƒã‚¿ãƒ¼ã‚’上下調整): + </text> + <spinner name="pelvis_offset" value="0.0"/> </panel> - </panel> - <panel label="修飾å" name="modifiers_panel"> - <spinner name="import_scale" value="1.0"/> - <text name="import_dimensions"> - [X] x [Y] x [Z] m + </tab_container> + <panel name="weights_and_warning_panel"> + <button label="ã‚¦ã‚§ã‚¤ãƒˆã¨æ–™é‡‘ã®è¨ˆç®—" name="calculate_btn" tool_tip="ã‚¦ã‚§ã‚¤ãƒˆã¨æ–™é‡‘ã®è¨ˆç®—"/> + <button label="å–り消ã—" name="cancel_btn"/> + <button label="アップãƒãƒ¼ãƒ‰" name="ok_btn" tool_tip="シミュレーターã«ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰"/> + <button label="è¨å®šã‚’クリアã—ã¦ãƒ•ォームをリセット" name="reset_btn"/> + <text name="upload_fee"> + アップãƒãƒ¼ãƒ‰æ–™é‡‘:L$ [FEE] + </text> + <text name="prim_weight"> + 土地ã®è² è·ï¼š[EQ] + </text> + <text name="download_weight"> + ダウンãƒãƒ¼ãƒ‰ï¼š[ST] + </text> + <text name="physics_weight"> + ç‰©ç†æ¼”算:[PH] + </text> + <text name="server_weight"> + サーãƒãƒ¼è² è·ï¼š[SIM] + </text> + <text name="warning_title"> + ã”æ³¨æ„: + </text> + <text name="warning_message"> + メッシュモデルをアップãƒãƒ¼ãƒ‰ã™ã‚‹æ¨©åˆ©ãŒã‚りã¾ã›ã‚“。権利ã®å–得方法ã«ã¤ã„ã¦ã¯ [[VURL]] ã“ã¡ã‚‰ã‚’å‚ç…§ã—ã¦ãã ã•ã„。 + </text> + <text name="status"> + [STATUS] </text> - <check_box label="テクスãƒãƒ£" name="upload_textures"/> - <check_box label="スã‚ンã®é‡ã•" name="upload_skin"/> - <check_box label="ジョイントãƒã‚¸ã‚·ãƒ§ãƒ³" name="upload_joints"/> - <spinner name="pelvis_offset" value="0.0"/> </panel> - </tab_container> - <text name="upload_fee"> - アップãƒãƒ¼ãƒ‰æ–™é‡‘:L$ [FEE] + </panel> + <text name="lod_label"> + プレビュー: </text> - <button label="デフォルトã«è¨å®š" name="reset_btn" tool_tip="デフォルトã«è¨å®š"/> - <button label="ã‚¦ã‚§ã‚¤ãƒˆã¨æ–™é‡‘ã®è¨ˆç®—" name="calculate_btn" tool_tip="ã‚¦ã‚§ã‚¤ãƒˆã¨æ–™é‡‘ã®è¨ˆç®—"/> - <button label="アップãƒãƒ¼ãƒ‰" name="ok_btn" tool_tip="シミュレーターã«ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰"/> - <button label="å–り消ã—" name="cancel_btn"/> + <panel name="right_panel"> + <combo_box name="preview_lod_combo" tool_tip="プレビュー表示㮠LOD è¨å®š"> + <combo_item name="high"> + 高 + </combo_item> + <combo_item name="medium"> + ä¸ + </combo_item> + <combo_item name="low"> + 低 + </combo_item> + <combo_item name="lowest"> + 最低 + </combo_item> + </combo_box> + <text name="label_display"> + ディスプレイ... + </text> + <check_box label="稜" name="show_edges"/> + <check_box label="物ç†åŠ¹æžœ" name="show_physics"/> + <check_box label="テクスãƒãƒ£" name="show_textures"/> + <check_box label="スã‚ンã®é‡ã•" name="show_skin_weight"/> + <check_box label="ジョイント" name="show_joint_positions"/> + <text name="physics_explode_label"> + プレビュースプレッド: + </text> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_model_wizard.xml b/indra/newview/skins/default/xui/ja/floater_model_wizard.xml index 2f336fcbdee32d475f7ec7fe39ff4cf0d88c56e3..915b37557f89a3bb2190d41b2bdbc278d8f68b9c 100644 --- a/indra/newview/skins/default/xui/ja/floater_model_wizard.xml +++ b/indra/newview/skins/default/xui/ja/floater_model_wizard.xml @@ -6,26 +6,20 @@ <button label="2. 最é©åŒ–" name="optimize_btn"/> <button label="1. ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠž" name="choose_file_btn"/> <panel name="choose_file_panel"> - <panel name="choose_file_header_panel"> - <text name="choose_file_header_text"> + <panel name="header_panel"> + <text name="header_text"> ãƒ¢ãƒ‡ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠž </text> </panel> - <panel name="choose_file_content_panel"> + <panel name="content"> <text name="advanced_users_text"> 上級ユーザーã®å ´åˆï¼š3D コンテンツã®åˆ¶ä½œãƒ„ãƒ¼ãƒ«ã‚’ä½¿ã„æ…£ã‚ŒãŸæ–¹ã¯ã€é«˜åº¦ãªã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ€ãƒ¼ã‚‚ãŠè©¦ã—ãã ã•ã„。 </text> <button label="アドãƒãƒ³ã‚¹ãƒ¢ãƒ¼ãƒ‰ã«åˆ‡ã‚Šæ›¿ãˆã‚‹" name="switch_to_advanced"/> - <text name="choose_model_file_label"> + <text name="Cache location"> アップãƒãƒ¼ãƒ‰ã™ã‚‹ãƒ¢ãƒ‡ãƒ«ãƒ•ァイルã®é¸æŠž </text> <button label="å‚ç…§" label_selected="å‚ç…§" name="browse"/> - <text name="support_collada_text"> - Second Life 㯠COLLADA (.dae) ファイルをサãƒãƒ¼ãƒˆã—ã¾ã™ã€‚ - </text> - <text name="dimensions_label"> - サイズ(メートル): - </text> <text name="dimensions"> X Y Z </text> @@ -38,18 +32,15 @@ </panel> </panel> <panel name="optimize_panel"> - <panel name="optimize_header_panel"> - <text name="optimize_header_text"> + <panel name="header_panel"> + <text name="header_text"> モデルを最é©åŒ– </text> </panel> - <text name="optimize_hint"> + <text name="description"> パフォーマンスをé‡è¦–ã—ã¦ãƒ¢ãƒ‡ãƒ«ã‚’最é©åŒ–ã—ã¾ã—ãŸã€‚å¿…è¦ã«å¿œã˜ã¦èª¿æ•´ã—ã¦ãã ã•ã„。 </text> - <panel name="optimize_content_panel"> - <text name="generating_lod_label"> - æ¬¡ã®æç”»è©³ç´°åº¦ã‚’ä½œæˆ - </text> + <panel name="content"> <text name="high_detail_text"> æ¬¡ã®æç”»è©³ç´°åº¦ã‚’ä½œæˆï¼šé«˜ </text> @@ -64,123 +55,64 @@ </text> </panel> <panel name="content2"> - <text name="optimize_performance_text"> - パフォーマンス - </text> - <text name="optimize_faster_rendering_text"> - レンダリング速度ã®å‘上 -詳細度ã®ä½Žä¸‹ -プリムæ›ç®—ウェイトã®è»½æ¸› - </text> - <text name="optimize_accuracy_text"> - æ£ç¢ºã• - </text> - <text name="optimize_slower_rendering_text"> - レンダリング速度ã®ä½Žä¸‹ -詳細化 -プリムæ›ç®—ウェイトã®å¢—åŠ - </text> - <text name="accuracy_slider_mark1"> - ' - </text> - <text name="accuracy_slider_mark2"> - ' - </text> - <text name="accuracy_slider_mark3"> - ' - </text> <button label="ジオメトリをå†è¨ˆç®—" name="recalculate_geometry_btn"/> - <text name="geometry_preview_label"> + <text name="lod_label"> ジオメトリã®ãƒ—レビュー </text> <combo_box name="preview_lod_combo" tool_tip="プレビュー表示㮠LOD è¨å®š"> - <combo_item name="preview_lod_high"> + <combo_item name="high"> 高ã„詳細度 </combo_item> - <combo_item name="preview_lod_medium"> + <combo_item name="medium"> ä¸ã®è©³ç´°åº¦ </combo_item> - <combo_item name="preview_lod_low"> + <combo_item name="low"> 低ã„詳細度 </combo_item> - <combo_item name="preview_lod_lowest"> + <combo_item name="lowest"> 最低ã®è©³ç´°åº¦ </combo_item> </combo_box> </panel> </panel> <panel name="physics_panel"> - <panel name="physics_header_panel"> - <text name="physics_header_text"> + <panel name="header_panel"> + <text name="header_text"> 物ç†ä½œç”¨ã®èª¿æ•´ </text> </panel> - <text name="physics_hint"> + <text name="description"> モデルã®å¤–æ®»æ§‹é€ ã®ã‚·ã‚§ã‚¤ãƒ—ã¯å¼Šç¤¾ãŒä½œæˆã—ã¾ã™ã€‚モデルã®ç›®çš„ã«å¿œã˜ã¦ã‚·ã‚§ã‚¤ãƒ—ã®è©³ç´°åº¦ã‚’調整ã—ã¦ãã ã•ã„。 </text> - <panel name="physics_content_panel"> - <text name="physics_performance_text"> - パフォーマンス - </text> - <text name="physics_faster_rendering_text"> - レンダリング速度ã®å‘上 -詳細度ã®ä½Žä¸‹ -プリムæ›ç®—ウェイトã®è»½æ¸› - </text> - <text name="physics_accuracy_text"> - æ£ç¢º - </text> - <text name="physics_slower_dendering_text"> - レンダリング速度ã®ä½Žä¸‹ -詳細化 -プリムæ›ç®—ウェイトã®å¢—åŠ - </text> - <text name="physics_example_1"> - 例: -å‹•ãオブジェクト -飛行オブジェクト -車 - </text> - <text name="physics_example_2"> - 例: -å°ã•ãªé™æ¢ã‚ªãƒ–ジェクト -比較的詳細度ã®ä½Žã„オブジェクト -シンプルãªå®¶å…· - </text> - <text name="physics_example_3"> - 例: -陿¢ã‚ªãƒ–ジェクト -詳細ãªã‚ªãƒ–ジェクト -建物 - </text> + <panel name="content"> <button label="ç‰©ç†æ¼”算ウェイトをå†è¨ˆç®—" name="recalculate_physics_btn"/> <button label="å†è¨ˆç®—ä¸..." name="recalculating_physics_btn"/> - <text name="physics_preview_label"> + <text name="lod_label"> 物ç†ä½œç”¨ã®ãƒ—レビュー </text> <combo_box name="preview_lod_combo2" tool_tip="プレビュー表示㮠LOD è¨å®š"> - <combo_item name="preview_lod2_high"> + <combo_item name="high"> 高ã„詳細度 </combo_item> - <combo_item name="preview_lod2_medium"> + <combo_item name="medium"> ä¸ã®è©³ç´°åº¦ </combo_item> - <combo_item name="preview_lod2_low"> + <combo_item name="low"> 低ã„詳細度 </combo_item> - <combo_item name="preview_lod2_lowest"> + <combo_item name="lowest"> 最低ã®è©³ç´°åº¦ </combo_item> </combo_box> </panel> </panel> <panel name="review_panel"> - <panel name="review_header_panel"> - <text name="review_header_text"> + <panel name="header_panel"> + <text name="header_text"> ç¢ºèª </text> </panel> - <panel name="review_content_panel"> + <panel name="content"> <text name="review_prim_equiv"> 区画/リージョンã¸ã®è² è·ï¼š[EQUIV] プリムæ›ç®—値 </text> @@ -193,8 +125,8 @@ </panel> </panel> <panel name="upload_panel"> - <panel name="upload_header_panel"> - <text name="upload_header_text"> + <panel name="header_panel"> + <text name="header_text"> アップãƒãƒ¼ãƒ‰å®Œäº† </text> </panel> diff --git a/indra/newview/skins/default/xui/ja/floater_moveview.xml b/indra/newview/skins/default/xui/ja/floater_moveview.xml index 57ab32f486c433da80291397493c6621757db122..88c1905b8a763adcb9b50c8884a0c32e41884cad 100644 --- a/indra/newview/skins/default/xui/ja/floater_moveview.xml +++ b/indra/newview/skins/default/xui/ja/floater_moveview.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="move_floater"> +<floater name="move_floater" title="移動"> <string name="walk_forward_tooltip"> å‰ã«é€²ã‚€ï¼ˆä¸ŠçŸ¢å°ã‹ W を押ã™ï¼‰ </string> @@ -58,14 +58,14 @@ 飛㶠</string> <panel name="panel_actions"> - <button label="" label_selected="" name="move up btn" tool_tip="上ã«ç§»å‹•(E を押ã™ï¼‰"/> <button label="" label_selected="" name="turn left btn" tool_tip="左をå‘ã(左矢å°ã‹ A を押ã™ï¼‰"/> <joystick_slide name="move left btn" tool_tip="å·¦ã«æ©ã(Shift + 左矢å°ã‹ A を押ã™ï¼‰"/> - <button label="" label_selected="" name="move down btn" tool_tip="下ã«ç§»å‹•(C を押ã™ï¼‰"/> <button label="" label_selected="" name="turn right btn" tool_tip="å³ã‚’å‘ã(å³çŸ¢å°ã‹ D を押ã™ï¼‰"/> <joystick_slide name="move right btn" tool_tip="å³ã«æ©ã(Shift + å³çŸ¢å°ã‹ D を押ã™ï¼‰"/> <joystick_turn name="forward btn" tool_tip="å‰ã«é€²ã‚€ï¼ˆä¸ŠçŸ¢å°ã‹ W を押ã™ï¼‰"/> <joystick_turn name="backward btn" tool_tip="後ã‚ã«æ©ã(下矢å°ã‹ S を押ã™ï¼‰"/> + <button label="" label_selected="" name="move up btn" tool_tip="上ã«ç§»å‹•(E を押ã™ï¼‰"/> + <button label="" label_selected="" name="move down btn" tool_tip="下ã«ç§»å‹•(C を押ã™ï¼‰"/> </panel> <panel name="panel_modes"> <button label="" name="mode_walk_btn" tool_tip="æ©è¡Œãƒ¢ãƒ¼ãƒ‰"/> diff --git a/indra/newview/skins/default/xui/ja/floater_my_appearance.xml b/indra/newview/skins/default/xui/ja/floater_my_appearance.xml new file mode 100644 index 0000000000000000000000000000000000000000..c9a0ecefd71575c77f8a6da304b1c26c838ff2ac --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_my_appearance.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_my_appearance" title="容姿"> + <panel label="容姿ã®ç·¨é›†" name="main_panel"/> +</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_my_inventory.xml b/indra/newview/skins/default/xui/ja/floater_my_inventory.xml new file mode 100644 index 0000000000000000000000000000000000000000..c6a789b63b19e73f4b2d82e93271666c5a4cac98 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_my_inventory.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_my_inventory" title="æŒã¡ç‰©"/> diff --git a/indra/newview/skins/default/xui/ja/floater_object_weights.xml b/indra/newview/skins/default/xui/ja/floater_object_weights.xml new file mode 100644 index 0000000000000000000000000000000000000000..3bd9b6b069e232660631e482e7a3f50a34a0e2b7 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_object_weights.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="object_weights" title="詳ã—ã„è¨å®š"> + <floater.string name="nothing_selected" value="--"/> + <text name="selected_text" value="é¸æŠžæ¸ˆ"/> + <text name="objects" value="--"/> + <text name="objects_label" value="オブジェクト"/> + <text name="prims" value="--"/> + <text name="prims_label" value="プリム"/> + <text name="weights_of_selected_text" value="é¸æŠžæ¸ˆã¿é …ç›®ã®ã‚¦ã‚¨ã‚¤ãƒˆ"/> + <text name="download" value="--"/> + <text name="download_label" value="ダウンãƒãƒ¼ãƒ‰"/> + <text name="physics" value="--"/> + <text name="physics_label" value="物ç†åŠ¹æžœ"/> + <text name="server" value="--"/> + <text name="server_label" value="サーãƒãƒ¼"/> + <text name="display" value="--"/> + <text name="display_label" value="ディスプレイ"/> + <text name="land_impacts_text" value="土地ã®è² è·"/> + <text name="selected" value="--"/> + <text name="selected_label" value="é¸æŠžæ¸ˆ"/> + <text name="rezzed_on_land" value="--"/> + <text name="rezzed_on_land_label" value="土地㫠Rez 済ã¿"/> + <text name="remaining_capacity" value="--"/> + <text name="remaining_capacity_label" value="残りã®è¨±å®¹æ•°"/> + <text name="total_capacity" value="--"/> + <text name="total_capacity_label" value="許容åˆè¨ˆ"/> + <text name="help_SLURL" value="[secondlife:///app/help/object_weights オブジェクトã®ã‚¦ã‚§ã‚¤ãƒˆã¨ã¯ï¼Ÿ]"/> +</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_people.xml b/indra/newview/skins/default/xui/ja/floater_people.xml new file mode 100644 index 0000000000000000000000000000000000000000..08bee881034d19b182f8b99a1e51bee518ffae53 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_people.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_people" title="人"> + <panel_container name="main_panel"> + <panel label="ã‚°ãƒ«ãƒ¼ãƒ—æƒ…å ±" name="panel_group_info_sidetray"/> + <panel label="ブãƒãƒƒã‚¯ã•れãŸä½äººã¨ã‚ªãƒ–ジェクト" name="panel_block_list_sidetray"/> + </panel_container> +</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_picks.xml b/indra/newview/skins/default/xui/ja/floater_picks.xml new file mode 100644 index 0000000000000000000000000000000000000000..359585eb86b8b27d9f6fd2c2287f093079296ac5 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_picks.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_picks" title="ピック"/> diff --git a/indra/newview/skins/default/xui/ja/floater_places.xml b/indra/newview/skins/default/xui/ja/floater_places.xml new file mode 100644 index 0000000000000000000000000000000000000000..0d167444dbf8ea59b86065b163a21a72e6adb02e --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_places.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_places" title="å ´æ‰€"> + <panel label="å ´æ‰€" name="main_panel"/> +</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_stats.xml b/indra/newview/skins/default/xui/ja/floater_stats.xml index 97927776c72f0805867e3babd8ec9664ab524463..6a1f34cfd85a6c69250911ca6f79c3db50937042 100644 --- a/indra/newview/skins/default/xui/ja/floater_stats.xml +++ b/indra/newview/skins/default/xui/ja/floater_stats.xml @@ -10,8 +10,8 @@ </stat_view> <stat_view label="アドãƒãƒ³ã‚¹" name="advanced"> <stat_view label="æç”»" name="render"> - <stat_bar label="KTris æç”»" name="ktrisframe"/> - <stat_bar label="KTris æç”»" name="ktrissec"/> + <stat_bar label="フレームã”ã¨ã® KTris æç”»" name="ktrisframe"/> + <stat_bar label="ç§’ã”ã¨ã® KTris æç”»" name="ktrissec"/> <stat_bar label="オブジェクトåˆè¨ˆ" name="objs"/> <stat_bar label="æ–°è¦ã‚ªãƒ–ジェクト" name="newobjs"/> </stat_view> @@ -64,6 +64,14 @@ <stat_bar label="エージェント時間" name="simagentmsec"/> <stat_bar label="イメージ時間" name="simimagesmsec"/> <stat_bar label="スクリプト時間" name="simscriptmsec"/> + <stat_bar label="余暇" name="simsparemsec"/> + <stat_view label="時間ã®è©³ç´°ï¼ˆms)" name="timedetails"> + <stat_bar label="物ç†åŠ¹æžœã®å˜ä½" name="simsimphysicsstepmsec"/> + <stat_bar label="物ç†å½¢çŠ¶ã‚’æ›´æ–°" name="simsimphysicsshapeupdatemsec"/> + <stat_bar label="ä»–ã®ç‰©ç†åŠ¹æžœ" name="simsimphysicsothermsec"/> + <stat_bar label="スリープ時間" name="simsleepmsec"/> + <stat_bar label="ãƒãƒ³ãƒ— I/O" name="simpumpiomsec"/> + </stat_view> </stat_view> </stat_view> </container_view> diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml b/indra/newview/skins/default/xui/ja/floater_tools.xml index a8b5febd5430c6ce0a27c95780033f6470ad2e44..8eddf55a44b680da114fa52cf81a07d6d64a178b 100644 --- a/indra/newview/skins/default/xui/ja/floater_tools.xml +++ b/indra/newview/skins/default/xui/ja/floater_tools.xml @@ -25,10 +25,10 @@ 土地をクリックã—ã€ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦é¸æŠž </floater.string> <floater.string name="status_selectcount"> - [OBJ_COUNT] 個ã®ã‚ªãƒ–ジェクト([PRIM_COUNT] 個ã®ãƒ—リム[PE_STRING])ãŒé¸æŠžã•れã¦ã„ã¾ã™ + é¸æŠžã•れã¦ã„るオブジェクト㯠[OBJ_COUNT] 個ã€åœŸåœ°ã®è² è·ã¯ [LAND_IMPACT] </floater.string> - <floater.string name="status_selectprimequiv"> - , [SEL_WEIGHT] プリムæ›ç®—値 + <floater.string name="status_remaining_capacity"> + 残りã®è¨±å®¹æ•° [LAND_CAPACITY]。 </floater.string> <button label="" label_selected="" name="button focus" tool_tip="フォーカス"/> <button label="" label_selected="" name="button move" tool_tip="å‹•ã‹ã™"/> @@ -105,8 +105,8 @@ <text name="selection_empty"> ä½•ã‚‚é¸æŠžã•れã¦ã„ã¾ã›ã‚“。 </text> - <text name="selection_weight"> - ç‰©ç†æ¼”算ウェイト [PHYS_WEIGHT]ã€ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã‚³ã‚¹ãƒˆ [DISP_WEIGHT]。 + <text name="remaining_capacity"> + [CAPACITY_STRING] [secondlife:///app/openfloater/object_weights 詳細] </text> <tab_container name="Object Info Tabs"> <panel label="一般" name="General"> @@ -325,7 +325,6 @@ 縫ã„ç›®ã®ã‚¿ã‚¤ãƒ— </text> <combo_box name="sculpt type control"> - <combo_box.item label="(ãªã—)" name="None"/> <combo_box.item label="çƒä½“" name="Sphere"/> <combo_box.item label="トーラス" name="Torus"/> <combo_box.item label="å¹³é¢" name="Plane"/> diff --git a/indra/newview/skins/default/xui/ja/floater_toybox.xml b/indra/newview/skins/default/xui/ja/floater_toybox.xml new file mode 100644 index 0000000000000000000000000000000000000000..d7056f806c62e6543b8149eb16074ff88d4bac5f --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_toybox.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Toybox" title="ツールãƒãƒ¼ã‚’カスタマイズ"> + <text name="toybox label 1"> + ボタンをツールãƒãƒ¼ã«è¿½åŠ ã¾ãŸã¯å‰Šé™¤ã™ã‚‹ã«ã¯ãƒœã‚¿ãƒ³ã‚’ドラッグã—ã¾ã™ã€‚ + </text> + <text name="toybox label 2"> + å„ツールãƒãƒ¼ã®è¨å®šã«å¿œã˜ã¦ã€ãƒœã‚¿ãƒ³ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«è¡¨ç¤ºã•れãŸã‚Šã€ã‚¢ã‚¤ã‚³ãƒ³ã®ã¿ã§è¡¨ç¤ºã•れã¾ã™ã€‚ + </text> + <button label="デフォルトè¨å®šã‚’復元" label_selected="デフォルトè¨å®šã‚’復元" name="btn_restore_defaults"/> +</floater> diff --git a/indra/newview/skins/default/xui/ja/menu_hide_navbar.xml b/indra/newview/skins/default/xui/ja/menu_hide_navbar.xml index 3a1ae49700a752469433387ff02d4864afd691e0..2e633ae1b2c9aff0241a90edbfcacd71751349c2 100644 --- a/indra/newview/skins/default/xui/ja/menu_hide_navbar.xml +++ b/indra/newview/skins/default/xui/ja/menu_hide_navbar.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="hide_navbar_menu"> - <menu_item_check label="ナビゲーションãƒãƒ¼ã‚’表示" name="ShowNavbarNavigationPanel"/> + <menu_item_check label="ナビゲーションãƒãƒ¼ã¨ãŠæ°—ã«å…¥ã‚Šãƒãƒ¼ã‚’表示" name="ShowNavbarNavigationPanel"/> <menu_item_check label="ãŠæ°—ã«å…¥ã‚Šãƒãƒ¼ã‚’表示" name="ShowNavbarFavoritesPanel"/> <menu_item_check label="ã€Œå ´æ‰€ã€ã®ãƒŸãƒ‹ãƒ•ィールドを表示" name="ShowMiniLocationPanel"/> </menu> diff --git a/indra/newview/skins/default/xui/ja/menu_login.xml b/indra/newview/skins/default/xui/ja/menu_login.xml index dca872e9b8d01bd9e882b041d48e353cd76fa0e7..4c88f17f3dbdaec8e840b448b7cf1d7b662714ce 100644 --- a/indra/newview/skins/default/xui/ja/menu_login.xml +++ b/indra/newview/skins/default/xui/ja/menu_login.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu_bar name="Login Menu"> <menu label="ミー" name="File"> - <menu_item_call label="環境è¨å®š" name="Preferences..."/> + <menu_item_call label="環境è¨å®š..." name="Preferences..."/> <menu_item_call label="[APP_NAME] を終了" name="Quit"/> </menu> <menu label="ヘルプ" name="Help"> diff --git a/indra/newview/skins/default/xui/ja/menu_toolbars.xml b/indra/newview/skins/default/xui/ja/menu_toolbars.xml new file mode 100644 index 0000000000000000000000000000000000000000..e911ca4a1341da48c02da31dd7cbbceebe4ea024 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/menu_toolbars.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<context_menu name="Toolbars Popup"> + <menu_item_call label="ãƒœã‚¿ãƒ³ã‚’é¸æŠž..." name="Chose Buttons"/> + <menu_item_check label="アイコンã¨ãƒ©ãƒ™ãƒ«" name="icons_with_text"/> + <menu_item_check label="アイコンã®ã¿" name="icons_only"/> +</context_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml index edce5c50fc2de98ed43bfc548a0b9e31789da424..b9dbb81c0ad4510db6d802ae6a5e0b2175f575bf 100644 --- a/indra/newview/skins/default/xui/ja/menu_viewer.xml +++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml @@ -1,29 +1,30 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu_bar name="Main Menu"> <menu label="ミー" name="Me"> - <menu_item_call label="環境è¨å®š" name="Preferences"/> - <menu_item_call label="マイアカウント" name="Manage My Account"> + <menu_item_call label="マイアカウント..." name="Manage My Account"> <menu_item_call.on_click name="ManageMyAccount_url" parameter="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=ja"/> </menu_item_call> - <menu_item_call label="L$ ã®è³¼å…¥" name="Buy and Sell L$"/> - <menu_item_call label="プãƒãƒ•ィール" name="Profile"/> - <menu_item_call label="容姿" name="ChangeOutfit"/> - <menu_item_check label="æŒã¡ç‰©" name="Inventory"/> - <menu_item_check label="æŒã¡ç‰©" name="ShowSidetrayInventory"/> - <menu_item_check label="ジェスãƒãƒ£ãƒ¼" name="Gestures"/> - <menu_item_check label="マイボイス" name="ShowVoice"/> + <menu_item_call label="プãƒãƒ•ィール..." name="Profile"/> + <menu_item_call label="容姿..." name="ChangeOutfit"/> + <menu_item_check label="æŒã¡ç‰©..." name="Inventory"/> + <menu_item_check label="ジェスãƒãƒ£ãƒ¼..." name="Gestures"/> + <menu_item_check label="ボイス..." name="ShowVoice"/> <menu label="ムーブメント" name="Movement"> <menu_item_call label="座る" name="Sit Down Here"/> <menu_item_check label="飛ã¶" name="Fly"/> <menu_item_check label="常ã«èµ°ã‚‹" name="Always Run"/> <menu_item_call label="ç§ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã‚’åœæ¢ã™ã‚‹" name="Stop Animating My Avatar"/> </menu> - <menu label="ãƒã‚°ã‚¤ãƒ³çŠ¶æ…‹" name="Status"> + <menu label="ãƒã‚°ã‚¤ãƒ³" name="Status"> <menu_item_call label="一時退å¸ä¸" name="Set Away"/> <menu_item_call label="å–り込ã¿ä¸" name="Set Busy"/> </menu> <menu_item_call label="管ç†è€…権é™ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆ" name="Request Admin Options"/> <menu_item_call label="管ç†è€…ステータス解除" name="Leave Admin Options"/> + <menu_item_call label="L$ ã®è³¼å…¥" name="Buy and Sell L$"/> + <menu_item_call label="環境è¨å®š..." name="Preferences"/> + <menu_item_call label="ツールãƒãƒ¼..." name="Toolbars"/> + <menu_item_call label="å…¨ã¦ã®ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«ã‚’éžè¡¨ç¤ºã«ã™ã‚‹" name="Hide UI"/> <menu_item_call label="[APP_NAME] を終了" name="Quit"/> </menu> <menu label="コミュニケーション" name="Communicate"> @@ -145,7 +146,6 @@ </menu> <menu label="ヘルプ" name="Help"> <menu_item_call label="[SECOND_LIFE] ヘルプ" name="Second Life Help"/> - <menu_item_check label="ヒントを有効ã«ã™ã‚‹" name="Enable Hints"/> <menu_item_call label="嫌ãŒã‚‰ã›ã‚’å ±å‘Šã™ã‚‹" name="Report Abuse"/> <menu_item_call label="ãƒã‚°ã‚’å ±å‘Šã™ã‚‹" name="Report Bug"/> <menu_item_call label="[APP_NAME] ã«ã¤ã„ã¦" name="About Second Life"/> @@ -161,7 +161,7 @@ <menu label="パフォーマンスツール" name="Performance Tools"> <menu_item_call label="ラグ計測器" name="Lag Meter"/> <menu_item_check label="統計ãƒãƒ¼" name="Statistics Bar"/> - <menu_item_check label="ã‚¢ãƒã‚¿ãƒ¼ã®ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã‚³ã‚¹ãƒˆã‚’表示ã™ã‚‹" name="Avatar Rendering Cost"/> + <menu_item_check label="ã‚¢ãƒã‚¿ãƒ¼ã®æç”»ã‚¦ã‚§ã‚¤ãƒˆã‚’表示" name="Avatar Rendering Cost"/> </menu> <menu label="ãƒã‚¤ãƒ©ã‚¤ãƒˆã¨ç›®ã«è¦‹ãˆã‚‹ã‚‚ã®" name="Highlighting and Visibility"> <menu_item_check label="ãƒãƒ¼ã‚¸ãƒ¼ãƒ“ーコン" name="Cheesy Beacon"/> @@ -289,6 +289,7 @@ <menu_item_check label="å…‰" name="Lights"/> <menu_item_check label="骨組ã¿ã®è¡çªåˆ¤å®š" name="Collision Skeleton"/> <menu_item_check label="レイã‚ャスト" name="Raycast"/> + <menu_item_check label="æç”»ã®è©³ç´°åº¦" name="rendercomplexity"/> <menu_item_check label="スカルプト" name="Sculpt"/> </menu> <menu label="レンダリング" name="Rendering"> diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml index c138aeb383d671b2c310f537e1a20f7250dc4f45..85f09b450098e4b8ccf2bd33ca7c3473ff2dfd1a 100644 --- a/indra/newview/skins/default/xui/ja/notifications.xml +++ b/indra/newview/skins/default/xui/ja/notifications.xml @@ -1953,6 +1953,12 @@ Adult 専用リージョンã«å…¥ã‚‹ã«ã¯ã€ä½äººã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆãŒå¹´é½¢ 終了ã—よã†ã¨ã—ã¦ã„ã¾ã™ã€‚ç¶šã‘ã¾ã™ã‹ï¼Ÿ <usetemplate ignoretext="終了時ã®ç¢ºèª" name="okcancelignore" notext="終了ã—ãªã„" yestext="終了"/> </notification> + <notification name="ConfirmRestoreToybox"> + デフォルトã®ãƒœã‚¿ãƒ³ã¨ãƒ„ールãƒãƒ¼ã‚’復元ã—ã¾ã™ã‹ï¼Ÿ + +ã“ã®æ“作ã¯å…ƒã«æˆ»ã›ã¾ã›ã‚“。 + <usetemplate name="okcancelbuttons" notext="å–り消ã—" yestext="OK"/> + </notification> <notification name="DeleteItems"> [QUESTION] <usetemplate ignoretext="アイテムを削除ã™ã‚‹å‰ã®ç¢ºèª" name="okcancelignore" notext="å–り消ã—" yestext="OK"/> @@ -3041,10 +3047,6 @@ M ã‚ーを押ã—ã¦å¤‰æ›´ã—ã¾ã™ã€‚ <button name="cancel" text="å–り消ã—"/> </form> </notification> - <notification label="" name="ModeChange"> - モードを変更ã™ã‚‹ã«ã¯çµ‚了ã—ã¦å†èµ·å‹•ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ - <usetemplate name="okcancelbuttons" notext="終了ã—ãªã„" yestext="終了"/> - </notification> <notification label="" name="NoClassifieds"> クラシファイド広告ã®ä½œæˆã¨ç·¨é›†ã¯ã‚¢ãƒ‰ãƒãƒ³ã‚¹ãƒ¢ãƒ¼ãƒ‰ã§ã®ã¿åˆ©ç”¨ã§ãã¾ã™ã€‚終了ã—ã¦ãƒ¢ãƒ¼ãƒ‰ã‚’変更ã—ã¾ã™ã‹ï¼Ÿãƒ¢ãƒ¼ãƒ‰ã¯ãƒã‚°ã‚¤ãƒ³ç”»é¢ã§é¸æŠžã§ãã¾ã™ã€‚ <usetemplate name="okcancelbuttons" notext="終了ã—ãªã„" yestext="終了"/> @@ -3089,6 +3091,10 @@ M ã‚ーを押ã—ã¦å¤‰æ›´ã—ã¾ã™ã€‚ 検索ã¯ã‚¢ãƒ‰ãƒãƒ³ã‚¹ãƒ¢ãƒ¼ãƒ‰ã§ã®ã¿åˆ©ç”¨ã§ãã¾ã™ã€‚ãƒã‚°ã‚¢ã‚¦ãƒˆã—ã¦ãƒ¢ãƒ¼ãƒ‰ã‚’変更ã—ã¾ã™ã‹ï¼Ÿ <usetemplate name="okcancelbuttons" notext="終了ã—ãªã„" yestext="終了"/> </notification> + <notification label="" name="ConfirmHideUI"> + ã“ã®æ“作ã«ã‚ˆã‚Šã€å…¨ã¦ã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼é …ç›®ã¨ãƒœã‚¿ãƒ³ãŒéžè¡¨ç¤ºã«ãªã‚Šã¾ã™ã€‚å†ã³è¡¨ç¤ºã™ã‚‹ã«ã¯ [SHORTCUT] ã‚’ã‚‚ã†ä¸€åº¦ã‚¯ãƒªãƒƒã‚¯ã—ã¦ãã ã•ã„。 + <usetemplate ignoretext="UI ã‚’éžè¡¨ç¤ºã«ã™ã‚‹å‰ã«ç¢ºèª" name="okcancelignore" notext="å–り消ã—" yestext="OK"/> + </notification> <global name="UnsupportedGLRequirements"> [APP_NAME] ã«å¿…è¦ãªãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ãŒãªã„よã†ã§ã™ã€‚ [APP_NAME] ã«ã¯ãƒžãƒ«ãƒãƒ†ã‚¯ã‚¹ãƒãƒ£ã‚’サãƒãƒ¼ãƒˆã™ã‚‹ OpenGL グラフィックカードãŒå¿…è¦ã§ã™ã€‚ ãŠä½¿ã„ã®ã‚°ãƒ©ãƒ•ã‚£ãƒƒã‚¯ã‚«ãƒ¼ãƒ‰ã®æœ€æ–°ãƒ‰ãƒ©ã‚¤ãƒãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ã„ã‚‹ã‹ã©ã†ã‹ã€ã‚ªãƒšãƒ¬ãƒ¼ãƒ†ã‚£ãƒ³ã‚°ã‚·ã‚¹ãƒ†ãƒ ã®ã‚µãƒ¼ãƒ“スパックã¨ãƒ‘ッãƒãŒå…¥ã£ã¦ã„ã‚‹ã‹ã‚’ã”確èªãã ã•ã„。 diff --git a/indra/newview/skins/default/xui/ja/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/ja/panel_chiclet_bar.xml new file mode 100644 index 0000000000000000000000000000000000000000..6717ba9ba39c9ef7d6032cafae3d5ba18585fd9c --- /dev/null +++ b/indra/newview/skins/default/xui/ja/panel_chiclet_bar.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="chiclet_bar"> + <layout_stack name="toolbar_stack"> + <layout_panel name="im_well_panel"> + <chiclet_im_well name="im_well"> + <button name="Unread IM messages" tool_tip="会話"/> + </chiclet_im_well> + </layout_panel> + <layout_panel name="notification_well_panel"> + <chiclet_notification name="notification_well"> + <button name="Unread" tool_tip="通知"/> + </chiclet_notification> + </layout_panel> + </layout_stack> +</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_me.xml b/indra/newview/skins/default/xui/ja/panel_me.xml index dda5bc00097076ecc71890aa077a0bb3a69de4cd..896bbff0ee3abea6c5e007d7df179ff6bdc669c0 100644 --- a/indra/newview/skins/default/xui/ja/panel_me.xml +++ b/indra/newview/skins/default/xui/ja/panel_me.xml @@ -1,7 +1,4 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="マイ プãƒãƒ•ィール" name="panel_me"> - <tab_container name="tabs"> - <panel label="マイ プãƒãƒ•ィール" name="panel_profile"/> - <panel label="マイ ピック" name="panel_picks"/> - </tab_container> + <panel label="マイ ピック" name="panel_picks"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml b/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml index 0426c4fe9a100e8d61f1802157e2da78c6c0e4ad..51402b2e009de368ca52446c161febcbf03a5c05 100644 --- a/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml +++ b/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="navigation_bar"> - <panel name="navigation_panel"> - <pull_button name="back_btn" tool_tip="å‰ã®å ´æ‰€ã¸æˆ»ã‚Šã¾ã™"/> - <pull_button name="forward_btn" tool_tip="次ã®å ´æ‰€ã¸é€²ã¿ã¾ã™"/> - <button name="home_btn" tool_tip="「ホームã€ã«ãƒ†ãƒ¬ãƒãƒ¼ãƒˆ"/> - <location_input label="å ´æ‰€" name="location_combo"/> - <search_combo_box label="検索" name="search_combo_box" tool_tip="検索"> - <combo_editor label="[SECOND_LIFE] を検索:" name="search_combo_editor"/> - </search_combo_box> - </panel> - <favorites_bar name="favorite" tool_tip="ランドマークをã“ã“ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€Second Lifeã®ãŠæ°—ã«å…¥ã‚Šã®å ´æ‰€ã«ç´ æ—©ãアクセスï¼"> - <label name="favorites_bar_label" tool_tip="ランドマークをã“ã“ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€Second Lifeã®ãŠæ°—ã«å…¥ã‚Šã®å ´æ‰€ã«ç´ æ—©ãアクセスï¼"> - ãŠæ°—ã«å…¥ã‚Šãƒãƒ¼ - </label> - <chevron_button name=">>" tool_tip="ãŠæ°—ã«å…¥ã‚Šã‚’ã‚‚ã£ã¨è¡¨ç¤º"/> - </favorites_bar> + <layout_stack name="nvp_stack"> + <layout_panel name="navigation_layout_panel"> + <panel name="navigation_panel"> + <pull_button name="back_btn" tool_tip="å‰ã®å ´æ‰€"/> + <pull_button name="forward_btn" tool_tip="次ã®å ´æ‰€"/> + <button name="home_btn" tool_tip="「ホームã€ã«ãƒ†ãƒ¬ãƒãƒ¼ãƒˆã—ã¾ã™"/> + <location_input label="所在地" name="location_combo"/> + </panel> + </layout_panel> + <layout_panel name="favorites_layout_panel"> + <favorites_bar name="favorite" tool_tip="ランドマークをã“ã“ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€Second Lifeã®ãŠæ°—ã«å…¥ã‚Šã®å ´æ‰€ã«ç´ æ—©ãアクセスï¼"> + <label name="favorites_bar_label" tool_tip="ランドマークをã“ã“ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€Second Lifeã®ãŠæ°—ã«å…¥ã‚Šã®å ´æ‰€ã«ç´ æ—©ãアクセスï¼"> + ãŠæ°—ã«å…¥ã‚Šãƒãƒ¼ + </label> + <more_button name=">>" tool_tip="ãŠæ°—ã«å…¥ã‚Šã‚’ã‚‚ã£ã¨è¡¨ç¤º"> + 詳細 â–¼ + </more_button> + </favorites_bar> + </layout_panel> + </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_nearby_chat.xml b/indra/newview/skins/default/xui/ja/panel_nearby_chat.xml new file mode 100644 index 0000000000000000000000000000000000000000..43346595575248341acc4bd84fbea7e0608ba716 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/panel_nearby_chat.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="nearby_chat"> + <check_box label="ãƒãƒ£ãƒƒãƒˆã‚’翻訳(Google翻訳)" name="translate_chat_checkbox"/> +</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml index 20e17de5f1a535de881cb89104caad2aecfab8b6..c8584ccaae74fcee234bdaa2366ff5b6927f0e33 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml @@ -51,7 +51,7 @@ <combo_box.item label="РуÑÑкий(ãƒã‚·ã‚¢èªžï¼‰" name="Russian"/> <combo_box.item label="Türkçe(トルコ語)" name="Turkish"/> <combo_box.item label="УкраїнÑька(ウクライナ語)" name="Ukrainian"/> - <combo_box.item label="䏿–‡ (æ£é«”)(ä¸å›½èªžï¼‰" name="Chinese"/> + <combo_box.item label="䏿–‡ (æ£é«”) (Chinese)" name="Chinese"/> <combo_box.item label="日本語" name="Japanese"/> <combo_box.item label="한êµì–´ï¼ˆéŸ“国語)" name="Korean"/> </combo_box> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml index 4356f3d47f7fc9e8c0d8f583e17a1c64fd8d9442..1bafa52fbe1fbcc9ce2f77039e14a6028b7b6a1b 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml @@ -13,7 +13,10 @@ <combo_box.item label="Italiano (イタリア語) - ベータ" name="Italian"/> <combo_box.item label="Polski (ãƒãƒ¼ãƒ©ãƒ³ãƒ‰èªžï¼‰ - ベータ" name="Polish"/> <combo_box.item label="Português(ãƒãƒ«ãƒˆã‚¬ãƒ«èªžï¼‰ - ベータ" name="Portugese"/> + <combo_box.item label="РуÑÑкий (ãƒã‚·ã‚¢èªžï¼‰ - ベータ" name="Russian"/> + <combo_box.item label="Türkçe (トルコ語) - ベータ" name="Turkish"/> <combo_box.item label="日本語 – ベータ" name="(Japanese)"/> + <combo_box.item label="æ£é«”䏿–‡ (ä¸å›½èªž - ç¹ä½“å—) - ベータ" name="Traditional Chinese"/> </combo_box> <text name="language_textbox2"> (å†èµ·å‹•後ã«åæ˜ ï¼‰ @@ -48,7 +51,6 @@ <check_box label="グループタイトル" name="show_all_title_checkbox1" tool_tip="オフィサーã¾ãŸã¯ãƒ¡ãƒ³ãƒãƒ¼ãªã©ã€ã‚°ãƒ«ãƒ¼ãƒ—タイトルを表示"/> <check_box label="フレンドをãƒã‚¤ãƒ©ã‚¤ãƒˆè¡¨ç¤º" name="show_friends" tool_tip="フレンドã®åå‰ã‚’ãƒã‚¤ãƒ©ã‚¤ãƒˆè¡¨ç¤º"/> <check_box label="表示åを表示" name="display_names_check" tool_tip="ã“ã‚Œã‚’é¸æŠžã™ã‚‹ã¨ã€ãƒãƒ£ãƒƒãƒˆã€IM ãªã©ã§è¡¨ç¤ºåãŒè¡¨ç¤ºã•れã¾ã™ã€‚"/> - <check_box label="ビューワ㮠UI ヒントを有効ã«ã™ã‚‹" name="viewer_hints_check"/> <text name="inworld_typing_rg_label"> æ–‡å—ã‚ーを押ã—ã¦æ¬¡ã®æ“作: </text> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_move.xml b/indra/newview/skins/default/xui/ja/panel_preferences_move.xml index 806bcfc14a6182d362c00ca08a977eb9e020a08b..121bebfd52900be50d689c8839886d1de2b9713a 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_move.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_move.xml @@ -7,18 +7,33 @@ </text> <check_box label="制作・編集" name="edit_camera_movement" tool_tip="編集モードã®ã‚ªãƒ³ãƒ»ã‚ªãƒ•ã®åˆ‡ã‚Šæ›¿ãˆã«ã€è‡ªå‹•カメラãƒã‚¸ã‚·ãƒ§ãƒ³ã‚’使ã„ã¾ã™"/> <check_box label="容姿" name="appearance_camera_movement" tool_tip="編集モードã«å…¥ã£ãŸã¨ãã«ã€è‡ªå‹•カメラãƒã‚¸ã‚·ãƒ§ãƒ³ã‚’使ã„ã¾ã™"/> - <check_box initial_value="true" label="サイドãƒãƒ¼" name="appearance_sidebar_positioning" tool_tip="サイドãƒãƒ¼ã«è‡ªå‹•カメラãƒã‚¸ã‚·ãƒ§ãƒ³ã‚’使ã„ã¾ã™"/> + <text name="keyboard_lbl"> + ã‚ーボード: + </text> + <check_box label="常ã«ã‚ーæ“作ã§å‹•ãよã†ã«ã™ã‚‹" name="arrow_keys_move_avatar_check"/> + <check_box label="上矢å°ã‚ー2度押ã—+長押ã—ã§èµ°ã‚‹" name="tap_tap_hold_to_run"/> + <text name="mouse_lbl"> + マウス: + </text> <check_box label="一人称視点ã§è¡¨ç¤ºã™ã‚‹" name="first_person_avatar_visible"/> <text name=" Mouse Sensitivity"> 一人称視点ã®ãƒžã‚¦ã‚¹ã®æ„Ÿåº¦ï¼š </text> <check_box label="切り替ãˆ" name="invert_mouse"/> - <check_box label="常ã«ã‚ーæ“作ã§å‹•ãよã†ã«ã™ã‚‹" name="arrow_keys_move_avatar_check"/> - <check_box label="上矢å°ã‚ー2度押ã—+長押ã—ã§èµ°ã‚‹" name="tap_tap_hold_to_run"/> - <check_box label="ãƒ€ãƒ–ãƒ«ã‚¯ãƒªãƒƒã‚¯ã§æ¬¡ã®æ“作:" name="double_click_chkbox"/> - <radio_group name="double_click_action"> - <radio_item label="テレãƒãƒ¼ãƒˆ" name="radio_teleport"/> - <radio_item label="自動追跡" name="radio_autopilot"/> - </radio_group> + <text name="single_click_action_lbl"> + 土地をシングルクリック: + </text> + <combo_box name="single_click_action_combo"> + <combo_box.item label="動作ãªã—" name="0"/> + <combo_box.item label="クリックã•れãŸåœ°ç‚¹ã«ç§»å‹•" name="1"/> + </combo_box> + <text name="double_click_action_lbl"> + 土地をダブルクリック: + </text> + <combo_box name="double_click_action_combo"> + <combo_box.item label="動作ãªã—" name="0"/> + <combo_box.item label="クリックã•れãŸåœ°ç‚¹ã«ç§»å‹•" name="1"/> + <combo_box.item label="クリックã•れãŸåœ°ç‚¹ã«ãƒ†ãƒ¬ãƒãƒ¼ãƒˆ" name="2"/> + </combo_box> <button label="ãã®ä»–ã®ãƒ‡ã‚£ãƒã‚¤ã‚¹" name="joystick_setup_button"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_status_bar.xml b/indra/newview/skins/default/xui/ja/panel_status_bar.xml index 35c1148cc18594fdaabb30e89f376c0eef4af2f4..93689b81af778d67ab21b7d49d8c9557a3262a28 100644 --- a/indra/newview/skins/default/xui/ja/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/ja/panel_status_bar.xml @@ -18,11 +18,8 @@ <panel name="balance_bg"> <text name="balance" tool_tip="クリックã—㦠L$ 残高を更新" value="L$20"/> <button label="L$ ã®è³¼å…¥" name="buyL" tool_tip="クリックã—㦠L$ を購入ã—ã¾ã™"/> + <button label="店" name="goShop" tool_tip="Second Life マーケットプレイスを開ã"/> </panel> - <combo_box name="mode_combo" tool_tip="ãƒ¢ãƒ¼ãƒ‰ã‚’é¸æŠžã—ã¾ã™ã€‚ベーシックモードã§ã¯æŽ¢ç´¢ã‚„ãƒãƒ£ãƒƒãƒˆã‚’ã™ã°ã‚„ãç°¡å˜ã«å®Ÿè¡Œã§ãã€ã‚¢ãƒ‰ãƒãƒ³ã‚¹ãƒ¢ãƒ¼ãƒ‰ã§ã¯ã€ã‚ˆã‚Šå¤šãã®æ©Ÿèƒ½ãŒåˆ©ç”¨ã§ãã¾ã™ã€‚"> - <combo_box.item label="ベーシックモード" name="Basic"/> - <combo_box.item label="アドãƒãƒ³ã‚¹ãƒ¢ãƒ¼ãƒ‰" name="Advanced"/> - </combo_box> <text name="TimeText" tool_tip="ç¾åœ¨æ™‚刻(太平洋)"> 24:00 AM PST </text> diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml index 41dc098ba257fff8904a565298caa4aaeba45d3d..f611b965020e69a1037e1fb69d3cb0d900164ced 100644 --- a/indra/newview/skins/default/xui/ja/strings.xml +++ b/indra/newview/skins/default/xui/ja/strings.xml @@ -77,10 +77,10 @@ ã‚ャッシュファイルを検証ã—ã¦ã„ã¾ã™ï¼ˆæ‰€è¦æ™‚間㯠60 ~ 90 秒)... </string> <string name="LoginProcessingResponse"> - 応ç”を処ç†ã—ã¦ã„ã¾ã™... + 対応を処ç†ä¸ã§ã™... </string> <string name="LoginInitializingWorld"> - ãƒ¯ãƒ¼ãƒ«ãƒ‰ã‚’åˆæœŸåŒ–ã—ã¦ã„ã¾ã™... + ãƒ¯ãƒ¼ãƒ«ãƒ‰ã‚’åˆæœŸåŒ–ä¸ã§ã™... </string> <string name="LoginDecodingImages"> ç”»åƒã‚’デコードã—ã¦ã„ã¾ã™... @@ -128,7 +128,7 @@ グリッドサーãƒãƒ¼ãŒè¿”ã—ãŸè¨¼æ˜Žæ›¸ã®ç½²åã‚’èªè¨¼ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚グリッドã®ç®¡ç†è€…ã«ãŠå•ã„åˆã‚ã›ãã ã•ã„。 </string> <string name="LoginFailedNoNetwork"> - ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¨ãƒ©ãƒ¼ï¼š 接続を確立ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ãŠä½¿ã„ã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯æŽ¥ç¶šã‚’ã”確èªãã ã•ã„。 + ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¨ãƒ©ãƒ¼ï¼šæŽ¥ç¶šã‚’確立ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ãŠä½¿ã„ã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯æŽ¥ç¶šã‚’ã”確èªãã ã•ã„。 </string> <string name="LoginFailed"> ãƒã‚°ã‚¤ãƒ³ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ @@ -1276,6 +1276,9 @@ support@secondlife.com ã«ãŠå•ã„åˆã‚ã›ãã ã•ã„。 <string name="Marketplace Error Internal Import"> エラー:ã“ã®å•†å“ã«é–¢ã—ã¦å•題ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚ã—ã°ã‚‰ãã—ã¦ã‹ã‚‰ãŠè©¦ã—ãã ã•ã„。 </string> + <string name="Open landmarks"> + ランドマークを開ã + </string> <string name="no_transfer" value=" (å†è²©ãƒ»ãƒ—レゼントä¸å¯ï¼‰"/> <string name="no_modify" value=" (編集ä¸å¯ï¼‰"/> <string name="no_copy" value=" (コピーä¸å¯ï¼‰"/> @@ -4254,8 +4257,8 @@ www.secondlife.com ã‹ã‚‰æœ€æ–°ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’ダウンãƒãƒ¼ãƒ‰ã—ã¦ãã <string name="Female - Wow"> 女性 - Wow </string> - <string name="/bow1"> - /bow1 + <string name="/bow"> + /ãŠã˜ãŽã™ã‚‹ </string> <string name="/clap"> /æ‹æ‰‹ @@ -4767,4 +4770,172 @@ www.secondlife.com ã‹ã‚‰æœ€æ–°ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’ダウンãƒãƒ¼ãƒ‰ã—ã¦ãã <string name="ParticleHiding"> パーティクルをéžè¡¨ç¤º </string> + <string name="Command_AboutLand_Label"> + åœŸåœ°æƒ…å ± + </string> + <string name="Command_Appearance_Label"> + 容姿 + </string> + <string name="Command_Avatar_Label"> + ã‚¢ãƒã‚¿ãƒ¼ + </string> + <string name="Command_Build_Label"> + 制作 + </string> + <string name="Command_Chat_Label"> + ãƒãƒ£ãƒƒãƒˆ + </string> + <string name="Command_Compass_Label"> + コンパス + </string> + <string name="Command_Destinations_Label"> + 行ãå…ˆ + </string> + <string name="Command_Gestures_Label"> + ジェスãƒãƒ£ãƒ¼ + </string> + <string name="Command_HowTo_Label"> + ãƒã‚¦ãƒ„ー + </string> + <string name="Command_Inventory_Label"> + æŒã¡ç‰© + </string> + <string name="Command_Map_Label"> + 地図 + </string> + <string name="Command_Marketplace_Label"> + マーケットプレイス + </string> + <string name="Command_MiniMap_Label"> + ミニマップ + </string> + <string name="Command_Move_Label"> + 移動 + </string> + <string name="Command_People_Label"> + 人 + </string> + <string name="Command_Picks_Label"> + ピック + </string> + <string name="Command_Places_Label"> + å ´æ‰€ + </string> + <string name="Command_Preferences_Label"> + 環境è¨å®š + </string> + <string name="Command_Profile_Label"> + プãƒãƒ•ィール + </string> + <string name="Command_Search_Label"> + 検索 + </string> + <string name="Command_Snapshot_Label"> + スナップショット + </string> + <string name="Command_Speak_Label"> + 話㙠+ </string> + <string name="Command_View_Label"> + 視界 + </string> + <string name="Command_Voice_Label"> + è¿‘ãã®ãƒœã‚¤ã‚¹ + </string> + <string name="Command_AboutLand_Tooltip"> + 訪å•å…ˆã«é–¢ã™ã‚‹æƒ…å ± + </string> + <string name="Command_Appearance_Tooltip"> + ã‚¢ãƒã‚¿ãƒ¼ã‚’変更 + </string> + <string name="Command_Avatar_Tooltip"> + ã‚¢ãƒã‚¿ãƒ¼ä¸€å¼ã‚’é¸æŠž + </string> + <string name="Command_Build_Tooltip"> + オブジェクトã®åˆ¶ä½œã¨åœ°å½¢ã®å¤‰å½¢ + </string> + <string name="Command_Chat_Tooltip"> + è¿‘ãã®äººã¨æ–‡å—ãƒãƒ£ãƒƒãƒˆã™ã‚‹ + </string> + <string name="Command_Compass_Tooltip"> + コンパス + </string> + <string name="Command_Destinations_Tooltip"> + 行ã£ã¦ã¿ãŸã„å ´æ‰€ + </string> + <string name="Command_Gestures_Tooltip"> + ã‚¢ãƒã‚¿ãƒ¼ã®ã‚¸ã‚§ã‚¹ãƒãƒ£ãƒ¼ + </string> + <string name="Command_HowTo_Tooltip"> + 一般的タスクã®å®Ÿè¡Œæ–¹æ³• + </string> + <string name="Command_Inventory_Tooltip"> + æŒã¡ç‰©ã‚’表示・使用 + </string> + <string name="Command_Map_Tooltip"> + 世界地図 + </string> + <string name="Command_Marketplace_Tooltip"> + ショッピングã«å‡ºæŽ›ã‘ã‚‹ + </string> + <string name="Command_MiniMap_Tooltip"> + è¿‘ãã®äººã‚’表示ã™ã‚‹ + </string> + <string name="Command_Move_Tooltip"> + ã‚¢ãƒã‚¿ãƒ¼ã®ç§»å‹• + </string> + <string name="Command_People_Tooltip"> + フレンドã€ã‚°ãƒ«ãƒ¼ãƒ—ã€è¿‘ãã®äºº + </string> + <string name="Command_Picks_Tooltip"> + プãƒãƒ•ィールã§ç´¹ä»‹ã™ã‚‹ãŠæ°—ã«å…¥ã‚Šã®å ´æ‰€ + </string> + <string name="Command_Places_Tooltip"> + ä¿å˜æ¸ˆã¿ã®å ´æ‰€ + </string> + <string name="Command_Preferences_Tooltip"> + 環境è¨å®š + </string> + <string name="Command_Profile_Tooltip"> + プãƒãƒ•ィールを編集・表示 + </string> + <string name="Command_Search_Tooltip"> + å ´æ‰€ã€ã‚¤ãƒ™ãƒ³ãƒˆã€äººã‚’検索 + </string> + <string name="Command_Snapshot_Tooltip"> + ピクãƒãƒ£ã‚’撮る + </string> + <string name="Command_Speak_Tooltip"> + マイクを使ã£ã¦è¿‘ãã®äººã¨è©±ã™ + </string> + <string name="Command_View_Tooltip"> + カメラã®è§’度を変更 + </string> + <string name="Command_Voice_Tooltip"> + ボイスãƒãƒ£ãƒƒãƒˆæ©Ÿèƒ½ã‚’æŒã¤è¿‘ãã®äºº + </string> + <string name="Retain%"> + ç¶æŒçއ + </string> + <string name="Detail"> + 詳細 + </string> + <string name="Better Detail"> + ã‚‚ã£ã¨è©³ã—ã + </string> + <string name="Surface"> + è¡¨é¢ + </string> + <string name="Solid"> + ソリッド + </string> + <string name="Wrap"> + ラップ + </string> + <string name="Preview"> + プレビュー + </string> + <string name="Normal"> + 普通 + </string> </strings> diff --git a/indra/newview/skins/default/xui/pl/floater_about.xml b/indra/newview/skins/default/xui/pl/floater_about.xml index 637325ddd022758643998bf8b51b227afc888be9..409429ffaa64b2f5584ed937ebbce14fac9dc3fb 100644 --- a/indra/newview/skins/default/xui/pl/floater_about.xml +++ b/indra/newview/skins/default/xui/pl/floater_about.xml @@ -10,7 +10,7 @@ <floater.string name="AboutPosition"> PoÅ‚ożenie [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1] w [REGION] zlokalizowanym w <nolink>[HOSTNAME]</nolink> ([HOSTIP]) [SERVER_VERSION] -[[SERVER_RELEASE_NOTES_URL] [ReleaseNotes]] +[SERVER_RELEASE_NOTES_URL] </floater.string> <floater.string name="AboutSystem"> Procesor: [CPU] diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_general.xml b/indra/newview/skins/default/xui/pt/panel_preferences_general.xml index 1c19a55de65bb5470b63ffeca3f9239e5b866c4d..c53aa7d5f70e72ecc45c06b5ac72ee0e69743960 100644 --- a/indra/newview/skins/default/xui/pt/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/pt/panel_preferences_general.xml @@ -16,7 +16,7 @@ <combo_box.item label="РуÑÑкий (Russo) - Beta" name="Russian"/> <combo_box.item label="Türkçe (Turco) - Beta" name="Turkish"/> <combo_box.item label="日本語 (Japonês) - Beta" name="(Japanese)"/> - <combo_box.item label="æ£é«” (Chinês tradicional) - Beta" name="Traditional Chinese"/> + <combo_box.item label="æ£é«”䏿–‡ (Chinês tradicional) - Beta" name="Traditional Chinese"/> </combo_box> <text name="language_textbox2"> (Reinicie para trocar de idioma) diff --git a/indra/newview/skins/default/xui/ru/floater_about.xml b/indra/newview/skins/default/xui/ru/floater_about.xml index 6bc550c3fe9c88a430e2f3ba9d303ba3a5448972..deb6be319cf7e74945107d2c0c484c37ca626ddb 100644 --- a/indra/newview/skins/default/xui/ru/floater_about.xml +++ b/indra/newview/skins/default/xui/ru/floater_about.xml @@ -10,7 +10,7 @@ <floater.string name="AboutPosition"> Ð’Ñ‹ в точке [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1] в регионе «[REGION]», раÑположенном на <nolink>[HOSTNAME]</nolink> ([HOSTIP]) [SERVER_VERSION] -[[SERVER_RELEASE_NOTES_URL] [ReleaseNotes]] +[SERVER_RELEASE_NOTES_URL] </floater.string> <floater.string name="AboutSystem"> ЦП: [CPU] @@ -36,6 +36,9 @@ <floater.string name="AboutTraffic"> ПотерÑно пакетов: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) </floater.string> + <floater.string name="ErrorFetchingServerReleaseNotesURL"> + Ошибка при получении URL-адреÑа заметок о выпуÑке Ñервера. + </floater.string> <tab_container name="about_tab"> <panel label="Данные" name="support_panel"> <button label="Копировать в буфер обмена" name="copy_btn"/> diff --git a/indra/newview/skins/default/xui/ru/floater_about_land.xml b/indra/newview/skins/default/xui/ru/floater_about_land.xml index cf43f411073722d840c46231558e09168f09e6c5..488d2cda1703830dffbaabf338cb5b23a0221e3a 100644 --- a/indra/newview/skins/default/xui/ru/floater_about_land.xml +++ b/indra/newview/skins/default/xui/ru/floater_about_land.xml @@ -212,19 +212,19 @@ БонуÑный множитель Ð´Ð»Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð¾Ð²: [BONUS] </text> <text name="Simulator primitive usage:"> - Примитивов иÑпользуетÑÑ: + ЕмкоÑть региона: </text> <text name="objects_available"> [COUNT] из [MAX] ([AVAILABLE] доÑтупно) </text> <text name="Primitives parcel supports:"> - Разрешено Ð´Ð»Ñ Ñ€Ð°Ð·Ð¼ÐµÑ‰ÐµÐ½Ð¸Ñ: + ЕмкоÑть учаÑтка: </text> <text name="object_contrib_text"> [COUNT] </text> <text name="Primitives on parcel:"> - Примитивов на учаÑтке: + ВоздейÑтвие учаÑтка: </text> <text name="total_objects_text"> [COUNT] diff --git a/indra/newview/skins/default/xui/ru/floater_avatar.xml b/indra/newview/skins/default/xui/ru/floater_avatar.xml new file mode 100644 index 0000000000000000000000000000000000000000..6bdf81988098e0d202aebc5089a6879c272b053a --- /dev/null +++ b/indra/newview/skins/default/xui/ru/floater_avatar.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Avatar" title="ВЫБОРÐÐ’ÐТÐÐ Ð"/> diff --git a/indra/newview/skins/default/xui/ru/floater_camera.xml b/indra/newview/skins/default/xui/ru/floater_camera.xml index 495c5d55fc899190844f56989e86811c3ff8254d..7a1f530668a280e723af2d268b84fd6a4e0d8bbe 100644 --- a/indra/newview/skins/default/xui/ru/floater_camera.xml +++ b/indra/newview/skins/default/xui/ru/floater_camera.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="camera_floater"> +<floater name="camera_floater" title="КÐМЕРÐ"> <floater.string name="rotate_tooltip"> Повернуть камеру вокруг точки фокуÑировки </floater.string> diff --git a/indra/newview/skins/default/xui/ru/floater_chat_bar.xml b/indra/newview/skins/default/xui/ru/floater_chat_bar.xml new file mode 100644 index 0000000000000000000000000000000000000000..eceab1775a59844aded11fa4b94ed19629fae759 --- /dev/null +++ b/indra/newview/skins/default/xui/ru/floater_chat_bar.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="chat_bar" title="ЛОКÐЛЬÐЫЙ ЧÐТ"> + <panel> + <line_editor label="Щелкните здеÑÑŒ Ð´Ð»Ñ Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ." name="chat_box" tool_tip="Ðажмите Enter, чтобы Ñказать, Ctrl+Enter, чтобы прокричать"/> + <button name="show_nearby_chat" tool_tip="Показать/Ñкрыть лог локального чата"/> + </panel> +</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_destinations.xml b/indra/newview/skins/default/xui/ru/floater_destinations.xml new file mode 100644 index 0000000000000000000000000000000000000000..e769812bebc2ab0840c517ce2aca3619c59e0743 --- /dev/null +++ b/indra/newview/skins/default/xui/ru/floater_destinations.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Destinations" title="МЕСТÐ"/> diff --git a/indra/newview/skins/default/xui/ru/floater_fast_timers.xml b/indra/newview/skins/default/xui/ru/floater_fast_timers.xml new file mode 100644 index 0000000000000000000000000000000000000000..20936b8494fff4a843401ee6c1891b798a1c0d26 --- /dev/null +++ b/indra/newview/skins/default/xui/ru/floater_fast_timers.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="fast_timers"> + <string name="pause"> + Пауза + </string> + <string name="run"> + Бег + </string> + <button label="Пауза" name="pause_btn"/> +</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_how_to.xml b/indra/newview/skins/default/xui/ru/floater_how_to.xml new file mode 100644 index 0000000000000000000000000000000000000000..52525e5d333929f50122af78610aa22caf256156 --- /dev/null +++ b/indra/newview/skins/default/xui/ru/floater_how_to.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_how_to" title="ПОМОЩЬ"/> diff --git a/indra/newview/skins/default/xui/ru/floater_map.xml b/indra/newview/skins/default/xui/ru/floater_map.xml index 169bac5bd282fed084fc8bbaf322ccebeb7c8931..59ceb0a773bd8e0b54e7016719fe534815593767 100644 --- a/indra/newview/skins/default/xui/ru/floater_map.xml +++ b/indra/newview/skins/default/xui/ru/floater_map.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Map" title=""> +<floater name="Map" title="МИÐИКÐРТÐ"> <floater.string name="ToolTipMsg"> [REGION](Двойной щелчок открывает карту, shift+перетÑгивание – обзор) </floater.string> @@ -7,7 +7,7 @@ [REGION](Двойной щелчок – телепортациÑ, shift+перетÑгивание – обзор) </floater.string> <floater.string name="mini_map_caption"> - МИÐИКÐРТР+ Миникарта </floater.string> <text label="С" name="floater_map_north"> С diff --git a/indra/newview/skins/default/xui/ru/floater_model_preview.xml b/indra/newview/skins/default/xui/ru/floater_model_preview.xml index 53ef685f9ee51a29eaa8fb3bf04a9c782083c302..31517e722d91024cfb0f5c9ca6baf6154f7d0b61 100644 --- a/indra/newview/skins/default/xui/ru/floater_model_preview.xml +++ b/indra/newview/skins/default/xui/ru/floater_model_preview.xml @@ -1,10 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Model Preview" title="Передать модель"> - <string name="status_idle"> - Ðеактивно - </string> +<floater name="Model Preview" title="ПЕРЕДÐЧРМОДЕЛИ"> + <string name="status_idle"/> <string name="status_parse_error"> - Проблема при анализе файла DAE – Ñм. подробноÑти в журнале. + Ошибка. Проблема при анализе файла DAE – Ñм. подробноÑти в журнале. </string> <string name="status_reading_file"> Загрузка... @@ -51,6 +49,9 @@ <string name="mesh_status_missing_lod"> ОтÑутÑтвует необходимый уровень детализации. </string> + <string name="mesh_status_invalid_material_list"> + Материалы ÑƒÑ€Ð¾Ð²Ð½Ñ Ð´ÐµÑ‚Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¸ не входÑÑ‚ в Ñталонную модель. + </string> <string name="layer_all"> Ð’Ñе </string> @@ -63,186 +64,211 @@ <string name="tbd"> Позже </string> - <text name="name_label"> - Ðазвание: - </text> - <text name="lod_label"> - ПроÑмотр: - </text> - <combo_box name="preview_lod_combo" tool_tip="Уровень детализации при предварительном проÑмотре"> - <combo_item name="high"> - Уровень детализации: выÑокий - </combo_item> - <combo_item name="medium"> - Уровень детализации: Ñредний - </combo_item> - <combo_item name="low"> - Уровень детализации: низкий - </combo_item> - <combo_item name="lowest"> - Уровень детализации: Ñамый низкий - </combo_item> - </combo_box> - <text name="warning_title"> - Ð’ÐИМÐÐИЕ! - </text> - <text name="warning_message"> - Ð’Ñ‹ не Ñможете завершить передачу Ñтой модели на Ñерверы Second Life. [[VURL] Узнайте, как] получить право на передачу Ñеточных моделей. - </text> - <text name="weights_text"> - Загрузка: -ФизичеÑкие данные: -Сервер: -Ðквивалент в примитивах: - </text> - <text name="weights"> - [ST] -[PH] -[SIM] -[EQ] - </text> - <tab_container name="import_tab"> - <panel label="Уровень детализации" name="lod_panel"> - <text name="lod_table_header"> - Выберите уровень детализации: - </text> - <text name="high_label" value="выÑокий"/> - <text name="high_triangles" value="0"/> - <text name="high_vertices" value="0"/> - <text name="medium_label" value="Ñредний"/> - <text name="medium_triangles" value="0"/> - <text name="medium_vertices" value="0"/> - <text name="low_label" value="низкий"/> - <text name="low_triangles" value="0"/> - <text name="low_vertices" value="0"/> - <text name="lowest_label" value="Ñамый низкий"/> - <text name="lowest_triangles" value="0"/> - <text name="lowest_vertices" value="0"/> - <text name="lod_table_footer"> - Уровень детализации: [DETAIL] - </text> - <radio_group name="lod_file_or_limit" value="lod_from_file"> - <radio_item label="Загрузка из файла" name="lod_from_file"/> - <radio_item label="ÐвтоÑоздание" name="lod_auto_generate"/> - <radio_item label="Ðет" name="lod_none"/> - </radio_group> - <button label="Обзор..." name="lod_browse"/> - <combo_box name="lod_mode"> - <combo_item name="triangle_limit"> - Предельное чиÑло треугольников - </combo_item> - <combo_item name="error_threshold"> - Порог ошибки - </combo_item> - </combo_box> - <text name="build_operator_text"> - Оператор поÑтроениÑ: + <panel name="left_panel"> + <panel name="model_name_representation_panel"> + <text name="name_label"> + Ð˜Ð¼Ñ Ð¼Ð¾Ð´ÐµÐ»Ð¸: </text> - <text name="queue_mode_text"> - Режим очереди: + <text name="model_category_label"> + Ðта модель предÑтавлÑет... </text> - <combo_box name="build_operator"> - <combo_item name="edge_collapse"> - СлиÑние ребер - </combo_item> - <combo_item name="half_edge_collapse"> - СлиÑние ребер к одной вершине - </combo_item> - </combo_box> - <combo_box name="queue_mode"> - <combo_item name="greedy"> - интенÑивный - </combo_item> - <combo_item name="lazy"> - медленный - </combo_item> - <combo_item name="independent"> - незавиÑимый - </combo_item> + <combo_box name="model_category_combo"> + <combo_item label="Выберите вариант..." name="Choose one"/> + <combo_item label="Форма аватара" name="Avatar shape"/> + <combo_item label="ПриÑоединение аватара" name="Avatar attachment"/> + <combo_item label="Подвижный объект (машина, животное)" name="Moving object (vehicle, animal)"/> + <combo_item label="Строительный компонент" name="Building Component"/> + <combo_item label="БольшаÑ, Ð½ÐµÐ¿Ð¾Ð´Ð²Ð¸Ð¶Ð½Ð°Ñ Ð¸ Ñ‚.д." name="Large, non moving etc"/> + <combo_item label="МалаÑ, Ð½ÐµÐ¿Ð¾Ð´Ð²Ð¸Ð¶Ð½Ð°Ñ Ð¸ Ñ‚.д." name="Smaller, non-moving etc"/> + <combo_item label="Ðи один из них" name="Not really any of these"/> </combo_box> - <text name="border_mode_text"> - Границы: - </text> - <text name="share_tolderance_text"> - ДопуÑк на Ñовпадение: - </text> - <combo_box name="border_mode"> - <combo_item name="border_unlock"> - нефикÑированные - </combo_item> - <combo_item name="border_lock"> - фикÑированные - </combo_item> - </combo_box> - <text name="crease_label"> - Угол Ñгиба: - </text> - <spinner name="crease_angle" value="75"/> </panel> - <panel label="Физика" name="physics_panel"> - <panel name="physics geometry"> - <radio_group name="physics_load_radio" value="physics_load_from_file"> - <radio_item label="Файл:" name="physics_load_from_file"/> - <radio_item label="ИÑпользовать уровни детализации:" name="physics_use_lod"/> - </radio_group> - <combo_box name="physics_lod_combo" tool_tip="Уровень детализации Ð´Ð»Ñ Ñ„Ð¸Ð·Ð¸Ñ‡ÐµÑкой формы"> - <combo_item name="physics_lowest"> - Ñамый низкий - </combo_item> - <combo_item name="physics_low"> - низкий - </combo_item> - <combo_item name="physics_medium"> - Ñредний - </combo_item> - <combo_item name="physics_high"> - выÑокий - </combo_item> - </combo_box> - <button label="Обзор..." name="physics_browse"/> + <tab_container name="import_tab"> + <panel label="Уровень детализации" name="lod_panel" title="Уровень детализации"> + <text initial_value="ИÑточник" name="source" value="ИÑточник"/> + <text initial_value="Треугольники" name="triangles" value="Треугольники"/> + <text initial_value="Вершины" name="vertices" value="Вершины"/> + <text initial_value="Ð’Ñ‹Ñокий" name="high_label" value="Ð’Ñ‹Ñокий"/> + <button label="Обзор..." name="lod_browse_high"/> + <text initial_value="0" name="high_triangles" value="0"/> + <text initial_value="0" name="high_vertices" value="0"/> + <text initial_value="Средний" name="medium_label" value="Средний"/> + <button label="Обзор..." name="lod_browse_medium"/> + <text initial_value="0" name="medium_triangles" value="0"/> + <text initial_value="0" name="medium_vertices" value="0"/> + <text initial_value="Ðизкий" name="low_label" value="Ðизкий"/> + <button label="Обзор..." name="lod_browse_low"/> + <text initial_value="0" name="low_triangles" value="0"/> + <text initial_value="0" name="low_vertices" value="0"/> + <text initial_value="Самый низкий" name="lowest_label" value="Самый низкий"/> + <button label="Обзор..." name="lod_browse_lowest"/> + <text initial_value="0" name="lowest_triangles" value="0"/> + <text initial_value="0" name="lowest_vertices" value="0"/> + <check_box label="Генерировать нормали" name="gen_normals"/> + <text initial_value="Угол Ñгиба:" name="crease_label" value="Угол Ñгиба:"/> + <spinner name="crease_angle" value="75"/> </panel> - <panel name="physics analysis"> - <slider label="ГладкоÑть:" name="Smooth"/> - <check_box label="Закрыть отверÑÑ‚Ð¸Ñ (медленно)" name="Close Holes (Slow)"/> - <button label="Ðнализ" name="Decompose"/> - <button label="Отмена" name="decompose_cancel"/> + <panel label="Физика" name="physics_panel"> + <panel name="physics geometry"> + <text name="first_step_name"> + Шаг 1. Уровень детализации + </text> + <combo_box name="physics_lod_combo" tool_tip="Уровень детализации Ð´Ð»Ñ Ñ„Ð¸Ð·Ð¸Ñ‡ÐµÑкой формы"> + <combo_item name="choose_one"> + Выберите вариант... + </combo_item> + <combo_item name="physics_high"> + Ð’Ñ‹Ñокое + </combo_item> + <combo_item name="physics_medium"> + Средний + </combo_item> + <combo_item name="physics_low"> + Ðизкий + </combo_item> + <combo_item name="physics_lowest"> + Самый низкий + </combo_item> + <combo_item name="load_from_file"> + Из файла + </combo_item> + </combo_box> + <button label="Обзор..." name="physics_browse"/> + </panel> + <panel name="physics analysis"> + <text name="method_label"> + Шаг 2. Ðнализ + </text> + <text name="analysis_method_label"> + Метод: + </text> + <text name="quality_label"> + КачеÑтво: + </text> + <text name="smooth_method_label"> + ГладкоÑть: + </text> + <check_box label="Закрыть отверÑтиÑ" name="Close Holes (Slow)"/> + <button label="Ðнализ" name="Decompose"/> + <button label="Отмена" name="decompose_cancel"/> + </panel> + <panel name="physics simplification"> + <text name="second_step_label"> + Шаг 3. Упрощение + </text> + <text name="simp_method_header"> + Метод: + </text> + <text name="pass_method_header"> + Проходов: + </text> + <text name="Detail Scale label"> + МаÑштаб деталей: + </text> + <text name="Retain%_label"> + СохранÑть: + </text> + <combo_box name="Combine Quality" value="1"/> + <button label="Упрощение" name="Simplify"/> + <button label="Отмена" name="simplify_cancel"/> + </panel> + <panel name="physics info"> + <text name="results_text"> + Результаты: + </text> + <text name="physics_triangles"> + Треугольников: [TRIANGLES], + </text> + <text name="physics_points"> + Вершин: [POINTS], + </text> + <text name="physics_hulls"> + Оболочек: [HULLS] + </text> + </panel> </panel> - <panel name="physics simplification"> - <slider label="Проходов:" name="Combine Quality"/> - <slider label="МаÑштаб деталей:" name="Detail Scale"/> - <slider label="СохранÑть:" name="Retain%"/> - <button label="Упрощение" name="Simplify"/> - <button label="Отмена" name="simplify_cancel"/> - </panel> - <panel name="physics info"> - <slider label="ПроÑмотр разложениÑ:" name="physics_explode"/> - <text name="physics_triangles"> - Треугольников: [TRIANGLES] + <panel label="Параметры передачи" name="modifiers_panel"> + <text name="scale_label"> + МаÑштаб (1=не маÑштабировать): + </text> + <spinner name="import_scale" value="1.0"/> + <text name="dimensions_label"> + Размеры: </text> - <text name="physics_points"> - Вершин: [POINTS] + <text name="import_dimensions"> + [X] X [Y] X [Z] </text> - <text name="physics_hulls"> - Оболочек: [HULLS] + <check_box label="Включить текÑтуры" name="upload_textures"/> + <text name="include_label"> + Только Ð´Ð»Ñ Ð¼Ð¾Ð´ÐµÐ»ÐµÐ¹ аватаров: </text> + <check_box label="Включить Ð²ÐµÑ ÐºÐ¾Ð¶Ð¸" name="upload_skin"/> + <check_box label="Включить Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÑуÑтавов" name="upload_joints"/> + <text name="pelvis_offset_label"> + Смещение по Z (поднÑть или опуÑтить аватар): + </text> + <spinner name="pelvis_offset" value="0.0"/> </panel> - </panel> - <panel label="Модификаторы" name="modifiers_panel"> - <spinner name="import_scale" value="1.0"/> - <text name="import_dimensions"> - [X] x [Y] x [Z] м + </tab_container> + <panel name="weights_and_warning_panel"> + <button label="РаÑÑчитать Ð²ÐµÑ Ð¸ плату" name="calculate_btn" tool_tip="РаÑÑчитать Ð²ÐµÑ Ð¸ плату"/> + <button label="Отмена" name="cancel_btn"/> + <button label="Передать" name="ok_btn" tool_tip="Передать в ÑимулÑтор"/> + <button label="ОчиÑтить наÑтройки и ÑброÑить форму" name="reset_btn"/> + <text name="upload_fee"> + Плата за передачу: L$ [FEE] + </text> + <text name="prim_weight"> + ВлиÑние земли: [EQ] + </text> + <text name="download_weight"> + Загрузка: [ST] + </text> + <text name="physics_weight"> + Физика: [PH] + </text> + <text name="server_weight"> + Сервер: [SIM] + </text> + <text name="warning_title"> + ПРИМЕЧÐÐИЕ. + </text> + <text name="warning_message"> + У Ð²Ð°Ñ Ð½ÐµÑ‚ прав на передачу Ñеточных моделей. [[VURL] Узнайте, как] получить их. + </text> + <text name="status"> + [STATUS] </text> - <check_box label="ТекÑтуры" name="upload_textures"/> - <check_box label="Ð’ÐµÑ ÐºÐ¾Ð¶Ð¸" name="upload_skin"/> - <check_box label="Положение Ñочленений" name="upload_joints"/> - <spinner name="pelvis_offset" value="0.0"/> </panel> - </tab_container> - <text name="upload_fee"> - Плата за передачу: L$ [FEE] + </panel> + <text name="lod_label"> + ПроÑмотр: </text> - <button label="По умолчанию" name="reset_btn" tool_tip="По умолчанию"/> - <button label="РаÑÑчитать Ð²ÐµÑ Ð¸ плату" name="calculate_btn" tool_tip="РаÑÑчитать Ð²ÐµÑ Ð¸ плату"/> - <button label="Передача" name="ok_btn" tool_tip="Передать в ÑимулÑтор"/> - <button label="Отмена" name="cancel_btn"/> + <panel name="right_panel"> + <combo_box name="preview_lod_combo" tool_tip="Уровень детализации при предварительном проÑмотре"> + <combo_item name="high"> + Ð’Ñ‹Ñокий + </combo_item> + <combo_item name="medium"> + Среднее + </combo_item> + <combo_item name="low"> + Ðизкий + </combo_item> + <combo_item name="lowest"> + Самый низкий + </combo_item> + </combo_box> + <text name="label_display"> + Показать... + </text> + <check_box label="Ребра" name="show_edges"/> + <check_box label="Физика" name="show_physics"/> + <check_box label="ТекÑтуры" name="show_textures"/> + <check_box label="Ð’ÐµÑ ÐºÐ¾Ð¶Ð¸" name="show_skin_weight"/> + <check_box label="СуÑтавы" name="show_joint_positions"/> + <text name="physics_explode_label"> + ПроÑмотр разложениÑ: + </text> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/ru/floater_model_wizard.xml b/indra/newview/skins/default/xui/ru/floater_model_wizard.xml index 9b2924a3db39d76017635a1ae4caf994984bcd78..204f752cd9fde8246a100b2efef638d979c2ea98 100644 --- a/indra/newview/skins/default/xui/ru/floater_model_wizard.xml +++ b/indra/newview/skins/default/xui/ru/floater_model_wizard.xml @@ -6,26 +6,20 @@ <button label="2. Оптимизировать" name="optimize_btn"/> <button label="1. Выбрать файл" name="choose_file_btn"/> <panel name="choose_file_panel"> - <panel name="choose_file_header_panel"> - <text name="choose_file_header_text"> - Выберите файл + <panel name="header_panel"> + <text name="header_text"> + Выберите файл модели </text> </panel> - <panel name="choose_file_content_panel"> + <panel name="content"> <text name="advanced_users_text"> ПользователÑм, работающим в раÑширенном режиме: еÑли вы умеете Ñоздавать трехмерные графичеÑкие объекты, то, возможно, захотите воÑпользоватьÑÑ ÑредÑтвом Advanced Uploader, которое предоÑтавлÑет раÑширенные возможноÑти передачи объектов. </text> <button label="Перейти в раÑширенный режим" name="switch_to_advanced"/> - <text name="choose_model_file_label"> + <text name="Cache location"> Выберите файл модели Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ð¸ </text> <button label="Обзор..." label_selected="Обзор..." name="browse"/> - <text name="support_collada_text"> - Ð’ Second Life поддерживаютÑÑ Ñ„Ð°Ð¹Ð»Ñ‹ COLLADA (DAE) - </text> - <text name="dimensions_label"> - Размеры (в метрах): - </text> <text name="dimensions"> X Y Z </text> @@ -38,18 +32,15 @@ </panel> </panel> <panel name="optimize_panel"> - <panel name="optimize_header_panel"> - <text name="optimize_header_text"> + <panel name="header_panel"> + <text name="header_text"> Оптимизировать модель </text> </panel> - <text name="optimize_hint"> + <text name="description"> Мы оптимизировали модель Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ Ð±Ñ‹ÑтродейÑтвиÑ. По желанию можно выполнить дополнительную наÑтройку. </text> - <panel name="optimize_content_panel"> - <text name="generating_lod_label"> - СоздаетÑÑ ÑƒÑ€Ð¾Ð²ÐµÐ½ÑŒ детализации - </text> + <panel name="content"> <text name="high_detail_text"> Создать уровень детализации: выÑокий </text> @@ -64,123 +55,64 @@ </text> </panel> <panel name="content2"> - <text name="optimize_performance_text"> - БыÑтродейÑтвие - </text> - <text name="optimize_faster_rendering_text"> - УÑкорить прориÑовку -Меньше деталей -Уменьшить Ð²ÐµÑ Ð¿Ñ€Ð¸Ð¼Ð¸Ñ‚Ð¸Ð²Ð° - </text> - <text name="optimize_accuracy_text"> - ТочноÑть - </text> - <text name="optimize_slower_rendering_text"> - Замедлить прориÑовку -Больше деталей -ПовыÑить Ð²ÐµÑ Ð¿Ñ€Ð¸Ð¼Ð¸Ñ‚Ð¸Ð²Ð° - </text> - <text name="accuracy_slider_mark1"> - ' - </text> - <text name="accuracy_slider_mark2"> - ' - </text> - <text name="accuracy_slider_mark3"> - ' - </text> <button label="ПереÑчитать геометрию" name="recalculate_geometry_btn"/> - <text name="geometry_preview_label"> + <text name="lod_label"> ПроÑмотр геометрии </text> <combo_box name="preview_lod_combo" tool_tip="Ð”ÐµÑ‚Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ предварительном проÑмотре"> - <combo_item name="preview_lod_high"> + <combo_item name="high"> Детально </combo_item> - <combo_item name="preview_lod_medium"> + <combo_item name="medium"> СреднÑÑ Ð´ÐµÑ‚Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ </combo_item> - <combo_item name="preview_lod_low"> + <combo_item name="low"> Мало деталей </combo_item> - <combo_item name="preview_lod_lowest"> + <combo_item name="lowest"> Минимум деталей </combo_item> </combo_box> </panel> </panel> <panel name="physics_panel"> - <panel name="physics_header_panel"> - <text name="physics_header_text"> + <panel name="header_panel"> + <text name="header_text"> ÐаÑтроить физичеÑкие параметры </text> </panel> - <text name="physics_hint"> + <text name="description"> Мы Ñоздадим форму Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ каркаÑа модели. ÐаÑтройте уровень детализации формы в ÑоответÑтвии Ñ Ñ†ÐµÐ»Ñми, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… предназначена модель. </text> - <panel name="physics_content_panel"> - <text name="physics_performance_text"> - БыÑтродейÑтвие - </text> - <text name="physics_faster_rendering_text"> - УÑкорить прориÑовку -Меньше деталей -Уменьшить Ð²ÐµÑ Ð¿Ñ€Ð¸Ð¼Ð¸Ñ‚Ð¸Ð²Ð° - </text> - <text name="physics_accuracy_text"> - ТочноÑть - </text> - <text name="physics_slower_dendering_text"> - Замедлить прориÑовку -Больше деталей -ПовыÑить Ð²ÐµÑ Ð¿Ñ€Ð¸Ð¼Ð¸Ñ‚Ð¸Ð²Ð° - </text> - <text name="physics_example_1"> - Примеры: -подвижные объекты; -летающие объекты; -транÑпорт. - </text> - <text name="physics_example_2"> - Примеры: -небольшие неподвижные объекты; -проÑтые объекты; -проÑÑ‚Ð°Ñ Ð¼ÐµÐ±ÐµÐ»ÑŒ. - </text> - <text name="physics_example_3"> - Примеры: -неподвижные объекты; -Ñложные объекты; -зданиÑ. - </text> + <panel name="content"> <button label="ПереÑчитать физичеÑкие данные" name="recalculate_physics_btn"/> <button label="ПереÑчет..." name="recalculating_physics_btn"/> - <text name="physics_preview_label"> + <text name="lod_label"> ПроÑмотр физичеÑких данных </text> - <combo_box name="preview_lod_combo2" tool_tip="Ð”ÐµÑ‚Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ предварительном проÑмотре"> - <combo_item name="preview_lod2_high"> + <combo_box name="preview_lod_combo2" tool_tip="Уровень детализации при предварительном проÑмотре"> + <combo_item name="high"> Детально </combo_item> - <combo_item name="preview_lod2_medium"> + <combo_item name="medium"> СреднÑÑ Ð´ÐµÑ‚Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ </combo_item> - <combo_item name="preview_lod2_low"> + <combo_item name="low"> Мало деталей </combo_item> - <combo_item name="preview_lod2_lowest"> + <combo_item name="lowest"> Минимум деталей </combo_item> </combo_box> </panel> </panel> <panel name="review_panel"> - <panel name="review_header_panel"> - <text name="review_header_text"> - ПереÑмотреть + <panel name="header_panel"> + <text name="header_text"> + ПроÑмотр </text> </panel> - <panel name="review_content_panel"> + <panel name="content"> <text name="review_prim_equiv"> ВоздейÑтвие на учаÑток/регион: Ñквивалент в примитивах: [EQUIV] </text> @@ -193,8 +125,8 @@ </panel> </panel> <panel name="upload_panel"> - <panel name="upload_header_panel"> - <text name="upload_header_text"> + <panel name="header_panel"> + <text name="header_text"> Передача завершена </text> </panel> diff --git a/indra/newview/skins/default/xui/ru/floater_moveview.xml b/indra/newview/skins/default/xui/ru/floater_moveview.xml index c6ef4a06b39a8262cd31b2a33b07f74fda00148d..6e01f997e18482d0a8721a7947350ca2467ce8c4 100644 --- a/indra/newview/skins/default/xui/ru/floater_moveview.xml +++ b/indra/newview/skins/default/xui/ru/floater_moveview.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="move_floater"> +<floater name="move_floater" title="ПЕРЕМЕЩЕÐИЕ"> <string name="walk_forward_tooltip"> Идти вперед (нажмите Ñтрелку вверх или клавишу W) </string> diff --git a/indra/newview/skins/default/xui/ru/floater_my_appearance.xml b/indra/newview/skins/default/xui/ru/floater_my_appearance.xml new file mode 100644 index 0000000000000000000000000000000000000000..b90d80f3fdd7e3769a649c23921a644b882e975f --- /dev/null +++ b/indra/newview/skins/default/xui/ru/floater_my_appearance.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_my_appearance" title="Ð’ÐЕШÐОСТЬ"> + <panel label="Изменить внешний вид" name="main_panel"/> +</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_my_inventory.xml b/indra/newview/skins/default/xui/ru/floater_my_inventory.xml new file mode 100644 index 0000000000000000000000000000000000000000..534d2a5774a97fcecdf2c6be0f0552ee52709859 --- /dev/null +++ b/indra/newview/skins/default/xui/ru/floater_my_inventory.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_my_inventory" title="ИÐВЕÐТÐРЬ"/> diff --git a/indra/newview/skins/default/xui/ru/floater_object_weights.xml b/indra/newview/skins/default/xui/ru/floater_object_weights.xml new file mode 100644 index 0000000000000000000000000000000000000000..41e01187320e1273dbaa05d25e05b7c4ee3af371 --- /dev/null +++ b/indra/newview/skins/default/xui/ru/floater_object_weights.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="object_weights" title="ДОПОЛÐИТЕЛЬÐО"> + <floater.string name="nothing_selected" value="--"/> + <text name="selected_text" value="ВЫБРÐÐО"/> + <text name="objects" value="--"/> + <text name="objects_label" value="Объекты"/> + <text name="prims" value="--"/> + <text name="prims_label" value="Примитивы"/> + <text name="weights_of_selected_text" value="ВЕС ВЫБРÐÐÐОГО"/> + <text name="download" value="--"/> + <text name="download_label" value="Загрузить"/> + <text name="physics" value="--"/> + <text name="physics_label" value="Физика"/> + <text name="server" value="--"/> + <text name="server_label" value="Сервер"/> + <text name="display" value="--"/> + <text name="display_label" value="Показать"/> + <text name="land_impacts_text" value="ВОЗДЕЙСТВИЕ ÐРЗЕМЛЮ"/> + <text name="selected" value="--"/> + <text name="selected_label" value="Выбрано"/> + <text name="rezzed_on_land" value="--"/> + <text name="rezzed_on_land_label" value="Выложено на землю"/> + <text name="remaining_capacity" value="--"/> + <text name="remaining_capacity_label" value="ОÑтаток емкоÑти"/> + <text name="total_capacity" value="--"/> + <text name="total_capacity_label" value="ÐžÐ±Ñ‰Ð°Ñ ÐµÐ¼ÐºÐ¾Ñть"/> + <text name="help_SLURL" value="[secondlife:///app/help/object_weights Что Ñто такое?...]"/> +</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/ru/floater_outfit_save_as.xml index 781ee8c77196eb906383d4f389604cf131cf36e9..301206e473a4e68343da7bf9774adc68c43fb7e0 100644 --- a/indra/newview/skins/default/xui/ru/floater_outfit_save_as.xml +++ b/indra/newview/skins/default/xui/ru/floater_outfit_save_as.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="modal container" title="Сохранение коÑтюма"> +<floater name="modal container" title="СОХРÐÐИТЬ КОСТЮМ"> <button label="Сохранить" label_selected="Сохранить" name="Save"/> <button label="Отмена" label_selected="Отмена" name="Cancel"/> <text name="Save item as:"> diff --git a/indra/newview/skins/default/xui/ru/floater_people.xml b/indra/newview/skins/default/xui/ru/floater_people.xml new file mode 100644 index 0000000000000000000000000000000000000000..7abc34986afacff922c682262d4f897be5f8b156 --- /dev/null +++ b/indra/newview/skins/default/xui/ru/floater_people.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_people" title="ЛЮДИ"> + <panel_container name="main_panel"> + <panel label="Профиль группы" name="panel_group_info_sidetray"/> + <panel label="Черный ÑпиÑок жителей и объектов" name="panel_block_list_sidetray"/> + </panel_container> +</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_picks.xml b/indra/newview/skins/default/xui/ru/floater_picks.xml new file mode 100644 index 0000000000000000000000000000000000000000..e0ae8d6f0346c828fd2e50ca44451846f01b5519 --- /dev/null +++ b/indra/newview/skins/default/xui/ru/floater_picks.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_picks" title="Подборка"/> diff --git a/indra/newview/skins/default/xui/ru/floater_places.xml b/indra/newview/skins/default/xui/ru/floater_places.xml new file mode 100644 index 0000000000000000000000000000000000000000..2a22a855ef0f230c444f0890f23f53adaac2c4e1 --- /dev/null +++ b/indra/newview/skins/default/xui/ru/floater_places.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_places" title="МЕСТÐ"> + <panel label="МеÑта" name="main_panel"/> +</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_sound_devices.xml b/indra/newview/skins/default/xui/ru/floater_sound_devices.xml index 809cea5aa1f8507a683e1b5eb7d089f6788cf022..fc8de858cd245e9a4697c3855ead936cf1500b8d 100644 --- a/indra/newview/skins/default/xui/ru/floater_sound_devices.xml +++ b/indra/newview/skins/default/xui/ru/floater_sound_devices.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_sound_devices" title="Звуковые уÑтройÑтва"> +<floater name="floater_sound_devices" title="ЗВУКОВЫЕ УСТРОЙСТВÐ"> <text name="voice_label"> ГолоÑовой чат </text> diff --git a/indra/newview/skins/default/xui/ru/floater_stats.xml b/indra/newview/skins/default/xui/ru/floater_stats.xml index c5cccd4091f65008773c329db064d7822dc964fc..b1f60c8029be566bbb76584419a1ac0af9b5be03 100644 --- a/indra/newview/skins/default/xui/ru/floater_stats.xml +++ b/indra/newview/skins/default/xui/ru/floater_stats.xml @@ -10,8 +10,8 @@ </stat_view> <stat_view label="Дополнительно" name="advanced"> <stat_view label="ОтриÑовка" name="render"> - <stat_bar label="Треугольников за Ñекунду" name="ktrisframe"/> - <stat_bar label="Треугольников за Ñекунду" name="ktrissec"/> + <stat_bar label="Треугольников на кадр" name="ktrisframe"/> + <stat_bar label="Треугольников в Ñекунду" name="ktrissec"/> <stat_bar label="Ð’Ñего объектов" name="objs"/> <stat_bar label="Ðовых объектов" name="newobjs"/> </stat_view> @@ -32,7 +32,7 @@ <stat_bar label="Слои" name="layerskbitstat"/> <stat_bar label="ДейÑтвительный ввод" name="actualinkbitstat"/> <stat_bar label="ДейÑтвительный вывод" name="actualoutkbitstat"/> - <stat_bar label="Ожидающие оп-ции VFS" name="vfspendingoperations"/> + <stat_bar label="Ожидающие операции VFS" name="vfspendingoperations"/> </stat_view> </stat_view> <stat_view label="СимулÑтор" name="sim"> @@ -64,6 +64,14 @@ <stat_bar label="Ð’Ñ€ÐµÐ¼Ñ Ð½Ð° клиент" name="simagentmsec"/> <stat_bar label="Ð’Ñ€ÐµÐ¼Ñ Ð½Ð° изображениÑ" name="simimagesmsec"/> <stat_bar label="Ð’Ñ€ÐµÐ¼Ñ Ð½Ð° Ñкрипт" name="simscriptmsec"/> + <stat_bar label="Резервное времÑ" name="simsparemsec"/> + <stat_view label="Данные времени (мÑ)" name="timedetails"> + <stat_bar label="Шаг физики" name="simsimphysicsstepmsec"/> + <stat_bar label="Обновить физ. формы" name="simsimphysicsshapeupdatemsec"/> + <stat_bar label="Физика - прочее" name="simsimphysicsothermsec"/> + <stat_bar label="Ð’Ñ€ÐµÐ¼Ñ Ñна" name="simsleepmsec"/> + <stat_bar label="Ввод/вывод" name="simpumpiomsec"/> + </stat_view> </stat_view> </stat_view> </container_view> diff --git a/indra/newview/skins/default/xui/ru/floater_tools.xml b/indra/newview/skins/default/xui/ru/floater_tools.xml index 7200ec80fa6eb8c5fbcf2f0334d09dd4607353c6..660eca51c6864e6eefde1df85d9a132d9c0c2b90 100644 --- a/indra/newview/skins/default/xui/ru/floater_tools.xml +++ b/indra/newview/skins/default/xui/ru/floater_tools.xml @@ -25,10 +25,10 @@ Щелкните и перемеÑтите Ð´Ð»Ñ Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð·ÐµÐ¼Ð»Ð¸ </floater.string> <floater.string name="status_selectcount"> - Выбрано объектов: [OBJ_COUNT] (примитивов: [PRIM_COUNT] [PE_STRING]) + Выбрано объектов: [OBJ_COUNT], влиÑние на землю [LAND_IMPACT] </floater.string> - <floater.string name="status_selectprimequiv"> - , в примитивах: [SEL_WEIGHT] + <floater.string name="status_remaining_capacity"> + ОÑтаток емкоÑти [LAND_CAPACITY]. </floater.string> <button name="button focus" tool_tip="ОтчетливоÑть"/> <button name="button move" tool_tip="ПеремеÑтить"/> @@ -107,8 +107,8 @@ <text name="selection_empty"> Ðичего не выбрано. </text> - <text name="selection_weight"> - Ð’ÐµÑ Ñ„Ð¸Ð·Ð¸Ñ‡ÐµÑких параметров [PHYS_WEIGHT], ÑтоимоÑть прориÑовки [DISP_WEIGHT]. + <text name="remaining_capacity"> + [CAPACITY_STRING] [secondlife:///app/openfloater/object_weights Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ] </text> <tab_container name="Object Info Tabs"> <panel label="Общие" name="General"> @@ -321,7 +321,6 @@ Тип Ñтыковки </text> <combo_box name="sculpt type control"> - <combo_box.item label="(нет)" name="None"/> <combo_box.item label="По Ñфере" name="Sphere"/> <combo_box.item label="По тору" name="Torus"/> <combo_box.item label="По плоÑкоÑти" name="Plane"/> diff --git a/indra/newview/skins/default/xui/ru/floater_toybox.xml b/indra/newview/skins/default/xui/ru/floater_toybox.xml new file mode 100644 index 0000000000000000000000000000000000000000..eb03e8c8bf7f6217bddd913dbcca34bcb1d19eee --- /dev/null +++ b/indra/newview/skins/default/xui/ru/floater_toybox.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Toybox" title="ÐÐСТРОИТЬ ПÐÐЕЛИ ИÐСТРУМЕÐТОВ"> + <text name="toybox label 1"> + Добавьте или удалите кнопки, перетÑÐ³Ð¸Ð²Ð°Ñ Ð¸Ñ… на панели инÑтрументов или Ñ Ð½Ð¸Ñ…. + </text> + <text name="toybox label 2"> + Кнопки будут отображены в иÑходном виде или в виде значков, в завиÑимоÑти от наÑтроек каждой панели инÑтрументов. + </text> + <button label="ВоÑÑтановить умолчаниÑ" label_selected="ВоÑÑтановить умолчаниÑ" name="btn_restore_defaults"/> +</floater> diff --git a/indra/newview/skins/default/xui/ru/floater_voice_controls.xml b/indra/newview/skins/default/xui/ru/floater_voice_controls.xml index 9fd6518984d80073dd66c734fe193dfd533c7139..6520a4342c7ab29381346af06b4ee917e7f90fb6 100644 --- a/indra/newview/skins/default/xui/ru/floater_voice_controls.xml +++ b/indra/newview/skins/default/xui/ru/floater_voice_controls.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_voice_controls" title="Управление голоÑом"> +<floater name="floater_voice_controls" title="УПРÐВЛЕÐИЕ ГОЛОСОМ"> <string name="title_nearby"> - ЛОКÐЛЬÐЫЙ ГОЛОСОВОЙ ЧÐТ + ГолоÑа ÑобеÑедников </string> <string name="title_group"> Звонок группе [GROUP] diff --git a/indra/newview/skins/default/xui/ru/menu_hide_navbar.xml b/indra/newview/skins/default/xui/ru/menu_hide_navbar.xml index f77896677d7422293b1c236c51d1d6aae355d01e..34e5f4c0e4a6226684c7ffd7b85de2e57a555b20 100644 --- a/indra/newview/skins/default/xui/ru/menu_hide_navbar.xml +++ b/indra/newview/skins/default/xui/ru/menu_hide_navbar.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="hide_navbar_menu"> - <menu_item_check label="Показать панель навигации" name="ShowNavbarNavigationPanel"/> + <menu_item_check label="Показать панель навигации и избранного" name="ShowNavbarNavigationPanel"/> <menu_item_check label="Показать панель избранного" name="ShowNavbarFavoritesPanel"/> <menu_item_check label="Показать мини-панель меÑтоположениÑ" name="ShowMiniLocationPanel"/> </menu> diff --git a/indra/newview/skins/default/xui/ru/menu_login.xml b/indra/newview/skins/default/xui/ru/menu_login.xml index 3b545bf59354131ac4c9a0c460dcb690f43153ed..aa3570f1765557afaf7fe9abd946a02da3cf1a42 100644 --- a/indra/newview/skins/default/xui/ru/menu_login.xml +++ b/indra/newview/skins/default/xui/ru/menu_login.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu_bar name="Login Menu"> <menu label="Я" name="File"> - <menu_item_call label="ÐаÑтройки" name="Preferences..."/> + <menu_item_call label="ÐаÑтройки..." name="Preferences..."/> <menu_item_call label="Выход из [APP_NAME]" name="Quit"/> </menu> <menu label="Справка" name="Help"> diff --git a/indra/newview/skins/default/xui/ru/menu_toolbars.xml b/indra/newview/skins/default/xui/ru/menu_toolbars.xml new file mode 100644 index 0000000000000000000000000000000000000000..e04a9ee57d2cbd09798cdb9dee3f21226c1bc5c6 --- /dev/null +++ b/indra/newview/skins/default/xui/ru/menu_toolbars.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<context_menu name="Toolbars Popup"> + <menu_item_call label="Выбор кнопок..." name="Chose Buttons"/> + <menu_item_check label="Значки и подпиÑи" name="icons_with_text"/> + <menu_item_check label="Только значки" name="icons_only"/> +</context_menu> diff --git a/indra/newview/skins/default/xui/ru/menu_viewer.xml b/indra/newview/skins/default/xui/ru/menu_viewer.xml index c4e553f918620f435cfdedd5f1801d63803ab513..322a27003fd28c3f9e11e49bb6c201814e927635 100644 --- a/indra/newview/skins/default/xui/ru/menu_viewer.xml +++ b/indra/newview/skins/default/xui/ru/menu_viewer.xml @@ -1,27 +1,28 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu_bar name="Main Menu"> <menu label="Я" name="Me"> - <menu_item_call label="ÐаÑтройки" name="Preferences"/> - <menu_item_call label="ÐœÐ¾Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ" name="Manage My Account"/> - <menu_item_call label="Купить L$" name="Buy and Sell L$"/> - <menu_item_call label="Мой профиль" name="Profile"/> - <menu_item_call label="Мой внешний вид" name="ChangeOutfit"/> - <menu_item_check label="Мой инвентарь" name="Inventory"/> - <menu_item_check label="Мой инвентарь" name="ShowSidetrayInventory"/> - <menu_item_check label="Мои жеÑты" name="Gestures"/> - <menu_item_check label="Мой голоÑ" name="ShowVoice"/> + <menu_item_call label="Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ..." name="Manage My Account"/> + <menu_item_call label="Профиль…" name="Profile"/> + <menu_item_call label="ВнешноÑть..." name="ChangeOutfit"/> + <menu_item_check label="Инвентарь..." name="Inventory"/> + <menu_item_check label="ЖеÑты..." name="Gestures"/> + <menu_item_check label="ГолоÑ..." name="ShowVoice"/> <menu label="Движение" name="Movement"> <menu_item_call label="СеÑть" name="Sit Down Here"/> <menu_item_check label="Полет" name="Fly"/> <menu_item_check label="Ð’Ñегда бегать" name="Always Run"/> <menu_item_call label="ОÑтановить анимацию" name="Stop Animating My Avatar"/> </menu> - <menu label="Мой ÑтатуÑ" name="Status"> + <menu label="СтатуÑ" name="Status"> <menu_item_call label="Ðет на меÑте" name="Set Away"/> <menu_item_call label="Ðе беÑпокоить" name="Set Busy"/> </menu> <menu_item_call label="Ð—Ð°Ð¿Ñ€Ð¾Ñ ÑтатуÑа админиÑтратора" name="Request Admin Options"/> <menu_item_call label="Выход из ÑтатуÑа админиÑтратора" name="Leave Admin Options"/> + <menu_item_call label="Купить L$" name="Buy and Sell L$"/> + <menu_item_call label="ÐаÑтройки..." name="Preferences"/> + <menu_item_call label="Панели инÑтрументов..." name="Toolbars"/> + <menu_item_call label="Скрыть вÑе Ñлементы управлениÑ" name="Hide UI"/> <menu_item_call label="Выход из [APP_NAME]" name="Quit"/> </menu> <menu label="Общение" name="Communicate"> @@ -32,7 +33,7 @@ <menu_item_check label="ГолоÑа ÑобеÑедников" name="Nearby Voice"/> </menu> <menu label="Мир" name="World"> - <menu_item_check label="Мини-карта" name="Mini-Map"/> + <menu_item_check label="Миникарта" name="Mini-Map"/> <menu_item_check label="Карта мира" name="World Map"/> <menu_item_check label="ПоиÑк" name="Search"/> <menu_item_call label="Снимок" name="Take Snapshot"/> @@ -144,7 +145,6 @@ </menu> <menu label="Справка" name="Help"> <menu_item_call label="Справка по [SECOND_LIFE]" name="Second Life Help"/> - <menu_item_check label="Включить подÑказки" name="Enable Hints"/> <menu_item_call label="Жалоба" name="Report Abuse"/> <menu_item_call label="Сообщить об ошибке" name="Report Bug"/> <menu_item_call label="О [APP_NAME]" name="About Second Life"/> @@ -160,7 +160,7 @@ <menu label="ПроизводительноÑть" name="Performance Tools"> <menu_item_call label="Запаздывание" name="Lag Meter"/> <menu_item_check label="СтатиÑтика" name="Statistics Bar"/> - <menu_item_check label="СтоимоÑть отриÑовки аватара" name="Avatar Rendering Cost"/> + <menu_item_check label="Показать Ð²ÐµÑ Ð¾Ñ‚Ñ€Ð¸Ñовки Ð´Ð»Ñ Ð°Ð²Ð°Ñ‚Ð°Ñ€Ð¾Ð²" name="Avatar Rendering Cost"/> </menu> <menu label="ПодÑветка и видимоÑть" name="Highlighting and Visibility"> <menu_item_check label="Мигающий маÑк" name="Cheesy Beacon"/> @@ -288,6 +288,7 @@ <menu_item_check label="ОÑвещение" name="Lights"/> <menu_item_check label="ÐšÐ°Ñ€ÐºÐ°Ñ Ñтолкновений" name="Collision Skeleton"/> <menu_item_check label="Лучи" name="Raycast"/> + <menu_item_check label="СложноÑть визуализации" name="rendercomplexity"/> <menu_item_check label="Лепка" name="Sculpt"/> </menu> <menu label="ВизуализациÑ" name="Rendering"> diff --git a/indra/newview/skins/default/xui/ru/notifications.xml b/indra/newview/skins/default/xui/ru/notifications.xml index 91c8dbf761a6fefcc47c0856ea4873be414b1974..87ae9d06dd220544961d431e249f57c007df411b 100644 --- a/indra/newview/skins/default/xui/ru/notifications.xml +++ b/indra/newview/skins/default/xui/ru/notifications.xml @@ -1909,6 +1909,12 @@ http://secondlife.com/download. Выйти из программы? <usetemplate ignoretext="Подтверждать перед выходом" name="okcancelignore" notext="Ðе выходить" yestext="Выйти"/> </notification> + <notification name="ConfirmRestoreToybox"> + Ð’Ñ‹ дейÑтвительно хотите воÑÑтановить принÑтые по умолчанию кнопки и панели инÑтрументов? + +Ðто дейÑтвие Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ. + <usetemplate name="okcancelbuttons" notext="Отмена" yestext="OK"/> + </notification> <notification name="DeleteItems"> [QUESTION] <usetemplate ignoretext="Подтверждать перед удалением предметов" name="okcancelignore" notext="Отмена" yestext="OK"/> @@ -2995,10 +3001,6 @@ http://secondlife.com/download. <button name="cancel" text="Отмена"/> </form> </notification> - <notification label="" name="ModeChange"> - Ð”Ð»Ñ Ñмены режима требуетÑÑ Ð²Ñ‹Ð¹Ñ‚Ð¸ из программы и перезапуÑтить ее. - <usetemplate name="okcancelbuttons" notext="Ðе выходить" yestext="Выйти"/> - </notification> <notification label="" name="NoClassifieds"> Создание и редактирование рекламы доÑтупно только в раÑширенном режиме. Выйти из программы и Ñменить режим? Меню Ñмены режима находитÑÑ Ð½Ð° Ñкране входа. <usetemplate name="okcancelbuttons" notext="Ðе выходить" yestext="Выйти"/> @@ -3043,6 +3045,10 @@ http://secondlife.com/download. ПоиÑк доÑтупен только в раÑширенном режиме. Выйти из программы и Ñменить режим? <usetemplate name="okcancelbuttons" notext="Ðе выходить" yestext="Выход"/> </notification> + <notification label="" name="ConfirmHideUI"> + Ðто дейÑтвие приведет к Ñкрытию вÑех меню и кнопок. Чтобы вернуть их, щелкните [SHORTCUT] Ñнова. + <usetemplate ignoretext="Подтверждать перед Ñкрытием интерфейÑа" name="okcancelignore" notext="Отмена" yestext="OK"/> + </notification> <global name="UnsupportedGLRequirements"> По-видимому, ваше оборудование не удовлетворÑет требованиÑм [APP_NAME]. Ð”Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ [APP_NAME] необходима графичеÑÐºÐ°Ñ ÐºÐ°Ñ€Ñ‚Ð° OpenGL Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¾Ð¹ мультитекÑтур. ЕÑли у Ð²Ð°Ñ ÐµÑть Ñ‚Ð°ÐºÐ°Ñ ÐºÐ°Ñ€Ñ‚Ð°, убедитеÑÑŒ, что уÑтановлены новейшие верÑии драйверов Ð´Ð»Ñ Ð½ÐµÐµ и пакеты обновлений и иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¾Ð¹ ÑиÑтемы. diff --git a/indra/newview/skins/default/xui/ru/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/ru/panel_chiclet_bar.xml new file mode 100644 index 0000000000000000000000000000000000000000..f203ecde4bbbf678349f741a4165202e238d6331 --- /dev/null +++ b/indra/newview/skins/default/xui/ru/panel_chiclet_bar.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="chiclet_bar"> + <layout_stack name="toolbar_stack"> + <layout_panel name="im_well_panel"> + <chiclet_im_well name="im_well"> + <button name="Unread IM messages" tool_tip="Разговоры"/> + </chiclet_im_well> + </layout_panel> + <layout_panel name="notification_well_panel"> + <chiclet_notification name="notification_well"> + <button name="Unread" tool_tip="УведомлениÑ"/> + </chiclet_notification> + </layout_panel> + </layout_stack> +</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_me.xml b/indra/newview/skins/default/xui/ru/panel_me.xml index b37627b4d95327b468526621bcb35d338f50196d..21a125af8762868339bb910e5b34da35bf9b36a5 100644 --- a/indra/newview/skins/default/xui/ru/panel_me.xml +++ b/indra/newview/skins/default/xui/ru/panel_me.xml @@ -1,7 +1,4 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Мой профиль" name="panel_me"> - <tab_container name="tabs"> - <panel label="МОЙ ПРОФИЛЬ" name="panel_profile"/> - <panel label="МОЯ ПОДБОРКÐ" name="panel_picks"/> - </tab_container> + <panel label="МОЯ ПОДБОРКÐ" name="panel_picks"/> </panel> diff --git a/indra/newview/skins/default/xui/ru/panel_navigation_bar.xml b/indra/newview/skins/default/xui/ru/panel_navigation_bar.xml index 3bda315261314337198120cdbb79ae707d7ccc54..d9890acff21f6eade33a5e9519c25b2587b19ec8 100644 --- a/indra/newview/skins/default/xui/ru/panel_navigation_bar.xml +++ b/indra/newview/skins/default/xui/ru/panel_navigation_bar.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="navigation_bar"> - <panel name="navigation_panel"> - <pull_button name="back_btn" tool_tip="ВернутьÑÑ Ð² предыдущее меÑто"/> - <pull_button name="forward_btn" tool_tip="Перейти в Ñледующее меÑто"/> - <button name="home_btn" tool_tip="ТелепортироватьÑÑ Ð´Ð¾Ð¼Ð¾Ð¹"/> - <location_input label="МеÑто" name="location_combo"/> - <search_combo_box label="ПоиÑк" name="search_combo_box" tool_tip="ПоиÑк"> - <combo_editor label="ПоиÑк [SECOND_LIFE]" name="search_combo_editor"/> - </search_combo_box> - </panel> - <favorites_bar name="favorite" tool_tip="ПеретаÑкивайте Ñюда закладки, чтобы было удобнее переходить в любимые меÑта в Second Life!"> - <label name="favorites_bar_label" tool_tip="ПеретаÑкивайте Ñюда закладки, чтобы было удобнее переходить в любимые меÑта в Second Life!"> - Панель «Избранное» - </label> - <chevron_button name=">>" tool_tip="Показать больше избранного"/> - </favorites_bar> + <layout_stack name="nvp_stack"> + <layout_panel name="navigation_layout_panel"> + <panel name="navigation_panel"> + <pull_button name="back_btn" tool_tip="ВернутьÑÑ Ð² предыдущее меÑто"/> + <pull_button name="forward_btn" tool_tip="Перейти в Ñледующее меÑто"/> + <button name="home_btn" tool_tip="Ð¢ÐµÐ»ÐµÐ¿Ð¾Ñ€Ñ‚Ð°Ñ†Ð¸Ñ Ð´Ð¾Ð¼Ð¾Ð¹"/> + <location_input label="МеÑто" name="location_combo"/> + </panel> + </layout_panel> + <layout_panel name="favorites_layout_panel"> + <favorites_bar name="favorite" tool_tip="ПеретаÑкивайте Ñюда закладки, чтобы было удобнее переходить в любимые меÑта в Second Life!"> + <label name="favorites_bar_label" tool_tip="ПеретаÑкивайте Ñюда закладки, чтобы было удобнее переходить в любимые меÑта в Second Life!"> + Панель «Избранное» + </label> + <more_button name=">>" tool_tip="Показать больше избранного"> + Больше â–¼ + </more_button> + </favorites_bar> + </layout_panel> + </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/ru/panel_nearby_chat.xml b/indra/newview/skins/default/xui/ru/panel_nearby_chat.xml new file mode 100644 index 0000000000000000000000000000000000000000..a371040b74aca7799c5defc49519078d5dd64a29 --- /dev/null +++ b/indra/newview/skins/default/xui/ru/panel_nearby_chat.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="nearby_chat"> + <check_box label="Перевод чата (Ñ‚ÐµÑ…Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñ Google)" name="translate_chat_checkbox"/> +</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml b/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml index bc9e9a24ba2ab24272d7a7f94ae11a4effa4cf2b..5e4130667ffe7442714c128f6bf0d709bcf781eb 100644 --- a/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml @@ -50,7 +50,7 @@ <combo_box.item label="РуÑÑкий" name="Russian"/> <combo_box.item label="Türkçe" name="Turkish"/> <combo_box.item label="УкраїнÑька" name="Ukrainian"/> - <combo_box.item label="䏿–‡ (简体) (Chinese)" name="Chinese"/> + <combo_box.item label="䏿–‡ (简体) (китайÑкий)" name="Chinese"/> <combo_box.item label="日本語 (Japanese)" name="Japanese"/> <combo_box.item label="한êµì–´ (Korean)" name="Korean"/> </combo_box> diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_general.xml b/indra/newview/skins/default/xui/ru/panel_preferences_general.xml index 28d08d77020ac3b4116e68c4b7501c5a9bd5018a..770c47b3d43e89da62e25df65c6338148ce1b916 100644 --- a/indra/newview/skins/default/xui/ru/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/ru/panel_preferences_general.xml @@ -5,16 +5,18 @@ </text> <combo_box name="language_combobox"> <combo_box.item label="Ð¡Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð°Ñ Ð½Ð°Ñтройка ÑиÑтемы" name="System Default Language"/> - <combo_box.item label="ÐнглийÑкий" name="English"/> + <combo_box.item label="English - ÐнглийÑкий" name="English"/> <combo_box.item label="Dansk – датÑкий (бета-верÑиÑ)" name="Danish"/> <combo_box.item label="Deutsch – немецкий (бета-верÑиÑ)" name="Deutsch(German)"/> <combo_box.item label="Español – иÑпанÑкий (бета-верÑиÑ)" name="Spanish"/> <combo_box.item label="Français – французÑкий (бета-верÑиÑ)" name="French"/> <combo_box.item label="Italiano – итальÑнÑкий (бета-верÑиÑ)" name="Italian"/> - <combo_box.item label="Nederlands – нидерландÑкий (бета-верÑиÑ)" name="Dutch"/> <combo_box.item label="Polski – польÑкий (бета-верÑиÑ)" name="Polish"/> <combo_box.item label="Português – португальÑкий (бета-верÑиÑ)" name="Portugese"/> + <combo_box.item label="РуÑÑкий (бета-верÑиÑ)" name="Russian"/> + <combo_box.item label="Türkçe - турецкий (бета-верÑиÑ)" name="Turkish"/> <combo_box.item label="日本語 – ÑпонÑкий (бета-верÑиÑ)" name="(Japanese)"/> + <combo_box.item label="æ£é«”䏿–‡ - китайÑкий, традиционное пиÑьмо (бета-верÑиÑ)" name="Traditional Chinese"/> </combo_box> <text name="language_textbox2"> (ТребуетÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿ÑƒÑк) diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_move.xml b/indra/newview/skins/default/xui/ru/panel_preferences_move.xml index 331776902f42272f3edf3b5ab1840a551a3f3b10..8b3542a6d26a38278781b8c4043d7887ec973f03 100644 --- a/indra/newview/skins/default/xui/ru/panel_preferences_move.xml +++ b/indra/newview/skins/default/xui/ru/panel_preferences_move.xml @@ -7,18 +7,33 @@ </text> <check_box label="СозданиÑ/редактирование" name="edit_camera_movement" tool_tip="Производить автоматичеÑкое позиционирование камеры при входе в режим Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ выходе из него"/> <check_box label="ВнешноÑть" name="appearance_camera_movement" tool_tip="Производить автоматичеÑкое позиционирование камеры в режиме Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ð½ÐµÑˆÐ½Ð¾Ñти"/> - <check_box initial_value="иÑтина" label="Ð‘Ð¾ÐºÐ¾Ð²Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ" name="appearance_sidebar_positioning" tool_tip="Производить автоматичеÑкое позиционирование камеры Ð´Ð»Ñ Ð±Ð¾ÐºÐ¾Ð²Ð¾Ð¹ панели"/> + <text name="keyboard_lbl"> + Клавиатура: + </text> + <check_box label="Клавиши Ñтрелок вÑегда перемещают менÑ" name="arrow_keys_move_avatar_check"/> + <check_box label="Бег поÑле двойного Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ¸" name="tap_tap_hold_to_run"/> + <text name="mouse_lbl"> + Мышь: + </text> <check_box label="Показывать Ð¼ÐµÐ½Ñ Ð¿Ñ€Ð¸ обзоре мышью" name="first_person_avatar_visible"/> <text name=" Mouse Sensitivity"> ЧувÑтвительноÑть мыши: </text> <check_box label="Инвертировать" name="invert_mouse"/> - <check_box label="Клавиши Ñтрелок вÑегда перемещают менÑ" name="arrow_keys_move_avatar_check"/> - <check_box label="Бег поÑле двойного Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ¸" name="tap_tap_hold_to_run"/> - <check_box label="Двойной щелчок длÑ:" name="double_click_chkbox"/> - <radio_group name="double_click_action"> - <radio_item label="Телепорт" name="radio_teleport"/> - <radio_item label="Ðвтопилот" name="radio_autopilot"/> - </radio_group> + <text name="single_click_action_lbl"> + Один щелчок на земле: + </text> + <combo_box name="single_click_action_combo"> + <combo_box.item label="Без дейÑтвиÑ" name="0"/> + <combo_box.item label="Перемещение в точку щелчка" name="1"/> + </combo_box> + <text name="double_click_action_lbl"> + Двойной щелчок на земле: + </text> + <combo_box name="double_click_action_combo"> + <combo_box.item label="Без дейÑтвиÑ" name="0"/> + <combo_box.item label="Перемещение в точку щелчка" name="1"/> + <combo_box.item label="Ð¢ÐµÐ»ÐµÐ¿Ð¾Ñ€Ñ‚Ð°Ñ†Ð¸Ñ Ð² точку щелчка" name="2"/> + </combo_box> <button label="Другие уÑтройÑтва" name="joystick_setup_button"/> </panel> diff --git a/indra/newview/skins/default/xui/ru/panel_status_bar.xml b/indra/newview/skins/default/xui/ru/panel_status_bar.xml index ddf63d69c2fb3cc3015d0e5ce0eb05f5e00c822c..6822244196629c5cbd19839e6345f78b08af82b8 100644 --- a/indra/newview/skins/default/xui/ru/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/ru/panel_status_bar.xml @@ -17,12 +17,9 @@ </panel.string> <panel name="balance_bg"> <text name="balance" tool_tip="Щелкните Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ баланÑа L$" value="L$20"/> - <button label="КУПИТЬ L$" name="buyL" tool_tip="Щелкните Ð´Ð»Ñ Ð¿Ð¾ÐºÑƒÐ¿ÐºÐ¸ L$"/> + <button label="Купить L$" name="buyL" tool_tip="Щелкните Ð´Ð»Ñ Ð¿Ð¾ÐºÑƒÐ¿ÐºÐ¸ L$"/> + <button label="Торговый центр" name="goShop" tool_tip="Открыть торговый центр Second Life"/> </panel> - <combo_box name="mode_combo" tool_tip="Выберите режим. ОÑновной – Ð´Ð»Ñ Ð±Ñ‹Ñтрого и проÑтого Ð¾Ð·Ð½Ð°ÐºÐ¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ñ Ð¸Ð³Ñ€Ð¾Ð¹, а также общениÑ. РаÑширенный – Ð´Ð»Ñ Ð´Ð¾Ñтупа к более широким возможноÑÑ‚Ñм."> - <combo_box.item label="ОÑновной режим" name="Basic"/> - <combo_box.item label="РаÑширенный режим" name="Advanced"/> - </combo_box> <text name="TimeText" tool_tip="Текущее Ð²Ñ€ÐµÐ¼Ñ (тихоокеанÑкое)"> 00:00 (тихоокеанÑкое времÑ) </text> diff --git a/indra/newview/skins/default/xui/ru/strings.xml b/indra/newview/skins/default/xui/ru/strings.xml index 44440ea5421a977f7b54863f054f9d7b4cfbbe41..0134298166802fb8456a94e24f57efdfc03fed70 100644 --- a/indra/newview/skins/default/xui/ru/strings.xml +++ b/indra/newview/skins/default/xui/ru/strings.xml @@ -1273,6 +1273,9 @@ support@secondlife.com. <string name="Marketplace Error Internal Import"> Ошибка. Ðта вещь Ñоздает проблему. Повторите попытку позже. </string> + <string name="Open landmarks"> + Открыть закладки + </string> <string name="no_transfer" value="(не передаетÑÑ)"/> <string name="no_modify" value="(не изменÑетÑÑ)"/> <string name="no_copy" value="(не копируетÑÑ)"/> @@ -4248,8 +4251,8 @@ support@secondlife.com. <string name="Female - Wow"> Женщина – ух ты! </string> - <string name="/bow1"> - /поклон1 + <string name="/bow"> + /поклон </string> <string name="/clap"> /хлопнуть @@ -4772,4 +4775,172 @@ support@secondlife.com. <string name="ParticleHiding"> ЧаÑтицы Ñкрыты </string> + <string name="Command_AboutLand_Label"> + О земле + </string> + <string name="Command_Appearance_Label"> + ВнешноÑть + </string> + <string name="Command_Avatar_Label"> + Ðватар + </string> + <string name="Command_Build_Label"> + СтроительÑтво + </string> + <string name="Command_Chat_Label"> + Чат + </string> + <string name="Command_Compass_Label"> + ÐšÐ¾Ð¼Ð¿Ð°Ñ + </string> + <string name="Command_Destinations_Label"> + МеÑта + </string> + <string name="Command_Gestures_Label"> + ЖеÑты + </string> + <string name="Command_HowTo_Label"> + ИнÑтрукции + </string> + <string name="Command_Inventory_Label"> + Инвентарь + </string> + <string name="Command_Map_Label"> + Карта + </string> + <string name="Command_Marketplace_Label"> + Торговый центр + </string> + <string name="Command_MiniMap_Label"> + Миникарта + </string> + <string name="Command_Move_Label"> + ПеремеÑтить + </string> + <string name="Command_People_Label"> + Люди + </string> + <string name="Command_Picks_Label"> + Подборка + </string> + <string name="Command_Places_Label"> + МеÑта + </string> + <string name="Command_Preferences_Label"> + ÐаÑтройки + </string> + <string name="Command_Profile_Label"> + Профиль + </string> + <string name="Command_Search_Label"> + ПоиÑк + </string> + <string name="Command_Snapshot_Label"> + Снимок + </string> + <string name="Command_Speak_Label"> + Говорить + </string> + <string name="Command_View_Label"> + Вид + </string> + <string name="Command_Voice_Label"> + ГолоÑа ÑобеÑедников + </string> + <string name="Command_AboutLand_Tooltip"> + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ поÑещаемой вами земле + </string> + <string name="Command_Appearance_Tooltip"> + Сменить аватар + </string> + <string name="Command_Avatar_Tooltip"> + Выберите веÑÑŒ аватар + </string> + <string name="Command_Build_Tooltip"> + ПоÑтроение объектов и формирование ландшафта + </string> + <string name="Command_Chat_Tooltip"> + ОбменивайтеÑÑŒ текÑтовыми репликами Ñ Ð»ÑŽÐ´ÑŒÐ¼Ð¸ вокруг Ð²Ð°Ñ + </string> + <string name="Command_Compass_Tooltip"> + ÐšÐ¾Ð¼Ð¿Ð°Ñ + </string> + <string name="Command_Destinations_Tooltip"> + ИнтереÑные меÑта + </string> + <string name="Command_Gestures_Tooltip"> + ЖеÑты Ð´Ð»Ñ Ð°Ð²Ð°Ñ‚Ð°Ñ€Ð° + </string> + <string name="Command_HowTo_Tooltip"> + Выполнение типичных задач + </string> + <string name="Command_Inventory_Tooltip"> + ПроÑмотр и иÑпользование вашего имущеÑтва + </string> + <string name="Command_Map_Tooltip"> + Карта мира + </string> + <string name="Command_Marketplace_Tooltip"> + Покупки + </string> + <string name="Command_MiniMap_Tooltip"> + Показать людей поблизоÑти + </string> + <string name="Command_Move_Tooltip"> + Перемещение аватара + </string> + <string name="Command_People_Tooltip"> + ДрузьÑ, группы и люди поблизоÑти + </string> + <string name="Command_Picks_Tooltip"> + МеÑта, которые будут показаны в вашем профиле как избранное + </string> + <string name="Command_Places_Tooltip"> + Сохраненные вами меÑта + </string> + <string name="Command_Preferences_Tooltip"> + ÐаÑтройки + </string> + <string name="Command_Profile_Tooltip"> + Редактирование или проÑмотр вашего Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ + </string> + <string name="Command_Search_Tooltip"> + ПоиÑк меÑÑ‚, Ñобытий, людей + </string> + <string name="Command_Snapshot_Tooltip"> + Сделать Ñнимок + </string> + <string name="Command_Speak_Tooltip"> + Говорите Ñ Ð»ÑŽÐ´ÑŒÐ¼Ð¸ вокруг Ð²Ð°Ñ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ микрофона + </string> + <string name="Command_View_Tooltip"> + Изменение угла камеры + </string> + <string name="Command_Voice_Tooltip"> + Люди около Ð²Ð°Ñ Ñ Ð¾ÑпоÑобноÑтью говорить + </string> + <string name="Retain%"> + ОÑтаток% + </string> + <string name="Detail"> + Ð”ÐµÑ‚Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ + </string> + <string name="Better Detail"> + Более детально + </string> + <string name="Surface"> + ПоверхноÑть + </string> + <string name="Solid"> + Сплошной + </string> + <string name="Wrap"> + Оболочка + </string> + <string name="Preview"> + Предварительный проÑмотр + </string> + <string name="Normal"> + Ðормальный + </string> </strings> diff --git a/indra/newview/skins/default/xui/tr/floater_about.xml b/indra/newview/skins/default/xui/tr/floater_about.xml index 2fdbafdfb4dabf0e63a168eacaa21d7b68ddf342..998890b85c89da1d6a0e243d40af62a502164657 100644 --- a/indra/newview/skins/default/xui/tr/floater_about.xml +++ b/indra/newview/skins/default/xui/tr/floater_about.xml @@ -10,7 +10,7 @@ <floater.string name="AboutPosition"> <nolink>[HOSTNAME]</nolink> ([HOSTIP]) üzerinde bulunan [REGION] içerisinde [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1] konumundasınız [SERVER_VERSION] -[[SERVER_RELEASE_NOTES_URL] [Sürüm Notları]] +[SERVER_RELEASE_NOTES_URL] </floater.string> <floater.string name="AboutSystem"> CPU: [CPU] @@ -37,6 +37,9 @@ Ses Sunucusu Sürümü: [VOICE_VERSION] <floater.string name="AboutTraffic"> Kaybolan Paketler: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) </floater.string> + <floater.string name="ErrorFetchingServerReleaseNotesURL"> + Sunucu sürümü notları URL'si alınırken hata oluÅŸtu. + </floater.string> <tab_container name="about_tab"> <panel label="Bilgi" name="support_panel"> <button label="Panoya Kopyala" name="copy_btn"/> diff --git a/indra/newview/skins/default/xui/tr/floater_about_land.xml b/indra/newview/skins/default/xui/tr/floater_about_land.xml index 6256f954b259aa3c282085fe15581e8f95995dba..c44722f4baa0b81d2390c207d91120806cdc7115 100644 --- a/indra/newview/skins/default/xui/tr/floater_about_land.xml +++ b/indra/newview/skins/default/xui/tr/floater_about_land.xml @@ -212,19 +212,19 @@ Bölge Nesne Bonusu Faktörü: [BONUS] </text> <text name="Simulator primitive usage:"> - İlkel Kullanım: + Bölge kapasitesi: </text> <text name="objects_available"> [COUNT] / [MAX] ([AVAILABLE]) uygun </text> <text name="Primitives parcel supports:"> - Prim parsel desteÄŸi: + Parsel arazi kapasitesi: </text> <text name="object_contrib_text"> [COUNT] </text> <text name="Primitives on parcel:"> - Parseldeki prims: + Parsel arazi etkisi: </text> <text name="total_objects_text"> [COUNT] diff --git a/indra/newview/skins/default/xui/tr/floater_avatar.xml b/indra/newview/skins/default/xui/tr/floater_avatar.xml new file mode 100644 index 0000000000000000000000000000000000000000..fc9e3c8a9b5c272c2d5336005c5a8fa9bdf5301f --- /dev/null +++ b/indra/newview/skins/default/xui/tr/floater_avatar.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Avatar" title="AVATAR SEÇİCİ"/> diff --git a/indra/newview/skins/default/xui/tr/floater_camera.xml b/indra/newview/skins/default/xui/tr/floater_camera.xml index 066b7cc9333ba39061e07d74e7b27902267d3dbe..33b4338e2191d5fc529b7370525c4fd39698b6d3 100644 --- a/indra/newview/skins/default/xui/tr/floater_camera.xml +++ b/indra/newview/skins/default/xui/tr/floater_camera.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="camera_floater"> +<floater name="camera_floater" title="GÖSTER"> <floater.string name="rotate_tooltip"> Odak Etrafında Kamerayı Döndür </floater.string> diff --git a/indra/newview/skins/default/xui/tr/floater_chat_bar.xml b/indra/newview/skins/default/xui/tr/floater_chat_bar.xml new file mode 100644 index 0000000000000000000000000000000000000000..d2385e6be39ca6cf7b894b3f5400e020b628f7cd --- /dev/null +++ b/indra/newview/skins/default/xui/tr/floater_chat_bar.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="chat_bar" title="YAKINDAKİ SOHBET"> + <panel> + <line_editor label="Sohbet etmek için buraya tıklayın." name="chat_box" tool_tip="Söylemek için Enter, bağırmak için Ctrl+Enter yapın"/> + <button name="show_nearby_chat" tool_tip="yakın sohbet günlüğünü gösterir/gizler"/> + </panel> +</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_destinations.xml b/indra/newview/skins/default/xui/tr/floater_destinations.xml new file mode 100644 index 0000000000000000000000000000000000000000..4504366d6376cac78f9c7d8b26cc1dde1468de13 --- /dev/null +++ b/indra/newview/skins/default/xui/tr/floater_destinations.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Destinations" title="HEDEF KONUMLAR"/> diff --git a/indra/newview/skins/default/xui/tr/floater_fast_timers.xml b/indra/newview/skins/default/xui/tr/floater_fast_timers.xml new file mode 100644 index 0000000000000000000000000000000000000000..5736bda45eb66ff50d5d3bc150f6193e23ace531 --- /dev/null +++ b/indra/newview/skins/default/xui/tr/floater_fast_timers.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="fast_timers"> + <string name="pause"> + Duraklat + </string> + <string name="run"> + KoÅŸ + </string> + <button label="Duraklat" name="pause_btn"/> +</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_how_to.xml b/indra/newview/skins/default/xui/tr/floater_how_to.xml new file mode 100644 index 0000000000000000000000000000000000000000..a42fe0b1221080c63dbd045dcd812a475aa38229 --- /dev/null +++ b/indra/newview/skins/default/xui/tr/floater_how_to.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_how_to" title="NASIL YAPILIR"/> diff --git a/indra/newview/skins/default/xui/tr/floater_map.xml b/indra/newview/skins/default/xui/tr/floater_map.xml index 36ec097cc431289557924ecde189833cc69ffaae..7d6c314f04a10d104a49773a42569779b4b81738 100644 --- a/indra/newview/skins/default/xui/tr/floater_map.xml +++ b/indra/newview/skins/default/xui/tr/floater_map.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Map" title=""> +<floater name="Map" title="MİNİ-HARİTA"> <floater.string name="ToolTipMsg"> [REGION](Haritayı açmak için çift tıkla, yatay hareket için shift çek) </floater.string> @@ -7,7 +7,7 @@ [REGION](Işınlamak için çift tıkla, yatay hareket için shift çek) </floater.string> <floater.string name="mini_map_caption"> - MİNİHARİTA + Mini-harita </floater.string> <text label="K" name="floater_map_north"> K diff --git a/indra/newview/skins/default/xui/tr/floater_model_preview.xml b/indra/newview/skins/default/xui/tr/floater_model_preview.xml index 7388d236eda904dce0d3b95a000649dc6f96958b..339545f96e994cd5730a20fdbca58b627a596c3d 100644 --- a/indra/newview/skins/default/xui/tr/floater_model_preview.xml +++ b/indra/newview/skins/default/xui/tr/floater_model_preview.xml @@ -1,10 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="Model Preview" title="Modeli Karşıya Yükle"> - <string name="status_idle"> - BoÅŸta - </string> +<floater name="Model Preview" title="MODELİ KARÅžIYA YÜKLE"> + <string name="status_idle"/> <string name="status_parse_error"> - Dae ayrıştırma sorunu - ayrıntılar için günlüğe bakın. + Hata: Tarih ayrıştırma sorunu - ayrıntılar için günlüğe bakın. </string> <string name="status_reading_file"> Yükleniyor... @@ -51,6 +49,9 @@ <string name="mesh_status_missing_lod"> Gereken ayrıntı seviyesi eksik. </string> + <string name="mesh_status_invalid_material_list"> + Ayrıntı seviyesi malzemeleri, referans modelin bir alt kümesi deÄŸil. + </string> <string name="layer_all"> Tümü </string> @@ -63,188 +64,211 @@ <string name="tbd"> ileride belirlenecektir </string> - <text name="name_label"> - Ad: - </text> - <text name="lod_label"> - Önizleme: - </text> - <combo_box name="preview_lod_combo" tool_tip="Önizleme iÅŸlemesinde görülecek ayrıntı seviyesi"> - <combo_item name="high"> - Ayrıntı Seviyesi: Yüksek - </combo_item> - <combo_item name="medium"> - Ayrıntı Seviyesi: Orta - </combo_item> - <combo_item name="low"> - Ayrıntı Seviyesi: Düşük - </combo_item> - <combo_item name="lowest"> - Ayrıntı Seviyesi: En Düşük - </combo_item> - </combo_box> - <text name="warning_title"> - UYARI: - </text> - <text name="warning_message"> - Bu modelin Second Life sunucularına nihai karşıya yüklemesini tamamlayamayacaksınız. Örgü modellerinin karşıya yüklenmesi için etkinleÅŸtirmenin [[VURL] nasıl yapılacağını öğrenin]. - </text> - <text name="weights_text"> - Karşıdan Yükle: -Fizik: -Sunucu: - -Prim eÅŸdeÄŸerleri: - </text> - <text name="weights"> - [ST] -[PH] -[SIM] - -[EQ] - </text> - <tab_container name="import_tab"> - <panel label="Ayrıntı Seviyesi" name="lod_panel"> - <text name="lod_table_header"> - Ayrıntı Seviyesini Seç: - </text> - <text name="high_label" value="Yüksek"/> - <text name="high_triangles" value="0"/> - <text name="high_vertices" value="0"/> - <text name="medium_label" value="Orta"/> - <text name="medium_triangles" value="0"/> - <text name="medium_vertices" value="0"/> - <text name="low_label" value="Düşük"/> - <text name="low_triangles" value="0"/> - <text name="low_vertices" value="0"/> - <text name="lowest_label" value="En Düşük"/> - <text name="lowest_triangles" value="0"/> - <text name="lowest_vertices" value="0"/> - <text name="lod_table_footer"> - Ayrıntı Seviyesi: [DETAIL] - </text> - <radio_group name="lod_file_or_limit" value="lod_from_file"> - <radio_item label="Dosyadan yükle" name="lod_from_file"/> - <radio_item label="Otomatik oluÅŸtur" name="lod_auto_generate"/> - <radio_item label="Hiçbiri" name="lod_none"/> - </radio_group> - <button label="Gözat..." name="lod_browse"/> - <combo_box name="lod_mode"> - <combo_item name="triangle_limit"> - Üçgen Limiti - </combo_item> - <combo_item name="error_threshold"> - Hata EÅŸiÄŸi - </combo_item> - </combo_box> - <text name="build_operator_text"> - İnÅŸa İşleci: + <panel name="left_panel"> + <panel name="model_name_representation_panel"> + <text name="name_label"> + Model adı: </text> - <text name="queue_mode_text"> - Kuyruk Modu: + <text name="model_category_label"> + Bu modelin temsil ettiÄŸi... </text> - <combo_box name="build_operator"> - <combo_item name="edge_collapse"> - Kenar BütünleÅŸtirme - </combo_item> - <combo_item name="half_edge_collapse"> - Yarım Kenar BütünleÅŸtirme - </combo_item> - </combo_box> - <combo_box name="queue_mode"> - <combo_item name="greedy"> - Açgözlü - </combo_item> - <combo_item name="lazy"> - Tembel - </combo_item> - <combo_item name="independent"> - Bağımsız - </combo_item> + <combo_box name="model_category_combo"> + <combo_item label="Birini Seçin..." name="Choose one"/> + <combo_item label="Avatar ÅŸekli" name="Avatar shape"/> + <combo_item label="Avatar aksesuarı" name="Avatar attachment"/> + <combo_item label="Hareket eden nesne (araç, hayvan)" name="Moving object (vehicle, animal)"/> + <combo_item label="Bina BileÅŸeni" name="Building Component"/> + <combo_item label="Büyük, hareketsiz, vs." name="Large, non moving etc"/> + <combo_item label="Daha küçük, hareketsiz, vs." name="Smaller, non-moving etc"/> + <combo_item label="Bunlardan herhangi biri deÄŸil" name="Not really any of these"/> </combo_box> - <text name="border_mode_text"> - Sınır Modu: - </text> - <text name="share_tolderance_text"> - PaylaÅŸma Toleransı: - </text> - <combo_box name="border_mode"> - <combo_item name="border_unlock"> - Kilidi Kaldır - </combo_item> - <combo_item name="border_lock"> - Kilitle - </combo_item> - </combo_box> - <text name="crease_label"> - Kıvrım Açısı: - </text> - <spinner name="crease_angle" value="75"/> </panel> - <panel label="Fizik" name="physics_panel"> - <panel name="physics geometry"> - <radio_group name="physics_load_radio" value="physics_load_from_file"> - <radio_item label="Dosya:" name="physics_load_from_file"/> - <radio_item label="Ayrıntı Seviyesini Kullan:" name="physics_use_lod"/> - </radio_group> - <combo_box name="physics_lod_combo" tool_tip="Fizik ÅŸekli için kullanılacak ayrıntı seviyesi"> - <combo_item name="physics_lowest"> - En Düşük - </combo_item> - <combo_item name="physics_low"> - Düşük - </combo_item> - <combo_item name="physics_medium"> - Orta - </combo_item> - <combo_item name="physics_high"> - Yüksek - </combo_item> - </combo_box> - <button label="Gözat..." name="physics_browse"/> + <tab_container name="import_tab"> + <panel label="Ayrıntı Seviyesi" name="lod_panel" title="Ayrıntı Seviyesi"> + <text initial_value="Kaynak" name="source" value="Kaynak"/> + <text initial_value="Üçgenler" name="triangles" value="Üçgenler"/> + <text initial_value="Köşeler" name="vertices" value="Köşeler"/> + <text initial_value="Yüksek" name="high_label" value="Yüksek"/> + <button label="Gözat..." name="lod_browse_high"/> + <text initial_value="0" name="high_triangles" value="0"/> + <text initial_value="0" name="high_vertices" value="0"/> + <text initial_value="Orta" name="medium_label" value="Orta"/> + <button label="Gözat..." name="lod_browse_medium"/> + <text initial_value="0" name="medium_triangles" value="0"/> + <text initial_value="0" name="medium_vertices" value="0"/> + <text initial_value="Düşük" name="low_label" value="Düşük"/> + <button label="Gözat..." name="lod_browse_low"/> + <text initial_value="0" name="low_triangles" value="0"/> + <text initial_value="0" name="low_vertices" value="0"/> + <text initial_value="En Düşük" name="lowest_label" value="En Düşük"/> + <button label="Gözat..." name="lod_browse_lowest"/> + <text initial_value="0" name="lowest_triangles" value="0"/> + <text initial_value="0" name="lowest_vertices" value="0"/> + <check_box label="Normalleri OluÅŸtur" name="gen_normals"/> + <text initial_value="Kıvrım Açısı:" name="crease_label" value="Kıvrım Açısı:"/> + <spinner name="crease_angle" value="75"/> </panel> - <panel name="physics analysis"> - <slider label="Düzeltme:" name="Smooth"/> - <check_box label="Delikleri Kapa (yavaÅŸ)" name="Close Holes (Slow)"/> - <button label="Çözümle" name="Decompose"/> - <button label="İptal" name="decompose_cancel"/> + <panel label="Fizik" name="physics_panel"> + <panel name="physics geometry"> + <text name="first_step_name"> + 1. Adım: Ayrıntı Seviyesi + </text> + <combo_box name="physics_lod_combo" tool_tip="Fizik ÅŸekli için kullanılacak ayrıntı"> + <combo_item name="choose_one"> + Birini seçin... + </combo_item> + <combo_item name="physics_high"> + Yüksek + </combo_item> + <combo_item name="physics_medium"> + Orta + </combo_item> + <combo_item name="physics_low"> + Düşük + </combo_item> + <combo_item name="physics_lowest"> + En Düşük + </combo_item> + <combo_item name="load_from_file"> + Dosyadan + </combo_item> + </combo_box> + <button label="Gözat..." name="physics_browse"/> + </panel> + <panel name="physics analysis"> + <text name="method_label"> + 2. Adım: Çözümle + </text> + <text name="analysis_method_label"> + Yöntem: + </text> + <text name="quality_label"> + Kalite: + </text> + <text name="smooth_method_label"> + Düzeltme: + </text> + <check_box label="Delikleri Kapat" name="Close Holes (Slow)"/> + <button label="Çözümle" name="Decompose"/> + <button label="İptal" name="decompose_cancel"/> + </panel> + <panel name="physics simplification"> + <text name="second_step_label"> + 3. Adım: BasitleÅŸtir + </text> + <text name="simp_method_header"> + Yöntem: + </text> + <text name="pass_method_header"> + GeçiÅŸler: + </text> + <text name="Detail Scale label"> + Ayrıntı ölçeÄŸi: + </text> + <text name="Retain%_label"> + Koru: + </text> + <combo_box name="Combine Quality" value="1"/> + <button label="BasitleÅŸtir" name="Simplify"/> + <button label="İptal" name="simplify_cancel"/> + </panel> + <panel name="physics info"> + <text name="results_text"> + Sonuçlar: + </text> + <text name="physics_triangles"> + Üçgenler: [TRIANGLES], + </text> + <text name="physics_points"> + Köşeler: [POINTS], + </text> + <text name="physics_hulls"> + Gövdeler: [HULLS] + </text> + </panel> </panel> - <panel name="physics simplification"> - <slider label="GeçiÅŸler:" name="Combine Quality"/> - <slider label="Ayrıntı ÖlçeÄŸi:" name="Detail Scale"/> - <slider label="Koru:" name="Retain%"/> - <button label="BasitleÅŸtir" name="Simplify"/> - <button label="İptal" name="simplify_cancel"/> - </panel> - <panel name="physics info"> - <slider label="Önizleme Yayılımı:" name="physics_explode"/> - <text name="physics_triangles"> - Üçgenler: [TRIANGLES] + <panel label="Karşıya yükleme seçenekleri" name="modifiers_panel"> + <text name="scale_label"> + Ölçek (1=ölçekleme yok): + </text> + <spinner name="import_scale" value="1.0"/> + <text name="dimensions_label"> + Boyutlar: </text> - <text name="physics_points"> - Köşeler: [POINTS] + <text name="import_dimensions"> + [X] X [Y] X [Z] </text> - <text name="physics_hulls"> - Gövdeler: [HULLS] + <check_box label="Dokuları dahil et" name="upload_textures"/> + <text name="include_label"> + Sadece avatar modelleri için: </text> + <check_box label="Dış katman ağırlığını dahil et" name="upload_skin"/> + <check_box label="Eklem konumlarını dahil et" name="upload_joints"/> + <text name="pelvis_offset_label"> + Z kayması (avatarı kaldırmak veya indirmek için): + </text> + <spinner name="pelvis_offset" value="0.0"/> </panel> - </panel> - <panel label="DeÄŸiÅŸtiriciler" name="modifiers_panel"> - <spinner name="import_scale" value="1.0"/> - <text name="import_dimensions"> - [X] x [Y] x [Z] m + </tab_container> + <panel name="weights_and_warning_panel"> + <button label="Ağırlıkları ve ücreti hesapla" name="calculate_btn" tool_tip="Ağırlıkları ve ücreti hesapla"/> + <button label="İptal" name="cancel_btn"/> + <button label="Karşıya Yükle" name="ok_btn" tool_tip="Simülatöre karşıya yükle"/> + <button label="Ayarları temizle ve formu sıfırla" name="reset_btn"/> + <text name="upload_fee"> + Karşıya yükleme ücreti: L$ [FEE] + </text> + <text name="prim_weight"> + Arazi etkisi [EQ] + </text> + <text name="download_weight"> + Karşıdan Yükle: [ST] + </text> + <text name="physics_weight"> + Fizik: [PH] + </text> + <text name="server_weight"> + Sunucu: [SIM] + </text> + <text name="warning_title"> + NOT: + </text> + <text name="warning_message"> + Örgü modellerini karşıya yüklemeye hakkınız yok. Nasıl onaylanacağınızı [[VURL] öğrenin]. + </text> + <text name="status"> + [STATUS] </text> - <check_box label="Dokular" name="upload_textures"/> - <check_box label="Dış katman ağırlığı" name="upload_skin"/> - <check_box label="Eklem konumları" name="upload_joints"/> - <spinner name="pelvis_offset" value="0.0"/> </panel> - </tab_container> - <text name="upload_fee"> - Karşıya yükleme ücreti: L$ [FEE] + </panel> + <text name="lod_label"> + Önizleme: </text> - <button label="Varsayılanlara ayarla" name="reset_btn" tool_tip="Varsayılanlara ayarla"/> - <button label="Ağırlıkları ve ücreti hesapla" name="calculate_btn" tool_tip="Ağırlıkları ve ücreti hesapla"/> - <button label="Karşıya Yükle" name="ok_btn" tool_tip="Simülatöre karşıya yükle"/> - <button label="İptal" name="cancel_btn"/> + <panel name="right_panel"> + <combo_box name="preview_lod_combo" tool_tip="Önizleme iÅŸlemesinde görülecek ayrıntı seviyesi"> + <combo_item name="high"> + Yüksek + </combo_item> + <combo_item name="medium"> + Orta + </combo_item> + <combo_item name="low"> + Düşük + </combo_item> + <combo_item name="lowest"> + En Düşük + </combo_item> + </combo_box> + <text name="label_display"> + Ekran... + </text> + <check_box label="Kenarlar" name="show_edges"/> + <check_box label="Fizik" name="show_physics"/> + <check_box label="Dokular" name="show_textures"/> + <check_box label="Dış katman ağırlıkları" name="show_skin_weight"/> + <check_box label="Eklemler" name="show_joint_positions"/> + <text name="physics_explode_label"> + Önizleme Yayılımı: + </text> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/tr/floater_model_wizard.xml b/indra/newview/skins/default/xui/tr/floater_model_wizard.xml index a0a67e2defdfb135b1660e1b1080c13cc8edc066..108d20cfac4473b68d7493de1d566a84fdd503a7 100644 --- a/indra/newview/skins/default/xui/tr/floater_model_wizard.xml +++ b/indra/newview/skins/default/xui/tr/floater_model_wizard.xml @@ -6,26 +6,20 @@ <button label="2. Optimize et" name="optimize_btn"/> <button label="1. Dosya Seç" name="choose_file_btn"/> <panel name="choose_file_panel"> - <panel name="choose_file_header_panel"> - <text name="choose_file_header_text"> + <panel name="header_panel"> + <text name="header_text"> Model dosyasını seçin </text> </panel> - <panel name="choose_file_content_panel"> + <panel name="content"> <text name="advanced_users_text"> GeliÅŸmiÅŸ kullanıcılar: EÄŸer 3B içerik oluÅŸturma araçlarını kullanmayı biliyorsanız, GeliÅŸmiÅŸ Karşıya Yükleyiciyi kullanmak isteyebilirsiniz. </text> <button label="GeliÅŸmiÅŸe geç" name="switch_to_advanced"/> - <text name="choose_model_file_label"> + <text name="Cache location"> Karşıya yüklenecek model dosyasını seçin </text> <button label="Gözat..." label_selected="Gözat..." name="browse"/> - <text name="support_collada_text"> - Second Life, COLLADA (.dae) dosyalarını destekler - </text> - <text name="dimensions_label"> - Boyutlar (metre): - </text> <text name="dimensions"> X Y Z </text> @@ -38,18 +32,15 @@ </panel> </panel> <panel name="optimize_panel"> - <panel name="optimize_header_panel"> - <text name="optimize_header_text"> + <panel name="header_panel"> + <text name="header_text"> Modeli optimize et </text> </panel> - <text name="optimize_hint"> + <text name="description"> Modeli performans için optimize ettik. İstiyorsanız daha da ayarlayabilirsiniz. </text> - <panel name="optimize_content_panel"> - <text name="generating_lod_label"> - Ayrıntı Seviyesi OluÅŸturuluyor - </text> + <panel name="content"> <text name="high_detail_text"> Ayrıntı Seviyesi OluÅŸtur: Yüksek </text> @@ -64,123 +55,64 @@ </text> </panel> <panel name="content2"> - <text name="optimize_performance_text"> - Performans - </text> - <text name="optimize_faster_rendering_text"> - Daha hızlı iÅŸleme -Daha az ayrıntı -Daha düşük prim ağırlığı - </text> - <text name="optimize_accuracy_text"> - Hassasiyet - </text> - <text name="optimize_slower_rendering_text"> - Daha yavaÅŸ iÅŸleme -Daha çok ayrıntı -Daha yüksek prim ağırlığı - </text> - <text name="accuracy_slider_mark1"> - ' - </text> - <text name="accuracy_slider_mark2"> - ' - </text> - <text name="accuracy_slider_mark3"> - ' - </text> <button label="Geometri hesaplarını tekrar yap" name="recalculate_geometry_btn"/> - <text name="geometry_preview_label"> + <text name="lod_label"> Geometri önizleme </text> <combo_box name="preview_lod_combo" tool_tip="Önizleme iÅŸlemesinde görülecek ayrıntı seviyesi"> - <combo_item name="preview_lod_high"> + <combo_item name="high"> Çok ayrıntı </combo_item> - <combo_item name="preview_lod_medium"> + <combo_item name="medium"> Orta düzey ayrıntı </combo_item> - <combo_item name="preview_lod_low"> + <combo_item name="low"> Az ayrıntı </combo_item> - <combo_item name="preview_lod_lowest"> + <combo_item name="lowest"> En az ayrıntı </combo_item> </combo_box> </panel> </panel> <panel name="physics_panel"> - <panel name="physics_header_panel"> - <text name="physics_header_text"> + <panel name="header_panel"> + <text name="header_text"> Fizik ayarlarını yap </text> </panel> - <text name="physics_hint"> + <text name="description"> Modelin dış gövdesi için bir ÅŸekil oluÅŸturacağız. Modelinizin amacına uygun olarak ÅŸeklin ayrıntı seviyesini belirleyin. </text> - <panel name="physics_content_panel"> - <text name="physics_performance_text"> - Performans - </text> - <text name="physics_faster_rendering_text"> - Daha hızlı iÅŸleme -Daha az ayrıntı -Daha düşük prim ağırlığı - </text> - <text name="physics_accuracy_text"> - Hassasiyet - </text> - <text name="physics_slower_dendering_text"> - Daha yavaÅŸ iÅŸleme -Daha çok ayrıntı -Daha yüksek prim ağırlığı - </text> - <text name="physics_example_1"> - Örnekler: -Hareketli nesneler -Uçan nesneler -Araçlar - </text> - <text name="physics_example_2"> - Örnekler: -Küçük statik nesneler -Daha az ayrıntılı nesneler -Basit eÅŸyalar - </text> - <text name="physics_example_3"> - Örnekler: -Statik nesneler -Ayrıntılı nesneler -Binalar - </text> + <panel name="content"> <button label="Fizik hesaplarını tekrar yap" name="recalculate_physics_btn"/> <button label="Tekrar hesaplanıyor..." name="recalculating_physics_btn"/> - <text name="physics_preview_label"> + <text name="lod_label"> Fizik önizleme </text> <combo_box name="preview_lod_combo2" tool_tip="Önizleme iÅŸlemesinde görülecek ayrıntı seviyesi"> - <combo_item name="preview_lod2_high"> + <combo_item name="high"> Çok ayrıntı </combo_item> - <combo_item name="preview_lod2_medium"> + <combo_item name="medium"> Orta düzey ayrıntı </combo_item> - <combo_item name="preview_lod2_low"> + <combo_item name="low"> Az ayrıntı </combo_item> - <combo_item name="preview_lod2_lowest"> + <combo_item name="lowest"> En az ayrıntı </combo_item> </combo_box> </panel> </panel> <panel name="review_panel"> - <panel name="review_header_panel"> - <text name="review_header_text"> + <panel name="header_panel"> + <text name="header_text"> İncele </text> </panel> - <panel name="review_content_panel"> + <panel name="content"> <text name="review_prim_equiv"> Parsele/bölgeye etkisi: [EQUIV] prim eÅŸdeÄŸerleri </text> @@ -193,8 +125,8 @@ Binalar </panel> </panel> <panel name="upload_panel"> - <panel name="upload_header_panel"> - <text name="upload_header_text"> + <panel name="header_panel"> + <text name="header_text"> Karşıya yükleme bitti </text> </panel> diff --git a/indra/newview/skins/default/xui/tr/floater_moveview.xml b/indra/newview/skins/default/xui/tr/floater_moveview.xml index 0d7c118f1ea4eebb60022fafe09b61e4cbd0c7df..74ed613a62a36ca834e5bc4f97c8fd8876ed45ce 100644 --- a/indra/newview/skins/default/xui/tr/floater_moveview.xml +++ b/indra/newview/skins/default/xui/tr/floater_moveview.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="move_floater"> +<floater name="move_floater" title="HAREKET ET"> <string name="walk_forward_tooltip"> İleri Yürü (Yukarı Okuna veya W'ye basın) </string> diff --git a/indra/newview/skins/default/xui/tr/floater_my_appearance.xml b/indra/newview/skins/default/xui/tr/floater_my_appearance.xml new file mode 100644 index 0000000000000000000000000000000000000000..4d71187a1fdd7ec79b5ad6a80e6b5c9a9abf950c --- /dev/null +++ b/indra/newview/skins/default/xui/tr/floater_my_appearance.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_my_appearance" title="GÖRÜNÜM"> + <panel label="Görünümü Düzenle" name="main_panel"/> +</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_my_inventory.xml b/indra/newview/skins/default/xui/tr/floater_my_inventory.xml new file mode 100644 index 0000000000000000000000000000000000000000..8c62692a88a3654db95dd711b6a26a3129e2e7bc --- /dev/null +++ b/indra/newview/skins/default/xui/tr/floater_my_inventory.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_my_inventory" title="ENVANTER"/> diff --git a/indra/newview/skins/default/xui/tr/floater_object_weights.xml b/indra/newview/skins/default/xui/tr/floater_object_weights.xml new file mode 100644 index 0000000000000000000000000000000000000000..b57943f666ccea22dd59e4e9e4d43d753543a027 --- /dev/null +++ b/indra/newview/skins/default/xui/tr/floater_object_weights.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="object_weights" title="GELİŞMİŞ"> + <floater.string name="nothing_selected" value="--"/> + <text name="selected_text" value="SEÇİLİ"/> + <text name="objects" value="--"/> + <text name="objects_label" value="Nesneler"/> + <text name="prims" value="--"/> + <text name="prims_label" value="Primler"/> + <text name="weights_of_selected_text" value="SEÇİLENLERİN AÄžIRLIKLARI"/> + <text name="download" value="--"/> + <text name="download_label" value="Karşıdan yükle"/> + <text name="physics" value="--"/> + <text name="physics_label" value="Fizik"/> + <text name="server" value="--"/> + <text name="server_label" value="Sunucu"/> + <text name="display" value="--"/> + <text name="display_label" value="Ekran"/> + <text name="land_impacts_text" value="ARAZİ ETKİLERİ"/> + <text name="selected" value="--"/> + <text name="selected_label" value="Seçili"/> + <text name="rezzed_on_land" value="--"/> + <text name="rezzed_on_land_label" value="Arazide oluÅŸturulmuÅŸ"/> + <text name="remaining_capacity" value="--"/> + <text name="remaining_capacity_label" value="Kalan kapasite"/> + <text name="total_capacity" value="--"/> + <text name="total_capacity_label" value="Toplam kapasite"/> + <text name="help_SLURL" value="[secondlife:///app/help/object_weights Bunların tümü ne?...]"/> +</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/tr/floater_outfit_save_as.xml index 849fdcdbbcf24b0e9359a3151b17156f2f54d0f9..7a9f507c936c78aa9cec0c384bb881d71a2fb3d8 100644 --- a/indra/newview/skins/default/xui/tr/floater_outfit_save_as.xml +++ b/indra/newview/skins/default/xui/tr/floater_outfit_save_as.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="modal container" title="Dış Görünümü Kaydet"> +<floater name="modal container" title="DIÅž GÖRÜNÜMÜ KAYDET"> <button label="Kaydet" label_selected="Kaydet" name="Save"/> <button label="İptal" label_selected="İptal" name="Cancel"/> <text name="Save item as:"> diff --git a/indra/newview/skins/default/xui/tr/floater_people.xml b/indra/newview/skins/default/xui/tr/floater_people.xml new file mode 100644 index 0000000000000000000000000000000000000000..94a27bff5774a20d75c7877e41af67fd9c1c36a6 --- /dev/null +++ b/indra/newview/skins/default/xui/tr/floater_people.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_people" title="KİŞİLER"> + <panel_container name="main_panel"> + <panel label="Grup Profili" name="panel_group_info_sidetray"/> + <panel label="EngellenmiÅŸ Sakinler ve Nesneler" name="panel_block_list_sidetray"/> + </panel_container> +</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_picks.xml b/indra/newview/skins/default/xui/tr/floater_picks.xml new file mode 100644 index 0000000000000000000000000000000000000000..06a404447ec99f8cdfd3cb90ca8a95311e7ffca0 --- /dev/null +++ b/indra/newview/skins/default/xui/tr/floater_picks.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_picks" title="Favoriler"/> diff --git a/indra/newview/skins/default/xui/tr/floater_places.xml b/indra/newview/skins/default/xui/tr/floater_places.xml new file mode 100644 index 0000000000000000000000000000000000000000..4e09a699f6a6ff12db86649d6c0c1ab56d170ada --- /dev/null +++ b/indra/newview/skins/default/xui/tr/floater_places.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="floater_places" title="YERLER"> + <panel label="Yerler" name="main_panel"/> +</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_sound_devices.xml b/indra/newview/skins/default/xui/tr/floater_sound_devices.xml index 99c3bea954431e1f4a179c41fd047a7bc677c3c6..470a222d7ecbcce2ab360ff39880837bb988632f 100644 --- a/indra/newview/skins/default/xui/tr/floater_sound_devices.xml +++ b/indra/newview/skins/default/xui/tr/floater_sound_devices.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_sound_devices" title="Ses Aygıtları"> +<floater name="floater_sound_devices" title="SES CİHAZLARI"> <text name="voice_label"> Sesli Sohbet </text> diff --git a/indra/newview/skins/default/xui/tr/floater_stats.xml b/indra/newview/skins/default/xui/tr/floater_stats.xml index 2218060cc78adebef21ded9ec1bc5e762b05f1c8..17f1166c4681b99b185301fa5daae64cf98080a4 100644 --- a/indra/newview/skins/default/xui/tr/floater_stats.xml +++ b/indra/newview/skins/default/xui/tr/floater_stats.xml @@ -10,8 +10,8 @@ </stat_view> <stat_view label="GeliÅŸmiÅŸ" name="advanced"> <stat_view label="İşle" name="render"> - <stat_bar label="Çizilen Üçgenler" name="ktrisframe"/> - <stat_bar label="Çizilen Üçgenler" name="ktrissec"/> + <stat_bar label="Çerçeve Başına Çizilen Üçgenler" name="ktrisframe"/> + <stat_bar label="Saniyede Bir Çizilen Üçgenler" name="ktrissec"/> <stat_bar label="Toplam Nesne" name="objs"/> <stat_bar label="Yeni Nesne" name="newobjs"/> </stat_view> @@ -64,6 +64,14 @@ <stat_bar label="Aracı Süresi" name="simagentmsec"/> <stat_bar label="Görüntü Süresi" name="simimagesmsec"/> <stat_bar label="Komut Dosyası Süresi" name="simscriptmsec"/> + <stat_bar label="Yedek Zaman" name="simsparemsec"/> + <stat_view label="Zaman Ayrıntıları (ms)" name="timedetails"> + <stat_bar label="Fizik Adımı" name="simsimphysicsstepmsec"/> + <stat_bar label="Fizik Åžekillerini Güncelle" name="simsimphysicsshapeupdatemsec"/> + <stat_bar label="Fizik DiÄŸer" name="simsimphysicsothermsec"/> + <stat_bar label="Uyku Zamanı" name="simsleepmsec"/> + <stat_bar label="Pompa GiriÅŸ Çıkış" name="simpumpiomsec"/> + </stat_view> </stat_view> </stat_view> </container_view> diff --git a/indra/newview/skins/default/xui/tr/floater_tools.xml b/indra/newview/skins/default/xui/tr/floater_tools.xml index 68c18d65e8c2ba52ae73cf549cd4d380a355000b..47299059af79ea819828c826cc33a6455fb03b65 100644 --- a/indra/newview/skins/default/xui/tr/floater_tools.xml +++ b/indra/newview/skins/default/xui/tr/floater_tools.xml @@ -25,10 +25,10 @@ Araziyi seçmek için tıklayın ve sürükleyin </floater.string> <floater.string name="status_selectcount"> - [OBJ_COUNT] nesne ( [PRIM_COUNT] prim [PE_STRING] ) seçili + [OBJ_COUNT] nesne seçili, [LAND_IMPACT] arazi etkisi </floater.string> - <floater.string name="status_selectprimequiv"> - , [SEL_WEIGHT] prim eÅŸdeÄŸerleri + <floater.string name="status_remaining_capacity"> + Kalan kapasite [LAND_CAPACITY]. </floater.string> <button name="button focus" tool_tip="Odak"/> <button name="button move" tool_tip="Hareket Et"/> @@ -107,8 +107,8 @@ <text name="selection_empty"> Seçilen bir ÅŸey yok. </text> - <text name="selection_weight"> - Fizik ağırlığı [PHYS_WEIGHT], İşleme Maliyeti [DISP_WEIGHT]. + <text name="remaining_capacity"> + [CAPACITY_STRING] [secondlife:///app/openfloater/object_weights Ek bilgi] </text> <tab_container name="Object Info Tabs"> <panel label="Genel" name="General"> @@ -321,7 +321,6 @@ DikiÅŸ türü </text> <combo_box name="sculpt type control"> - <combo_box.item label="(hiçbiri)" name="None"/> <combo_box.item label="Küre" name="Sphere"/> <combo_box.item label="Torus" name="Torus"/> <combo_box.item label="Düzlem" name="Plane"/> diff --git a/indra/newview/skins/default/xui/tr/floater_toybox.xml b/indra/newview/skins/default/xui/tr/floater_toybox.xml new file mode 100644 index 0000000000000000000000000000000000000000..05d3633df073095c7d22401f6e55293ecd215a62 --- /dev/null +++ b/indra/newview/skins/default/xui/tr/floater_toybox.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="Toybox" title="ARAÇ ÇUBUKLARINI ÖZELLEÅžTİR"> + <text name="toybox label 1"> + Düğmeleri araç çubuklarına veya araç çubuklarından sürükleyerek ekleyin ya da kaldırın. + </text> + <text name="toybox label 2"> + Her bir araç çubuÄŸunun ayarına göre düğmeler gösterilir veya sadece simgeleri yer alır. + </text> + <button label="Varsayılanları geri yükle" label_selected="Varsayılanları geri yükle" name="btn_restore_defaults"/> +</floater> diff --git a/indra/newview/skins/default/xui/tr/floater_voice_controls.xml b/indra/newview/skins/default/xui/tr/floater_voice_controls.xml index d5d6606e4e737b8e8bc93a350df81ad9bf4980b6..dac05d83273113af286a2904e6ebb4614bcdc8ca 100644 --- a/indra/newview/skins/default/xui/tr/floater_voice_controls.xml +++ b/indra/newview/skins/default/xui/tr/floater_voice_controls.xml @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floater_voice_controls" title="Ses Denetimleri"> +<floater name="floater_voice_controls" title="SES DENETİMLERİ"> <string name="title_nearby"> - YAKINDAKİ SES + Yakındaki ses </string> <string name="title_group"> - [GROUP] ile Grup Araması + [GROUP] ile grup araması </string> <string name="title_adhoc"> - Konferans Araması + Konferans araması </string> <string name="title_peer_2_peer"> [NAME] ile arama diff --git a/indra/newview/skins/default/xui/tr/menu_bottomtray.xml b/indra/newview/skins/default/xui/tr/menu_bottomtray.xml index c4376697047ba31afdc3fa213bd0140086089b78..f17c0f997144c2c5f2a21c943f44ec0e5252bf1a 100644 --- a/indra/newview/skins/default/xui/tr/menu_bottomtray.xml +++ b/indra/newview/skins/default/xui/tr/menu_bottomtray.xml @@ -8,7 +8,7 @@ <menu_item_check label="İnÅŸa Et düğmesi" name="ShowBuildButton"/> <menu_item_check label="Arama düğmesi" name="ShowSearchButton"/> <menu_item_check label="Harita düğmesi" name="ShowWorldMapButton"/> - <menu_item_check label="Mini-Harita düğmesi" name="ShowMiniMapButton"/> + <menu_item_check label="Mini-harita düğmesi" name="ShowMiniMapButton"/> <menu_item_call label="Kes" name="NearbyChatBar_Cut"/> <menu_item_call label="Kopyala" name="NearbyChatBar_Copy"/> <menu_item_call label="Yapıştır" name="NearbyChatBar_Paste"/> diff --git a/indra/newview/skins/default/xui/tr/menu_hide_navbar.xml b/indra/newview/skins/default/xui/tr/menu_hide_navbar.xml index d9b99e040bb49cf486fed6c44d98db96b5821261..130c72e04ddf7052d54d7884659678c5f6a5bfa3 100644 --- a/indra/newview/skins/default/xui/tr/menu_hide_navbar.xml +++ b/indra/newview/skins/default/xui/tr/menu_hide_navbar.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="hide_navbar_menu"> - <menu_item_check label="Gezinme ÇubuÄŸunu Göster" name="ShowNavbarNavigationPanel"/> + <menu_item_check label="Gezinme ve Sık Kullanılanlar ÇubuÄŸunu Göster" name="ShowNavbarNavigationPanel"/> <menu_item_check label="Sık Kullanılanlar ÇubuÄŸunu Göster" name="ShowNavbarFavoritesPanel"/> <menu_item_check label="Mini Konum ÇubuÄŸunu Göster" name="ShowMiniLocationPanel"/> </menu> diff --git a/indra/newview/skins/default/xui/tr/menu_login.xml b/indra/newview/skins/default/xui/tr/menu_login.xml index a726925bd3a0760c3a63092915aa4bb63cd108ad..4c3539b38b87181f5fe9db17db60ffb4942edd7f 100644 --- a/indra/newview/skins/default/xui/tr/menu_login.xml +++ b/indra/newview/skins/default/xui/tr/menu_login.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu_bar name="Login Menu"> <menu label="Ben" name="File"> - <menu_item_call label="Tercihler" name="Preferences..."/> + <menu_item_call label="Tercihler..." name="Preferences..."/> <menu_item_call label="[APP_NAME]'den Çık" name="Quit"/> </menu> <menu label="Yardım" name="Help"> diff --git a/indra/newview/skins/default/xui/tr/menu_toolbars.xml b/indra/newview/skins/default/xui/tr/menu_toolbars.xml new file mode 100644 index 0000000000000000000000000000000000000000..7cb3192ec49764292867e4e879f51b6f027fce8d --- /dev/null +++ b/indra/newview/skins/default/xui/tr/menu_toolbars.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<context_menu name="Toolbars Popup"> + <menu_item_call label="Düğmeleri seç..." name="Chose Buttons"/> + <menu_item_check label="Simgeler ve etiketler" name="icons_with_text"/> + <menu_item_check label="Sadece simgeler" name="icons_only"/> +</context_menu> diff --git a/indra/newview/skins/default/xui/tr/menu_viewer.xml b/indra/newview/skins/default/xui/tr/menu_viewer.xml index fa09e42a141a4c4caea454b48097056f49741b0e..0877d8881b604406b490054345a530e5c0dc6901 100644 --- a/indra/newview/skins/default/xui/tr/menu_viewer.xml +++ b/indra/newview/skins/default/xui/tr/menu_viewer.xml @@ -1,27 +1,28 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu_bar name="Main Menu"> <menu label="Ben" name="Me"> - <menu_item_call label="Tercihler" name="Preferences"/> - <menu_item_call label="Kontrol Panelim" name="Manage My Account"/> - <menu_item_call label="L$ Satın Al" name="Buy and Sell L$"/> - <menu_item_call label="Profilim" name="Profile"/> - <menu_item_call label="Görünümüm" name="ChangeOutfit"/> - <menu_item_check label="Envanterim" name="Inventory"/> - <menu_item_check label="Envanterim" name="ShowSidetrayInventory"/> - <menu_item_check label="Mimiklerim" name="Gestures"/> - <menu_item_check label="Sesim" name="ShowVoice"/> + <menu_item_call label="Kontrol Paneli..." name="Manage My Account"/> + <menu_item_call label="Profil..." name="Profile"/> + <menu_item_call label="Görünüm..." name="ChangeOutfit"/> + <menu_item_check label="Envanter..." name="Inventory"/> + <menu_item_check label="Mimikler..." name="Gestures"/> + <menu_item_check label="Ses..." name="ShowVoice"/> <menu label="Hareket" name="Movement"> <menu_item_call label="Otur" name="Sit Down Here"/> <menu_item_check label="Uç" name="Fly"/> <menu_item_check label="Daima KoÅŸ" name="Always Run"/> <menu_item_call label="Beni Anime Etmeyi Durdur" name="Stop Animating My Avatar"/> </menu> - <menu label="Durumum" name="Status"> + <menu label="Durum" name="Status"> <menu_item_call label="Uzakta" name="Set Away"/> <menu_item_call label="MeÅŸgul" name="Set Busy"/> </menu> <menu_item_call label="Yönetici Durumu Talep Et" name="Request Admin Options"/> <menu_item_call label="Yönetici Durumundan Ayrıl" name="Leave Admin Options"/> + <menu_item_call label="L$ Satın Al" name="Buy and Sell L$"/> + <menu_item_call label="Tercihler..." name="Preferences"/> + <menu_item_call label="Araç çubukları..." name="Toolbars"/> + <menu_item_call label="Tüm denetimleri sakla" name="Hide UI"/> <menu_item_call label="[APP_NAME]'den Çık" name="Quit"/> </menu> <menu label="İletiÅŸim Kur" name="Communicate"> @@ -32,7 +33,7 @@ <menu_item_check label="Yakındaki Ses" name="Nearby Voice"/> </menu> <menu label="Dünya" name="World"> - <menu_item_check label="Mini-Harita" name="Mini-Map"/> + <menu_item_check label="Mini-harita" name="Mini-Map"/> <menu_item_check label="Dünya Haritası" name="World Map"/> <menu_item_check label="Ara" name="Search"/> <menu_item_call label="Anlık Görüntü" name="Take Snapshot"/> @@ -144,7 +145,6 @@ </menu> <menu label="Yardım" name="Help"> <menu_item_call label="[SECOND_LIFE] Yardımı" name="Second Life Help"/> - <menu_item_check label="İpuçlarını EtkinleÅŸtir" name="Enable Hints"/> <menu_item_call label="Kötüye Kullanımı Bildir" name="Report Abuse"/> <menu_item_call label="Hata Bildir" name="Report Bug"/> <menu_item_call label="[APP_NAME] Hakkında" name="About Second Life"/> @@ -160,7 +160,7 @@ <menu label="Performans Araçları" name="Performance Tools"> <menu_item_call label="Gecikme Ölçer" name="Lag Meter"/> <menu_item_check label="İstatistik ÇubuÄŸu" name="Statistics Bar"/> - <menu_item_check label="Avatar İşlemi Maaliyetini Göster" name="Avatar Rendering Cost"/> + <menu_item_check label="Avatarlar İçin Çizim Ağırlığını Göster" name="Avatar Rendering Cost"/> </menu> <menu label="Vurgulama ve Görünürlük" name="Highlighting and Visibility"> <menu_item_check label="Yanıp Sönen İşaret" name="Cheesy Beacon"/> @@ -288,6 +288,7 @@ <menu_item_check label="Işıklar" name="Lights"/> <menu_item_check label="Çarpışma İskeleti" name="Collision Skeleton"/> <menu_item_check label="Işın Yayını" name="Raycast"/> + <menu_item_check label="İşleme Karmaşıklığı" name="rendercomplexity"/> <menu_item_check label="Åžekillendir" name="Sculpt"/> </menu> <menu label="İşleme" name="Rendering"> diff --git a/indra/newview/skins/default/xui/tr/notifications.xml b/indra/newview/skins/default/xui/tr/notifications.xml index 5eff0cf5707e5c86976de78af1008572d9c5b165..b75307b67b03d063781d81d67715ad7e7c59b991 100644 --- a/indra/newview/skins/default/xui/tr/notifications.xml +++ b/indra/newview/skins/default/xui/tr/notifications.xml @@ -1909,6 +1909,12 @@ Envanter öğesi/öğeleri taşınsın mı? Çıkmak istediÄŸinize emin misiniz? <usetemplate ignoretext="Çıkmadan önce doÄŸrulama iste" name="okcancelignore" notext="Çıkma" yestext="Çık"/> </notification> + <notification name="ConfirmRestoreToybox"> + Varsayılan düğmelerinizi ve araç çubuklarınızı geri yüklemek istediÄŸinize emin misiniz? + +Bu eylemi geri alamazsınız. + <usetemplate name="okcancelbuttons" notext="İptal" yestext="Tamam"/> + </notification> <notification name="DeleteItems"> [QUESTION] <usetemplate ignoretext="Öğeleri silmeden önce doÄŸrulama iste" name="okcancelignore" notext="İptal" yestext="Tamam"/> @@ -2995,10 +3001,6 @@ Görünümünüzü döndürmek için dünya üzerindeki herhangi bir yeri tıkla <button name="cancel" text="İptal Et"/> </form> </notification> - <notification label="" name="ModeChange"> - Mod deÄŸiÅŸtirme, uygulamadan çıkıp yeniden baÅŸlatmanızı gerektiriyor. - <usetemplate name="okcancelbuttons" notext="Çıkma" yestext="Çık"/> - </notification> <notification label="" name="NoClassifieds"> İlan oluÅŸturma ve düzenleme sadece GeliÅŸmiÅŸ modda kullanılabilir. Uygulamadan çıkıp, mod deÄŸiÅŸtirmek ister misiniz? Mod seçici oturum açma ekranında bulunabilir. <usetemplate name="okcancelbuttons" notext="Çıkma" yestext="Çık"/> @@ -3043,6 +3045,10 @@ Görünümünüzü döndürmek için dünya üzerindeki herhangi bir yeri tıkla Arama sadece GeliÅŸmiÅŸ modda kullanılabilir. Oturumunuzu kapatıp, mod deÄŸiÅŸtirmek ister misiniz? <usetemplate name="okcancelbuttons" notext="Çıkma" yestext="Çık"/> </notification> + <notification label="" name="ConfirmHideUI"> + Bu eylem tüm menü öğelerini ve düğmelerini gizler. Bunları geri almak için [SHORTCUT] üzerine tekrar tıklayın. + <usetemplate ignoretext="KA'ni gizlemeden önce onayla" name="okcancelignore" notext="İptal" yestext="Tamam"/> + </notification> <global name="UnsupportedGLRequirements"> [APP_NAME] uygulaması için gerekli donanım gereksinimlerine sahip olmadığınız görünüyor. [APP_NAME] çoklu doku desteÄŸi sunan bir OpenGL grafik kartı gerektiriyor. EÄŸer grafik kartınız bu özellikteyse, grafik kartınızın en son sürücülerine ve iÅŸletim sisteminiz için gerekli Service Pack ve yamalara sahip olup olmadığınızı kontrol etmeyi deneyebilirsiniz. diff --git a/indra/newview/skins/default/xui/tr/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/tr/panel_chiclet_bar.xml new file mode 100644 index 0000000000000000000000000000000000000000..a1e8190bbc3f7db060109fb4439a6f308697b472 --- /dev/null +++ b/indra/newview/skins/default/xui/tr/panel_chiclet_bar.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="chiclet_bar"> + <layout_stack name="toolbar_stack"> + <layout_panel name="im_well_panel"> + <chiclet_im_well name="im_well"> + <button name="Unread IM messages" tool_tip="Sohbetler"/> + </chiclet_im_well> + </layout_panel> + <layout_panel name="notification_well_panel"> + <chiclet_notification name="notification_well"> + <button name="Unread" tool_tip="Bildirimler"/> + </chiclet_notification> + </layout_panel> + </layout_stack> +</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_me.xml b/indra/newview/skins/default/xui/tr/panel_me.xml index dcf4f19be2333a0c83dc7e60b98e631f2b3499d7..0441660f3cd77c36093d5d3c634ebc816cf2a946 100644 --- a/indra/newview/skins/default/xui/tr/panel_me.xml +++ b/indra/newview/skins/default/xui/tr/panel_me.xml @@ -1,7 +1,4 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Profilim" name="panel_me"> - <tab_container name="tabs"> - <panel label="PROFİLİM" name="panel_profile"/> - <panel label="FAVORİLERİM" name="panel_picks"/> - </tab_container> + <panel label="FAVORİLERİM" name="panel_picks"/> </panel> diff --git a/indra/newview/skins/default/xui/tr/panel_navigation_bar.xml b/indra/newview/skins/default/xui/tr/panel_navigation_bar.xml index b28036228fa3d4e137b232c5bfe5cce4b054800b..b61ba0a12f40e91404aa2b95ec6f5662e38d89eb 100644 --- a/indra/newview/skins/default/xui/tr/panel_navigation_bar.xml +++ b/indra/newview/skins/default/xui/tr/panel_navigation_bar.xml @@ -1,18 +1,23 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="navigation_bar"> - <panel name="navigation_panel"> - <pull_button name="back_btn" tool_tip="Önceki konuma geri git"/> - <pull_button name="forward_btn" tool_tip="Bir konum ileri git"/> - <button name="home_btn" tool_tip="Ana konumuma ışınla"/> - <location_input label="Konum" name="location_combo"/> - <search_combo_box label="Ara" name="search_combo_box" tool_tip="Ara"> - <combo_editor label="[SECOND_LIFE] içinde arama yap" name="search_combo_editor"/> - </search_combo_box> - </panel> - <favorites_bar name="favorite" tool_tip="Second Life içerisinde sık kullandığınız yerlere hızla eriÅŸmek için Yer İmlerini buraya sürükleyin!"> - <label name="favorites_bar_label" tool_tip="Second Life içerisinde sık kullandığınız yerlere hızla eriÅŸmek için Yer İmlerini buraya sürükleyin!"> - Sık Kullanılanlar ÇubuÄŸu - </label> - <chevron_button name=">>" tool_tip="Sık Kullanılanlarımdan daha çok göster"/> - </favorites_bar> + <layout_stack name="nvp_stack"> + <layout_panel name="navigation_layout_panel"> + <panel name="navigation_panel"> + <pull_button name="back_btn" tool_tip="Önceki konuma geri git"/> + <pull_button name="forward_btn" tool_tip="Bir konum ileri git"/> + <button name="home_btn" tool_tip="Ana konumuma ışınla"/> + <location_input label="Konum" name="location_combo"/> + </panel> + </layout_panel> + <layout_panel name="favorites_layout_panel"> + <favorites_bar name="favorite" tool_tip="Second Life içerisinde sık kullandığınız yerlere hızla eriÅŸmek için Yer İmlerini buraya sürükleyin!"> + <label name="favorites_bar_label" tool_tip="Second Life içerisinde sık kullandığınız yerlere hızla eriÅŸmek için Yer İmlerini buraya sürükleyin!"> + Sık Kullanılanlar ÇubuÄŸu + </label> + <more_button name=">>" tool_tip="Sık Kullanılanlarımdan daha çok göster"> + Daha Fazla â–¼ + </more_button> + </favorites_bar> + </layout_panel> + </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/tr/panel_nearby_chat.xml b/indra/newview/skins/default/xui/tr/panel_nearby_chat.xml new file mode 100644 index 0000000000000000000000000000000000000000..73da726cb27294c310ffba5ab01fc82e8c79321f --- /dev/null +++ b/indra/newview/skins/default/xui/tr/panel_nearby_chat.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="nearby_chat"> + <check_box label="Sohbeti çevir (Google tarafından desteklenir)" name="translate_chat_checkbox"/> +</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_chat.xml b/indra/newview/skins/default/xui/tr/panel_preferences_chat.xml index bb7e6da68c95ed548b860ff7adaf05931a13cdd8..aeef737420c23558e66a7077bd814d63e7ccba2e 100644 --- a/indra/newview/skins/default/xui/tr/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/tr/panel_preferences_chat.xml @@ -50,7 +50,7 @@ <combo_box.item label="РуÑÑкий (Rusça)" name="Russian"/> <combo_box.item label="Türkçe (Türkçe)" name="Turkish"/> <combo_box.item label="УкраїнÑька (Ukraynaca)" name="Ukrainian"/> - <combo_box.item label="䏿–‡ (简体) (Çince)" name="Chinese"/> + <combo_box.item label="䏿–‡ (æ£é«”) (Çince)" name="Chinese"/> <combo_box.item label="日本語 (Japonca)" name="Japanese"/> <combo_box.item label="한êµì–´ (Korece)" name="Korean"/> </combo_box> diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_general.xml b/indra/newview/skins/default/xui/tr/panel_preferences_general.xml index bd651049d09eb048663c9d83d5247696cc4ced35..fbfc07c4b8740bd9cb67378bde22ca6e721f195b 100644 --- a/indra/newview/skins/default/xui/tr/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/tr/panel_preferences_general.xml @@ -5,16 +5,18 @@ </text> <combo_box name="language_combobox"> <combo_box.item label="Sistem varsayılanı" name="System Default Language"/> - <combo_box.item label="İngilizce" name="English"/> + <combo_box.item label="English (İngilizce)" name="English"/> <combo_box.item label="Dansk (Danca) - Beta" name="Danish"/> <combo_box.item label="Deutsch (Almanca) - Beta" name="Deutsch(German)"/> <combo_box.item label="Español (İspanyolca) - Beta" name="Spanish"/> <combo_box.item label="Français (Fransızca) - Beta" name="French"/> <combo_box.item label="Italiano (İtalyanca) - Beta" name="Italian"/> - <combo_box.item label="Nederlands (Felemekçe) - Beta" name="Dutch"/> <combo_box.item label="Polski (Lehçe) - Beta" name="Polish"/> <combo_box.item label="Português (Portekizce) - Beta" name="Portugese"/> + <combo_box.item label="РуÑÑкий (Rusça) - Beta" name="Russian"/> + <combo_box.item label="Türkçe - Beta" name="Turkish"/> <combo_box.item label="日本語 (Japonca) - Beta" name="(Japanese)"/> + <combo_box.item label="æ£é«”䏿–‡ (Geleneksel Çince) - Beta" name="Traditional Chinese"/> </combo_box> <text name="language_textbox2"> (Yeniden baÅŸlatma gerekir) diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_move.xml b/indra/newview/skins/default/xui/tr/panel_preferences_move.xml index da102b078cf9a15e3b963eac7ae86dbb00dde11f..c35eaec9c3169f1d03a28e74587761f77aca7e7e 100644 --- a/indra/newview/skins/default/xui/tr/panel_preferences_move.xml +++ b/indra/newview/skins/default/xui/tr/panel_preferences_move.xml @@ -7,18 +7,33 @@ </text> <check_box label="İnÅŸa Et/Düzenle" name="edit_camera_movement" tool_tip="Düzenleme moduna girerken ve düzenleme modundan çıkarken otomatik kamera konumunu kullanın"/> <check_box label="Görünüm" name="appearance_camera_movement" tool_tip="Düzenleme modundayken otomatik kamera konumunu kullan"/> - <check_box initial_value="true" label="Kenar çubuÄŸu" name="appearance_sidebar_positioning" tool_tip="Kenar çubuÄŸu için otomatik kamera konumunu kullan"/> + <text name="keyboard_lbl"> + Klavye: + </text> + <check_box label="Ok tuÅŸları beni her zaman hareket ettirir" name="arrow_keys_move_avatar_check"/> + <check_box label="KoÅŸmak için iki kez dokun ve tut" name="tap_tap_hold_to_run"/> + <text name="mouse_lbl"> + Fare: + </text> <check_box label="Fare üzerinden görünümde beni göster" name="first_person_avatar_visible"/> <text name=" Mouse Sensitivity"> Fare üzerinden görünümde fare hassasiyeti </text> <check_box label="Tersine çevir" name="invert_mouse"/> - <check_box label="Ok tuÅŸları beni her zaman hareket ettirir" name="arrow_keys_move_avatar_check"/> - <check_box label="KoÅŸmak için iki kez dokun ve tut" name="tap_tap_hold_to_run"/> - <check_box label="Çift Tıklayınca ÅŸunu yap:" name="double_click_chkbox"/> - <radio_group name="double_click_action"> - <radio_item label="Işınla" name="radio_teleport"/> - <radio_item label="Otomatik pilot" name="radio_autopilot"/> - </radio_group> + <text name="single_click_action_lbl"> + Arazi üzerine tek tıklama: + </text> + <combo_box name="single_click_action_combo"> + <combo_box.item label="Eylem yok" name="0"/> + <combo_box.item label="Tıklanan noktaya hareket et" name="1"/> + </combo_box> + <text name="double_click_action_lbl"> + Arazi üzerine çift tıklama: + </text> + <combo_box name="double_click_action_combo"> + <combo_box.item label="Eylem yok" name="0"/> + <combo_box.item label="Tıklanan noktaya hareket et" name="1"/> + <combo_box.item label="Tıklanan noktaya ışınla" name="2"/> + </combo_box> <button label="DiÄŸer Aygıtlar" name="joystick_setup_button"/> </panel> diff --git a/indra/newview/skins/default/xui/tr/panel_status_bar.xml b/indra/newview/skins/default/xui/tr/panel_status_bar.xml index a7491e9c8870aead2ab287ca6f8ee6efb939512f..63726b94e2121d6a7c9f92de2ebc02f7baf34971 100644 --- a/indra/newview/skins/default/xui/tr/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/tr/panel_status_bar.xml @@ -17,12 +17,9 @@ </panel.string> <panel name="balance_bg"> <text name="balance" tool_tip="L$ bakiyenizi yenilemek için buraya tıklayın" value="L$20"/> - <button label="L$ SATIN AL" name="buyL" tool_tip="Daha fazla L$ satın almak için tıklayın"/> + <button label="L$ Satın Al" name="buyL" tool_tip="Daha fazla L$ satın almak için tıklayın"/> + <button label="AlışveriÅŸ yap" name="goShop" tool_tip="Second Life Pazaryeri Aç"/> </panel> - <combo_box name="mode_combo" tool_tip="Modunuzu seçin. Hızlı ve kolay keÅŸif yapmak ile sohbet etmek için Temel seçimini yapın. Daha fazla özelliÄŸe eriÅŸmek için GeliÅŸmiÅŸ seçimini yapın."> - <combo_box.item label="Temel Mod" name="Basic"/> - <combo_box.item label="GeliÅŸmiÅŸ Mod" name="Advanced"/> - </combo_box> <text name="TimeText" tool_tip="Geçerli zaman (Pasifik)"> 24:00 AM PST </text> diff --git a/indra/newview/skins/default/xui/tr/sidepanel_inventory.xml b/indra/newview/skins/default/xui/tr/sidepanel_inventory.xml index e02eae1d92d18f4bd60cb626eabb3e12535469de..70c449b4024133eb2bb42d05947493bbc475635a 100644 --- a/indra/newview/skins/default/xui/tr/sidepanel_inventory.xml +++ b/indra/newview/skins/default/xui/tr/sidepanel_inventory.xml @@ -7,14 +7,14 @@ <layout_panel name="inbox_layout_panel"> <panel label="" name="marketplace_inbox"> <string name="InboxLabelWithArg"> - Alınan Öğeler ([NUM]) + Alınan öğeler ([NUM]) </string> <string name="InboxLabelNoArg"> - Alınan Öğeler + Alınan öğeler </string> - <button label="Alınan Öğeler" name="inbox_btn"/> + <button label="Alınan öğeler" name="inbox_btn"/> <text name="inbox_fresh_new_count"> - [NUM] Yeni + [NUM] yeni </text> <panel tool_tip="Drag and drop items to your inventory to manage and use them"> <text name="inbox_inventory_placeholder"> @@ -26,12 +26,12 @@ <layout_panel name="outbox_layout_panel"> <panel label="" name="marketplace_outbox"> <string name="OutboxLabelWithArg"> - Satıcı Giden Kutusu ([NUM]) + Satıcı giden kutusu ([NUM]) </string> <string name="OutboxLabelNoArg"> - Satıcı Giden Kutusu + Satıcı giden kutusu </string> - <button label="Satıcı Giden Kutusu" name="outbox_btn"/> + <button label="Satıcı giden kutusu" name="outbox_btn"/> <button label="" name="outbox_sync_btn" tool_tip="Pazaryeri Vitrinime Gönder"/> <panel> <panel name="outbox_inventory_placeholder_panel"> diff --git a/indra/newview/skins/default/xui/tr/strings.xml b/indra/newview/skins/default/xui/tr/strings.xml index 543989804aab78d1d9fdf04118a1262cfdf8cc36..e1885413bbd1a7c92101015c279d1da78cf0294f 100644 --- a/indra/newview/skins/default/xui/tr/strings.xml +++ b/indra/newview/skins/default/xui/tr/strings.xml @@ -29,22 +29,22 @@ Önbellek temizleniyor... </string> <string name="StartupInitializingTextureCache"> - Doku ÖnbelleÄŸi BaÅŸlatılıyor... + Doku önbelleÄŸi baÅŸlatılıyor... </string> <string name="StartupInitializingVFS"> VFS BaÅŸlatılıyor... </string> <string name="StartupRequireDriverUpdate"> - Grafik BaÅŸlatma BaÅŸarılamadı. Lütfen Grafik Sürücünüzü GüncelleÅŸtirin! + Grafik baÅŸlatma baÅŸarılamadı. Lütfen grafik sürücünüzü güncelleÅŸtirin! </string> <string name="ProgressRestoring"> Geri yükleniyor... </string> <string name="ProgressChangingResolution"> - Çözünürlük DeÄŸiÅŸtiriliyor... + Çözünürlük deÄŸiÅŸtiriliyor... </string> <string name="Fullbright"> - Tam Parlak (Eski) + Tam parlak (eski) </string> <string name="LoginInProgress"> Oturum açılıyor. [APP_NAME] kilitlenmiÅŸ görünebilir. Lütfen bekleyin. @@ -77,10 +77,10 @@ Önbellek dosyaları doÄŸrulanıyor (60-90 saniye zaman alabilir)... </string> <string name="LoginProcessingResponse"> - Yanıt İşleniyor... + Yanıt iÅŸleniyor... </string> <string name="LoginInitializingWorld"> - Dünya BaÅŸlatılıyor... + Dünya baÅŸlatılıyor... </string> <string name="LoginDecodingImages"> Görüntülerin kodu çözülüyor... @@ -128,7 +128,7 @@ AÄŸ sunucusu tarafından döndürülen sertifika imzası doÄŸrulanamadı. Lütfen AÄŸ yöneticinize baÅŸvurun. </string> <string name="LoginFailedNoNetwork"> - AÄŸ Hatası: BaÄŸlantı kurulamadı, lütfen aÄŸ baÄŸlantınızı kontrol edin. + AÄŸ hatası: BaÄŸlantı kurulamadı, lütfen aÄŸ baÄŸlantınızı kontrol edin. </string> <string name="LoginFailed"> Oturum açılamadı. @@ -1273,6 +1273,9 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin. <string name="Marketplace Error Internal Import"> Hata: Bu öğede bir sorun var. Daha sonra tekrar deneyin. </string> + <string name="Open landmarks"> + Açık yer imleri + </string> <string name="no_transfer" value="(aktarım yok)"/> <string name="no_modify" value="(deÄŸiÅŸtirme yok)"/> <string name="no_copy" value="(kopya yok)"/> @@ -4251,8 +4254,8 @@ Kötüye Kullanımı Bildirme <string name="Female - Wow"> Kadın - Vay be </string> - <string name="/bow1"> - /selamlama1 + <string name="/bow"> + /selamlama </string> <string name="/clap"> /alkış @@ -4776,4 +4779,172 @@ Düzenleyici yolunu çift tırnakla çevrelemeyi deneyin. <string name="ParticleHiding"> Parçacıklar Gizleniyor </string> + <string name="Command_AboutLand_Label"> + Arazi hakkında + </string> + <string name="Command_Appearance_Label"> + Görünüm + </string> + <string name="Command_Avatar_Label"> + Avatar + </string> + <string name="Command_Build_Label"> + İnÅŸa Et + </string> + <string name="Command_Chat_Label"> + Sohbet + </string> + <string name="Command_Compass_Label"> + Pusula + </string> + <string name="Command_Destinations_Label"> + Hedef Konumlar + </string> + <string name="Command_Gestures_Label"> + Mimikler + </string> + <string name="Command_HowTo_Label"> + Nasıl yapılır + </string> + <string name="Command_Inventory_Label"> + Envanter + </string> + <string name="Command_Map_Label"> + Harita + </string> + <string name="Command_Marketplace_Label"> + Pazaryeri + </string> + <string name="Command_MiniMap_Label"> + Mini-harita + </string> + <string name="Command_Move_Label"> + Hareket Et + </string> + <string name="Command_People_Label"> + KiÅŸiler + </string> + <string name="Command_Picks_Label"> + Favoriler + </string> + <string name="Command_Places_Label"> + Yerler + </string> + <string name="Command_Preferences_Label"> + Tercihler + </string> + <string name="Command_Profile_Label"> + Profil + </string> + <string name="Command_Search_Label"> + Ara + </string> + <string name="Command_Snapshot_Label"> + Anlık görüntü + </string> + <string name="Command_Speak_Label"> + KonuÅŸ + </string> + <string name="Command_View_Label"> + Görünüm + </string> + <string name="Command_Voice_Label"> + Yakındaki ses + </string> + <string name="Command_AboutLand_Tooltip"> + Ziyaret ettiÄŸiniz araziyle ilgili bilgi + </string> + <string name="Command_Appearance_Tooltip"> + Avatarınızı deÄŸiÅŸtirin + </string> + <string name="Command_Avatar_Tooltip"> + Eksiksiz bir avatar seçin + </string> + <string name="Command_Build_Tooltip"> + Nesneler oluÅŸturma ve yüzeyi ÅŸekillendirme + </string> + <string name="Command_Chat_Tooltip"> + Metin kullanarak yakındaki kiÅŸilerle sohbet etmek + </string> + <string name="Command_Compass_Tooltip"> + Pusula + </string> + <string name="Command_Destinations_Tooltip"> + İlgilendiÄŸiniz hedef konumlar + </string> + <string name="Command_Gestures_Tooltip"> + Avatarınız için mimikler + </string> + <string name="Command_HowTo_Tooltip"> + Genel görevleri nasıl yapacağınız + </string> + <string name="Command_Inventory_Tooltip"> + EÅŸyalarınızı görüntüleyin ve kullanın + </string> + <string name="Command_Map_Tooltip"> + Dünya haritası + </string> + <string name="Command_Marketplace_Tooltip"> + AlışveriÅŸ yap + </string> + <string name="Command_MiniMap_Tooltip"> + Yakındaki kiÅŸileri göster + </string> + <string name="Command_Move_Tooltip"> + Avatarınızı hareket ettirmek + </string> + <string name="Command_People_Tooltip"> + ArkadaÅŸlar, gruplar ve yakındaki kiÅŸiler + </string> + <string name="Command_Picks_Tooltip"> + Profilinizde sık kullanılan olarak gösterilecek yerler + </string> + <string name="Command_Places_Tooltip"> + KaydettiÄŸiniz yerler + </string> + <string name="Command_Preferences_Tooltip"> + Tercihler + </string> + <string name="Command_Profile_Tooltip"> + Profilinizi düzenleyin veya görüntüleyin + </string> + <string name="Command_Search_Tooltip"> + Yerler, etkinlikler ve kiÅŸiler bulmak + </string> + <string name="Command_Snapshot_Tooltip"> + Resim çekin + </string> + <string name="Command_Speak_Tooltip"> + Mikrofonunuzu kullanarak yakındaki kiÅŸilerle konuÅŸun + </string> + <string name="Command_View_Tooltip"> + Kamera açısını deÄŸiÅŸtirmek + </string> + <string name="Command_Voice_Tooltip"> + Ses imkanına sahip yakındaki kiÅŸiler + </string> + <string name="Retain%"> + Koru % + </string> + <string name="Detail"> + Ayrıntı + </string> + <string name="Better Detail"> + Daha İyi Ayrıntı + </string> + <string name="Surface"> + Yüzey + </string> + <string name="Solid"> + Katı + </string> + <string name="Wrap"> + Sar + </string> + <string name="Preview"> + Önizleme + </string> + <string name="Normal"> + Normal + </string> </strings> diff --git a/indra/newview/skins/default/xui/zh/floater_about.xml b/indra/newview/skins/default/xui/zh/floater_about.xml index 0ac85d399e431eadb3df73d6c41bfeefcc21056d..7e19c124a18561dda3312da4cbfc4ffc31547cc2 100644 --- a/indra/newview/skins/default/xui/zh/floater_about.xml +++ b/indra/newview/skins/default/xui/zh/floater_about.xml @@ -10,7 +10,7 @@ <floater.string name="AboutPosition"> You are at [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1] in [REGION] located at <nolink>[HOSTNAME]</nolink> ([HOSTIP]) [SERVER_VERSION] -[[SERVER_RELEASE_NOTES_URL] [ReleaseNotes]] +[SERVER_RELEASE_NOTES_URL] </floater.string> <floater.string name="AboutSystem"> CPU:[CPU] diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_general.xml b/indra/newview/skins/default/xui/zh/panel_preferences_general.xml index 29f9599c97481c979dbff065a9a051a9943f14ec..6827fab6e68db9213c3fae8cce5e0851b4a811ed 100644 --- a/indra/newview/skins/default/xui/zh/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/zh/panel_preferences_general.xml @@ -5,15 +5,15 @@ </text> <combo_box name="language_combobox"> <combo_box.item label="系統é è¨" name="System Default Language"/> - <combo_box.item label="英語" name="English"/> - <combo_box.item label="Dansk (Danish) - Beta" name="Danish"/> - <combo_box.item label="Deutsch (German) - Beta" name="Deutsch(German)"/> - <combo_box.item label="Español (Spanish) - Beta" name="Spanish"/> - <combo_box.item label="Français (French) - Beta" name="French"/> - <combo_box.item label="Italiano (Italian) - Beta" name="Italian"/> - <combo_box.item label="Polski (Polish) - Beta" name="Polish"/> - <combo_box.item label="Português (Portuguese) - Beta" name="Portugese"/> - <combo_box.item label="日本語 (Japanese) - Beta" name="(Japanese)"/> + <combo_box.item label="English (英語)" name="English"/> + <combo_box.item label="Dansk (丹麥語) - Beta" name="Danish"/> + <combo_box.item label="Deutsch (德語) - Beta" name="Deutsch(German)"/> + <combo_box.item label="Español (西ç牙語) - Beta" name="Spanish"/> + <combo_box.item label="Français (法語) - Beta" name="French"/> + <combo_box.item label="Italiano (義大利語) - Beta" name="Italian"/> + <combo_box.item label="Polski (波è˜èªžï¼‰ - Beta" name="Polish"/> + <combo_box.item label="Português (葡è„牙語) - Beta" name="Portugese"/> + <combo_box.item label="日本語 (日語) - Beta" name="(Japanese)"/> </combo_box> <text name="language_textbox2"> ï¼ˆé ˆé‡æ–°å•Ÿå‹•) diff --git a/indra/newview/tests/lltranslate_test.cpp b/indra/newview/tests/lltranslate_test.cpp new file mode 100644 index 0000000000000000000000000000000000000000..10e37fae97f8096e59166f5911dc6615bac25fc1 --- /dev/null +++ b/indra/newview/tests/lltranslate_test.cpp @@ -0,0 +1,345 @@ +/** + * @file lltranslate_test.cpp + * + * $LicenseInfo:firstyear=2011&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2011, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#include "linden_common.h" + +#include "../test/lltut.h" +#include "../lltranslate.h" +#include "../llversioninfo.h" +#include "../llviewercontrol.h" + +#include "llbufferstream.h" +#include "lltrans.h" +#include "llui.h" + +static const std::string GOOGLE_VALID_RESPONSE1 = +"{\ + \"data\": {\ + \"translations\": [\ + {\ + \"translatedText\": \"привет\",\ + \"detectedSourceLanguage\": \"es\"\ + }\ + ]\ + }\ +}"; + +static const std::string GOOGLE_VALID_RESPONSE2 = +"{\ + \"data\": {\ + \"translations\": [\ + {\ + \"translatedText\": \"привет\"\ + }\ + ]\ + }\ +}\ +"; + +static const std::string GOOGLE_VALID_RESPONSE3 = +"{\ + \"error\": {\ + \"errors\": [\ + {\ + \"domain\": \"global\",\ + \"reason\": \"invalid\",\ + \"message\": \"Invalid Value\"\ + }\ + ],\ + \"code\": 400,\ + \"message\": \"Invalid Value\"\ + }\ +}"; + +static const std::string BING_VALID_RESPONSE1 = +"<string xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/\">Привет</string>"; + +static const std::string BING_VALID_RESPONSE2 = +"<html><body><h1>Argument Exception</h1><p>Method: Translate()</p><p>Parameter: </p>\ +<p>Message: 'from' must be a valid language</p><code></code>\ +<p>message id=3743.V2_Rest.Translate.58E8454F</p></body></html>"; + +static const std::string BING_VALID_RESPONSE3 = +"<html><body><h1>Argument Exception</h1><p>Method: Translate()</p>\ +<p>Parameter: appId</p><p>Message: Invalid appId
\nParameter name: appId</p>\ +<code></code><p>message id=3737.V2_Rest.Translate.56016759</p></body></html>"; + +namespace tut +{ + class translate_test + { + protected: + void test_translation( + LLTranslationAPIHandler& handler, + int status, const std::string& resp, + const std::string& exp_trans, const std::string& exp_lang, const std::string& exp_err) + { + std::string translation, detected_lang, err_msg; + bool rc = handler.parseResponse(status, resp, translation, detected_lang, err_msg); + ensure_equals("rc", rc, (status == 200)); + ensure_equals("err_msg", err_msg, exp_err); + ensure_equals("translation", translation, exp_trans); + ensure_equals("detected_lang", detected_lang, exp_lang); + } + + LLGoogleTranslationHandler mGoogle; + LLBingTranslationHandler mBing; + }; + + typedef test_group<translate_test> translate_test_group_t; + typedef translate_test_group_t::object translate_test_object_t; + tut::translate_test_group_t tut_translate("LLTranslate"); + + template<> template<> + void translate_test_object_t::test<1>() + { + test_translation(mGoogle, 200, GOOGLE_VALID_RESPONSE1, "привет", "es", ""); + } + + template<> template<> + void translate_test_object_t::test<2>() + { + test_translation(mGoogle, 200, GOOGLE_VALID_RESPONSE2, "привет", "", ""); + } + + template<> template<> + void translate_test_object_t::test<3>() + { + test_translation(mGoogle, 400, GOOGLE_VALID_RESPONSE3, "", "", "Invalid Value"); + } + + template<> template<> + void translate_test_object_t::test<4>() + { + test_translation(mGoogle, 400, + "", + "", "", "* Line 1, Column 1\n Syntax error: value, object or array expected.\n"); + } + + template<> template<> + void translate_test_object_t::test<5>() + { + test_translation(mGoogle, 400, + "[]", + "", "", ""); + } + + template<> template<> + void translate_test_object_t::test<6>() + { + test_translation(mGoogle, 400, + "{\"oops\": \"invalid\"}", + "", "", ""); + } + + template<> template<> + void translate_test_object_t::test<7>() + { + test_translation(mGoogle, 400, + "{\"data\": {}}", + "", "", ""); + } + + template<> template<> + void translate_test_object_t::test<8>() + { + test_translation(mGoogle, 400, + "{\"data\": { \"translations\": [ {} ] }}", + "", "", ""); + } + + template<> template<> + void translate_test_object_t::test<9>() + { + test_translation(mGoogle, 400, + "{\"data\": { \"translations\": [ { \"translatedTextZZZ\": \"привет\", \"detectedSourceLanguageZZZ\": \"es\" } ] }}", + "", "", ""); + } + + template<> template<> + void translate_test_object_t::test<10>() + { + test_translation(mBing, 200, BING_VALID_RESPONSE1, "Привет", "", ""); + } + + template<> template<> + void translate_test_object_t::test<11>() + { + test_translation(mBing, 400, BING_VALID_RESPONSE2, "", "", "'from' must be a valid language"); + } + + template<> template<> + void translate_test_object_t::test<12>() + { + test_translation(mBing, 400, BING_VALID_RESPONSE3, "", "", "Invalid appId\nParameter name: appId"); + } + + template<> template<> + void translate_test_object_t::test<13>() + { + test_translation(mBing, 200, + "Привет</string>", + "Привет", "", ""); + } + + template<> template<> + void translate_test_object_t::test<14>() + { + test_translation(mBing, 200, + "<string xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/\">Привет", + "Привет", "", ""); + } + + template<> template<> + void translate_test_object_t::test<15>() + { + test_translation(mBing, 200, + "Привет", + "Привет", "", ""); + } + + template<> template<> + void translate_test_object_t::test<16>() + { + test_translation(mBing, 400, + "Message: some error</p>", + "", "", "some error"); + } + + template<> template<> + void translate_test_object_t::test<17>() + { + test_translation(mBing, 400, + "Message: some error", + "", "", "some error"); + } + + template<> template<> + void translate_test_object_t::test<18>() + { + test_translation(mBing, 400, + "some error</p>", + "", "", "some error"); + } + + template<> template<> + void translate_test_object_t::test<19>() + { + test_translation(mBing, 400, + "some error", + "", "", "some error"); + } + + template<> template<> + void translate_test_object_t::test<20>() + { + std::string url; + mBing.getTranslateURL(url, "en", "es", "hi"); + ensure_equals("bing URL", url, + "http://api.microsofttranslator.com/v2/Http.svc/Translate?appId=dummy&text=hi&to=es&from=en"); + } + + template<> template<> + void translate_test_object_t::test<21>() + { + std::string url; + mBing.getTranslateURL(url, "", "es", "hi"); + ensure_equals("bing URL", url, + "http://api.microsofttranslator.com/v2/Http.svc/Translate?appId=dummy&text=hi&to=es"); + } + + template<> template<> + void translate_test_object_t::test<22>() + { + std::string url; + mGoogle.getTranslateURL(url, "en", "es", "hi"); + ensure_equals("google URL", url, + "https://www.googleapis.com/language/translate/v2?key=dummy&q=hi&target=es&source=en"); + } + + template<> template<> + void translate_test_object_t::test<23>() + { + std::string url; + mGoogle.getTranslateURL(url, "", "es", "hi"); + ensure_equals("google URL", url, + "https://www.googleapis.com/language/translate/v2?key=dummy&q=hi&target=es"); + } +} + +//== Misc stubs =============================================================== +LLControlGroup gSavedSettings("test"); + +std::string LLUI::getLanguage() { return "en"; } +std::string LLTrans::getString(const std::string &xml_desc, const LLStringUtil::format_map_t& args) { return "dummy"; } + +LLControlGroup::LLControlGroup(const std::string& name) : LLInstanceTracker<LLControlGroup, std::string>(name) {} +std::string LLControlGroup::getString(const std::string& name) { return "dummy"; } +LLControlGroup::~LLControlGroup() {} + +namespace boost { + void intrusive_ptr_add_ref(LLCurl::Responder*) {} + void intrusive_ptr_release(LLCurl::Responder*) {} +} + +LLCurl::Responder::Responder() {} +void LLCurl::Responder::completedHeader(U32, std::string const&, LLSD const&) {} +void LLCurl::Responder::completedRaw(U32, const std::string&, const LLChannelDescriptors&, const LLIOPipe::buffer_ptr_t& buffer) {} +void LLCurl::Responder::completed(U32, std::string const&, LLSD const&) {} +void LLCurl::Responder::error(U32, std::string const&) {} +void LLCurl::Responder::errorWithContent(U32, std::string const&, LLSD const&) {} +void LLCurl::Responder::result(LLSD const&) {} +LLCurl::Responder::~Responder() {} + +void LLHTTPClient::get(const std::string&, const LLSD&, ResponderPtr, const LLSD&, const F32) {} +void LLHTTPClient::get(const std::string&, boost::intrusive_ptr<LLCurl::Responder>, const LLSD&, const F32) {} + +LLBufferStream::LLBufferStream(const LLChannelDescriptors& channels, LLBufferArray* buffer) +: std::iostream(&mStreamBuf), mStreamBuf(channels, buffer) {} +LLBufferStream::~LLBufferStream() {} + +LLBufferStreamBuf::LLBufferStreamBuf(const LLChannelDescriptors&, LLBufferArray*) {} +#if( LL_WINDOWS || __GNUC__ > 2) +LLBufferStreamBuf::pos_type LLBufferStreamBuf::seekoff( + off_type off, + std::ios::seekdir way, + std::ios::openmode which) +#else +streampos LLBufferStreamBuf::seekoff( + streamoff off, + std::ios::seekdir way, + std::ios::openmode which) +#endif +{ return 0; } +int LLBufferStreamBuf::sync() {return 0;} +int LLBufferStreamBuf::underflow() {return 0;} +int LLBufferStreamBuf::overflow(int) {return 0;} +LLBufferStreamBuf::~LLBufferStreamBuf() {} + +S32 LLVersionInfo::getBuild() { return 0; } +const std::string& LLVersionInfo::getChannel() {static std::string dummy; return dummy;} +S32 LLVersionInfo::getMajor() { return 0; } +S32 LLVersionInfo::getMinor() { return 0; } +S32 LLVersionInfo::getPatch() { return 0; } diff --git a/indra/win_crash_logger/llcrashloggerwindows.cpp b/indra/win_crash_logger/llcrashloggerwindows.cpp old mode 100644 new mode 100755 index 170babbb985695ef22fcb6b78fd1b9e65003f9cf..36d988ead750b3d9689068d5592b9e380af5df39 --- a/indra/win_crash_logger/llcrashloggerwindows.cpp +++ b/indra/win_crash_logger/llcrashloggerwindows.cpp @@ -370,5 +370,6 @@ bool LLCrashLoggerWindows::cleanup() sleep_and_pump_messages(3); } PostQuitMessage(0); + commonCleanup(); return true; }