diff options
Diffstat (limited to 'indra')
457 files changed, 7345 insertions, 3488 deletions
diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt index ac7cc2cdac..9ead183a9e 100644 --- a/indra/llcommon/CMakeLists.txt +++ b/indra/llcommon/CMakeLists.txt @@ -50,7 +50,7 @@ set(llcommon_SOURCE_FILES lleventdispatcher.cpp lleventfilter.cpp llevents.cpp - llfasttimer.cpp + llfasttimer_class.cpp llfile.cpp llfindlocale.cpp llfixedbuffer.cpp @@ -250,7 +250,7 @@ list(APPEND llcommon_SOURCE_FILES ${llcommon_HEADER_FILES}) if(LLCOMMON_LINK_SHARED) add_library (llcommon SHARED ${llcommon_SOURCE_FILES}) - ll_stage_sharedlib(llcommon) + ll_stage_sharedlib(llcommon) else(LLCOMMON_LINK_SHARED) add_library (llcommon ${llcommon_SOURCE_FILES}) endif(LLCOMMON_LINK_SHARED) diff --git a/indra/llcommon/llallocator_heap_profile.cpp b/indra/llcommon/llallocator_heap_profile.cpp index 0a807702d0..e50d59fd4b 100644 --- a/indra/llcommon/llallocator_heap_profile.cpp +++ b/indra/llcommon/llallocator_heap_profile.cpp @@ -113,21 +113,24 @@ void LLAllocatorHeapProfile::parse(std::string const & prof_text) ++j; while(j != line_elems.end() && j->empty()) { ++j; } // skip any separator tokens - llassert_always(j != line_elems.end()); - ++j; // skip the '@' - - mLines.push_back(line(live_count, live_size, tot_count, tot_size)); - line & current_line = mLines.back(); - - for(; j != line_elems.end(); ++j) - { - if(!j->empty()) { - U32 marker = boost::lexical_cast<U32>(*j); - current_line.mTrace.push_back(marker); - } - } + llassert(j != line_elems.end()); + if (j != line_elems.end()) + { + ++j; // skip the '@' + + mLines.push_back(line(live_count, live_size, tot_count, tot_size)); + line & current_line = mLines.back(); + + for(; j != line_elems.end(); ++j) + { + if(!j->empty()) + { + U32 marker = boost::lexical_cast<U32>(*j); + current_line.mTrace.push_back(marker); + } + } + } } - // *TODO - parse MAPPED_LIBRARIES section here if we're ever interested in it } diff --git a/indra/llcommon/llchat.h b/indra/llcommon/llchat.h index 5af7991006..46456882ba 100644 --- a/indra/llcommon/llchat.h +++ b/indra/llcommon/llchat.h @@ -87,7 +87,8 @@ public: mTimeStr(), mPosAgent(), mURL(), - mChatStyle(CHAT_STYLE_NORMAL) + mChatStyle(CHAT_STYLE_NORMAL), + mSessionID() { } std::string mText; // UTF-8 line of text @@ -102,6 +103,7 @@ public: LLVector3 mPosAgent; std::string mURL; EChatStyle mChatStyle; + LLUUID mSessionID; }; #endif diff --git a/indra/llcommon/lldate.cpp b/indra/llcommon/lldate.cpp index ca7e471bf2..de7f2ead74 100644 --- a/indra/llcommon/lldate.cpp +++ b/indra/llcommon/lldate.cpp @@ -152,7 +152,8 @@ void LLDate::toStream(std::ostream& s) const s << '.' << std::setw(2) << (int)(exp_time.tm_usec / (LL_APR_USEC_PER_SEC / 100)); } - s << 'Z'; + s << 'Z' + << std::setfill(' '); } bool LLDate::split(S32 *year, S32 *month, S32 *day, S32 *hour, S32 *min, S32 *sec) const diff --git a/indra/llcommon/llerrorlegacy.h b/indra/llcommon/llerrorlegacy.h index 9920921a58..476d75380f 100644 --- a/indra/llcommon/llerrorlegacy.h +++ b/indra/llcommon/llerrorlegacy.h @@ -34,7 +34,7 @@ #ifndef LL_LLERRORLEGACY_H #define LL_LLERRORLEGACY_H - +#include "llpreprocessor.h" /* LEGACY -- DO NOT USE THIS STUFF ANYMORE @@ -107,7 +107,7 @@ const int LL_ERR_PRICE_MISMATCH = -23018; #define llwarning(msg, num) llwarns << "Warning # " << num << ": " << msg << llendl; -#define llassert_always(func) if (!(func)) llerrs << "ASSERT (" << #func << ")" << llendl; +#define llassert_always(func) if (LL_UNLIKELY(!(func))) llerrs << "ASSERT (" << #func << ")" << llendl; #ifdef SHOW_ASSERT #define llassert(func) llassert_always(func) diff --git a/indra/llcommon/llfasttimer.h b/indra/llcommon/llfasttimer.h index 8af79c90fd..48461df6ae 100644 --- a/indra/llcommon/llfasttimer.h +++ b/indra/llcommon/llfasttimer.h @@ -1,6 +1,6 @@ /** * @file llfasttimer.h - * @brief Declaration of a fast timer. + * @brief Inline implementations of fast timers. * * $LicenseInfo:firstyear=2004&license=viewergpl$ * @@ -33,13 +33,13 @@ #ifndef LL_FASTTIMER_H #define LL_FASTTIMER_H -#include "llinstancetracker.h" - -#define FAST_TIMER_ON 1 -#define TIME_FAST_TIMERS 0 +// pull in the actual class definition +#include "llfasttimer_class.h" #if LL_WINDOWS -#define LL_INLINE __forceinline +// +// Windows implementation of CPU clock +// // // NOTE: put back in when we aren't using platform sdk anymore @@ -52,21 +52,21 @@ //#undef _interlockedbittestandset //#undef _interlockedbittestandreset -//inline U32 get_cpu_clock_count_32() +//inline U32 LLFastTimer::getCPUClockCount32() //{ // U64 time_stamp = __rdtsc(); // return (U32)(time_stamp >> 8); //} // //// return full timer value, *not* shifted by 8 bits -//inline U64 get_cpu_clock_count_64() +//inline U64 LLFastTimer::getCPUClockCount64() //{ // return __rdtsc(); //} // shift off lower 8 bits for lower resolution but longer term timing // on 1Ghz machine, a 32-bit word will hold ~1000 seconds of timing -inline U32 get_cpu_clock_count_32() +inline U32 LLFastTimer::getCPUClockCount32() { U32 ret_val; __asm @@ -82,7 +82,7 @@ inline U32 get_cpu_clock_count_32() } // return full timer value, *not* shifted by 8 bits -inline U64 get_cpu_clock_count_64() +inline U64 LLFastTimer::getCPUClockCount64() { U64 ret_val; __asm @@ -96,269 +96,71 @@ inline U64 get_cpu_clock_count_64() } return ret_val; } -#else -#define LL_INLINE #endif -#if (LL_LINUX || LL_SOLARIS || LL_DARWIN) && (defined(__i386__) || defined(__amd64__)) -inline U32 get_cpu_clock_count_32() + +#if LL_LINUX || LL_SOLARIS +// +// Linux and Solaris implementation of CPU clock - all architectures. +// +// Try to use the MONOTONIC clock if available, this is a constant time counter +// with nanosecond resolution (but not necessarily accuracy) and attempts are made +// to synchronize this value between cores at kernel start. It should not be affected +// by CPU frequency. If not available use the REALTIME clock, but this may be affected by +// NTP adjustments or other user activity affecting the system time. +inline U64 LLFastTimer::getCPUClockCount64() +{ + struct timespec tp; + +#ifdef CLOCK_MONOTONIC // MONOTONIC supported at build-time? + if (-1 == clock_gettime(CLOCK_MONOTONIC,&tp)) // if MONOTONIC isn't supported at runtime then ouch, try REALTIME +#endif + clock_gettime(CLOCK_REALTIME,&tp); + + return (tp.tv_sec*LLFastTimer::sClockResolution)+tp.tv_nsec; +} + +inline U32 LLFastTimer::getCPUClockCount32() +{ + return (U32)(LLFastTimer::getCPUClockCount64() >> 8); +} +#endif // (LL_LINUX || LL_SOLARIS)) + + +#if (LL_DARWIN) && (defined(__i386__) || defined(__amd64__)) +// +// Mac x86 implementation of CPU clock +inline U32 LLFastTimer::getCPUClockCount32() { U64 x; __asm__ volatile (".byte 0x0f, 0x31": "=A"(x)); - return (U32)x >> 8; + return (U32)(x >> 8); } -inline U32 get_cpu_clock_count_64() +inline U64 LLFastTimer::getCPUClockCount64() { U64 x; __asm__ volatile (".byte 0x0f, 0x31": "=A"(x)); - return x >> 8; + return x; } #endif -#if ( LL_DARWIN && !(defined(__i386__) || defined(__amd64__))) || (LL_SOLARIS && defined(__sparc__)) + +#if ( LL_DARWIN && !(defined(__i386__) || defined(__amd64__))) // -// Mac PPC (deprecated) & Solaris SPARC implementation of CPU clock +// Mac PPC (deprecated) implementation of CPU clock // // Just use gettimeofday implementation for now -inline U32 get_cpu_clock_count_32() +inline U32 LLFastTimer::getCPUClockCount32() { - return (U32)get_clock_count(); + return (U32)(get_clock_count()>>8); } -inline U32 get_cpu_clock_count_64() +inline U64 LLFastTimer::getCPUClockCount64() { return get_clock_count(); } #endif -class LLMutex; - -#include <queue> -#include "llsd.h" - -class LL_COMMON_API LLFastTimer -{ -public: - - class NamedTimer; - - struct LL_COMMON_API FrameState - { - FrameState(NamedTimer* timerp); - - U32 mSelfTimeCounter; - U32 mCalls; - FrameState* mParent; // info for caller timer - FrameState* mLastCaller; // used to bootstrap tree construction - NamedTimer* mTimer; - U16 mActiveCount; // number of timers with this ID active on stack - bool mMoveUpTree; // needs to be moved up the tree of timers at the end of frame - }; - - // stores a "named" timer instance to be reused via multiple LLFastTimer stack instances - class LL_COMMON_API NamedTimer - : public LLInstanceTracker<NamedTimer> - { - friend class DeclareTimer; - public: - ~NamedTimer(); - - enum { HISTORY_NUM = 60 }; - - const std::string& getName() const { return mName; } - NamedTimer* getParent() const { return mParent; } - void setParent(NamedTimer* parent); - S32 getDepth(); - std::string getToolTip(S32 history_index = -1); - - typedef std::vector<NamedTimer*>::const_iterator child_const_iter; - child_const_iter beginChildren(); - child_const_iter endChildren(); - std::vector<NamedTimer*>& getChildren(); - - void setCollapsed(bool collapsed) { mCollapsed = collapsed; } - bool getCollapsed() const { return mCollapsed; } - - U32 getCountAverage() const { return mCountAverage; } - U32 getCallAverage() const { return mCallAverage; } - - U32 getHistoricalCount(S32 history_index = 0) const; - U32 getHistoricalCalls(S32 history_index = 0) const; - - static NamedTimer& getRootNamedTimer(); - - S32 getFrameStateIndex() const { return mFrameStateIndex; } - - FrameState& getFrameState() const; - - private: - friend class LLFastTimer; - friend class NamedTimerFactory; - - // - // methods - // - NamedTimer(const std::string& name); - // recursive call to gather total time from children - static void accumulateTimings(); - - // updates cumulative times and hierarchy, - // can be called multiple times in a frame, at any point - static void processTimes(); - - static void buildHierarchy(); - static void resetFrame(); - static void reset(); - - // - // members - // - S32 mFrameStateIndex; - - std::string mName; - - U32 mTotalTimeCounter; - - U32 mCountAverage; - U32 mCallAverage; - - U32* mCountHistory; - U32* mCallHistory; - - // tree structure - NamedTimer* mParent; // NamedTimer of caller(parent) - std::vector<NamedTimer*> mChildren; - bool mCollapsed; // don't show children - bool mNeedsSorting; // sort children whenever child added - }; - - // used to statically declare a new named timer - class LL_COMMON_API DeclareTimer - : public LLInstanceTracker<DeclareTimer> - { - friend class LLFastTimer; - public: - DeclareTimer(const std::string& name, bool open); - DeclareTimer(const std::string& name); - - static void updateCachedPointers(); - - private: - NamedTimer& mTimer; - FrameState* mFrameState; - }; - -public: - LLFastTimer(LLFastTimer::FrameState* state); - - LL_INLINE LLFastTimer(LLFastTimer::DeclareTimer& timer) - : mFrameState(timer.mFrameState) - { -#if TIME_FAST_TIMERS - U64 timer_start = get_cpu_clock_count_64(); -#endif -#if FAST_TIMER_ON - LLFastTimer::FrameState* frame_state = mFrameState; - mStartTime = get_cpu_clock_count_32(); - - frame_state->mActiveCount++; - frame_state->mCalls++; - // keep current parent as long as it is active when we are - frame_state->mMoveUpTree |= (frame_state->mParent->mActiveCount == 0); - - LLFastTimer::CurTimerData* cur_timer_data = &LLFastTimer::sCurTimerData; - mLastTimerData = *cur_timer_data; - cur_timer_data->mCurTimer = this; - cur_timer_data->mFrameState = frame_state; - cur_timer_data->mChildTime = 0; -#endif -#if TIME_FAST_TIMERS - U64 timer_end = get_cpu_clock_count_64(); - sTimerCycles += timer_end - timer_start; -#endif - } - - LL_INLINE ~LLFastTimer() - { -#if TIME_FAST_TIMERS - U64 timer_start = get_cpu_clock_count_64(); -#endif -#if FAST_TIMER_ON - LLFastTimer::FrameState* frame_state = mFrameState; - U32 total_time = get_cpu_clock_count_32() - mStartTime; - - frame_state->mSelfTimeCounter += total_time - LLFastTimer::sCurTimerData.mChildTime; - frame_state->mActiveCount--; - - // store last caller to bootstrap tree creation - // do this in the destructor in case of recursion to get topmost caller - frame_state->mLastCaller = mLastTimerData.mFrameState; - - // we are only tracking self time, so subtract our total time delta from parents - mLastTimerData.mChildTime += total_time; - - LLFastTimer::sCurTimerData = mLastTimerData; -#endif -#if TIME_FAST_TIMERS - U64 timer_end = get_cpu_clock_count_64(); - sTimerCycles += timer_end - timer_start; - sTimerCalls++; -#endif - } - -public: - static LLMutex* sLogLock; - static std::queue<LLSD> sLogQueue; - static BOOL sLog; - static BOOL sMetricLog; - static bool sPauseHistory; - static bool sResetHistory; - static U64 sTimerCycles; - static U32 sTimerCalls; - - typedef std::vector<FrameState> info_list_t; - static info_list_t& getFrameStateList(); - - - // call this once a frame to reset timers - static void nextFrame(); - - // dumps current cumulative frame stats to log - // call nextFrame() to reset timers - static void dumpCurTimes(); - - // call this to reset timer hierarchy, averages, etc. - static void reset(); - - static U64 countsPerSecond(); - static S32 getLastFrameIndex() { return sLastFrameIndex; } - static S32 getCurFrameIndex() { return sCurFrameIndex; } - - static void writeLog(std::ostream& os); - static const NamedTimer* getTimerByName(const std::string& name); - - struct CurTimerData - { - LLFastTimer* mCurTimer; - FrameState* mFrameState; - U32 mChildTime; - }; - static CurTimerData sCurTimerData; - -private: - static S32 sCurFrameIndex; - static S32 sLastFrameIndex; - static U64 sLastFrameTime; - static info_list_t* sTimerInfos; - - U32 mStartTime; - LLFastTimer::FrameState* mFrameState; - LLFastTimer::CurTimerData mLastTimerData; - -}; - -typedef class LLFastTimer LLFastTimer; - #endif // LL_LLFASTTIMER_H diff --git a/indra/llcommon/llfasttimer_class.cpp b/indra/llcommon/llfasttimer_class.cpp new file mode 100644 index 0000000000..fae0a66873 --- /dev/null +++ b/indra/llcommon/llfasttimer_class.cpp @@ -0,0 +1,751 @@ +/** + * @file llfasttimer_class.cpp + * @brief Implementation of the fast timer. + * + * $LicenseInfo:firstyear=2004&license=viewergpl$ + * + * Copyright (c) 2004-2007, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlife.com/developers/opensource/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlife.com/developers/opensource/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS."LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ +#include "linden_common.h" + +#include "llfasttimer.h" + +#include "llmemory.h" +#include "llprocessor.h" +#include "llsingleton.h" +#include "lltreeiterators.h" +#include "llsdserialize.h" + +#include <boost/bind.hpp> + +#if LL_WINDOWS +#elif LL_LINUX || LL_SOLARIS +#include <sys/time.h> +#include <sched.h> +#elif LL_DARWIN +#include <sys/time.h> +#include "lltimer.h" // get_clock_count() +#else +#error "architecture not supported" +#endif + +////////////////////////////////////////////////////////////////////////////// +// statics + +S32 LLFastTimer::sCurFrameIndex = -1; +S32 LLFastTimer::sLastFrameIndex = -1; +U64 LLFastTimer::sLastFrameTime = LLFastTimer::getCPUClockCount64(); +bool LLFastTimer::sPauseHistory = 0; +bool LLFastTimer::sResetHistory = 0; +LLFastTimer::CurTimerData LLFastTimer::sCurTimerData; +BOOL LLFastTimer::sLog = FALSE; +BOOL LLFastTimer::sMetricLog = FALSE; +LLMutex* LLFastTimer::sLogLock = NULL; +std::queue<LLSD> LLFastTimer::sLogQueue; + +#if LL_LINUX || LL_SOLARIS +U64 LLFastTimer::sClockResolution = 1000000000; // Nanosecond resolution +#else +U64 LLFastTimer::sClockResolution = 1000000; // Microsecond resolution +#endif + +std::vector<LLFastTimer::FrameState>* LLFastTimer::sTimerInfos = NULL; +U64 LLFastTimer::sTimerCycles = 0; +U32 LLFastTimer::sTimerCalls = 0; + + +// FIXME: move these declarations to the relevant modules + +// helper functions +typedef LLTreeDFSPostIter<LLFastTimer::NamedTimer, LLFastTimer::NamedTimer::child_const_iter> timer_tree_bottom_up_iterator_t; + +static timer_tree_bottom_up_iterator_t begin_timer_tree_bottom_up(LLFastTimer::NamedTimer& id) +{ + return timer_tree_bottom_up_iterator_t(&id, + boost::bind(boost::mem_fn(&LLFastTimer::NamedTimer::beginChildren), _1), + boost::bind(boost::mem_fn(&LLFastTimer::NamedTimer::endChildren), _1)); +} + +static timer_tree_bottom_up_iterator_t end_timer_tree_bottom_up() +{ + return timer_tree_bottom_up_iterator_t(); +} + +typedef LLTreeDFSIter<LLFastTimer::NamedTimer, LLFastTimer::NamedTimer::child_const_iter> timer_tree_dfs_iterator_t; + + +static timer_tree_dfs_iterator_t begin_timer_tree(LLFastTimer::NamedTimer& id) +{ + return timer_tree_dfs_iterator_t(&id, + boost::bind(boost::mem_fn(&LLFastTimer::NamedTimer::beginChildren), _1), + boost::bind(boost::mem_fn(&LLFastTimer::NamedTimer::endChildren), _1)); +} + +static timer_tree_dfs_iterator_t end_timer_tree() +{ + return timer_tree_dfs_iterator_t(); +} + + + +// factory class that creates NamedTimers via static DeclareTimer objects +class NamedTimerFactory : public LLSingleton<NamedTimerFactory> +{ +public: + NamedTimerFactory() + {} + + /*virtual */ void initSingleton() + { + mTimerRoot = new LLFastTimer::NamedTimer("root"); + + mActiveTimerRoot = new LLFastTimer::NamedTimer("Frame"); + mActiveTimerRoot->setCollapsed(false); + + mRootFrameState = new LLFastTimer::FrameState(mActiveTimerRoot); + mRootFrameState->mParent = &mTimerRoot->getFrameState(); + mActiveTimerRoot->setParent(mTimerRoot); + + mAppTimer = new LLFastTimer(mRootFrameState); + } + + ~NamedTimerFactory() + { + std::for_each(mTimers.begin(), mTimers.end(), DeletePairedPointer()); + + delete mAppTimer; + delete mActiveTimerRoot; + delete mTimerRoot; + delete mRootFrameState; + } + + LLFastTimer::NamedTimer& createNamedTimer(const std::string& name) + { + timer_map_t::iterator found_it = mTimers.find(name); + if (found_it != mTimers.end()) + { + return *found_it->second; + } + + LLFastTimer::NamedTimer* timer = new LLFastTimer::NamedTimer(name); + timer->setParent(mTimerRoot); + mTimers.insert(std::make_pair(name, timer)); + + return *timer; + } + + LLFastTimer::NamedTimer* getTimerByName(const std::string& name) + { + timer_map_t::iterator found_it = mTimers.find(name); + if (found_it != mTimers.end()) + { + return found_it->second; + } + return NULL; + } + + LLFastTimer::NamedTimer* getActiveRootTimer() { return mActiveTimerRoot; } + LLFastTimer::NamedTimer* getRootTimer() { return mTimerRoot; } + const LLFastTimer* getAppTimer() { return mAppTimer; } + LLFastTimer::FrameState& getRootFrameState() { return *mRootFrameState; } + + typedef std::map<std::string, LLFastTimer::NamedTimer*> timer_map_t; + timer_map_t::iterator beginTimers() { return mTimers.begin(); } + timer_map_t::iterator endTimers() { return mTimers.end(); } + S32 timerCount() { return mTimers.size(); } + +private: + timer_map_t mTimers; + + LLFastTimer::NamedTimer* mActiveTimerRoot; + LLFastTimer::NamedTimer* mTimerRoot; + LLFastTimer* mAppTimer; + LLFastTimer::FrameState* mRootFrameState; +}; + +void update_cached_pointers_if_changed() +{ + // detect when elements have moved and update cached pointers + static LLFastTimer::FrameState* sFirstTimerAddress = NULL; + if (&*(LLFastTimer::getFrameStateList().begin()) != sFirstTimerAddress) + { + LLFastTimer::DeclareTimer::updateCachedPointers(); + } + sFirstTimerAddress = &*(LLFastTimer::getFrameStateList().begin()); +} + +LLFastTimer::DeclareTimer::DeclareTimer(const std::string& name, bool open ) +: mTimer(NamedTimerFactory::instance().createNamedTimer(name)) +{ + mTimer.setCollapsed(!open); + mFrameState = &mTimer.getFrameState(); + update_cached_pointers_if_changed(); +} + +LLFastTimer::DeclareTimer::DeclareTimer(const std::string& name) +: mTimer(NamedTimerFactory::instance().createNamedTimer(name)) +{ + mFrameState = &mTimer.getFrameState(); + update_cached_pointers_if_changed(); +} + +// static +void LLFastTimer::DeclareTimer::updateCachedPointers() +{ + // propagate frame state pointers to timer declarations + for (DeclareTimer::instance_iter it = DeclareTimer::beginInstances(); + it != DeclareTimer::endInstances(); + ++it) + { + // update cached pointer + it->mFrameState = &it->mTimer.getFrameState(); + } +} + +//static +#if LL_LINUX || LL_SOLARIS || ( LL_DARWIN && !(defined(__i386__) || defined(__amd64__)) ) +U64 LLFastTimer::countsPerSecond() // counts per second for the *32-bit* timer +{ + return sClockResolution >> 8; +} +#else // windows or x86-mac +U64 LLFastTimer::countsPerSecond() // counts per second for the *32-bit* timer +{ + static U64 sCPUClockFrequency = U64(CProcessor().GetCPUFrequency(50)); + + // we drop the low-order byte in out timers, so report a lower frequency + return sCPUClockFrequency >> 8; +} +#endif + +LLFastTimer::FrameState::FrameState(LLFastTimer::NamedTimer* timerp) +: mActiveCount(0), + mCalls(0), + mSelfTimeCounter(0), + mParent(NULL), + mLastCaller(NULL), + mMoveUpTree(false), + mTimer(timerp) +{} + + +LLFastTimer::NamedTimer::NamedTimer(const std::string& name) +: mName(name), + mCollapsed(true), + mParent(NULL), + mTotalTimeCounter(0), + mCountAverage(0), + mCallAverage(0), + mNeedsSorting(false) +{ + info_list_t& frame_state_list = getFrameStateList(); + mFrameStateIndex = frame_state_list.size(); + getFrameStateList().push_back(FrameState(this)); + + mCountHistory = new U32[HISTORY_NUM]; + memset(mCountHistory, 0, sizeof(U32) * HISTORY_NUM); + mCallHistory = new U32[HISTORY_NUM]; + memset(mCallHistory, 0, sizeof(U32) * HISTORY_NUM); +} + +LLFastTimer::NamedTimer::~NamedTimer() +{ + delete[] mCountHistory; + delete[] mCallHistory; +} + +std::string LLFastTimer::NamedTimer::getToolTip(S32 history_idx) +{ + if (history_idx < 0) + { + // by default, show average number of calls + return llformat("%s (%d calls)", getName().c_str(), (S32)getCallAverage()); + } + else + { + return llformat("%s (%d calls)", getName().c_str(), (S32)getHistoricalCalls(history_idx)); + } +} + +void LLFastTimer::NamedTimer::setParent(NamedTimer* parent) +{ + llassert_always(parent != this); + llassert_always(parent != NULL); + + if (mParent) + { + // subtract our accumulated from previous parent + for (S32 i = 0; i < HISTORY_NUM; i++) + { + mParent->mCountHistory[i] -= mCountHistory[i]; + } + + // subtract average timing from previous parent + mParent->mCountAverage -= mCountAverage; + + std::vector<NamedTimer*>& children = mParent->getChildren(); + std::vector<NamedTimer*>::iterator found_it = std::find(children.begin(), children.end(), this); + if (found_it != children.end()) + { + children.erase(found_it); + } + } + + mParent = parent; + if (parent) + { + getFrameState().mParent = &parent->getFrameState(); + parent->getChildren().push_back(this); + parent->mNeedsSorting = true; + } +} + +S32 LLFastTimer::NamedTimer::getDepth() +{ + S32 depth = 0; + NamedTimer* timerp = mParent; + while(timerp) + { + depth++; + timerp = timerp->mParent; + } + return depth; +} + +// static +void LLFastTimer::NamedTimer::processTimes() +{ + if (sCurFrameIndex < 0) return; + + buildHierarchy(); + accumulateTimings(); +} + +// sort timer info structs by depth first traversal order +struct SortTimersDFS +{ + bool operator()(const LLFastTimer::FrameState& i1, const LLFastTimer::FrameState& i2) + { + return i1.mTimer->getFrameStateIndex() < i2.mTimer->getFrameStateIndex(); + } +}; + +// sort child timers by name +struct SortTimerByName +{ + bool operator()(const LLFastTimer::NamedTimer* i1, const LLFastTimer::NamedTimer* i2) + { + return i1->getName() < i2->getName(); + } +}; + +//static +void LLFastTimer::NamedTimer::buildHierarchy() +{ + if (sCurFrameIndex < 0 ) return; + + // set up initial tree + for (instance_iter it = NamedTimer::beginInstances(); + it != endInstances(); + ++it) + { + NamedTimer& timer = *it; + if (&timer == NamedTimerFactory::instance().getRootTimer()) continue; + + // bootstrap tree construction by attaching to last timer to be on stack + // when this timer was called + if (timer.getFrameState().mLastCaller && timer.mParent == NamedTimerFactory::instance().getRootTimer()) + { + timer.setParent(timer.getFrameState().mLastCaller->mTimer); + // no need to push up tree on first use, flag can be set spuriously + timer.getFrameState().mMoveUpTree = false; + } + } + + // bump timers up tree if they've been flagged as being in the wrong place + // do this in a bottom up order to promote descendants first before promoting ancestors + // this preserves partial order derived from current frame's observations + for(timer_tree_bottom_up_iterator_t it = begin_timer_tree_bottom_up(*NamedTimerFactory::instance().getRootTimer()); + it != end_timer_tree_bottom_up(); + ++it) + { + NamedTimer* timerp = *it; + // skip root timer + if (timerp == NamedTimerFactory::instance().getRootTimer()) continue; + + if (timerp->getFrameState().mMoveUpTree) + { + // since ancestors have already been visited, reparenting won't affect tree traversal + //step up tree, bringing our descendants with us + //llinfos << "Moving " << timerp->getName() << " from child of " << timerp->getParent()->getName() << + // " to child of " << timerp->getParent()->getParent()->getName() << llendl; + timerp->setParent(timerp->getParent()->getParent()); + timerp->getFrameState().mMoveUpTree = false; + + // don't bubble up any ancestors until descendants are done bubbling up + it.skipAncestors(); + } + } + + // sort timers by time last called, so call graph makes sense + for(timer_tree_dfs_iterator_t it = begin_timer_tree(*NamedTimerFactory::instance().getRootTimer()); + it != end_timer_tree(); + ++it) + { + NamedTimer* timerp = (*it); + if (timerp->mNeedsSorting) + { + std::sort(timerp->getChildren().begin(), timerp->getChildren().end(), SortTimerByName()); + } + timerp->mNeedsSorting = false; + } +} + +//static +void LLFastTimer::NamedTimer::accumulateTimings() +{ + U32 cur_time = getCPUClockCount32(); + + // walk up stack of active timers and accumulate current time while leaving timing structures active + LLFastTimer* cur_timer = sCurTimerData.mCurTimer; + // root defined by parent pointing to self + CurTimerData* cur_data = &sCurTimerData; + while(cur_timer->mLastTimerData.mCurTimer != cur_timer) + { + U32 cumulative_time_delta = cur_time - cur_timer->mStartTime; + U32 self_time_delta = cumulative_time_delta - cur_data->mChildTime; + cur_data->mChildTime = 0; + cur_timer->mFrameState->mSelfTimeCounter += self_time_delta; + cur_timer->mStartTime = cur_time; + + cur_data = &cur_timer->mLastTimerData; + cur_data->mChildTime += cumulative_time_delta; + + cur_timer = cur_timer->mLastTimerData.mCurTimer; + } + + // traverse tree in DFS post order, or bottom up + for(timer_tree_bottom_up_iterator_t it = begin_timer_tree_bottom_up(*NamedTimerFactory::instance().getActiveRootTimer()); + it != end_timer_tree_bottom_up(); + ++it) + { + NamedTimer* timerp = (*it); + timerp->mTotalTimeCounter = timerp->getFrameState().mSelfTimeCounter; + for (child_const_iter child_it = timerp->beginChildren(); child_it != timerp->endChildren(); ++child_it) + { + timerp->mTotalTimeCounter += (*child_it)->mTotalTimeCounter; + } + + S32 cur_frame = sCurFrameIndex; + if (cur_frame >= 0) + { + // update timer history + int hidx = cur_frame % HISTORY_NUM; + + timerp->mCountHistory[hidx] = timerp->mTotalTimeCounter; + timerp->mCountAverage = (timerp->mCountAverage * cur_frame + timerp->mTotalTimeCounter) / (cur_frame+1); + timerp->mCallHistory[hidx] = timerp->getFrameState().mCalls; + timerp->mCallAverage = (timerp->mCallAverage * cur_frame + timerp->getFrameState().mCalls) / (cur_frame+1); + } + } +} + +// static +void LLFastTimer::NamedTimer::resetFrame() +{ + if (sLog) + { //output current frame counts to performance log + F64 iclock_freq = 1000.0 / countsPerSecond(); // good place to calculate clock frequency + + F64 total_time = 0; + LLSD sd; + + for (NamedTimer::instance_iter it = NamedTimer::beginInstances(); + it != NamedTimer::endInstances(); + ++it) + { + NamedTimer& timer = *it; + FrameState& info = timer.getFrameState(); + sd[timer.getName()]["Time"] = (LLSD::Real) (info.mSelfTimeCounter*iclock_freq); + sd[timer.getName()]["Calls"] = (LLSD::Integer) info.mCalls; + + // computing total time here because getting the root timer's getCountHistory + // doesn't work correctly on the first frame + total_time = total_time + info.mSelfTimeCounter * iclock_freq; + } + + sd["Total"]["Time"] = (LLSD::Real) total_time; + sd["Total"]["Calls"] = (LLSD::Integer) 1; + + { + LLMutexLock lock(sLogLock); + sLogQueue.push(sd); + } + } + + + // tag timers by position in depth first traversal of tree + S32 index = 0; + for(timer_tree_dfs_iterator_t it = begin_timer_tree(*NamedTimerFactory::instance().getRootTimer()); + it != end_timer_tree(); + ++it) + { + NamedTimer* timerp = (*it); + + timerp->mFrameStateIndex = index; + index++; + + llassert_always(timerp->mFrameStateIndex < (S32)getFrameStateList().size()); + } + + // sort timers by dfs traversal order to improve cache coherency + std::sort(getFrameStateList().begin(), getFrameStateList().end(), SortTimersDFS()); + + // update pointers into framestatelist now that we've sorted it + DeclareTimer::updateCachedPointers(); + + // reset for next frame + for (NamedTimer::instance_iter it = NamedTimer::beginInstances(); + it != NamedTimer::endInstances(); + ++it) + { + NamedTimer& timer = *it; + + FrameState& info = timer.getFrameState(); + info.mSelfTimeCounter = 0; + info.mCalls = 0; + info.mLastCaller = NULL; + info.mMoveUpTree = false; + // update parent pointer in timer state struct + if (timer.mParent) + { + info.mParent = &timer.mParent->getFrameState(); + } + } + + //sTimerCycles = 0; + //sTimerCalls = 0; +} + +//static +void LLFastTimer::NamedTimer::reset() +{ + resetFrame(); // reset frame data + + // walk up stack of active timers and reset start times to current time + // effectively zeroing out any accumulated time + U32 cur_time = getCPUClockCount32(); + + // root defined by parent pointing to self + CurTimerData* cur_data = &sCurTimerData; + LLFastTimer* cur_timer = cur_data->mCurTimer; + while(cur_timer->mLastTimerData.mCurTimer != cur_timer) + { + cur_timer->mStartTime = cur_time; + cur_data->mChildTime = 0; + + cur_data = &cur_timer->mLastTimerData; + cur_timer = cur_data->mCurTimer; + } + + // reset all history + for (NamedTimer::instance_iter it = NamedTimer::beginInstances(); + it != NamedTimer::endInstances(); + ++it) + { + NamedTimer& timer = *it; + if (&timer != NamedTimerFactory::instance().getRootTimer()) + { + timer.setParent(NamedTimerFactory::instance().getRootTimer()); + } + + timer.mCountAverage = 0; + timer.mCallAverage = 0; + memset(timer.mCountHistory, 0, sizeof(U32) * HISTORY_NUM); + memset(timer.mCallHistory, 0, sizeof(U32) * HISTORY_NUM); + } + + sLastFrameIndex = 0; + sCurFrameIndex = 0; +} + +//static +LLFastTimer::info_list_t& LLFastTimer::getFrameStateList() +{ + if (!sTimerInfos) + { + sTimerInfos = new info_list_t(); + } + return *sTimerInfos; +} + + +U32 LLFastTimer::NamedTimer::getHistoricalCount(S32 history_index) const +{ + S32 history_idx = (getLastFrameIndex() + history_index) % LLFastTimer::NamedTimer::HISTORY_NUM; + return mCountHistory[history_idx]; +} + +U32 LLFastTimer::NamedTimer::getHistoricalCalls(S32 history_index ) const +{ + S32 history_idx = (getLastFrameIndex() + history_index) % LLFastTimer::NamedTimer::HISTORY_NUM; + return mCallHistory[history_idx]; +} + +LLFastTimer::FrameState& LLFastTimer::NamedTimer::getFrameState() const +{ + llassert_always(mFrameStateIndex >= 0); + if (this == NamedTimerFactory::instance().getActiveRootTimer()) + { + return NamedTimerFactory::instance().getRootFrameState(); + } + return getFrameStateList()[mFrameStateIndex]; +} + +// static +LLFastTimer::NamedTimer& LLFastTimer::NamedTimer::getRootNamedTimer() +{ + return *NamedTimerFactory::instance().getActiveRootTimer(); +} + +std::vector<LLFastTimer::NamedTimer*>::const_iterator LLFastTimer::NamedTimer::beginChildren() +{ + return mChildren.begin(); +} + +std::vector<LLFastTimer::NamedTimer*>::const_iterator LLFastTimer::NamedTimer::endChildren() +{ + return mChildren.end(); +} + +std::vector<LLFastTimer::NamedTimer*>& LLFastTimer::NamedTimer::getChildren() +{ + return mChildren; +} + +//static +void LLFastTimer::nextFrame() +{ + countsPerSecond(); // good place to calculate clock frequency + U64 frame_time = getCPUClockCount64(); + if ((frame_time - sLastFrameTime) >> 8 > 0xffffffff) + { + llinfos << "Slow frame, fast timers inaccurate" << llendl; + } + + if (sPauseHistory) + { + sResetHistory = true; + } + else if (sResetHistory) + { + sLastFrameIndex = 0; + sCurFrameIndex = 0; + sResetHistory = false; + } + else // not paused + { + NamedTimer::processTimes(); + sLastFrameIndex = sCurFrameIndex++; + } + + // get ready for next frame + NamedTimer::resetFrame(); + sLastFrameTime = frame_time; +} + +//static +void LLFastTimer::dumpCurTimes() +{ + // accumulate timings, etc. + NamedTimer::processTimes(); + + F64 clock_freq = (F64)countsPerSecond(); + F64 iclock_freq = 1000.0 / clock_freq; // clock_ticks -> milliseconds + + // walk over timers in depth order and output timings + for(timer_tree_dfs_iterator_t it = begin_timer_tree(*NamedTimerFactory::instance().getRootTimer()); + it != end_timer_tree(); + ++it) + { + NamedTimer* timerp = (*it); + F64 total_time_ms = ((F64)timerp->getHistoricalCount(0) * iclock_freq); + // Don't bother with really brief times, keep output concise + if (total_time_ms < 0.1) continue; + + std::ostringstream out_str; + for (S32 i = 0; i < timerp->getDepth(); i++) + { + out_str << "\t"; + } + + + out_str << timerp->getName() << " " + << std::setprecision(3) << total_time_ms << " ms, " + << timerp->getHistoricalCalls(0) << " calls"; + + llinfos << out_str.str() << llendl; + } +} + +//static +void LLFastTimer::reset() +{ + NamedTimer::reset(); +} + + +//static +void LLFastTimer::writeLog(std::ostream& os) +{ + while (!sLogQueue.empty()) + { + LLSD& sd = sLogQueue.front(); + LLSDSerialize::toXML(sd, os); + LLMutexLock lock(sLogLock); + sLogQueue.pop(); + } +} + +//static +const LLFastTimer::NamedTimer* LLFastTimer::getTimerByName(const std::string& name) +{ + return NamedTimerFactory::instance().getTimerByName(name); +} + +LLFastTimer::LLFastTimer(LLFastTimer::FrameState* state) +: mFrameState(state) +{ + U32 start_time = getCPUClockCount32(); + mStartTime = start_time; + mFrameState->mActiveCount++; + LLFastTimer::sCurTimerData.mCurTimer = this; + LLFastTimer::sCurTimerData.mFrameState = mFrameState; + LLFastTimer::sCurTimerData.mChildTime = 0; + mLastTimerData = LLFastTimer::sCurTimerData; +} + + +////////////////////////////////////////////////////////////////////////////// diff --git a/indra/llcommon/llfasttimer_class.h b/indra/llcommon/llfasttimer_class.h new file mode 100644 index 0000000000..ddb1a74793 --- /dev/null +++ b/indra/llcommon/llfasttimer_class.h @@ -0,0 +1,272 @@ +/** + * @file llfasttimer_class.h + * @brief Declaration of a fast timer. + * + * $LicenseInfo:firstyear=2004&license=viewergpl$ + * + * Copyright (c) 2004-2009, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ + +#ifndef LL_FASTTIMER_CLASS_H +#define LL_FASTTIMER_CLASS_H + +#include "llinstancetracker.h" + +#define FAST_TIMER_ON 1 +#define TIME_FAST_TIMERS 0 + +class LLMutex; + +#include <queue> +#include "llsd.h" + +class LL_COMMON_API LLFastTimer +{ +public: + class NamedTimer; + + struct LL_COMMON_API FrameState + { + FrameState(NamedTimer* timerp); + + U32 mSelfTimeCounter; + U32 mCalls; + FrameState* mParent; // info for caller timer + FrameState* mLastCaller; // used to bootstrap tree construction + NamedTimer* mTimer; + U16 mActiveCount; // number of timers with this ID active on stack + bool mMoveUpTree; // needs to be moved up the tree of timers at the end of frame + }; + + // stores a "named" timer instance to be reused via multiple LLFastTimer stack instances + class LL_COMMON_API NamedTimer + : public LLInstanceTracker<NamedTimer> + { + friend class DeclareTimer; + public: + ~NamedTimer(); + + enum { HISTORY_NUM = 60 }; + + const std::string& getName() const { return mName; } + NamedTimer* getParent() const { return mParent; } + void setParent(NamedTimer* parent); + S32 getDepth(); + std::string getToolTip(S32 history_index = -1); + + typedef std::vector<NamedTimer*>::const_iterator child_const_iter; + child_const_iter beginChildren(); + child_const_iter endChildren(); + std::vector<NamedTimer*>& getChildren(); + + void setCollapsed(bool collapsed) { mCollapsed = collapsed; } + bool getCollapsed() const { return mCollapsed; } + + U32 getCountAverage() const { return mCountAverage; } + U32 getCallAverage() const { return mCallAverage; } + + U32 getHistoricalCount(S32 history_index = 0) const; + U32 getHistoricalCalls(S32 history_index = 0) const; + + static NamedTimer& getRootNamedTimer(); + + S32 getFrameStateIndex() const { return mFrameStateIndex; } + + FrameState& getFrameState() const; + + private: + friend class LLFastTimer; + friend class NamedTimerFactory; + + // + // methods + // + NamedTimer(const std::string& name); + // recursive call to gather total time from children + static void accumulateTimings(); + + // updates cumulative times and hierarchy, + // can be called multiple times in a frame, at any point + static void processTimes(); + + static void buildHierarchy(); + static void resetFrame(); + static void reset(); + + // + // members + // + S32 mFrameStateIndex; + + std::string mName; + + U32 mTotalTimeCounter; + + U32 mCountAverage; + U32 mCallAverage; + + U32* mCountHistory; + U32* mCallHistory; + + // tree structure + NamedTimer* mParent; // NamedTimer of caller(parent) + std::vector<NamedTimer*> mChildren; + bool mCollapsed; // don't show children + bool mNeedsSorting; // sort children whenever child added + }; + + // used to statically declare a new named timer + class LL_COMMON_API DeclareTimer + : public LLInstanceTracker<DeclareTimer> + { + friend class LLFastTimer; + public: + DeclareTimer(const std::string& name, bool open); + DeclareTimer(const std::string& name); + + static void updateCachedPointers(); + + private: + NamedTimer& mTimer; + FrameState* mFrameState; + }; + +public: + LLFastTimer(LLFastTimer::FrameState* state); + + LL_FORCE_INLINE LLFastTimer(LLFastTimer::DeclareTimer& timer) + : mFrameState(timer.mFrameState) + { +#if TIME_FAST_TIMERS + U64 timer_start = getCPUClockCount64(); +#endif +#if FAST_TIMER_ON + LLFastTimer::FrameState* frame_state = mFrameState; + mStartTime = getCPUClockCount32(); + + frame_state->mActiveCount++; + frame_state->mCalls++; + // keep current parent as long as it is active when we are + frame_state->mMoveUpTree |= (frame_state->mParent->mActiveCount == 0); + + LLFastTimer::CurTimerData* cur_timer_data = &LLFastTimer::sCurTimerData; + mLastTimerData = *cur_timer_data; + cur_timer_data->mCurTimer = this; + cur_timer_data->mFrameState = frame_state; + cur_timer_data->mChildTime = 0; +#endif +#if TIME_FAST_TIMERS + U64 timer_end = getCPUClockCount64(); + sTimerCycles += timer_end - timer_start; +#endif + } + + LL_FORCE_INLINE ~LLFastTimer() + { +#if TIME_FAST_TIMERS + U64 timer_start = getCPUClockCount64(); +#endif +#if FAST_TIMER_ON + LLFastTimer::FrameState* frame_state = mFrameState; + U32 total_time = getCPUClockCount32() - mStartTime; + + frame_state->mSelfTimeCounter += total_time - LLFastTimer::sCurTimerData.mChildTime; + frame_state->mActiveCount--; + + // store last caller to bootstrap tree creation + // do this in the destructor in case of recursion to get topmost caller + frame_state->mLastCaller = mLastTimerData.mFrameState; + + // we are only tracking self time, so subtract our total time delta from parents + mLastTimerData.mChildTime += total_time; + + LLFastTimer::sCurTimerData = mLastTimerData; +#endif +#if TIME_FAST_TIMERS + U64 timer_end = getCPUClockCount64(); + sTimerCycles += timer_end - timer_start; + sTimerCalls++; +#endif + } + +public: + static LLMutex* sLogLock; + static std::queue<LLSD> sLogQueue; + static BOOL sLog; + static BOOL sMetricLog; + static bool sPauseHistory; + static bool sResetHistory; + static U64 sTimerCycles; + static U32 sTimerCalls; + + typedef std::vector<FrameState> info_list_t; + static info_list_t& getFrameStateList(); + + + // call this once a frame to reset timers + static void nextFrame(); + + // dumps current cumulative frame stats to log + // call nextFrame() to reset timers + static void dumpCurTimes(); + + // call this to reset timer hierarchy, averages, etc. + static void reset(); + + static U64 countsPerSecond(); + static S32 getLastFrameIndex() { return sLastFrameIndex; } + static S32 getCurFrameIndex() { return sCurFrameIndex; } + + static void writeLog(std::ostream& os); + static const NamedTimer* getTimerByName(const std::string& name); + + struct CurTimerData + { + LLFastTimer* mCurTimer; + FrameState* mFrameState; + U32 mChildTime; + }; + static CurTimerData sCurTimerData; + +private: + static U32 getCPUClockCount32(); + static U64 getCPUClockCount64(); + static U64 sClockResolution; + + static S32 sCurFrameIndex; + static S32 sLastFrameIndex; + static U64 sLastFrameTime; + static info_list_t* sTimerInfos; + + U32 mStartTime; + LLFastTimer::FrameState* mFrameState; + LLFastTimer::CurTimerData mLastTimerData; + +}; + +typedef class LLFastTimer LLFastTimer; + +#endif // LL_LLFASTTIMER_CLASS_H diff --git a/indra/llcommon/llpreprocessor.h b/indra/llcommon/llpreprocessor.h index 5eefa6a16b..1c1503ca7b 100644 --- a/indra/llcommon/llpreprocessor.h +++ b/indra/llcommon/llpreprocessor.h @@ -55,13 +55,28 @@ #define LL_BIG_ENDIAN 1 #endif + // Per-compiler switches + #ifdef __GNUC__ #define LL_FORCE_INLINE inline __attribute__((always_inline)) #else #define LL_FORCE_INLINE __forceinline #endif +// Mark-up expressions with branch prediction hints. Do NOT use +// this with reckless abandon - it's an obfuscating micro-optimization +// outside of inner loops or other places where you are OVERWHELMINGLY +// sure which way an expression almost-always evaluates. +#if __GNUC__ >= 3 +# define LL_LIKELY(EXPR) __builtin_expect (!!(EXPR), true) +# define LL_UNLIKELY(EXPR) __builtin_expect (!!(EXPR), false) +#else +# define LL_LIKELY(EXPR) (EXPR) +# define LL_UNLIKELY(EXPR) (EXPR) +#endif + + // Figure out differences between compilers #if defined(__GNUC__) #define GCC_VERSION (__GNUC__ * 10000 \ diff --git a/indra/llcommon/llprocessor.cpp b/indra/llcommon/llprocessor.cpp index 469e544b16..8a4a4a8f9a 100644 --- a/indra/llcommon/llprocessor.cpp +++ b/indra/llcommon/llprocessor.cpp @@ -281,7 +281,8 @@ bool CProcessor::AnalyzeIntelProcessor() // already have a string here from GetCPUInfo(). JC if ( CPUInfo.uiBrandID < LL_ARRAY_SIZE(INTEL_BRAND) ) { - strcpy(CPUInfo.strBrandID, INTEL_BRAND[CPUInfo.uiBrandID]); + strncpy(CPUInfo.strBrandID, INTEL_BRAND[CPUInfo.uiBrandID], sizeof(CPUInfo.strBrandID)-1); + CPUInfo.strBrandID[sizeof(CPUInfo.strBrandID)-1]='\0'; if (CPUInfo.uiBrandID == 3 && CPUInfo.uiModel == 6) { diff --git a/indra/llcommon/llstring.h b/indra/llcommon/llstring.h index 31e70e0fe4..62cedcde4e 100644 --- a/indra/llcommon/llstring.h +++ b/indra/llcommon/llstring.h @@ -882,6 +882,7 @@ void LLStringUtilBase<T>::addCRLF(std::basic_string<T>& string) } string.assign(t, size); + delete[] t; } } diff --git a/indra/llcommon/lluri.cpp b/indra/llcommon/lluri.cpp index b28657e2f4..0e8f3f0f73 100644 --- a/indra/llcommon/lluri.cpp +++ b/indra/llcommon/lluri.cpp @@ -46,10 +46,21 @@ void encode_character(std::ostream& ostr, std::string::value_type val) { - ostr << "%" << std::uppercase << std::hex << std::setw(2) << std::setfill('0') + ostr << "%" + + << std::uppercase + << std::hex + << std::setw(2) + << std::setfill('0') + // VWR-4010 Cannot cast to U32 because sign-extension on // chars > 128 will result in FFFFFFC3 instead of F3. - << static_cast<S32>(static_cast<U8>(val)); + << static_cast<S32>(static_cast<U8>(val)) + + // reset stream state + << std::nouppercase + << std::dec + << std::setfill(' '); } // static diff --git a/indra/llmath/llinterp.h b/indra/llmath/llinterp.h index 36ca2e9865..88af004170 100644 --- a/indra/llmath/llinterp.h +++ b/indra/llmath/llinterp.h @@ -54,7 +54,7 @@ template <typename Type> class LLInterp { public: - LLInterp(); + LLInterp(); virtual ~LLInterp() {} virtual void start(); @@ -151,6 +151,7 @@ protected: template <typename Type> LLInterp<Type>::LLInterp() +: mStartVal(Type()), mEndVal(Type()), mCurVal(Type()) { mStartTime = 0.f; mEndTime = 1.f; diff --git a/indra/llmath/lloctree.h b/indra/llmath/lloctree.h index ba8776690a..2f34fb1bb0 100644 --- a/indra/llmath/lloctree.h +++ b/indra/llmath/lloctree.h @@ -183,7 +183,6 @@ public: { mMax.mdV[i] = mCenter.mdV[i] + mSize.mdV[i]; mMin.mdV[i] = mCenter.mdV[i] - mSize.mdV[i]; - mCenter.mdV[i] = mCenter.mdV[i]; } } diff --git a/indra/llmessage/llcachename.cpp b/indra/llmessage/llcachename.cpp index 3078d80552..dbec2816c8 100644 --- a/indra/llmessage/llcachename.cpp +++ b/indra/llmessage/llcachename.cpp @@ -125,7 +125,7 @@ private: }; ReplySender::ReplySender(LLMessageSystem* msg) - : mMsg(msg), mPending(false) + : mMsg(msg), mPending(false), mCurrIsGroup(false) { } ReplySender::~ReplySender() diff --git a/indra/llmessage/llmessagetemplateparser.cpp b/indra/llmessage/llmessagetemplateparser.cpp index 283547ea00..2ddbf3e0df 100644 --- a/indra/llmessage/llmessagetemplateparser.cpp +++ b/indra/llmessage/llmessagetemplateparser.cpp @@ -403,6 +403,10 @@ LLTemplateParser::LLTemplateParser(LLTemplateTokenizer & tokens): { mMessages.push_back(templatep); } + else + { + delete templatep; + } } if(!tokens.wantEOF()) diff --git a/indra/llmessage/llnamevalue.cpp b/indra/llmessage/llnamevalue.cpp index 01e922eba2..43429b0ab3 100644 --- a/indra/llmessage/llnamevalue.cpp +++ b/indra/llmessage/llnamevalue.cpp @@ -963,6 +963,7 @@ std::ostream& operator<<(std::ostream& s, const LLNameValue &a) U64_to_str(*a.mNameValueReference.u64, u64_string, sizeof(u64_string)); s << u64_string; } + break; case NVT_VEC3: s << *(a.mNameValueReference.vec3); break; diff --git a/indra/llmessage/lltemplatemessagebuilder.cpp b/indra/llmessage/lltemplatemessagebuilder.cpp index 6400310c46..55379fc6fd 100644 --- a/indra/llmessage/lltemplatemessagebuilder.cpp +++ b/indra/llmessage/lltemplatemessagebuilder.cpp @@ -737,10 +737,14 @@ static S32 buildBlock(U8* buffer, S32 buffer_size, const LLMessageBlock* templat } --block_count; - ++block_iter; + if (block_iter != message_data->mMemberBlocks.end()) { - mbci = block_iter->second; + ++block_iter; + if (block_iter != message_data->mMemberBlocks.end()) + { + mbci = block_iter->second; + } } } diff --git a/indra/llmessage/lltransfermanager.cpp b/indra/llmessage/lltransfermanager.cpp index d67911e8e2..0a71ad95f2 100644 --- a/indra/llmessage/lltransfermanager.cpp +++ b/indra/llmessage/lltransfermanager.cpp @@ -855,6 +855,7 @@ void LLTransferSourceChannel::updateTransfers() break; case LLTS_ERROR: llwarns << "Error in transfer dataCallback!" << llendl; + // fall through case LLTS_DONE: // We need to clean up this transfer source. //llinfos << "LLTransferSourceChannel::updateTransfers() " << tsp->getID() << " done" << llendl; diff --git a/indra/llplugin/llpluginprocesschild.cpp b/indra/llplugin/llpluginprocesschild.cpp index 07fc82c770..11c924cadf 100644 --- a/indra/llplugin/llpluginprocesschild.cpp +++ b/indra/llplugin/llpluginprocesschild.cpp @@ -359,6 +359,7 @@ void LLPluginProcessChild::receiveMessageRaw(const std::string &message) else { LL_WARNS("Plugin") << "Couldn't create a shared memory segment!" << LL_ENDL; + delete region; } } diff --git a/indra/llplugin/slplugin/slplugin.cpp b/indra/llplugin/slplugin/slplugin.cpp index 23dc532ba5..77240ce546 100644 --- a/indra/llplugin/slplugin/slplugin.cpp +++ b/indra/llplugin/slplugin/slplugin.cpp @@ -156,7 +156,7 @@ bool checkExceptionHandler() if (prev_filter == NULL) { ok = FALSE; - if (myWin32ExceptionHandler == NULL) + if (NULL == myWin32ExceptionHandler) { LL_WARNS("AppInit") << "Exception handler uninitialized." << LL_ENDL; } diff --git a/indra/llprimitive/llprimitive.cpp b/indra/llprimitive/llprimitive.cpp index 5ad758072c..b75d1b0f67 100644 --- a/indra/llprimitive/llprimitive.cpp +++ b/indra/llprimitive/llprimitive.cpp @@ -154,6 +154,7 @@ bool LLPrimitive::cleanupVolumeManager() //=============================================================== LLPrimitive::LLPrimitive() : mTextureList(), + mNumTEs(0), mMiscFlags(0) { mPrimitiveCode = 0; diff --git a/indra/llrender/llfontbitmapcache.cpp b/indra/llrender/llfontbitmapcache.cpp index f01878642a..fa231c9e6a 100644 --- a/indra/llrender/llfontbitmapcache.cpp +++ b/indra/llrender/llfontbitmapcache.cpp @@ -64,7 +64,7 @@ void LLFontBitmapCache::init(S32 num_components, LLImageRaw *LLFontBitmapCache::getImageRaw(U32 bitmap_num) const { - if ((bitmap_num < 0) || (bitmap_num >= mImageRawVec.size())) + if (bitmap_num >= mImageRawVec.size()) return NULL; return mImageRawVec[bitmap_num]; @@ -72,7 +72,7 @@ LLImageRaw *LLFontBitmapCache::getImageRaw(U32 bitmap_num) const LLImageGL *LLFontBitmapCache::getImageGL(U32 bitmap_num) const { - if ((bitmap_num < 0) || (bitmap_num >= mImageGLVec.size())) + if (bitmap_num >= mImageGLVec.size()) return NULL; return mImageGLVec[bitmap_num]; diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp index cd493481d5..8bcc4723ae 100644 --- a/indra/llrender/llimagegl.cpp +++ b/indra/llrender/llimagegl.cpp @@ -436,6 +436,8 @@ void LLImageGL::init(BOOL usemipmaps) mLastBindTime = 0.f; mPickMask = NULL; + mPickMaskWidth = 0; + mPickMaskHeight = 0; mUseMipMaps = usemipmaps; mHasExplicitFormat = FALSE; mAutoGenMips = FALSE; @@ -527,7 +529,12 @@ void LLImageGL::setSize(S32 width, S32 height, S32 ncomponents) // llwarns << "Setting Size of LLImageGL with existing mTexName = " << mTexName << llendl; destroyGLTexture(); } - + + // pickmask validity depends on old image size, delete it + delete [] mPickMask; + mPickMask = NULL; + mPickMaskWidth = mPickMaskHeight = 0; + mWidth = width; mHeight = height; mComponents = ncomponents; @@ -1675,12 +1682,14 @@ void LLImageGL::updatePickMask(S32 width, S32 height, const U8* data_in) return ; } + delete [] mPickMask; + mPickMask = NULL; + mPickMaskWidth = mPickMaskHeight = 0; + if (mFormatType != GL_UNSIGNED_BYTE || mFormatPrimary != GL_RGBA) { //cannot generate a pick mask for this texture - delete [] mPickMask; - mPickMask = NULL; return; } @@ -1688,11 +1697,10 @@ void LLImageGL::updatePickMask(S32 width, S32 height, const U8* data_in) U32 pick_height = height/2; U32 size = llmax(pick_width, (U32) 1) * llmax(pick_height, (U32) 1); - size = size/8 + 1; - - delete[] mPickMask; mPickMask = new U8[size]; + mPickMaskWidth = pick_width; + mPickMaskHeight = pick_height; memset(mPickMask, 0, sizeof(U8) * size); @@ -1708,10 +1716,7 @@ void LLImageGL::updatePickMask(S32 width, S32 height, const U8* data_in) { U32 pick_idx = pick_bit/8; U32 pick_offset = pick_bit%8; - if (pick_idx >= size) - { - llerrs << "WTF?" << llendl; - } + llassert(pick_idx < size); mPickMask[pick_idx] |= 1 << pick_offset; } @@ -1727,35 +1732,34 @@ BOOL LLImageGL::getMask(const LLVector2 &tc) if (mPickMask) { - S32 width = getWidth()/2; - S32 height = getHeight()/2; - F32 u = tc.mV[0] - floorf(tc.mV[0]); F32 v = tc.mV[1] - floorf(tc.mV[1]); - if (u < 0.f || u > 1.f || - v < 0.f || v > 1.f) + if (LL_UNLIKELY(u < 0.f || u > 1.f || + v < 0.f || v > 1.f)) { LL_WARNS_ONCE("render") << "Ugh, u/v out of range in image mask pick" << LL_ENDL; u = v = 0.f; llassert(false); } + + llassert(mPickMaskWidth > 0 && mPickMaskHeight > 0); - S32 x = (S32)(u * width); - S32 y = (S32)(v * height); + S32 x = (S32)(u * mPickMaskWidth); + S32 y = (S32)(v * mPickMaskHeight); - if (x >= width) + if (LL_UNLIKELY(x >= mPickMaskWidth)) { LL_WARNS_ONCE("render") << "Ooh, width overrun on pick mask read, that coulda been bad." << LL_ENDL; - x = llmax(0, width-1); + x = llmax(0, mPickMaskWidth-1); } - if (y >= height) + if (LL_UNLIKELY(y >= mPickMaskHeight)) { LL_WARNS_ONCE("render") << "Ooh, height overrun on pick mask read, that woulda been bad." << LL_ENDL; - y = llmax(0, height-1); + y = llmax(0, mPickMaskHeight-1); } - S32 idx = y*width+x; + S32 idx = y*mPickMaskWidth+x; S32 offset = idx%8; res = mPickMask[idx/8] & (1 << offset) ? TRUE : FALSE; diff --git a/indra/llrender/llimagegl.h b/indra/llrender/llimagegl.h index facfb7bd62..f0870c3fc4 100644 --- a/indra/llrender/llimagegl.h +++ b/indra/llrender/llimagegl.h @@ -193,6 +193,8 @@ public: private: LLPointer<LLImageRaw> mSaveData; // used for destroyGL/restoreGL U8* mPickMask; //downsampled bitmap approximation of alpha channel. NULL if no alpha channel + U16 mPickMaskWidth; + U16 mPickMaskHeight; S8 mUseMipMaps; S8 mHasExplicitFormat; // If false (default), GL format is f(mComponents) S8 mAutoGenMips; diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp index 572ae13909..ecfe845b34 100644 --- a/indra/llrender/llvertexbuffer.cpp +++ b/indra/llrender/llvertexbuffer.cpp @@ -237,7 +237,7 @@ void LLVertexBuffer::drawRange(U32 mode, U32 start, U32 end, U32 count, U32 indi llerrs << "Wrong vertex buffer bound." << llendl; } - if (mode > LLRender::NUM_MODES) + if (mode >= LLRender::NUM_MODES) { llerrs << "Invalid draw mode: " << mode << llendl; return; @@ -267,7 +267,7 @@ void LLVertexBuffer::draw(U32 mode, U32 count, U32 indices_offset) const llerrs << "Wrong vertex buffer bound." << llendl; } - if (mode > LLRender::NUM_MODES) + if (mode >= LLRender::NUM_MODES) { llerrs << "Invalid draw mode: " << mode << llendl; return; @@ -292,7 +292,7 @@ void LLVertexBuffer::drawArrays(U32 mode, U32 first, U32 count) const llerrs << "Wrong vertex buffer bound." << llendl; } - if (mode > LLRender::NUM_MODES) + if (mode >= LLRender::NUM_MODES) { llerrs << "Invalid draw mode: " << mode << llendl; return; diff --git a/indra/llui/llaccordionctrl.cpp b/indra/llui/llaccordionctrl.cpp index b5e870228a..d0c73fbfbc 100644 --- a/indra/llui/llaccordionctrl.cpp +++ b/indra/llui/llaccordionctrl.cpp @@ -63,6 +63,8 @@ static LLDefaultChildRegistry::Register<LLAccordionCtrl> t2("accordion"); LLAccordionCtrl::LLAccordionCtrl(const Params& params):LLPanel(params) , mFitParent(params.fit_parent) + , mAutoScrolling( false ) + , mAutoScrollRate( 0.f ) { mSingleExpansion = params.single_expansion; if(mFitParent && !mSingleExpansion) @@ -72,6 +74,8 @@ LLAccordionCtrl::LLAccordionCtrl(const Params& params):LLPanel(params) } LLAccordionCtrl::LLAccordionCtrl() : LLPanel() + , mAutoScrolling( false ) + , mAutoScrollRate( 0.f ) { mSingleExpansion = false; mFitParent = false; @@ -81,6 +85,19 @@ LLAccordionCtrl::LLAccordionCtrl() : LLPanel() //--------------------------------------------------------------------------------- void LLAccordionCtrl::draw() { + if (mAutoScrolling) + { + // add acceleration to autoscroll + mAutoScrollRate = llmin(mAutoScrollRate + (LLFrameTimer::getFrameDeltaTimeF32() * AUTO_SCROLL_RATE_ACCEL), MAX_AUTO_SCROLL_RATE); + } + else + { + // reset to minimum for next time + mAutoScrollRate = MIN_AUTO_SCROLL_RATE; + } + // clear this flag to be set on next call to autoScroll + mAutoScrolling = false; + LLRect local_rect(0, getRect().getHeight(), getRect().getWidth(), 0); LLLocalClipRect clip(local_rect); @@ -420,6 +437,64 @@ BOOL LLAccordionCtrl::handleKeyHere (KEY key, MASK mask) return LLPanel::handleKeyHere(key,mask); } +BOOL LLAccordionCtrl::handleDragAndDrop (S32 x, S32 y, MASK mask, + BOOL drop, + EDragAndDropType cargo_type, + void* cargo_data, + EAcceptance* accept, + std::string& tooltip_msg) +{ + // Scroll folder view if needed. Never accepts a drag or drop. + *accept = ACCEPT_NO; + BOOL handled = autoScroll(x, y); + + if( !handled ) + { + handled = childrenHandleDragAndDrop(x, y, mask, drop, cargo_type, + cargo_data, accept, tooltip_msg) != NULL; + } + return TRUE; +} + +BOOL LLAccordionCtrl::autoScroll (S32 x, S32 y) +{ + static LLUICachedControl<S32> scrollbar_size ("UIScrollbarSize", 0); + + bool scrolling = false; + if( mScrollbar->getVisible() ) + { + LLRect rect_local( 0, getRect().getHeight(), getRect().getWidth() - scrollbar_size, 0 ); + LLRect screen_local_extents; + + // clip rect against root view + screenRectToLocal(getRootView()->getLocalRect(), &screen_local_extents); + rect_local.intersectWith(screen_local_extents); + + // autoscroll region should take up no more than one third of visible scroller area + S32 auto_scroll_region_height = llmin(rect_local.getHeight() / 3, 10); + S32 auto_scroll_speed = llround(mAutoScrollRate * LLFrameTimer::getFrameDeltaTimeF32()); + + LLRect bottom_scroll_rect = screen_local_extents; + bottom_scroll_rect.mTop = rect_local.mBottom + auto_scroll_region_height; + if( bottom_scroll_rect.pointInRect( x, y ) && (mScrollbar->getDocPos() < mScrollbar->getDocPosMax()) ) + { + mScrollbar->setDocPos( mScrollbar->getDocPos() + auto_scroll_speed ); + mAutoScrolling = true; + scrolling = true; + } + + LLRect top_scroll_rect = screen_local_extents; + top_scroll_rect.mBottom = rect_local.mTop - auto_scroll_region_height; + if( top_scroll_rect.pointInRect( x, y ) && (mScrollbar->getDocPos() > 0) ) + { + mScrollbar->setDocPos( mScrollbar->getDocPos() - auto_scroll_speed ); + mAutoScrolling = true; + scrolling = true; + } + } + return scrolling; +} + void LLAccordionCtrl::updateLayout (S32 width, S32 height) { S32 panel_top = height - BORDER_MARGIN ; diff --git a/indra/llui/llaccordionctrl.h b/indra/llui/llaccordionctrl.h index 4cb0f38281..d57a42df32 100644 --- a/indra/llui/llaccordionctrl.h +++ b/indra/llui/llaccordionctrl.h @@ -81,6 +81,11 @@ public: virtual BOOL handleRightMouseDown ( S32 x, S32 y, MASK mask); virtual BOOL handleScrollWheel ( S32 x, S32 y, S32 clicks ); virtual BOOL handleKeyHere (KEY key, MASK mask); + virtual BOOL handleDragAndDrop (S32 x, S32 y, MASK mask, BOOL drop, + EDragAndDropType cargo_type, + void* cargo_data, + EAcceptance* accept, + std::string& tooltip_msg); // // Call reshape after changing splitter's size @@ -112,11 +117,15 @@ private: void showScrollbar (S32 width, S32 height); void hideScrollbar (S32 width, S32 height); + BOOL autoScroll (S32 x, S32 y); + private: LLRect mInnerRect; LLScrollbar* mScrollbar; bool mSingleExpansion; bool mFitParent; + bool mAutoScrolling; + F32 mAutoScrollRate; }; diff --git a/indra/llui/llaccordionctrltab.cpp b/indra/llui/llaccordionctrltab.cpp index 4bfe44135a..daa9e08f14 100644 --- a/indra/llui/llaccordionctrltab.cpp +++ b/indra/llui/llaccordionctrltab.cpp @@ -45,6 +45,7 @@ static const std::string DD_HEADER_NAME = "dd_header"; static const S32 HEADER_HEIGHT = 20; static const S32 HEADER_IMAGE_LEFT_OFFSET = 5; static const S32 HEADER_TEXT_LEFT_OFFSET = 30; +static const F32 AUTO_OPEN_TIME = 1.f; static LLDefaultChildRegistry::Register<LLAccordionCtrlTab> t1("accordion_tab"); @@ -73,6 +74,11 @@ public: virtual void onMouseEnter(S32 x, S32 y, MASK mask); virtual void onMouseLeave(S32 x, S32 y, MASK mask); virtual BOOL handleKey(KEY key, MASK mask, BOOL called_from_parent); + virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, + EDragAndDropType cargo_type, + void* cargo_data, + EAcceptance* accept, + std::string& tooltip_msg); private: LLTextBox* mHeaderTextbox; @@ -92,6 +98,8 @@ private: LLUIColor mHeaderBGColor; bool mNeedsHighlight; + + LLFrameTimer mAutoOpenTimer; }; LLAccordionCtrlTab::LLAccordionCtrlTabHeader::Params::Params() @@ -209,6 +217,7 @@ void LLAccordionCtrlTab::LLAccordionCtrlTabHeader::onMouseLeave(S32 x, S32 y, MA { LLUICtrl::onMouseLeave(x, y, mask); mNeedsHighlight = false; + mAutoOpenTimer.stop(); } BOOL LLAccordionCtrlTab::LLAccordionCtrlTabHeader::handleKey(KEY key, MASK mask, BOOL called_from_parent) { @@ -218,8 +227,33 @@ BOOL LLAccordionCtrlTab::LLAccordionCtrlTabHeader::handleKey(KEY key, MASK mask, } return LLUICtrl::handleKey(key, mask, called_from_parent); } +BOOL LLAccordionCtrlTab::LLAccordionCtrlTabHeader::handleDragAndDrop(S32 x, S32 y, MASK mask, + BOOL drop, + EDragAndDropType cargo_type, + void* cargo_data, + EAcceptance* accept, + std::string& tooltip_msg) +{ + LLAccordionCtrlTab* parent = dynamic_cast<LLAccordionCtrlTab*>(getParent()); + if ( parent && !parent->getDisplayChildren() && parent->getCollapsible() && parent->canOpenClose() ) + { + if (mAutoOpenTimer.getStarted()) + { + if (mAutoOpenTimer.getElapsedTimeF32() > AUTO_OPEN_TIME) + { + parent->changeOpenClose(false); + mAutoOpenTimer.stop(); + return TRUE; + } + } + else + mAutoOpenTimer.start(); + } + return LLUICtrl::handleDragAndDrop(x, y, mask, drop, cargo_type, + cargo_data, accept, tooltip_msg); +} LLAccordionCtrlTab::Params::Params() : title("title") ,display_children("expanded", true) diff --git a/indra/llui/llaccordionctrltab.h b/indra/llui/llaccordionctrltab.h index b200d43438..2e0260ab16 100644 --- a/indra/llui/llaccordionctrltab.h +++ b/indra/llui/llaccordionctrltab.h @@ -115,6 +115,7 @@ public: void changeOpenClose(bool is_open); void canOpenClose(bool can_open_close) { mCanOpenClose = can_open_close;}; + bool canOpenClose() const { return mCanOpenClose; }; virtual BOOL postBuild(); diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp index 9ce8ce8d55..4944ed4fe7 100644 --- a/indra/llui/llbutton.cpp +++ b/indra/llui/llbutton.cpp @@ -81,6 +81,10 @@ LLButton::Params::Params() image_pressed_selected("image_pressed_selected"), image_overlay("image_overlay"), image_overlay_alignment("image_overlay_alignment", std::string("center")), + image_left_pad("image_left_pad"), + image_right_pad("image_right_pad"), + image_top_pad("image_top_pad"), + image_bottom_pad("image_bottom_pad"), label_color("label_color"), label_color_selected("label_color_selected"), // requires is_toggle true label_color_disabled("label_color_disabled"), @@ -140,6 +144,10 @@ LLButton::LLButton(const LLButton::Params& p) mImageOverlay(p.image_overlay()), mImageOverlayColor(p.image_overlay_color()), mImageOverlayAlignment(LLFontGL::hAlignFromName(p.image_overlay_alignment)), + mImageOverlayLeftPad(p.image_left_pad), + mImageOverlayRightPad(p.image_right_pad), + mImageOverlayTopPad(p.image_top_pad), + mImageOverlayBottomPad(p.image_bottom_pad), mIsToggle(p.is_toggle), mScaleImage(p.scale_image), mDropShadowedText(p.label_shadow), @@ -763,6 +771,12 @@ void LLButton::draw() center_x++; } + S32 text_width_delta = overlay_width + 1; + // if image paddings set, they should participate in scaling process + S32 image_size_delta = mImageOverlayTopPad + mImageOverlayBottomPad; + overlay_width = overlay_width - image_size_delta; + overlay_height = overlay_height - image_size_delta; + // fade out overlay images on disabled buttons LLColor4 overlay_color = mImageOverlayColor.get(); if (!enabled) @@ -774,8 +788,8 @@ void LLButton::draw() switch(mImageOverlayAlignment) { case LLFontGL::LEFT: - text_left += overlay_width + 1; - text_width -= overlay_width + 1; + text_left += overlay_width + mImageOverlayRightPad + 1; + text_width -= text_width_delta; mImageOverlay->draw( mLeftHPad, center_y - (overlay_height / 2), @@ -792,8 +806,8 @@ void LLButton::draw() overlay_color); break; case LLFontGL::RIGHT: - text_right -= overlay_width + 1; - text_width -= overlay_width + 1; + text_right -= overlay_width + mImageOverlayLeftPad+ 1; + text_width -= text_width_delta; mImageOverlay->draw( getRect().getWidth() - mRightHPad - overlay_width, center_y - (overlay_height / 2), diff --git a/indra/llui/llbutton.h b/indra/llui/llbutton.h index cd149e3113..8e5f19602f 100644 --- a/indra/llui/llbutton.h +++ b/indra/llui/llbutton.h @@ -106,6 +106,12 @@ public: Optional<S32> pad_left; Optional<S32> pad_bottom; // under text label + //image overlay paddings + Optional<S32> image_left_pad; + Optional<S32> image_right_pad; + Optional<S32> image_top_pad; + Optional<S32> image_bottom_pad; + // callbacks Optional<CommitCallbackParam> click_callback, // alias -> commit_callback mouse_down_callback, @@ -186,6 +192,15 @@ public: void setLeftHPad( S32 pad ) { mLeftHPad = pad; } void setRightHPad( S32 pad ) { mRightHPad = pad; } + void setImageOverlayLeftPad( S32 pad ) { mImageOverlayLeftPad = pad; } + S32 getImageOverlayLeftPad() const { return mImageOverlayLeftPad; } + void setImageOverlayRightPad( S32 pad ) { mImageOverlayRightPad = pad; } + S32 getImageOverlayRightPad() const { return mImageOverlayRightPad; } + void setImageOverlayTopPad( S32 pad ) { mImageOverlayTopPad = pad; } + S32 getImageOverlayTopPad() const { return mImageOverlayTopPad; } + void setImageOverlayBottomPad( S32 pad ) { mImageOverlayBottomPad = pad; } + S32 getImageOverlayBottomPad() const { return mImageOverlayBottomPad; } + const std::string getLabelUnselected() const { return wstring_to_utf8str(mUnselectedLabel); } const std::string getLabelSelected() const { return wstring_to_utf8str(mSelectedLabel); } @@ -313,6 +328,11 @@ private: S32 mRightHPad; S32 mBottomVPad; // under text label + S32 mImageOverlayLeftPad; + S32 mImageOverlayRightPad; + S32 mImageOverlayTopPad; + S32 mImageOverlayBottomPad; + F32 mHoverGlowStrength; F32 mCurGlowStrength; diff --git a/indra/llui/llcombobox.cpp b/indra/llui/llcombobox.cpp index f29e8785eb..9d23daf56d 100644 --- a/indra/llui/llcombobox.cpp +++ b/indra/llui/llcombobox.cpp @@ -103,7 +103,8 @@ LLComboBox::LLComboBox(const LLComboBox::Params& p) mPrearrangeCallback(p.prearrange_callback()), mTextEntryCallback(p.text_entry_callback()), mListPosition(p.list_position), - mLastSelectedIndex(-1) + mLastSelectedIndex(-1), + mLabel(p.label) { // Text label button @@ -490,6 +491,7 @@ void LLComboBox::createLineEditor(const LLComboBox::Params& p) params.handle_edit_keys_directly(true); params.commit_on_focus_lost(false); params.follows.flags(FOLLOWS_ALL); + params.label(mLabel); mTextEntry = LLUICtrlFactory::create<LLLineEditor> (params); mTextEntry->setText(cur_label); mTextEntry->setIgnoreTab(TRUE); @@ -505,7 +507,8 @@ void LLComboBox::createLineEditor(const LLComboBox::Params& p) mButton->setRect(rect); mButton->setTabStop(TRUE); mButton->setHAlign(LLFontGL::LEFT); - + mButton->setLabel(mLabel.getString()); + if (mTextEntry) { mTextEntry->setVisible(FALSE); @@ -633,7 +636,7 @@ void LLComboBox::hideList() if(mLastSelectedIndex >= 0) mList->selectNthItem(mLastSelectedIndex); } - else + else if(mLastSelectedIndex >= 0) mList->selectNthItem(mLastSelectedIndex); mButton->setToggleState(FALSE); diff --git a/indra/llui/lldraghandle.cpp b/indra/llui/lldraghandle.cpp index a93c666648..832f148902 100644 --- a/indra/llui/lldraghandle.cpp +++ b/indra/llui/lldraghandle.cpp @@ -113,6 +113,7 @@ void LLDragHandleTop::setTitle(const std::string& title) params.follows.flags(FOLLOWS_TOP | FOLLOWS_LEFT | FOLLOWS_RIGHT); params.font_shadow(LLFontGL::DROP_SHADOW_SOFT); params.use_ellipses = true; + params.allow_html = false; //cancel URL replacement in floater title mTitleBox = LLUICtrlFactory::create<LLTextBox> (params); addChild( mTitleBox ); } diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 79d8f90fec..de46d89d6f 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -1916,9 +1916,10 @@ static LLDefaultChildRegistry::Register<LLFloaterView> r("floater_view"); LLFloaterView::LLFloaterView (const Params& p) : LLUICtrl (p), + mFocusCycleMode(FALSE), - mSnapOffsetBottom(0) - ,mSnapOffsetRight(0) + mSnapOffsetBottom(0), + mSnapOffsetRight(0) { } diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h index f70495c0f0..8c9dacbd20 100644 --- a/indra/llui/llfloater.h +++ b/indra/llui/llfloater.h @@ -468,9 +468,6 @@ public: void setSnapOffsetRight(S32 offset) { mSnapOffsetRight = offset; } private: - S32 mColumn; - S32 mNextLeft; - S32 mNextTop; BOOL mFocusCycleMode; S32 mSnapOffsetBottom; S32 mSnapOffsetRight; diff --git a/indra/llui/lllineeditor.cpp b/indra/llui/lllineeditor.cpp index 73e4d126f3..cb5aea272d 100644 --- a/indra/llui/lllineeditor.cpp +++ b/indra/llui/lllineeditor.cpp @@ -70,6 +70,8 @@ const S32 SCROLL_INCREMENT_DEL = 4; // make space for baskspacing const F32 AUTO_SCROLL_TIME = 0.05f; const F32 TRIPLE_CLICK_INTERVAL = 0.3f; // delay between double and triple click. *TODO: make this equal to the double click interval? +const std::string PASSWORD_ASTERISK( "\xE2\x97\x8F" ); // U+25CF BLACK CIRCLE + static LLDefaultChildRegistry::Register<LLLineEditor> r1("line_editor"); // Compiler optimization, generate extern template @@ -401,7 +403,7 @@ void LLLineEditor::setCursorAtLocalPos( S32 local_mouse_x ) { for (S32 i = 0; i < mText.length(); i++) { - asterix_text += '*'; + asterix_text += utf8str_to_wstring(PASSWORD_ASTERISK); } wtext = asterix_text.c_str(); } @@ -1599,7 +1601,7 @@ void LLLineEditor::draw() std::string text; for (S32 i = 0; i < mText.length(); i++) { - text += '*'; + text += PASSWORD_ASTERISK; } mText = text; } diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp index c172a2b714..7fa9a88059 100644 --- a/indra/llui/llmenugl.cpp +++ b/indra/llui/llmenugl.cpp @@ -1651,6 +1651,7 @@ LLMenuGL::LLMenuGL(const LLMenuGL::Params& p) mBackgroundColor( p.bg_color() ), mBgVisible( p.bg_visible ), mDropShadowed( p.drop_shadow ), + mHasSelection(false), mHorizontalLayout( p.horizontal_layout ), mScrollable(mHorizontalLayout ? FALSE : p.scrollable), // Scrolling is supported only for vertical layout mMaxScrollableItems(p.max_scrollable_items), @@ -1875,17 +1876,21 @@ void LLMenuGL::scrollItemsDown() item_list_t::iterator next_item_iter; - for (next_item_iter = ++cur_item_iter; next_item_iter != mItems.end(); next_item_iter++) + if (cur_item_iter != mItems.end()) { - if( (*next_item_iter)->getVisible()) + for (next_item_iter = ++cur_item_iter; next_item_iter != mItems.end(); next_item_iter++) { - break; + if( (*next_item_iter)->getVisible()) + { + break; + } + } + + if (next_item_iter != mItems.end() && + (*next_item_iter)->getVisible()) + { + mFirstVisibleItem = *next_item_iter; } - } - - if ((*next_item_iter)->getVisible()) - { - mFirstVisibleItem = *next_item_iter; } mNeedsArrange = TRUE; @@ -2809,7 +2814,7 @@ BOOL LLMenuGL::handleHover( S32 x, S32 y, MASK mask ) ((LLMenuItemGL*)viewp)->setHighlight(TRUE); LLMenuGL::setKeyboardMode(FALSE); } - mHasSelection = TRUE; + mHasSelection = true; } } } @@ -2888,7 +2893,7 @@ void LLMenuGL::setVisible(BOOL visible) } else { - mHasSelection = FALSE; + mHasSelection = true; mFadeTimer.stop(); } diff --git a/indra/llui/llmenugl.h b/indra/llui/llmenugl.h index 61e06f9e5f..8441aaadd4 100644 --- a/indra/llui/llmenugl.h +++ b/indra/llui/llmenugl.h @@ -546,7 +546,7 @@ private: LLHandle<LLView> mParentMenuItem; LLUIString mLabel; BOOL mDropShadowed; // Whether to drop shadow - BOOL mHasSelection; + bool mHasSelection; LLFrameTimer mFadeTimer; LLTimer mScrollItemsTimer; BOOL mTornOff; diff --git a/indra/llui/llnotifications.cpp b/indra/llui/llnotifications.cpp index 86989012ee..a67094b8ce 100644 --- a/indra/llui/llnotifications.cpp +++ b/indra/llui/llnotifications.cpp @@ -1058,6 +1058,7 @@ LLNotificationChannelPtr LLNotifications::getChannel(const std::string& channelN if(p == mChannels.end()) { llerrs << "Did not find channel named " << channelName << llendl; + return LLNotificationChannelPtr(); } return p->second; } diff --git a/indra/llui/llscrolllistctrl.cpp b/indra/llui/llscrolllistctrl.cpp index 4e84013db0..478e270c98 100644 --- a/indra/llui/llscrolllistctrl.cpp +++ b/indra/llui/llscrolllistctrl.cpp @@ -498,7 +498,7 @@ void LLScrollListCtrl::fitContents(S32 max_width, S32 max_height) { S32 height = llmin( getRequiredRect().getHeight(), max_height ); if(mPageLines) - height = llmin( mPageLines * mLineHeight + (mDisplayColumnHeaders ? mHeadingHeight : 0), height ); + height = llmin( mPageLines * mLineHeight + 2*mBorderThickness + (mDisplayColumnHeaders ? mHeadingHeight : 0), height ); S32 width = getRect().getWidth(); @@ -1534,7 +1534,7 @@ LLRect LLScrollListCtrl::getCellRect(S32 row_index, S32 column_index) S32 rect_bottom = getRowOffsetFromIndex(row_index); LLScrollListColumn* columnp = getColumn(column_index); cell_rect.setOriginAndSize(rect_left, rect_bottom, - rect_left + columnp->getWidth(), mLineHeight); + /*rect_left + */columnp->getWidth(), mLineHeight); return cell_rect; } @@ -2760,9 +2760,13 @@ LLScrollListItem* LLScrollListCtrl::addElement(const LLSD& element, EAddPosition LLScrollListItem* LLScrollListCtrl::addRow(const LLScrollListItem::Params& item_p, EAddPosition pos) { - if (!item_p.validateBlock()) return NULL; - LLScrollListItem *new_item = new LLScrollListItem(item_p); + return addRow(new_item, item_p, pos); +} + +LLScrollListItem* LLScrollListCtrl::addRow(LLScrollListItem *new_item, const LLScrollListItem::Params& item_p, EAddPosition pos) +{ + if (!item_p.validateBlock() || !new_item) return NULL; new_item->setNumColumns(mColumns.size()); // Add any columns we don't already have diff --git a/indra/llui/llscrolllistctrl.h b/indra/llui/llscrolllistctrl.h index 907dc90bea..d2d2379328 100644 --- a/indra/llui/llscrolllistctrl.h +++ b/indra/llui/llscrolllistctrl.h @@ -148,6 +148,7 @@ public: // "columns" => [ "column" => column name, "value" => value, "type" => type, "font" => font, "font-style" => style ], "id" => uuid // Creates missing columns automatically. virtual LLScrollListItem* addElement(const LLSD& element, EAddPosition pos = ADD_BOTTOM, void* userdata = NULL); + virtual LLScrollListItem* addRow(LLScrollListItem *new_item, const LLScrollListItem::Params& value, EAddPosition pos = ADD_BOTTOM); virtual LLScrollListItem* addRow(const LLScrollListItem::Params& value, EAddPosition pos = ADD_BOTTOM); // Simple add element. Takes a single array of: // [ "value" => value, "font" => font, "font-style" => style ] diff --git a/indra/llui/llscrolllistitem.h b/indra/llui/llscrolllistitem.h index 15b86cc945..25ce846d90 100644 --- a/indra/llui/llscrolllistitem.h +++ b/indra/llui/llscrolllistitem.h @@ -95,7 +95,7 @@ public: void setUserdata( void* userdata ) { mUserdata = userdata; } void* getUserdata() const { return mUserdata; } - LLUUID getUUID() const { return mItemValue.asUUID(); } + virtual LLUUID getUUID() const { return mItemValue.asUUID(); } LLSD getValue() const { return mItemValue; } void setRect(LLRect rect) { mRectangle = rect; } diff --git a/indra/llui/llstyle.cpp b/indra/llui/llstyle.cpp index 71511f69a4..b8f93b6a0e 100644 --- a/indra/llui/llstyle.cpp +++ b/indra/llui/llstyle.cpp @@ -49,7 +49,10 @@ LLStyle::Params::Params() LLStyle::LLStyle(const LLStyle::Params& p) -: mVisible(p.visible), +: mItalic(FALSE), + mBold(FALSE), + mUnderline(FALSE), + mVisible(p.visible), mColor(p.color()), mReadOnlyColor(p.readonly_color()), mFont(p.font()), diff --git a/indra/llui/lltabcontainer.cpp b/indra/llui/lltabcontainer.cpp index 43c44f2253..6be76605fd 100644 --- a/indra/llui/lltabcontainer.cpp +++ b/indra/llui/lltabcontainer.cpp @@ -1373,6 +1373,8 @@ BOOL LLTabContainer::setTab(S32 which) { LLTabTuple* tuple = *iter; BOOL is_selected = ( tuple == selected_tuple ); + tuple->mButton->setUseEllipses(TRUE); + tuple->mButton->setHAlign(LLFontGL::LEFT); tuple->mTabPanel->setVisible( is_selected ); // tuple->mTabPanel->setFocus(is_selected); // not clear that we want to do this here. tuple->mButton->setToggleState( is_selected ); @@ -1478,63 +1480,54 @@ void LLTabContainer::setTabPanelFlashing(LLPanel* child, BOOL state ) void LLTabContainer::setTabImage(LLPanel* child, std::string image_name, const LLColor4& color) { - static LLUICachedControl<S32> tab_padding ("UITabPadding", 0); LLTabTuple* tuple = getTabByPanel(child); if( tuple ) { - tuple->mButton->setImageOverlay(image_name, LLFontGL::RIGHT, color); - - if (!mIsVertical) - { - // remove current width from total tab strip width - mTotalTabWidth -= tuple->mButton->getRect().getWidth(); - - S32 image_overlay_width = tuple->mButton->getImageOverlay().notNull() ? - tuple->mButton->getImageOverlay()->getImage()->getWidth(0) : - 0; - - tuple->mPadding = image_overlay_width; - - tuple->mButton->setRightHPad(6); - tuple->mButton->reshape(llclamp(mFont->getWidth(tuple->mButton->getLabelSelected()) + tab_padding + tuple->mPadding, mMinTabWidth, mMaxTabWidth), - tuple->mButton->getRect().getHeight()); - // add back in button width to total tab strip width - mTotalTabWidth += tuple->mButton->getRect().getWidth(); - - // tabs have changed size, might need to scroll to see current tab - updateMaxScrollPos(); - } + tuple->mButton->setImageOverlay(image_name, LLFontGL::LEFT, color); + reshape_tuple(tuple); } } void LLTabContainer::setTabImage(LLPanel* child, const LLUUID& image_id, const LLColor4& color) { - static LLUICachedControl<S32> tab_padding ("UITabPadding", 0); LLTabTuple* tuple = getTabByPanel(child); if( tuple ) { - tuple->mButton->setImageOverlay(image_id, LLFontGL::RIGHT, color); + tuple->mButton->setImageOverlay(image_id, LLFontGL::LEFT, color); + reshape_tuple(tuple); + } +} - if (!mIsVertical) - { - // remove current width from total tab strip width - mTotalTabWidth -= tuple->mButton->getRect().getWidth(); +void LLTabContainer::reshape_tuple(LLTabTuple* tuple) +{ + static LLUICachedControl<S32> tab_padding ("UITabPadding", 0); + static LLUICachedControl<S32> image_left_padding ("UIButtonImageLeftPadding", 4); + static LLUICachedControl<S32> image_right_padding ("UIButtonImageRightPadding", 4); + static LLUICachedControl<S32> image_top_padding ("UIButtonImageTopPadding", 2); + static LLUICachedControl<S32> image_bottom_padding ("UIButtonImageBottomPadding", 2); - S32 image_overlay_width = tuple->mButton->getImageOverlay().notNull() ? - tuple->mButton->getImageOverlay()->getImage()->getWidth(0) : - 0; + if (!mIsVertical) + { + tuple->mButton->setImageOverlayLeftPad(image_left_padding); + tuple->mButton->setImageOverlayRightPad(image_right_padding); + tuple->mButton->setImageOverlayTopPad(image_top_padding); + tuple->mButton->setImageOverlayBottomPad(image_bottom_padding); - tuple->mPadding = image_overlay_width; + // remove current width from total tab strip width + mTotalTabWidth -= tuple->mButton->getRect().getWidth(); - tuple->mButton->setRightHPad(6); - tuple->mButton->reshape(llclamp(mFont->getWidth(tuple->mButton->getLabelSelected()) + tab_padding + tuple->mPadding, mMinTabWidth, mMaxTabWidth), - tuple->mButton->getRect().getHeight()); - // add back in button width to total tab strip width - mTotalTabWidth += tuple->mButton->getRect().getWidth(); + S32 image_overlay_width = tuple->mButton->getImageOverlay().notNull() ? + tuple->mButton->getImageOverlay()->getImage()->getWidth(0) : 0; - // tabs have changed size, might need to scroll to see current tab - updateMaxScrollPos(); - } + tuple->mPadding = image_overlay_width; + + tuple->mButton->reshape(llclamp(mFont->getWidth(tuple->mButton->getLabelSelected()) + tab_padding + tuple->mPadding, mMinTabWidth, mMaxTabWidth), + tuple->mButton->getRect().getHeight()); + // add back in button width to total tab strip width + mTotalTabWidth += tuple->mButton->getRect().getWidth(); + + // tabs have changed size, might need to scroll to see current tab + updateMaxScrollPos(); } } @@ -1597,7 +1590,10 @@ void LLTabContainer::onTabBtn( const LLSD& data, LLPanel* panel ) LLTabTuple* tuple = getTabByPanel(panel); selectTabPanel( panel ); - tuple->mTabPanel->setFocus(TRUE); + if (tuple) + { + tuple->mTabPanel->setFocus(TRUE); + } } void LLTabContainer::onNextBtn( const LLSD& data ) diff --git a/indra/llui/lltabcontainer.h b/indra/llui/lltabcontainer.h index 33c49e0d6f..2a55877d3c 100644 --- a/indra/llui/lltabcontainer.h +++ b/indra/llui/lltabcontainer.h @@ -228,6 +228,7 @@ private: // updates tab button images given the tuple, tab position and the corresponding params void update_images(LLTabTuple* tuple, TabParams params, LLTabContainer::TabPosition pos); + void reshape_tuple(LLTabTuple* tuple); // Variables diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index 47db990a37..8abbc833e5 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -244,7 +244,8 @@ LLTextBase::LLTextBase(const LLTextBase::Params &p) LLTextBase::~LLTextBase() { - delete mPopupMenu; + // Menu, like any other LLUICtrl, is deleted by its parent - gMenuHolder + clearSegments(); } @@ -1511,6 +1512,25 @@ void LLTextBase::setText(const LLStringExplicit &utf8str, const LLStyle::Params& onValueChange(0, getLength()); } +void LLTextBase::addBlackListUrl(const std::string &url) +{ + mBlackListUrls.push_back(url); +} + +bool LLTextBase::isBlackListUrl(const std::string &url) const +{ + std::vector<std::string>::const_iterator it; + for (it = mBlackListUrls.begin(); it != mBlackListUrls.end(); ++it) + { + const std::string &blacklist_url = *it; + if (url.find(blacklist_url) != std::string::npos) + { + return true; + } + } + return false; +} + //virtual std::string LLTextBase::getText() const { @@ -1585,20 +1605,29 @@ void LLTextBase::appendText(const std::string &new_text, bool prepend_newline, c prepend_newline = false; } } - // output the styled Url - appendAndHighlightText(match.getLabel(), prepend_newline, part, link_params); - prepend_newline = false; - // set the tooltip for the Url label - if (! match.getTooltip().empty()) + // output the styled Url (unless we've been asked to suppress it) + if (isBlackListUrl(match.getUrl())) { - segment_set_t::iterator it = getSegIterContaining(getLength()-1); - if (it != mSegments.end()) + std::string orig_url = text.substr(start, end-start); + appendAndHighlightText(orig_url, prepend_newline, part, style_params); + } + else + { + appendAndHighlightText(match.getLabel(), prepend_newline, part, link_params); + + // set the tooltip for the Url label + if (! match.getTooltip().empty()) { - LLTextSegmentPtr segment = *it; - segment->setToolTip(match.getTooltip()); + segment_set_t::iterator it = getSegIterContaining(getLength()-1); + if (it != mSegments.end()) + { + LLTextSegmentPtr segment = *it; + segment->setToolTip(match.getTooltip()); + } } } + prepend_newline = false; // move on to the rest of the text after the Url if (end < (S32)text.length()) diff --git a/indra/llui/lltextbase.h b/indra/llui/lltextbase.h index 038b9eaa62..e1c6cc36ab 100644 --- a/indra/llui/lltextbase.h +++ b/indra/llui/lltextbase.h @@ -41,6 +41,7 @@ #include "llpanel.h" #include <string> +#include <vector> #include <set> #include <boost/signals2.hpp> @@ -186,6 +187,9 @@ public: const LLFontGL* getDefaultFont() const { return mDefaultFont; } LLStyle::Params getDefaultStyle(); + // tell the text object to suppress auto highlighting of a specific URL + void addBlackListUrl(const std::string &url); + public: // Fired when a URL link is clicked commit_signal_t mURLClickSignal; @@ -308,6 +312,7 @@ protected: void updateRects(); void needsScroll() { mScrollNeeded = TRUE; } void replaceUrlLabel(const std::string &url, const std::string &label); + bool isBlackListUrl(const std::string &url) const; protected: // text segmentation and flow @@ -359,6 +364,9 @@ protected: LLView* mDocumentView; class LLScrollContainer* mScroller; + // list of URLs to suppress from automatic hyperlinking + std::vector<std::string> mBlackListUrls; + // transient state bool mReflowNeeded; // need to reflow text because of change to text contents or display region bool mScrollNeeded; // need to change scroll region because of change to cursor position diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index f2c3879a6c..06ba0d80e9 100644 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -2040,6 +2040,20 @@ void LLTextEditor::showContextMenu(S32 x, S32 y) LLMenuHolderGL::child_registry_t::instance()); } + // Route menu to this class + // previously this was done in ::handleRightMoseDown: + //if(hasTabStop()) + // setFocus(TRUE) - why? weird... + // and then inside setFocus + // .... + // gEditMenuHandler = this; + // .... + // but this didn't work in all cases and just weird... + //why not here? + // (all this was done for EXT-4443) + + gEditMenuHandler = this; + S32 screen_x, screen_y; localPointToScreen(x, y, &screen_x, &screen_y); mContextMenu->show(screen_x, screen_y); diff --git a/indra/llui/lltooltip.cpp b/indra/llui/lltooltip.cpp index 01c7a81309..173fde8e76 100644 --- a/indra/llui/lltooltip.cpp +++ b/indra/llui/lltooltip.cpp @@ -400,7 +400,8 @@ bool LLToolTip::hasClickCallback() // LLToolTipMgr::LLToolTipMgr() -: mToolTip(NULL), +: mToolTipsBlocked(false), + mToolTip(NULL), mNeedsToolTip(false) {} diff --git a/indra/llui/lluistring.h b/indra/llui/lluistring.h index 7ec0fd603a..32cfc0d9cd 100644 --- a/indra/llui/lluistring.h +++ b/indra/llui/lluistring.h @@ -64,7 +64,7 @@ class LLUIString public: // These methods all perform appropriate argument substitution // and modify mOrig where appropriate - LLUIString() {} + LLUIString() : mNeedsResult(false), mNeedsWResult(false) {} LLUIString(const std::string& instring, const LLStringUtil::format_map_t& args); LLUIString(const std::string& instring) { assign(instring); } diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index d86e158e50..d9155377c1 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -157,13 +157,11 @@ set(viewer_SOURCE_FILES llfloaterbuycurrency.cpp llfloaterbuyland.cpp llfloatercamera.cpp - llfloaterchatterbox.cpp llfloatercolorpicker.cpp llfloatercustomize.cpp llfloaterdaycycle.cpp llfloaterenvsettings.cpp llfloaterfonttest.cpp - llfloaterfriends.cpp llfloatergesture.cpp llfloatergodtools.cpp llfloatergroupinvite.cpp @@ -242,7 +240,6 @@ set(viewer_SOURCE_FILES llimfloater.cpp llimfloatercontainer.cpp llimhandler.cpp - llimpanel.cpp llimview.cpp llinspect.cpp llinspectavatar.cpp @@ -274,7 +271,6 @@ set(viewer_SOURCE_FILES llmaniptranslate.cpp llmediactrl.cpp llmediadataclient.cpp - llmediaremotectrl.cpp llmemoryview.cpp llmenucommands.cpp llmetricperformancetester.cpp @@ -298,7 +294,6 @@ set(viewer_SOURCE_FILES llnotificationscripthandler.cpp llnotificationtiphandler.cpp lloutputmonitorctrl.cpp - lloverlaybar.cpp llpanelavatar.cpp llpanelavatartag.cpp llpanelblockedlist.cpp @@ -344,7 +339,6 @@ set(viewer_SOURCE_FILES llpanelprimmediacontrols.cpp llpanelprofile.cpp llpanelprofileview.cpp - llpanelshower.cpp llpanelteleporthistory.cpp llpanelvolume.cpp llpanelvolumepulldown.cpp @@ -422,7 +416,6 @@ set(viewer_SOURCE_FILES lltoastnotifypanel.cpp lltoastpanel.cpp lltool.cpp - lltoolbar.cpp lltoolbrush.cpp lltoolcomp.cpp lltooldraganddrop.cpp @@ -517,7 +510,6 @@ set(viewer_SOURCE_FILES llvoicechannel.cpp llvoiceclient.cpp llvoicedw.cpp - llvoiceremotectrl.cpp llvoicevisualizer.cpp llvoicevivox.cpp llvoinventorylistener.cpp @@ -668,13 +660,11 @@ set(viewer_HEADER_FILES llfloaterbuycurrency.h llfloaterbuyland.h llfloatercamera.h - llfloaterchatterbox.h llfloatercolorpicker.h llfloatercustomize.h llfloaterdaycycle.h llfloaterenvsettings.h llfloaterfonttest.h - llfloaterfriends.h llfloatergesture.h llfloatergodtools.h llfloatergroupinvite.h @@ -752,7 +742,6 @@ set(viewer_HEADER_FILES llhudview.h llimfloater.h llimfloatercontainer.h - llimpanel.h llimview.h llinspect.h llinspectavatar.h @@ -785,7 +774,6 @@ set(viewer_HEADER_FILES llmaniptranslate.h llmediactrl.h llmediadataclient.h - llmediaremotectrl.h llmemoryview.h llmenucommands.h llmetricperformancetester.h @@ -804,7 +792,6 @@ set(viewer_HEADER_FILES llnotificationhandler.h llnotificationmanager.h lloutputmonitorctrl.h - lloverlaybar.h llpanelavatar.h llpanelavatartag.h llpanelblockedlist.h @@ -850,7 +837,6 @@ set(viewer_HEADER_FILES llpanelprimmediacontrols.h llpanelprofile.h llpanelprofileview.h - llpanelshower.h llpanelteleporthistory.h llpanelvolume.h llpanelvolumepulldown.h @@ -931,7 +917,6 @@ set(viewer_HEADER_FILES lltoastnotifypanel.h lltoastpanel.h lltool.h - lltoolbar.h lltoolbrush.h lltoolcomp.h lltooldraganddrop.h @@ -1024,7 +1009,6 @@ set(viewer_HEADER_FILES llvoicechannel.h llvoiceclient.h llvoicedw.h - llvoiceremotectrl.h llvoicevisualizer.h llvoicevivox.h llvoinventorylistener.h @@ -1073,11 +1057,13 @@ if (DARWIN) find_library(APPKIT_LIBRARY AppKit) find_library(COCOA_LIBRARY Cocoa) find_library(IOKIT_LIBRARY IOKit) + find_library(COREAUDIO_LIBRARY CoreAudio) set(viewer_LIBRARIES ${COCOA_LIBRARY} ${AGL_LIBRARY} ${IOKIT_LIBRARY} + ${COREAUDIO_LIBRARY} ) # Add resource files to the project. @@ -1587,7 +1573,10 @@ if (WINDOWS) DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py ) - add_custom_target(package ALL DEPENDS ${CMAKE_CFG_INTDIR}/touched.bat) + add_custom_target(package ALL DEPENDS + ${CMAKE_CFG_INTDIR}/touched.bat + windows-setup-build-all + ) # temporarily disable packaging of event_host until hg subrepos get # sorted out on the parabuild cluster... #${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.bz2) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index f4a0bdb077..d0eb00b4aa 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -298,17 +298,6 @@ <key>Value</key> <integer>1</integer> </map> - <key>AudioStreamingVideo</key> - <map> - <key>Comment</key> - <string>Enable streaming video</string> - <key>Persist</key> - <integer>1</integer> - <key>Type</key> - <string>Boolean</string> - <key>Value</key> - <integer>1</integer> - </map> <key>AuditTexture</key> <map> <key>Comment</key> @@ -2410,6 +2399,17 @@ <key>Value</key> <integer>0</integer> </map> + <key>DisableMouseWarp</key> + <map> + <key>Comment</key> + <string>Disable warping of the mouse to the center of the screen during alt-zoom and mouse look. Useful with certain input devices, mouse sharing programs like Synergy, or running under Parallels.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>0</integer> + </map> <key>DisableRendering</key> <map> <key>Comment</key> @@ -9960,6 +9960,50 @@ <key>Value</key> <integer>15</integer> </map> + <key>UIButtonImageLeftPadding</key> + <map> + <key>Comment</key> + <string>Button Overlay Image Left Padding</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>S32</string> + <key>Value</key> + <integer>4</integer> + </map> + <key>UIButtonImageRightPadding</key> + <map> + <key>Comment</key> + <string>Button Overlay Image Right Padding</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>S32</string> + <key>Value</key> + <integer>4</integer> + </map> + <key>UIButtonImageTopPadding</key> + <map> + <key>Comment</key> + <string>Button Overlay Image Top Padding</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>S32</string> + <key>Value</key> + <integer>2</integer> + </map> + <key>UIButtonImageBottomPadding</key> + <map> + <key>Comment</key> + <string>Button Overlay Image Bottom Padding</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>S32</string> + <key>Value</key> + <integer>2</integer> + </map> <key>UploadBakedTexOld</key> <map> <key>Comment</key> diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt index cc8f6780e3..887dab66d1 100644 --- a/indra/newview/gpu_table.txt +++ b/indra/newview/gpu_table.txt @@ -192,9 +192,9 @@ NVIDIA GeForce 7100 .*NVIDIA.*GeForce 71.* 0 1 NVIDIA GeForce 7200 .*NVIDIA.*GeForce 72.* 1 1 NVIDIA GeForce 7300 .*NVIDIA.*GeForce 73.* 1 1 NVIDIA GeForce 7500 .*NVIDIA.*GeForce 75.* 1 1 -NVIDIA GeForce 7600 .*NVIDIA.*GeForce 76.* 2 1 -NVIDIA GeForce 7800 .*NVIDIA.*GeForce.*78.* 2 1 -NVIDIA GeForce 7900 .*NVIDIA.*GeForce.*79.* 2 1 +NVIDIA GeForce 7600 .*NVIDIA.*GeForce 76.* 3 1 +NVIDIA GeForce 7800 .*NVIDIA.*GeForce.*78.* 3 1 +NVIDIA GeForce 7900 .*NVIDIA.*GeForce.*79.* 3 1 NVIDIA GeForce 8100 .*NVIDIA.*GeForce 81.* 1 1 NVIDIA GeForce 8200 .*NVIDIA.*GeForce 82.* 1 1 NVIDIA GeForce 8300 .*NVIDIA.*GeForce 83.* 1 1 @@ -207,8 +207,8 @@ NVIDIA GeForce 8800 .*NVIDIA.*GeForce 88.* 3 1 NVIDIA GeForce 9300M .*NVIDIA.*GeForce 9300M.* 1 1 NVIDIA GeForce 9400M .*NVIDIA.*GeForce 9400M.* 1 1 NVIDIA GeForce 9500M .*NVIDIA.*GeForce 9500M.* 2 1 -NVIDIA GeForce 9600M .*NVIDIA.*GeForce 9600M.* 2 1 -NVIDIA GeForce 9700M .*NVIDIA.*GeForce 9700M.* 2 1 +NVIDIA GeForce 9600M .*NVIDIA.*GeForce 9600M.* 3 1 +NVIDIA GeForce 9700M .*NVIDIA.*GeForce 9700M.* 3 1 NVIDIA GeForce 9300 .*NVIDIA.*GeForce 93.* 1 1 NVIDIA GeForce 9400 .*GeForce 94.* 1 1 NVIDIA GeForce 9500 .*NVIDIA.*GeForce 95.* 2 1 diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index c21cdf9508..b0ff3a5626 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -1130,8 +1130,9 @@ void LLAgentWearables::addLocalTextureObject(const EWearableType wearable_type, if (!wearable) { llerrs << "Tried to add local texture object to invalid wearable with type " << wearable_type << " and index " << wearable_index << llendl; + return; } - LLLocalTextureObject* lto = new LLLocalTextureObject(); + LLLocalTextureObject lto; wearable->setLocalTextureObject(texture_type, lto); } @@ -2527,6 +2528,7 @@ void LLInitialWearablesFetch::processWearablesMessage() { llinfos << "Invalid wearable, type " << wearable_data->mType << " itemID " << wearable_data->mItemID << " assetID " << wearable_data->mAssetID << llendl; + delete wearable_data; } } diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 03180b6a9d..8f4ce4498e 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -35,6 +35,7 @@ #include "llagent.h" #include "llagentwearables.h" #include "llappearancemgr.h" +#include "llcommandhandler.h" #include "llfloatercustomize.h" #include "llgesturemgr.h" #include "llinventorybridge.h" @@ -47,6 +48,23 @@ #include "llviewerregion.h" #include "llwearablelist.h" +// support for secondlife:///app/appearance SLapps +class LLAppearanceHandler : public LLCommandHandler +{ +public: + // requests will be throttled from a non-trusted browser + LLAppearanceHandler() : LLCommandHandler("appearance", UNTRUSTED_THROTTLE) {} + + bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web) + { + // support secondlife:///app/appearance/show, but for now we just + // make all secondlife:///app/appearance SLapps behave this way + LLSideTray::getInstance()->showPanel("sidepanel_appearance", LLSD()); + return true; + } +}; +LLAppearanceHandler gAppearanceHandler; + class LLWearInventoryCategoryCallback : public LLInventoryCallback { public: @@ -274,11 +292,11 @@ private: struct LLFoundData { - LLFoundData() {} + LLFoundData() : mAssetType(LLAssetType::AT_NONE), mWearable(NULL) {} LLFoundData(const LLUUID& item_id, - const LLUUID& asset_id, - const std::string& name, - LLAssetType::EType asset_type) : + const LLUUID& asset_id, + const std::string& name, + LLAssetType::EType asset_type) : mItemID(item_id), mAssetID(asset_id), mName(name), diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index dd50b482cf..38d1e01d08 100644 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -35,11 +35,11 @@ #include "llsingleton.h" #include "llinventorymodel.h" -#include "llviewerinventory.h" #include "llcallbacklist.h" class LLWearable; class LLWearableHoldingPattern; +class LLInventoryCallback; class LLAppearanceManager: public LLSingleton<LLAppearanceManager> { diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index d38278864b..4da49862c8 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -163,7 +163,6 @@ #include "llvotree.h" #include "llvoavatar.h" #include "llfolderview.h" -#include "lltoolbar.h" #include "llagentpilot.h" #include "llvovolume.h" #include "llflexibleobject.h" @@ -417,7 +416,6 @@ static void settings_to_globals() LLVOAvatar::sVisibleInFirstPerson = gSavedSettings.getBOOL("FirstPersonAvatarVisible"); // clamp auto-open time to some minimum usable value LLFolderView::sAutoOpenTime = llmax(0.25f, gSavedSettings.getF32("FolderAutoOpenDelay")); - LLToolBar::sInventoryAutoOpenTime = gSavedSettings.getF32("InventoryAutoOpenDelay"); LLSelectMgr::sRectSelectInclusive = gSavedSettings.getBOOL("RectangleSelectInclusive"); LLSelectMgr::sRenderHiddenSelections = gSavedSettings.getBOOL("RenderHiddenSelections"); LLSelectMgr::sRenderLightRadius = gSavedSettings.getBOOL("RenderLightRadius"); @@ -2639,7 +2637,7 @@ void LLAppViewer::handleViewerCrash() gMessageSystem->stopLogging(); } - //LLWorld::getInstance()->getInfo(gDebugInfo); + if (LLWorld::instanceExists()) LLWorld::getInstance()->getInfo(gDebugInfo); // Close the debug file //pApp->writeDebugInfo(); @@ -4359,3 +4357,15 @@ void LLAppViewer::launchUpdater() // LLAppViewer::instance()->forceQuit(); } + +//virtual +void LLAppViewer::setMasterSystemAudioMute(bool mute) +{ + gSavedSettings.setBOOL("MuteAudio", mute); +} + +//virtual +bool LLAppViewer::getMasterSystemAudioMute() +{ + return gSavedSettings.getBOOL("MuteAudio"); +} diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h index 870d47aa79..899004a533 100644 --- a/indra/newview/llappviewer.h +++ b/indra/newview/llappviewer.h @@ -168,6 +168,10 @@ public: void purgeCache(); // Clear the local cache. + // mute/unmute the system's master audio + virtual void setMasterSystemAudioMute(bool mute); + virtual bool getMasterSystemAudioMute(); + protected: virtual bool initWindow(); // Initialize the viewer's window. virtual bool initLogging(); // Initialize log files, logging system, return false on failure. diff --git a/indra/newview/llappviewermacosx.cpp b/indra/newview/llappviewermacosx.cpp index d8c4a7d9d9..e195f6c856 100644 --- a/indra/newview/llappviewermacosx.cpp +++ b/indra/newview/llappviewermacosx.cpp @@ -49,6 +49,7 @@ #include <Carbon/Carbon.h> #include "lldir.h" #include <signal.h> +#include <CoreAudio/CoreAudio.h> // for systemwide mute class LLMediaCtrl; // for LLURLDispatcher namespace @@ -443,6 +444,59 @@ std::string LLAppViewerMacOSX::generateSerialNumber() return serial_md5; } +static AudioDeviceID get_default_audio_output_device(void) +{ + AudioDeviceID device = 0; + UInt32 size; + OSStatus err; + + size = sizeof(device); + err = AudioHardwareGetProperty(kAudioHardwarePropertyDefaultOutputDevice, &size, &device); + if(err != noErr) + { + LL_DEBUGS("SystemMute") << "Couldn't get default audio output device (0x" << std::hex << err << ")" << LL_ENDL; + } + + return device; +} + +//virtual +void LLAppViewerMacOSX::setMasterSystemAudioMute(bool new_mute) +{ + AudioDeviceID device = get_default_audio_output_device(); + + if(device != 0) + { + UInt32 mute = new_mute; + OSStatus err = AudioDeviceSetProperty(device, NULL, 0, false, kAudioDevicePropertyMute, sizeof(mute), &mute); + if(err != noErr) + { + LL_INFOS("SystemMute") << "Couldn't set audio mute property (0x" << std::hex << err << ")" << LL_ENDL; + } + } +} + +//virtual +bool LLAppViewerMacOSX::getMasterSystemAudioMute() +{ + // Assume the system isn't muted + UInt32 mute = 0; + + AudioDeviceID device = get_default_audio_output_device(); + + if(device != 0) + { + UInt32 size = sizeof(mute); + OSStatus err = AudioDeviceGetProperty(device, 0, false, kAudioDevicePropertyMute, &size, &mute); + if(err != noErr) + { + LL_DEBUGS("SystemMute") << "Couldn't get audio mute property (0x" << std::hex << err << ")" << LL_ENDL; + } + } + + return (mute != 0); +} + OSErr AEGURLHandler(const AppleEvent *messagein, AppleEvent *reply, long refIn) { OSErr result = noErr; diff --git a/indra/newview/llappviewermacosx.h b/indra/newview/llappviewermacosx.h index bc841fc3a7..cbf7e6c209 100644 --- a/indra/newview/llappviewermacosx.h +++ b/indra/newview/llappviewermacosx.h @@ -48,6 +48,9 @@ public: // virtual bool init(); // Override to do application initialization + // mute/unmute the system's master audio + virtual void setMasterSystemAudioMute(bool mute); + virtual bool getMasterSystemAudioMute(); protected: virtual bool restoreErrorTrap(); diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp index ae081882f8..39d1efa49a 100644 --- a/indra/newview/llavataractions.cpp +++ b/indra/newview/llavataractions.cpp @@ -250,17 +250,20 @@ void LLAvatarActions::startAdhocCall(const std::vector<LLUUID>& ids) make_ui_sound("UISndStartIM"); } +/* AD *TODO: Is this function needed any more? + I fixed it a bit(added check for canCall), but it appears that it is not used + anywhere. Maybe it should be removed? // static bool LLAvatarActions::isCalling(const LLUUID &id) { - if (id.isNull()) + if (id.isNull() || !canCall()) { return false; } LLUUID session_id = gIMMgr->computeSessionID(IM_NOTHING_SPECIAL, id); return (LLIMModel::getInstance()->findIMSession(session_id) != NULL); -} +}*/ //static bool LLAvatarActions::canCall() diff --git a/indra/newview/llavataractions.h b/indra/newview/llavataractions.h index ebfd40b796..c751661acf 100644 --- a/indra/newview/llavataractions.h +++ b/indra/newview/llavataractions.h @@ -126,7 +126,10 @@ public: /** * Return true if the avatar is in a P2P voice call with a given user */ - static bool isCalling(const LLUUID &id); + /* AD *TODO: Is this function needed any more? + I fixed it a bit(added check for canCall), but it appears that it is not used + anywhere. Maybe it should be removed? + static bool isCalling(const LLUUID &id);*/ /** * @return true if call to the resident can be made diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp index 1640081ee6..7ac9153b21 100644 --- a/indra/newview/llcallfloater.cpp +++ b/indra/newview/llcallfloater.cpp @@ -163,6 +163,8 @@ BOOL LLCallFloater::postBuild() //chrome="true" hides floater caption if (mDragHandle) mDragHandle->setTitleVisible(TRUE); + + updateSession(); return TRUE; } @@ -245,8 +247,7 @@ void LLCallFloater::updateSession() } } - const LLUUID& session_id = voice_channel->getSessionID(); - LL_DEBUGS("Voice") << "Set speaker manager for session: " << session_id << LL_ENDL; + const LLUUID& session_id = voice_channel ? voice_channel->getSessionID() : LLUUID::null; LLIMModel::LLIMSession* im_session = LLIMModel::getInstance()->findIMSession(session_id); if (im_session) @@ -566,33 +567,46 @@ void LLCallFloater::updateParticipantsVoiceState() if (!found) { - // If an avatarID is not found in a speakers list from VoiceClient and - // a panel with this ID has a JOINED status this means that this person - // HAS LEFT the call. - if ((getState(participant_id) == STATE_JOINED)) - { - setState(item, STATE_LEFT); + updateNotInVoiceParticipantState(item); + } + } +} - LLPointer<LLSpeaker> speaker = mSpeakerManager->findSpeaker(item->getAvatarId()); - if (speaker.isNull()) - { - continue; - } +void LLCallFloater::updateNotInVoiceParticipantState(LLAvatarListItem* item) +{ + LLUUID participant_id = item->getAvatarId(); + ESpeakerState current_state = getState(participant_id); - speaker->mHasLeftCurrentCall = TRUE; - } - // If an avatarID is not found in a speakers list from VoiceClient and - // a panel with this ID has a LEFT status this means that this person - // HAS ENTERED session but it is not in voice chat yet. So, set INVITED status - else if ((getState(participant_id) != STATE_LEFT)) - { - setState(item, STATE_INVITED); - } - else + switch (current_state) + { + case STATE_JOINED: + // If an avatarID is not found in a speakers list from VoiceClient and + // a panel with this ID has a JOINED status this means that this person + // HAS LEFT the call. + setState(item, STATE_LEFT); + + { + LLPointer<LLSpeaker> speaker = mSpeakerManager->findSpeaker(participant_id); + if (speaker.notNull()) { - llwarns << "Unsupported (" << getState(participant_id) << ") state: " << item->getAvatarName() << LL_ENDL; + speaker->mHasLeftCurrentCall = TRUE; } } + break; + case STATE_INVITED: + case STATE_LEFT: + // nothing to do. These states should not be changed. + break; + case STATE_UNKNOWN: + // If an avatarID is not found in a speakers list from VoiceClient and + // a panel with this ID has an UNKNOWN status this means that this person + // HAS ENTERED session but it is not in voice chat yet. So, set INVITED status + setState(item, STATE_INVITED); + break; + default: + // for possible new future states. + llwarns << "Unsupported (" << getState(participant_id) << ") state for: " << item->getAvatarName() << llendl; + break; } } diff --git a/indra/newview/llcallfloater.h b/indra/newview/llcallfloater.h index eded3a426b..766191379b 100644 --- a/indra/newview/llcallfloater.h +++ b/indra/newview/llcallfloater.h @@ -145,6 +145,10 @@ private: */ void updateParticipantsVoiceState(); + /** + * Updates voice state of participant not in current voice channel depend on its current state. + */ + void updateNotInVoiceParticipantState(LLAvatarListItem* item); void setState(LLAvatarListItem* item, ESpeakerState state); void setState(const LLUUID& speaker_id, ESpeakerState state) { diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp index a46cd84b60..5ec18dab29 100644 --- a/indra/newview/llchathistory.cpp +++ b/indra/newview/llchathistory.cpp @@ -34,7 +34,9 @@ #include "llinstantmessage.h" +#include "llimview.h" #include "llchathistory.h" +#include "llcommandhandler.h" #include "llpanel.h" #include "lluictrlfactory.h" #include "llscrollcontainer.h" @@ -46,8 +48,11 @@ #include "llfloaterreg.h" #include "llmutelist.h" #include "llstylemap.h" +#include "llslurl.h" #include "lllayoutstack.h" #include "llagent.h" +#include "llviewerregion.h" +#include "llworld.h" #include "llsidetray.h"//for blocked objects panel @@ -55,6 +60,38 @@ static LLDefaultChildRegistry::Register<LLChatHistory> r("chat_history"); const static std::string NEW_LINE(rawstr_to_utf8("\n")); +// support for secondlife:///app/objectim/{UUID}/ SLapps +class LLObjectIMHandler : public LLCommandHandler +{ +public: + // requests will be throttled from a non-trusted browser + LLObjectIMHandler() : LLCommandHandler("objectim", UNTRUSTED_THROTTLE) {} + + bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web) + { + if (params.size() < 1) + { + return false; + } + + LLUUID object_id; + if (!object_id.set(params[0], FALSE)) + { + return false; + } + + LLSD payload; + payload["object_id"] = object_id; + payload["owner_id"] = query_map["owner"]; + payload["name"] = query_map["name"]; + payload["slurl"] = query_map["slurl"]; + payload["group_owned"] = query_map["groupowned"]; + LLFloaterReg::showInstance("inspect_remote_object", payload); + return true; + } +}; +LLObjectIMHandler gObjectIMHandler; + class LLChatHistoryHeader: public LLPanel { public: @@ -183,6 +220,7 @@ public: void setup(const LLChat& chat,const LLStyle::Params& style_params) { mAvatarID = chat.mFromID; + mSessionID = chat.mSessionID; mSourceType = chat.mSourceType; gCacheName->get(mAvatarID, FALSE, boost::bind(&LLChatHistoryHeader::nameUpdatedCallback, this, _1, _2, _3, _4)); if(chat.mFromID.isNull()) @@ -305,6 +343,11 @@ protected: menu->setItemEnabled("Remove Friend", false); } + if (mSessionID == LLIMMgr::computeSessionID(IM_NOTHING_SPECIAL, mAvatarID)) + { + menu->setItemVisible("Send IM", false); + } + menu->buildDrawLabels(); menu->updateParent(LLMenuGL::sMenuContainer); LLMenuGL::showPopup(this, menu, x, y); @@ -344,6 +387,7 @@ protected: std::string mFirstName; std::string mLastName; std::string mFrom; + LLUUID mSessionID; S32 mMinUserNameWidth; }; @@ -457,8 +501,9 @@ void LLChatHistory::clear() mLastFromID = LLUUID::null; } -void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_chat_history, const LLStyle::Params& input_append_params) +void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LLStyle::Params& input_append_params) { + bool use_plain_text_chat_history = args["use_plain_text_chat_history"].asBoolean(); if (!mEditor->scrolledToEnd() && chat.mFromID != gAgent.getID() && !chat.mFromName.empty()) { mUnreadChatSources.insert(chat.mFromName); @@ -524,7 +569,27 @@ void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_ if (utf8str_trim(chat.mFromName).size() != 0) { // Don't hotlink any messages from the system (e.g. "Second Life:"), so just add those in plain text. - if ( chat.mFromName != SYSTEM_FROM && chat.mFromID.notNull() ) + if ( chat.mSourceType == CHAT_SOURCE_OBJECT ) + { + // for object IMs, create a secondlife:///app/objectim SLapp + std::string url = LLSLURL("objectim", chat.mFromID, "").getSLURLString(); + url += "?name=" + chat.mFromName; + url += "&owner=" + args["owner_id"].asString(); + + LLViewerRegion *region = LLWorld::getInstance()->getRegionFromPosAgent(chat.mPosAgent); + if (region) + { + LLSLURL region_slurl(region->getName(), chat.mPosAgent); + url += "&slurl=" + region_slurl.getLocationString(); + } + + // set the link for the object name to be the objectim SLapp + LLStyle::Params link_params(style_params); + link_params.color.control = "HTMLLinkColor"; + link_params.link_href = url; + mEditor->appendText(chat.mFromName + delimiter, false, link_params); + } + else if ( chat.mFromName != SYSTEM_FROM && chat.mFromID.notNull() ) { LLStyle::Params link_params(style_params); link_params.fillFrom(LLStyleMap::instance().lookupAgent(chat.mFromID)); @@ -550,8 +615,8 @@ void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_ if (mLastFromName == chat.mFromName && mLastFromID == chat.mFromID && mLastMessageTime.notNull() - && (new_message_time.secondsSinceEpoch() - mLastMessageTime.secondsSinceEpoch()) < 60.0 - ) + && (new_message_time.secondsSinceEpoch() - mLastMessageTime.secondsSinceEpoch()) < 60.0 + && mLastMessageTimeStr.size() == chat.mTimeStr.size()) //*HACK to distinguish between current and previous chat session's histories { view = getSeparator(); p.top_pad = mTopSeparatorPad; @@ -585,6 +650,7 @@ void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_ mLastFromName = chat.mFromName; mLastFromID = chat.mFromID; mLastMessageTime = new_message_time; + mLastMessageTimeStr = chat.mTimeStr; } std::string message = irc_me ? chat.mText.substr(3) : chat.mText; diff --git a/indra/newview/llchathistory.h b/indra/newview/llchathistory.h index f2d403f639..32600bb71d 100644 --- a/indra/newview/llchathistory.h +++ b/indra/newview/llchathistory.h @@ -113,11 +113,14 @@ class LLChatHistory : public LLUICtrl * Appends a widget message. * If last user appended message, concurs with current user, * separator is added before the message, otherwise header is added. + * The args LLSD contains: + * - use_plain_text_chat_history (bool) - whether to add message as plain text. + * - owner_id (LLUUID) - the owner ID for object chat * @param chat - base chat message. - * @param use_plain_text_chat_history - whether to add message as plain text. + * @param args - additional arguments * @param input_append_params - font style. */ - void appendMessage(const LLChat& chat, const bool use_plain_text_chat_history = false, const LLStyle::Params& input_append_params = LLStyle::Params()); + void appendMessage(const LLChat& chat, const LLSD &args = LLSD(), const LLStyle::Params& input_append_params = LLStyle::Params()); /*virtual*/ void clear(); /*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); @@ -125,6 +128,8 @@ class LLChatHistory : public LLUICtrl std::string mLastFromName; LLUUID mLastFromID; LLDate mLastMessageTime; + std::string mLastMessageTimeStr; + std::string mMessageHeaderFilename; std::string mMessageSeparatorFilename; diff --git a/indra/newview/llchatitemscontainerctrl.h b/indra/newview/llchatitemscontainerctrl.h index f4b8655054..4d730573d9 100644 --- a/indra/newview/llchatitemscontainerctrl.h +++ b/indra/newview/llchatitemscontainerctrl.h @@ -1,5 +1,5 @@ /** - * @file llchatitemscontainer.h + * @file llchatitemscontainerctrl.h * @brief chat history scrolling panel implementation * * $LicenseInfo:firstyear=2004&license=viewergpl$ @@ -30,12 +30,12 @@ * $/LicenseInfo$ */ -#ifndef LL_LLCHATITEMSCONTAINER_H_ -#define LL_LLCHATITEMSCONTAINER_H_ +#ifndef LL_LLCHATITEMSCONTAINERCTRL_H_ +#define LL_LLCHATITEMSCONTAINERCTRL_H_ +#include "llchat.h" #include "llpanel.h" #include "llscrollbar.h" -#include "string" #include "llviewerchat.h" #include "lltoastpanel.h" @@ -49,10 +49,12 @@ typedef enum e_show_item_header class LLNearbyChatToastPanel: public LLToastPanelBase { protected: - LLNearbyChatToastPanel():mIsDirty(false){}; + LLNearbyChatToastPanel() + : + mIsDirty(false), + mSourceType(CHAT_SOURCE_OBJECT) + {}; public: - - ~LLNearbyChatToastPanel(){} static LLNearbyChatToastPanel* createInstance(); diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp index f1de4e2982..f646bcccb5 100644 --- a/indra/newview/llchiclet.cpp +++ b/indra/newview/llchiclet.cpp @@ -459,6 +459,14 @@ LLIMChiclet::LLIMChiclet(const LLIMChiclet::Params& p) enableCounterControl(p.enable_counter); } +/* virtual*/ +BOOL LLIMChiclet::postBuild() +{ + mChicletButton = getChild<LLButton>("chiclet_button"); + mChicletButton->setCommitCallback(boost::bind(&LLIMChiclet::onMouseDown, this)); + mChicletButton->setDoubleClickCallback(boost::bind(&LLIMChiclet::onMouseDown, this)); + return TRUE; +} void LLIMChiclet::setShowSpeaker(bool show) { bool needs_resize = getShowSpeaker() != show; @@ -583,12 +591,6 @@ void LLIMChiclet::setToggleState(bool toggle) mChicletButton->setToggleState(toggle); } -BOOL LLIMChiclet::handleMouseDown(S32 x, S32 y, MASK mask) -{ - onMouseDown(); - return LLChiclet::handleMouseDown(x, y, mask); -} - void LLIMChiclet::draw() { LLUICtrl::draw(); @@ -1905,12 +1907,6 @@ void LLScriptChiclet::onMouseDown() LLScriptFloaterManager::getInstance()->toggleScriptFloater(getSessionId()); } -BOOL LLScriptChiclet::handleMouseDown(S32 x, S32 y, MASK mask) -{ - onMouseDown(); - return LLChiclet::handleMouseDown(x, y, mask); -} - ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// @@ -1975,10 +1971,4 @@ void LLInvOfferChiclet::onMouseDown() LLScriptFloaterManager::instance().toggleScriptFloater(getSessionId()); } -BOOL LLInvOfferChiclet::handleMouseDown(S32 x, S32 y, MASK mask) -{ - onMouseDown(); - return LLChiclet::handleMouseDown(x, y, mask); -} - // EOF diff --git a/indra/newview/llchiclet.h b/indra/newview/llchiclet.h index bb4846aa57..b006ae3420 100644 --- a/indra/newview/llchiclet.h +++ b/indra/newview/llchiclet.h @@ -328,6 +328,10 @@ public: virtual ~LLIMChiclet() {}; /** + * It is used for default setting up of chicklet:click handler, etc. + */ + BOOL postBuild(); + /** * Sets IM session name. This name will be displayed in chiclet tooltip. */ virtual void setIMSessionName(const std::string& name) { setToolTip(name); } @@ -428,8 +432,6 @@ protected: LLIMChiclet(const LLIMChiclet::Params& p); - /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask); - protected: bool mShowSpeaker; @@ -640,11 +642,6 @@ public: */ /*virtual*/ void onMouseDown(); - /** - * Override default handler - */ - /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask); - protected: LLScriptChiclet(const Params&); @@ -684,12 +681,6 @@ public: */ /*virtual*/ void onMouseDown(); - /** - * Override default handler - */ - /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask); - - protected: LLInvOfferChiclet(const Params&); friend class LLUICtrlFactory; diff --git a/indra/newview/llcompilequeue.cpp b/indra/newview/llcompilequeue.cpp index 47f1b7c9f5..a96981a108 100644 --- a/indra/newview/llcompilequeue.cpp +++ b/indra/newview/llcompilequeue.cpp @@ -92,7 +92,8 @@ struct LLScriptQueueData // Default constructor LLFloaterScriptQueue::LLFloaterScriptQueue(const LLSD& key) : LLFloater(key), - mDone(FALSE) + mDone(false), + mMono(false) { //Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this,"floater_script_queue.xml", FALSE); } @@ -216,7 +217,7 @@ BOOL LLFloaterScriptQueue::nextObject() } while((mObjectIDs.count() > 0) && !successful_start); if(isDone() && !mDone) { - mDone = TRUE; + mDone = true; getChild<LLScrollListCtrl>("queue output")->setCommentText(getString("Done")); childSetEnabled("close",TRUE); } @@ -446,19 +447,17 @@ void LLFloaterCompileQueue::scriptArrived(LLVFS *vfs, const LLUUID& asset_id, if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status ) { - //TODO* CHAT: how to show this? - //LLSD args; - //args["MESSAGE"] = LLTrans::getString("CompileQueueScriptNotFound); - //LLNotificationsUtil::add("SystemMessage", args); + LLSD args; + args["MESSAGE"] = LLTrans::getString("CompileQueueScriptNotFound"); + LLNotificationsUtil::add("SystemMessage", args); buffer = LLTrans::getString("CompileQueueProblemDownloading") + (": ") + data->mScriptName; } else if (LL_ERR_INSUFFICIENT_PERMISSIONS == status) { - //TODO* CHAT: how to show this? - //LLSD args; - //args["MESSAGE"] = LLTrans::getString("CompileQueueScriptNotFound); - //LLNotificationsUtil::add("SystemMessage", args); + LLSD args; + args["MESSAGE"] = LLTrans::getString("CompileQueueInsufficientPermDownload"); + LLNotificationsUtil::add("SystemMessage", args); buffer = LLTrans::getString("CompileQueueInsufficientPermFor") + (": ") + data->mScriptName; } diff --git a/indra/newview/llcompilequeue.h b/indra/newview/llcompilequeue.h index 063d573239..2d061f5d8a 100644 --- a/indra/newview/llcompilequeue.h +++ b/indra/newview/llcompilequeue.h @@ -104,10 +104,10 @@ protected: // Object Queue LLDynamicArray<LLUUID> mObjectIDs; LLUUID mCurrentObjectID; - BOOL mDone; + bool mDone; std::string mStartString; - BOOL mMono; + bool mMono; }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/indra/newview/lldirpicker.cpp b/indra/newview/lldirpicker.cpp index a720dc46b5..d1abbb0f51 100644 --- a/indra/newview/lldirpicker.cpp +++ b/indra/newview/lldirpicker.cpp @@ -61,7 +61,9 @@ LLDirPicker LLDirPicker::sInstance; // #if LL_WINDOWS -LLDirPicker::LLDirPicker() +LLDirPicker::LLDirPicker() : + mFileName(NULL), + mLocked(false) { } @@ -125,7 +127,9 @@ std::string LLDirPicker::getDirName() /////////////////////////////////////////////DARWIN #elif LL_DARWIN -LLDirPicker::LLDirPicker() +LLDirPicker::LLDirPicker() : + mFileName(NULL), + mLocked(false) { reset(); @@ -262,13 +266,15 @@ std::string LLDirPicker::getDirName() void LLDirPicker::reset() { - mLocked = FALSE; + mLocked = false; mDir.clear(); } #elif LL_LINUX || LL_SOLARIS -LLDirPicker::LLDirPicker() +LLDirPicker::LLDirPicker() : + mFileName(NULL), + mLocked(false) { mFilePicker = new LLFilePicker(); reset(); diff --git a/indra/newview/lldirpicker.h b/indra/newview/lldirpicker.h index 26f76915ae..b48d2c66c4 100644 --- a/indra/newview/lldirpicker.h +++ b/indra/newview/lldirpicker.h @@ -97,7 +97,7 @@ private: std::string* mFileName; std::string mDir; - BOOL mLocked; + bool mLocked; static LLDirPicker sInstance; diff --git a/indra/newview/lleventinfo.h b/indra/newview/lleventinfo.h index 493c659983..4f33a7925a 100644 --- a/indra/newview/lleventinfo.h +++ b/indra/newview/lleventinfo.h @@ -43,7 +43,15 @@ class LLMessageSystem; class LLEventInfo { public: - LLEventInfo() {} + LLEventInfo() : + mID(0), + mDuration(0), + mUnixTime(0), + mHasCover(FALSE), + mCover(0), + mEventFlags(0), + mSelected(FALSE) + {} void unpack(LLMessageSystem *msg); diff --git a/indra/newview/lleventnotifier.cpp b/indra/newview/lleventnotifier.cpp index edfb9dc864..f096ba604f 100644 --- a/indra/newview/lleventnotifier.cpp +++ b/indra/newview/lleventnotifier.cpp @@ -174,6 +174,7 @@ void LLEventNotifier::remove(const U32 event_id) LLEventNotification::LLEventNotification() : mEventID(0), + mEventDate(0), mEventName("") { } diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index eef774426a..965ac1cad0 100644 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -157,6 +157,7 @@ void LLFace::init(LLDrawable* drawablep, LLViewerObject* objp) mGeomIndex = 0; mIndicesCount = 0; mIndicesIndex = 0; + mIndexInTex = 0; mTexture = NULL; mTEOffset = -1; diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp index 0e42ff09d8..57e6619470 100644 --- a/indra/newview/llfavoritesbar.cpp +++ b/indra/newview/llfavoritesbar.cpp @@ -685,7 +685,7 @@ void LLFavoritesBarCtrl::updateButtons() { // an child's order and mItems should be same if (button->getLandmarkId() != item->getUUID() // sort order has been changed - || button->getLabelSelected() != item->getDisplayName() // favorite's name has been changed + || button->getLabelSelected() != item->getName() // favorite's name has been changed || button->getRect().mRight < rightest_point) // favbar's width has been changed { break; @@ -780,7 +780,7 @@ LLButton* LLFavoritesBarCtrl::createButton(const LLPointer<LLViewerInventoryItem * 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. */ - int requred_width = mFont->getWidth(item->getDisplayName()) + 20; + int requred_width = mFont->getWidth(item->getName()) + 20; int width = requred_width > def_button_width? def_button_width : requred_width; LLFavoriteLandmarkButton* fav_btn = NULL; diff --git a/indra/newview/llfilepicker.cpp b/indra/newview/llfilepicker.cpp index 028e1cc098..2873057c19 100644 --- a/indra/newview/llfilepicker.cpp +++ b/indra/newview/llfilepicker.cpp @@ -68,7 +68,7 @@ LLFilePicker LLFilePicker::sInstance; // LLFilePicker::LLFilePicker() : mCurrentFile(0), - mLocked(FALSE) + mLocked(false) { reset(); @@ -92,6 +92,7 @@ LLFilePicker::LLFilePicker() mOFN.lCustData = 0L; mOFN.lpfnHook = NULL; mOFN.lpTemplateName = NULL; + mFilesW[0] = '\0'; #endif #if LL_DARWIN @@ -120,7 +121,7 @@ const std::string LLFilePicker::getNextFile() { if (mCurrentFile >= getFileCount()) { - mLocked = FALSE; + mLocked = false; return std::string(); } else @@ -133,7 +134,7 @@ const std::string LLFilePicker::getCurFile() { if (mCurrentFile >= getFileCount()) { - mLocked = FALSE; + mLocked = false; return std::string(); } else @@ -144,7 +145,7 @@ const std::string LLFilePicker::getCurFile() void LLFilePicker::reset() { - mLocked = FALSE; + mLocked = false; mFiles.clear(); mCurrentFile = 0; } @@ -276,7 +277,7 @@ BOOL LLFilePicker::getMultipleOpenFiles(ELoadFilter filter) } else { - mLocked = TRUE; + mLocked = true; WCHAR* tptrw = mFilesW; std::string dirname; while(1) @@ -866,7 +867,7 @@ BOOL LLFilePicker::getMultipleOpenFiles(ELoadFilter filter) if (getFileCount()) success = true; if (getFileCount() > 1) - mLocked = TRUE; + mLocked = true; } // Account for the fact that the app has been stalled. diff --git a/indra/newview/llfilepicker.h b/indra/newview/llfilepicker.h index 7ecbc3db60..4f254ff67e 100644 --- a/indra/newview/llfilepicker.h +++ b/indra/newview/llfilepicker.h @@ -176,8 +176,7 @@ private: std::vector<std::string> mFiles; S32 mCurrentFile; - BOOL mLocked; - BOOL mMultiFile; + bool mLocked; static LLFilePicker sInstance; diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp index fc8790c172..aea2de8e92 100644 --- a/indra/newview/llflexibleobject.cpp +++ b/indra/newview/llflexibleobject.cpp @@ -66,6 +66,7 @@ LLVolumeImplFlexible::LLVolumeImplFlexible(LLViewerObject* vo, LLFlexibleObjectD mInitializedRes = -1; mSimulateRes = 0; mFrameNum = 0; + mCollisionSphereRadius = 0.f; mRenderRes = 1; if(mVO->mDrawable.notNull()) diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp index 56bc4a7933..4b6e17d548 100644 --- a/indra/newview/llfloaterabout.cpp +++ b/indra/newview/llfloaterabout.cpp @@ -187,6 +187,12 @@ BOOL LLFloaterAbout::postBuild() support << '\n' << getString("AboutTraffic", args); } + // don't make the sim hostname be a hyperlink + if (info.has("HOSTNAME")) + { + support_widget->addBlackListUrl(info["HOSTNAME"].asString()); + } + support_widget->appendText(support.str(), FALSE, LLStyle::Params() diff --git a/indra/newview/llfloateranimpreview.h b/indra/newview/llfloateranimpreview.h index dd2c0b809a..3ee1f419ab 100644 --- a/indra/newview/llfloateranimpreview.h +++ b/indra/newview/llfloateranimpreview.h @@ -127,7 +127,6 @@ protected: LLRectf mPreviewImageRect; LLAssetID mMotionID; LLTransactionID mTransactionID; - BOOL mEnabled; LLAnimPauseRequest mPauseRequest; std::map<std::string, LLUUID> mIDList; diff --git a/indra/newview/llfloaterbulkpermission.cpp b/indra/newview/llfloaterbulkpermission.cpp index 5c3a54e34b..b2f700069f 100644 --- a/indra/newview/llfloaterbulkpermission.cpp +++ b/indra/newview/llfloaterbulkpermission.cpp @@ -43,6 +43,7 @@ #include "llviewerregion.h" #include "lscript_rt_interface.h" #include "llviewercontrol.h" +#include "llviewerinventory.h" #include "llviewerobject.h" #include "llviewerregion.h" #include "llresmgr.h" diff --git a/indra/newview/llfloaterbulkpermission.h b/indra/newview/llfloaterbulkpermission.h index 31f4f5c3e1..bffcff7059 100644 --- a/indra/newview/llfloaterbulkpermission.h +++ b/indra/newview/llfloaterbulkpermission.h @@ -44,8 +44,6 @@ #include "llfloater.h" #include "llscrolllistctrl.h" -#include "llviewerinventory.h" - class LLFloaterBulkPermission : public LLFloater, public LLVOInventoryListener { friend class LLFloaterReg; diff --git a/indra/newview/llfloaterchatterbox.cpp b/indra/newview/llfloaterchatterbox.cpp index da6d436e2e..a15cef7ea4 100644 --- a/indra/newview/llfloaterchatterbox.cpp +++ b/indra/newview/llfloaterchatterbox.cpp @@ -216,11 +216,11 @@ void LLFloaterChatterBox::onOpen(const LLSD& key) } else if (key.isDefined()) { - LLFloaterIMPanel* impanel = gIMMgr->findFloaterBySession(key.asUUID()); + /*LLFloaterIMPanel* impanel = gIMMgr->findFloaterBySession(key.asUUID()); if (impanel) { impanel->openFloater(); - } + }*/ } } diff --git a/indra/newview/llfloatergesture.cpp b/indra/newview/llfloatergesture.cpp index de65c6f876..b684e1f985 100644 --- a/indra/newview/llfloatergesture.cpp +++ b/indra/newview/llfloatergesture.cpp @@ -367,7 +367,14 @@ void LLFloaterGesture::addGesture(const LLUUID& item_id , LLMultiGesture* gestur element["columns"][3]["font"]["name"] = "SANSSERIF"; element["columns"][3]["font"]["style"] = font_style; } - list->addElement(element, ADD_BOTTOM); + + LLScrollListItem* sl_item = list->addElement(element, ADD_BOTTOM); + if(sl_item) + { + LLFontGL::StyleFlags style = LLGestureManager::getInstance()->isGestureActive(item_id) ? LLFontGL::BOLD : LLFontGL::NORMAL; + // *TODO find out why ["font"]["style"] does not affect font style + ((LLScrollListText*)sl_item->getColumn(0))->setFontStyle(style); + } } void LLFloaterGesture::getSelectedIds(std::vector<LLUUID>& ids) @@ -401,8 +408,7 @@ bool LLFloaterGesture::isActionEnabled(const LLSD& command) } return false; } - else if("copy_uuid" == command_name || "edit_gesture" == command_name - || "inspect" == command_name) + else if("copy_uuid" == command_name || "edit_gesture" == command_name) { return mGestureList->getAllSelected().size() == 1; } diff --git a/indra/newview/llfloaterhardwaresettings.cpp b/indra/newview/llfloaterhardwaresettings.cpp index 31b494b590..b2564eb2b6 100644 --- a/indra/newview/llfloaterhardwaresettings.cpp +++ b/indra/newview/llfloaterhardwaresettings.cpp @@ -50,7 +50,17 @@ #include "llsliderctrl.h" LLFloaterHardwareSettings::LLFloaterHardwareSettings(const LLSD& key) - : LLFloater(key) + : LLFloater(key), + + // these should be set on imminent refresh() call, + // but init them anyway + mUseVBO(0), + mUseAniso(0), + mFSAASamples(0), + mGamma(0.0), + mVideoCardMem(0), + mFogRatio(0.0), + mProbeHardwareOnStartup(FALSE) { //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_hardware_settings.xml"); } diff --git a/indra/newview/llfloaterjoystick.cpp b/indra/newview/llfloaterjoystick.cpp index 06fe2a84c8..78bc63ac8c 100644 --- a/indra/newview/llfloaterjoystick.cpp +++ b/indra/newview/llfloaterjoystick.cpp @@ -52,6 +52,7 @@ LLFloaterJoystick::LLFloaterJoystick(const LLSD& data) { //Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this, "floater_joystick.xml"); + initFromSettings(); } void LLFloaterJoystick::draw() @@ -123,10 +124,8 @@ void LLFloaterJoystick::apply() { } -void LLFloaterJoystick::refresh() +void LLFloaterJoystick::initFromSettings() { - LLFloater::refresh(); - mJoystickEnabled = gSavedSettings.getBOOL("JoystickEnabled"); mJoystickAxis[0] = gSavedSettings.getS32("JoystickAxis0"); @@ -194,6 +193,12 @@ void LLFloaterJoystick::refresh() mFlycamFeathering = gSavedSettings.getF32("FlycamFeathering"); } +void LLFloaterJoystick::refresh() +{ + LLFloater::refresh(); + initFromSettings(); +} + void LLFloaterJoystick::cancel() { gSavedSettings.setBOOL("JoystickEnabled", mJoystickEnabled); diff --git a/indra/newview/llfloaterjoystick.h b/indra/newview/llfloaterjoystick.h index f3559c28e9..7a2f497c69 100644 --- a/indra/newview/llfloaterjoystick.h +++ b/indra/newview/llfloaterjoystick.h @@ -55,6 +55,8 @@ private: LLFloaterJoystick(const LLSD& data); virtual ~LLFloaterJoystick(); + + void initFromSettings(); static void onCommitJoystickEnabled(LLUICtrl*, void*); static void onClickRestoreSNDefaults(void*); diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index e61cca046b..1d177d8dba 100644 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -1028,7 +1028,30 @@ void LLPanelLandGeneral::onClickStopSellLand(void* data) //--------------------------------------------------------------------------- LLPanelLandObjects::LLPanelLandObjects(LLParcelSelectionHandle& parcel) : LLPanel(), - mParcel(parcel) + + mParcel(parcel), + mParcelObjectBonus(NULL), + mSWTotalObjects(NULL), + mObjectContribution(NULL), + mTotalObjects(NULL), + mOwnerObjects(NULL), + mBtnShowOwnerObjects(NULL), + mBtnReturnOwnerObjects(NULL), + mGroupObjects(NULL), + mBtnShowGroupObjects(NULL), + mBtnReturnGroupObjects(NULL), + mOtherObjects(NULL), + mBtnShowOtherObjects(NULL), + mBtnReturnOtherObjects(NULL), + mSelectedObjects(NULL), + mCleanOtherObjectsTime(NULL), + mOtherTime(0), + mBtnRefresh(NULL), + mBtnReturnOwnerList(NULL), + mOwnerList(NULL), + mFirstReply(TRUE), + mSelectedCount(0), + mSelectedIsGroup(FALSE) { } diff --git a/indra/newview/llfloatermap.cpp b/indra/newview/llfloatermap.cpp index d18f127f85..568f4b254e 100644 --- a/indra/newview/llfloatermap.cpp +++ b/indra/newview/llfloatermap.cpp @@ -112,6 +112,7 @@ BOOL LLFloaterMap::postBuild() sendChildToBack(getDragHandle()); setIsChrome(TRUE); + getDragHandle()->setTitleVisible(TRUE); // keep onscreen gFloaterView->adjustToFitScreen(this, FALSE); diff --git a/indra/newview/llfloaterpay.cpp b/indra/newview/llfloaterpay.cpp index c2389e73a0..00959322e5 100644 --- a/indra/newview/llfloaterpay.cpp +++ b/indra/newview/llfloaterpay.cpp @@ -135,7 +135,8 @@ LLFloaterPay::LLFloaterPay(const LLSD& key) mCallback(NULL), mObjectNameText(NULL), mTargetUUID(key.asUUID()), - mTargetIsGroup(FALSE) + mTargetIsGroup(FALSE), + mHaveName(FALSE) { } diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index df57085ae1..da1cad305c 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -327,6 +327,7 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key) mCommitCallbackRegistrar.add("Pref.AutoDetectAspect", boost::bind(&LLFloaterPreference::onCommitAutoDetectAspect, this)); mCommitCallbackRegistrar.add("Pref.ParcelMediaAutoPlayEnable", boost::bind(&LLFloaterPreference::onCommitParcelMediaAutoPlayEnable, this)); mCommitCallbackRegistrar.add("Pref.MediaEnabled", boost::bind(&LLFloaterPreference::onCommitMediaEnabled, this)); + mCommitCallbackRegistrar.add("Pref.MusicEnabled", boost::bind(&LLFloaterPreference::onCommitMusicEnabled, this)); mCommitCallbackRegistrar.add("Pref.onSelectAspectRatio", boost::bind(&LLFloaterPreference::onKeystrokeAspectRatio, this)); mCommitCallbackRegistrar.add("Pref.QualityPerformance", boost::bind(&LLFloaterPreference::onChangeQuality, this, _2)); mCommitCallbackRegistrar.add("Pref.applyUIColor", boost::bind(&LLFloaterPreference::applyUIColor, this ,_1, _2)); @@ -1001,12 +1002,14 @@ void LLFloaterPreference::onCommitMediaEnabled() { LLCheckBoxCtrl *media_enabled_ctrl = getChild<LLCheckBoxCtrl>("media_enabled"); bool enabled = media_enabled_ctrl->get(); - gSavedSettings.setBOOL("AudioStreamingVideo", enabled); - gSavedSettings.setBOOL("AudioStreamingMusic", enabled); gSavedSettings.setBOOL("AudioStreamingMedia", enabled); - media_enabled_ctrl->setTentative(false); - // Update enabled state of the "autoplay" checkbox - getChild<LLCheckBoxCtrl>("autoplay_enabled")->setEnabled(enabled); +} + +void LLFloaterPreference::onCommitMusicEnabled() +{ + LLCheckBoxCtrl *music_enabled_ctrl = getChild<LLCheckBoxCtrl>("music_enabled"); + bool enabled = music_enabled_ctrl->get(); + gSavedSettings.setBOOL("AudioStreamingMusic", enabled); } void LLFloaterPreference::refresh() @@ -1424,18 +1427,16 @@ BOOL LLPanelPreference::postBuild() } //////////////////////PanelPrivacy /////////////////// - if(hasChild("media_enabled")) + if (hasChild("media_enabled")) { - bool video_enabled = gSavedSettings.getBOOL("AudioStreamingVideo"); - bool music_enabled = gSavedSettings.getBOOL("AudioStreamingMusic"); bool media_enabled = gSavedSettings.getBOOL("AudioStreamingMedia"); - bool enabled = video_enabled || music_enabled || media_enabled; - - LLCheckBoxCtrl *media_enabled_ctrl = getChild<LLCheckBoxCtrl>("media_enabled"); - media_enabled_ctrl->set(enabled); - media_enabled_ctrl->setTentative(!(video_enabled == music_enabled == media_enabled)); - getChild<LLCheckBoxCtrl>("autoplay_enabled")->setEnabled(enabled); getChild<LLCheckBoxCtrl>("voice_call_friends_only_check")->setCommitCallback(boost::bind(&showFriendsOnlyWarning, _1, _2)); + getChild<LLCheckBoxCtrl>("media_enabled")->set(media_enabled); + getChild<LLCheckBoxCtrl>("autoplay_enabled")->setEnabled(media_enabled); + } + if (hasChild("music_enabled")) + { + getChild<LLCheckBoxCtrl>("music_enabled")->set(gSavedSettings.getBOOL("AudioStreamingMusic")); } apply(); diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index 8b02a4049d..8778d76a5a 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -134,6 +134,7 @@ public: void onCommitAutoDetectAspect(); void onCommitParcelMediaAutoPlayEnable(); void onCommitMediaEnabled(); + void onCommitMusicEnabled(); void applyResolution(); void applyUIColor(LLUICtrl* ctrl, const LLSD& param); void getUIColor(LLUICtrl* ctrl, const LLSD& param); diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp index 120b9cf65d..39916eba1d 100644 --- a/indra/newview/llfloaterregioninfo.cpp +++ b/indra/newview/llfloaterregioninfo.cpp @@ -1521,11 +1521,6 @@ void LLPanelEstateInfo::onClickRemoveEstateManager(void* user_data) //--------------------------------------------------------------------------- // Kick from estate methods //--------------------------------------------------------------------------- -struct LLKickFromEstateInfo -{ - LLPanelEstateInfo *mEstatePanelp; - LLUUID mAgentID; -}; void LLPanelEstateInfo::onClickKickUser() { @@ -1547,11 +1542,6 @@ void LLPanelEstateInfo::onKickUserCommit(const std::vector<std::string>& names, return; } - //keep track of what user they want to kick and other misc info - LLKickFromEstateInfo *kick_info = new LLKickFromEstateInfo(); - kick_info->mEstatePanelp = this; - kick_info->mAgentID = ids[0]; - //Bring up a confirmation dialog LLSD args; args["EVIL_USER"] = names[0]; @@ -2544,7 +2534,9 @@ bool LLPanelEstateInfo::onMessageCommit(const LLSD& notification, const LLSD& re } LLPanelEstateCovenant::LLPanelEstateCovenant() -: mCovenantID(LLUUID::null) + : + mCovenantID(LLUUID::null), + mAssetStatus(ASSET_ERROR) { } diff --git a/indra/newview/llfloaterscriptlimits.cpp b/indra/newview/llfloaterscriptlimits.cpp index 0964ad7f91..8875e35821 100644 --- a/indra/newview/llfloaterscriptlimits.cpp +++ b/indra/newview/llfloaterscriptlimits.cpp @@ -528,7 +528,16 @@ BOOL LLPanelScriptLimitsRegionMemory::postBuild() std::string msg_waiting = LLTrans::getString("ScriptLimitsRequestWaiting"); childSetValue("loading_text", LLSD(msg_waiting)); - + + LLScrollListCtrl *list = getChild<LLScrollListCtrl>("scripts_list"); + + //set all columns to resizable mode even if some columns will be empty + for(S32 column = 0; column < list->getNumColumns(); column++) + { + LLScrollListColumn* columnp = list->getColumn(column); + columnp->mHeader->setHasResizableElement(TRUE); + } + return StartRequestChain(); } diff --git a/indra/newview/llfloaterscriptlimits.h b/indra/newview/llfloaterscriptlimits.h index 7e2b536eb6..e675d14515 100644 --- a/indra/newview/llfloaterscriptlimits.h +++ b/indra/newview/llfloaterscriptlimits.h @@ -145,7 +145,14 @@ class LLPanelScriptLimitsRegionMemory : public LLPanelScriptLimitsInfo, LLRemote public: LLPanelScriptLimitsRegionMemory() - : LLPanelScriptLimitsInfo(), LLRemoteParcelInfoObserver(), mParcelId(LLUUID()), mGotParcelMemoryUsed(FALSE), mGotParcelMemoryMax(FALSE) {}; + : LLPanelScriptLimitsInfo(), LLRemoteParcelInfoObserver(), + + mParcelId(LLUUID()), + mGotParcelMemoryUsed(FALSE), + mGotParcelMemoryMax(FALSE), + mParcelMemoryMax(0), + mParcelMemoryUsed(0) {}; + ~LLPanelScriptLimitsRegionMemory() { LLRemoteParcelInfoProcessor::getInstance()->removeObserver(mParcelId, this); @@ -167,9 +174,9 @@ public: private: - void onNameCache( const LLUUID& id, - const std::string& first_name, - const std::string& last_name); + void onNameCache(const LLUUID& id, + const std::string& first_name, + const std::string& last_name); LLUUID mParcelId; BOOL mGotParcelMemoryUsed; @@ -200,7 +207,16 @@ class LLPanelScriptLimitsRegionURLs : public LLPanelScriptLimitsInfo public: LLPanelScriptLimitsRegionURLs() - : LLPanelScriptLimitsInfo(), mParcelId(LLUUID()), mGotParcelURLsUsed(FALSE), mGotParcelURLsMax(FALSE) {}; + : LLPanelScriptLimitsInfo(), + + mParcelId(LLUUID()), + mGotParcelURLsUsed(FALSE), + mGotParcelURLsMax(FALSE), + mParcelURLsMax(0), + mParcelURLsUsed(0) + { + }; + ~LLPanelScriptLimitsRegionURLs() { }; diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp index afb58c9407..94c7ff6f94 100644 --- a/indra/newview/llfloatersnapshot.cpp +++ b/indra/newview/llfloatersnapshot.cpp @@ -1028,7 +1028,8 @@ class LLFloaterSnapshot::Impl public: Impl() : mAvatarPauseHandles(), - mLastToolset(NULL) + mLastToolset(NULL), + mAspectRatioCheckOff(false) { } ~Impl() @@ -1079,7 +1080,7 @@ public: LLToolset* mLastToolset; LLHandle<LLView> mPreviewHandle; - BOOL mAspectRatioCheckOff ; + bool mAspectRatioCheckOff ; }; // static @@ -1606,7 +1607,7 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde if(0 == index) //current window size { - view->impl.mAspectRatioCheckOff = TRUE ; + view->impl.mAspectRatioCheckOff = true ; view->childSetEnabled("keep_aspect_check", FALSE) ; if(previewp) @@ -1616,7 +1617,7 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde } else if(-1 == index) //custom { - view->impl.mAspectRatioCheckOff = FALSE ; + view->impl.mAspectRatioCheckOff = false ; //if(LLSnapshotLivePreview::SNAPSHOT_TEXTURE != gSavedSettings.getS32("LastSnapshotType")) { view->childSetEnabled("keep_aspect_check", TRUE) ; @@ -1629,7 +1630,7 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde } else { - view->impl.mAspectRatioCheckOff = TRUE ; + view->impl.mAspectRatioCheckOff = true ; view->childSetEnabled("keep_aspect_check", FALSE) ; if(previewp) diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index b833c611bf..c6135d3bc3 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -1508,10 +1508,26 @@ BOOL LLFolderView::handleKeyHere( KEY key, MASK mask ) { if (next == last_selected) { + //special case for LLAccordionCtrl + if(notifyParent(LLSD().with("action","select_next")) > 0 )//message was processed + { + clearSelection(); + return TRUE; + } return FALSE; } setSelection( next, FALSE, TRUE ); } + else + { + //special case for LLAccordionCtrl + if(notifyParent(LLSD().with("action","select_next")) > 0 )//message was processed + { + clearSelection(); + return TRUE; + } + return FALSE; + } } scrollToShowSelection(); mSearchString.clear(); @@ -1556,6 +1572,13 @@ BOOL LLFolderView::handleKeyHere( KEY key, MASK mask ) { if (prev == this) { + // If case we are in accordion tab notify parent to go to the previous accordion + if(notifyParent(LLSD().with("action","select_prev")) > 0 )//message was processed + { + clearSelection(); + return TRUE; + } + return FALSE; } setSelection( prev, FALSE, TRUE ); @@ -2241,6 +2264,83 @@ void LLFolderView::updateRenamerPosition() } } +bool LLFolderView::selectFirstItem() +{ + for (folders_t::iterator iter = mFolders.begin(); + iter != mFolders.end();) + { + LLFolderViewFolder* folder = (*iter ); + if (folder->getVisible()) + { + LLFolderViewItem* itemp = folder->getNextFromChild(0,true); + if(itemp) + setSelection(itemp,FALSE,TRUE); + return true; + } + + } + for(items_t::iterator iit = mItems.begin(); + iit != mItems.end(); ++iit) + { + LLFolderViewItem* itemp = (*iit); + if (itemp->getVisible()) + { + setSelection(itemp,FALSE,TRUE); + return true; + } + } + return false; +} +bool LLFolderView::selectLastItem() +{ + for(items_t::reverse_iterator iit = mItems.rbegin(); + iit != mItems.rend(); ++iit) + { + LLFolderViewItem* itemp = (*iit); + if (itemp->getVisible()) + { + setSelection(itemp,FALSE,TRUE); + return true; + } + } + for (folders_t::reverse_iterator iter = mFolders.rbegin(); + iter != mFolders.rend();) + { + LLFolderViewFolder* folder = (*iter); + if (folder->getVisible()) + { + LLFolderViewItem* itemp = folder->getPreviousFromChild(0,true); + if(itemp) + setSelection(itemp,FALSE,TRUE); + return true; + } + } + return false; +} + + +S32 LLFolderView::notify(const LLSD& info) +{ + if(info.has("action")) + { + std::string str_action = info["action"]; + if(str_action == "select_first") + { + setFocus(true); + selectFirstItem(); + return 1; + + } + else if(str_action == "select_last") + { + setFocus(true); + selectLastItem(); + return 1; + } + } + return 0; +} + ///---------------------------------------------------------------------------- /// Local function definitions diff --git a/indra/newview/llfolderview.h b/indra/newview/llfolderview.h index 89e1865e35..56ebdfcf79 100644 --- a/indra/newview/llfolderview.h +++ b/indra/newview/llfolderview.h @@ -266,6 +266,8 @@ public: LLPanel* getParentPanel() { return mParentPanel; } // DEBUG only void dumpSelectionInformation(); + + virtual S32 notify(const LLSD& info) ; private: void updateRenamerPosition(); @@ -278,6 +280,9 @@ protected: void finishRenamingItem( void ); void closeRenamer( void ); + + bool selectFirstItem(); + bool selectLastItem(); protected: LLHandle<LLView> mPopupMenuHandle; diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp index 4b48626b22..b05eb84e52 100644 --- a/indra/newview/llfolderviewitem.cpp +++ b/indra/newview/llfolderviewitem.cpp @@ -40,7 +40,6 @@ #include "llinventoryfilter.h" #include "llpanel.h" #include "llviewercontrol.h" // gSavedSettings -#include "llviewerinventory.h" #include "llviewerwindow.h" // Argh, only for setCursor() // linden library includes diff --git a/indra/newview/llgroupactions.cpp b/indra/newview/llgroupactions.cpp index d6e2bb0445..3653371d76 100644 --- a/indra/newview/llgroupactions.cpp +++ b/indra/newview/llgroupactions.cpp @@ -75,11 +75,12 @@ public: return false; } + //*TODO by what to replace showing groups floater? if (tokens[0].asString() == "list") { if (tokens[1].asString() == "show") { - LLFloaterReg::showInstance("contacts", "groups"); + //LLFloaterReg::showInstance("contacts", "groups"); return true; } return false; diff --git a/indra/newview/llgroupmgr.cpp b/indra/newview/llgroupmgr.cpp index af58e81ca4..8bd0e520c3 100644 --- a/indra/newview/llgroupmgr.cpp +++ b/indra/newview/llgroupmgr.cpp @@ -762,6 +762,14 @@ void LLGroupMgr::addObserver(LLGroupMgrObserver* observer) mObservers.insert(std::pair<LLUUID, LLGroupMgrObserver*>(observer->getID(), observer)); } +void LLGroupMgr::addObserver(const LLUUID& group_id, LLParticularGroupMgrObserver* observer) +{ + if(group_id.notNull() && observer) + { + mParticularObservers[group_id].insert(observer); + } +} + void LLGroupMgr::removeObserver(LLGroupMgrObserver* observer) { if (!observer) @@ -784,6 +792,23 @@ void LLGroupMgr::removeObserver(LLGroupMgrObserver* observer) } } +void LLGroupMgr::removeObserver(const LLUUID& group_id, LLParticularGroupMgrObserver* observer) +{ + if(group_id.isNull() || !observer) + { + return; + } + + observer_map_t::iterator obs_it = mParticularObservers.find(group_id); + if(obs_it == mParticularObservers.end()) + return; + + obs_it->second.erase(observer); + + if (obs_it->second.size() == 0) + mParticularObservers.erase(obs_it); +} + LLGroupMgrGroupData* LLGroupMgr::getGroupData(const LLUUID& id) { group_map_t::iterator gi = mGroups.find(id); @@ -1325,6 +1350,7 @@ void LLGroupMgr::notifyObservers(LLGroupChange gc) LLUUID group_id = gi->first; if (gi->second->mChanged) { + // notify LLGroupMgrObserver // Copy the map because observers may remove themselves on update observer_multimap_t observers = mObservers; @@ -1336,6 +1362,18 @@ void LLGroupMgr::notifyObservers(LLGroupChange gc) oi->second->changed(gc); } gi->second->mChanged = FALSE; + + + // notify LLParticularGroupMgrObserver + observer_map_t::iterator obs_it = mParticularObservers.find(group_id); + if(obs_it == mParticularObservers.end()) + return; + + observer_set_t& obs = obs_it->second; + for (observer_set_t::iterator ob_it = obs.begin(); ob_it != obs.end(); ++ob_it) + { + (*ob_it)->changed(group_id, gc); + } } } } diff --git a/indra/newview/llgroupmgr.h b/indra/newview/llgroupmgr.h index 487fdd4c5b..588b4a9034 100644 --- a/indra/newview/llgroupmgr.h +++ b/indra/newview/llgroupmgr.h @@ -53,6 +53,13 @@ protected: LLUUID mID; }; +class LLParticularGroupMgrObserver +{ +public: + virtual ~LLParticularGroupMgrObserver(){} + virtual void changed(const LLUUID& group_id, LLGroupChange gc) = 0; +}; + class LLGroupRoleData; class LLGroupMemberData @@ -306,7 +313,9 @@ public: ~LLGroupMgr(); void addObserver(LLGroupMgrObserver* observer); + void addObserver(const LLUUID& group_id, LLParticularGroupMgrObserver* observer); void removeObserver(LLGroupMgrObserver* observer); + void removeObserver(const LLUUID& group_id, LLParticularGroupMgrObserver* observer); LLGroupMgrGroupData* getGroupData(const LLUUID& id); void sendGroupPropertiesRequest(const LLUUID& group_id); @@ -355,13 +364,19 @@ public: private: void notifyObservers(LLGroupChange gc); + void notifyObserver(const LLUUID& group_id, LLGroupChange gc); void addGroup(LLGroupMgrGroupData* group_datap); LLGroupMgrGroupData* createGroupData(const LLUUID &id); typedef std::multimap<LLUUID,LLGroupMgrObserver*> observer_multimap_t; observer_multimap_t mObservers; + typedef std::map<LLUUID, LLGroupMgrGroupData*> group_map_t; group_map_t mGroups; + + typedef std::set<LLParticularGroupMgrObserver*> observer_set_t; + typedef std::map<LLUUID,observer_set_t> observer_map_t; + observer_map_t mParticularObservers; }; diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp index a39753aa55..d4425a70f7 100644 --- a/indra/newview/llimfloater.cpp +++ b/indra/newview/llimfloater.cpp @@ -598,6 +598,7 @@ void LLIMFloater::updateMessages() LLChat chat; chat.mFromID = from_id; + chat.mSessionID = mSessionID; chat.mFromName = from; chat.mText = message; chat.mTimeStr = time; diff --git a/indra/newview/llimfloatercontainer.cpp b/indra/newview/llimfloatercontainer.cpp index 06a7b4a29c..784c2eaaf9 100644 --- a/indra/newview/llimfloatercontainer.cpp +++ b/indra/newview/llimfloatercontainer.cpp @@ -48,10 +48,7 @@ LLIMFloaterContainer::LLIMFloaterContainer(const LLSD& seed) mAutoResize = FALSE; } -LLIMFloaterContainer::~LLIMFloaterContainer() -{ - LLGroupMgr::getInstance()->removeObserver(this); -} +LLIMFloaterContainer::~LLIMFloaterContainer(){} BOOL LLIMFloaterContainer::postBuild() { @@ -95,11 +92,10 @@ void LLIMFloaterContainer::addFloater(LLFloater* floaterp, if(gAgent.isInGroup(session_id)) { mSessions[session_id] = floaterp; - mID = session_id; - mGroupID.push_back(session_id); LLGroupMgrGroupData* group_data = LLGroupMgr::getInstance()->getGroupData(session_id); LLGroupMgr* gm = LLGroupMgr::getInstance(); - gm->addObserver(this); + gm->addObserver(session_id, this); + floaterp->mCloseSignal.connect(boost::bind(&LLIMFloaterContainer::onCloseFloater, this, session_id)); if (group_data && group_data->mInsigniaID.notNull()) { @@ -107,6 +103,7 @@ void LLIMFloaterContainer::addFloater(LLFloater* floaterp, } else { + mTabContainer->setTabImage(floaterp, "Generic_Group"); gm->sendGroupPropertiesRequest(session_id); } } @@ -119,13 +116,14 @@ void LLIMFloaterContainer::addFloater(LLFloater* floaterp, mSessions[avatar_id] = floaterp; LLUUID* icon_id_ptr = LLAvatarIconIDCache::getInstance()->get(avatar_id); - if(!icon_id_ptr) + if(icon_id_ptr && icon_id_ptr->notNull()) { - app.sendAvatarPropertiesRequest(avatar_id); + mTabContainer->setTabImage(floaterp, *icon_id_ptr); } else { - mTabContainer->setTabImage(floaterp, *icon_id_ptr); + mTabContainer->setTabImage(floaterp, "Generic_Person"); + app.sendAvatarPropertiesRequest(avatar_id); } } } @@ -134,31 +132,28 @@ void LLIMFloaterContainer::processProperties(void* data, enum EAvatarProcessorTy { if (APT_PROPERTIES == type) { - LLAvatarData* avatar_data = static_cast<LLAvatarData*>(data); - if (avatar_data) + LLAvatarData* avatar_data = static_cast<LLAvatarData*>(data); + if (avatar_data) + { + LLUUID avatar_id = avatar_data->avatar_id; + LLUUID* cached_avatarId = LLAvatarIconIDCache::getInstance()->get(avatar_id); + if(cached_avatarId && cached_avatarId->notNull() && avatar_data->image_id != *cached_avatarId) { - LLUUID avatar_id = avatar_data->avatar_id; - if(avatar_data->image_id != *LLAvatarIconIDCache::getInstance()->get(avatar_id)) - { - LLAvatarIconIDCache::getInstance()->add(avatar_id,avatar_data->image_id); - } + LLAvatarIconIDCache::getInstance()->add(avatar_id,avatar_data->image_id); mTabContainer->setTabImage(get_ptr_in_map(mSessions, avatar_id), avatar_data->image_id); } + } } } -void LLIMFloaterContainer::changed(LLGroupChange gc) +void LLIMFloaterContainer::changed(const LLUUID& group_id, LLGroupChange gc) { if (GC_PROPERTIES == gc) { - for(groupIDs_t::iterator it = mGroupID.begin(); it!=mGroupID.end(); it++) + LLGroupMgrGroupData* group_data = LLGroupMgr::getInstance()->getGroupData(group_id); + if (group_data && group_data->mInsigniaID.notNull()) { - LLUUID group_id = *it; - LLGroupMgrGroupData* group_data = LLGroupMgr::getInstance()->getGroupData(group_id); - if (group_data && group_data->mInsigniaID.notNull()) - { - mTabContainer->setTabImage(get_ptr_in_map(mSessions, group_id), group_data->mInsigniaID); - } + mTabContainer->setTabImage(get_ptr_in_map(mSessions, group_id), group_data->mInsigniaID); } } } @@ -166,6 +161,7 @@ void LLIMFloaterContainer::changed(LLGroupChange gc) void LLIMFloaterContainer::onCloseFloater(LLUUID id) { LLAvatarPropertiesProcessor::instance().removeObserver(id, this); + LLGroupMgr::instance().removeObserver(id, this); } LLIMFloaterContainer* LLIMFloaterContainer::findInstance() diff --git a/indra/newview/llimfloatercontainer.h b/indra/newview/llimfloatercontainer.h index 1333b098bc..e4a32dbe1d 100644 --- a/indra/newview/llimfloatercontainer.h +++ b/indra/newview/llimfloatercontainer.h @@ -43,7 +43,7 @@ class LLTabContainer; -class LLIMFloaterContainer : public LLMultiFloater, public LLAvatarPropertiesObserver, public LLGroupMgrObserver +class LLIMFloaterContainer : public LLMultiFloater, public LLAvatarPropertiesObserver, public LLParticularGroupMgrObserver { public: LLIMFloaterContainer(const LLSD& seed); @@ -57,7 +57,7 @@ public: LLTabContainer::eInsertionPoint insertion_point = LLTabContainer::END); void processProperties(void* data, EAvatarProcessorType type); - void changed(LLGroupChange gc); + void changed(const LLUUID& group_id, LLGroupChange gc); static LLFloater* getCurrentVoiceFloater(); @@ -69,9 +69,6 @@ private: typedef std::map<LLUUID,LLPanel*> avatarID_panel_map_t; avatarID_panel_map_t mSessions; - typedef std::vector<LLUUID> groupIDs_t; - groupIDs_t mGroupID; - void onCloseFloater(LLUUID avatar_id); }; diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 265c10aebd..49a193e719 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -52,7 +52,6 @@ #include "llbottomtray.h" #include "llcallingcard.h" #include "llchat.h" -#include "llfloaterchatterbox.h" #include "llimfloater.h" #include "llgroupiconctrl.h" #include "llmd5.h" @@ -64,8 +63,10 @@ #include "llnotificationsutil.h" #include "llnearbychat.h" #include "llspeakers.h" //for LLIMSpeakerMgr +#include "lltextbox.h" #include "lltextutil.h" #include "llviewercontrol.h" +#include "llviewerparcelmgr.h" const static std::string IM_TIME("time"); @@ -95,7 +96,8 @@ void toast_callback(const LLSD& msg){ } // check whether incoming IM belongs to an active session or not - if (LLIMModel::getInstance()->getActiveSessionID() == msg["session_id"]) + if (LLIMModel::getInstance()->getActiveSessionID().notNull() + && LLIMModel::getInstance()->getActiveSessionID() == msg["session_id"]) { return; } @@ -536,13 +538,6 @@ void LLIMModel::processSessionInitializedReply(const LLUUID& old_session_id, con gIMMgr->startCall(new_session_id); } } - - //*TODO remove this "floater" stuff when Communicate Floater is gone - LLFloaterIMPanel* floater = gIMMgr->findFloaterBySession(old_session_id); - if (floater) - { - floater->sessionInitReplyReceived(new_session_id); - } } void LLIMModel::testMessages() @@ -677,15 +672,6 @@ bool LLIMModel::proccessOnlineOfflineNotification( const LLUUID& session_id, const std::string& utf8_text) { - // Add message to old one floater - LLFloaterIMPanel *floater = gIMMgr->findFloaterBySession(session_id); - if ( floater ) - { - if ( !utf8_text.empty() ) - { - floater->addHistoryLine(utf8_text, LLUIColorTable::instance().getColor("SystemChatColor")); - } - } // Add system message to history return addMessage(session_id, SYSTEM_FROM, LLUUID::null, utf8_text); } @@ -953,9 +939,6 @@ void LLIMModel::sendMessage(const std::string& utf8_text, history_echo += ": " + utf8_text; - LLFloaterIMPanel* floater = gIMMgr->findFloaterBySession(im_session_id); - if (floater) floater->addHistoryLine(history_echo, LLUIColorTable::instance().getColor("IMChatColor"), true, gAgent.getID()); - LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(im_session_id); if (speaker_mgr) { @@ -1273,33 +1256,16 @@ LLUUID LLIMMgr::computeSessionID( return session_id; } -inline LLFloater* getFloaterBySessionID(const LLUUID session_id) -{ - LLFloater* floater = NULL; - if ( gIMMgr ) - { - floater = dynamic_cast < LLFloater* > - ( gIMMgr->findFloaterBySession(session_id) ); - } - if ( !floater ) - { - floater = dynamic_cast < LLFloater* > - ( LLIMFloater::findInstance(session_id) ); - } - return floater; -} - void LLIMMgr::showSessionStartError( const std::string& error_string, const LLUUID session_id) { - const LLFloater* floater = getFloaterBySessionID (session_id); - if (!floater) return; + if (!hasSession(session_id)) return; LLSD args; args["REASON"] = LLTrans::getString(error_string); - args["RECIPIENT"] = floater->getTitle(); + args["RECIPIENT"] = LLIMModel::getInstance()->getName(session_id); LLSD payload; payload["session_id"] = session_id; @@ -1337,12 +1303,11 @@ LLIMMgr::showSessionForceClose( const std::string& reason_string, const LLUUID session_id) { - const LLFloater* floater = getFloaterBySessionID (session_id); - if (!floater) return; + if (!hasSession(session_id)) return; LLSD args; - args["NAME"] = floater->getTitle(); + args["NAME"] = LLIMModel::getInstance()->getName(session_id); args["REASON"] = LLTrans::getString(reason_string); LLSD payload; @@ -1364,7 +1329,7 @@ LLIMMgr::onConfirmForceCloseError( //only 1 option really LLUUID session_id = notification["payload"]["session_id"]; - LLFloater* floater = getFloaterBySessionID (session_id); + LLFloater* floater = LLIMFloater::findInstance(session_id); if ( floater ) { floater->closeFloater(FALSE); @@ -1496,9 +1461,11 @@ void LLCallDialogManager::onVoiceChannelStateChanged(const LLVoiceChannel::EStat //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Class LLCallDialog //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -LLCallDialog::LLCallDialog(const LLSD& payload) : -LLDockableFloater(NULL, false, payload), -mPayload(payload) +LLCallDialog::LLCallDialog(const LLSD& payload) + : LLDockableFloater(NULL, false, payload), + + mPayload(payload), + mLifetime(DEFAULT_LIFETIME) { } @@ -1577,7 +1544,7 @@ void LLCallDialog::setIcon(const LLSD& session_id, const LLSD& participant_id) } } -bool LLOutgoingCallDialog::lifetimeHasExpired() +bool LLCallDialog::lifetimeHasExpired() { if (mLifetimeTimer.getStarted()) { @@ -1590,7 +1557,7 @@ bool LLOutgoingCallDialog::lifetimeHasExpired() return false; } -void LLOutgoingCallDialog::onLifetimeExpired() +void LLCallDialog::onLifetimeExpired() { mLifetimeTimer.stop(); closeFloater(); @@ -1600,6 +1567,9 @@ void LLOutgoingCallDialog::show(const LLSD& key) { mPayload = key; + //will be false only if voice in parcel is disabled and channel we leave is nearby(checked further) + bool show_oldchannel = LLViewerParcelMgr::getInstance()->allowAgentVoice(); + // hide all text at first hideAllText(); @@ -1623,10 +1593,11 @@ void LLOutgoingCallDialog::show(const LLSD& key) } childSetTextArg("leaving", "[CURRENT_CHAT]", old_caller_name); + show_oldchannel = true; } else { - childSetTextArg("leaving", "[CURRENT_CHAT]", getString("localchat")); + childSetTextArg("leaving", "[CURRENT_CHAT]", getString("localchat")); } if (!mPayload["disconnected_channel_name"].asString().empty()) @@ -1671,15 +1642,22 @@ void LLOutgoingCallDialog::show(const LLSD& key) { case LLVoiceChannel::STATE_CALL_STARTED : getChild<LLTextBox>("calling")->setVisible(true); - getChild<LLTextBox>("leaving")->setVisible(true); + if(show_oldchannel) + { + getChild<LLTextBox>("leaving")->setVisible(true); + } break; case LLVoiceChannel::STATE_RINGING : - getChild<LLTextBox>("leaving")->setVisible(true); + if(show_oldchannel) + { + getChild<LLTextBox>("leaving")->setVisible(true); + } getChild<LLTextBox>("connecting")->setVisible(true); break; case LLVoiceChannel::STATE_ERROR : getChild<LLTextBox>("noanswer")->setVisible(true); getChild<LLButton>("Cancel")->setVisible(false); + setCanClose(true); mLifetimeTimer.start(); break; case LLVoiceChannel::STATE_HUNG_UP : @@ -1692,6 +1670,7 @@ void LLOutgoingCallDialog::show(const LLSD& key) getChild<LLTextBox>("nearby")->setVisible(true); } getChild<LLButton>("Cancel")->setVisible(false); + setCanClose(true); mLifetimeTimer.start(); } @@ -1742,19 +1721,6 @@ LLCallDialog(payload) { } -bool LLIncomingCallDialog::lifetimeHasExpired() -{ - if (mLifetimeTimer.getStarted()) - { - F32 elapsed_time = mLifetimeTimer.getElapsedTimeF32(); - if (elapsed_time > mLifetime) - { - return true; - } - } - return false; -} - void LLIncomingCallDialog::onLifetimeExpired() { // check whether a call is valid or not @@ -2112,8 +2078,7 @@ bool inviteUserResponse(const LLSD& notification, const LLSD& response) // Member Functions // -LLIMMgr::LLIMMgr() : - mIMReceived(FALSE) +LLIMMgr::LLIMMgr() { mPendingInvitations = LLSD::emptyMap(); mPendingAgentListUpdates = LLSD::emptyMap(); @@ -2144,7 +2109,6 @@ void LLIMMgr::addMessage( return; } - LLFloaterIMPanel* floater; LLUUID new_session_id = session_id; if (new_session_id.isNull()) { @@ -2163,32 +2127,7 @@ void LLIMMgr::addMessage( if (new_session) { LLIMModel::getInstance()->newSession(new_session_id, fixed_session_name, dialog, other_participant_id); - } - - floater = findFloaterBySession(new_session_id); - if (!floater) - { - floater = findFloaterBySession(other_participant_id); - if (floater) - { - llinfos << "found the IM session " << session_id - << " by participant " << other_participant_id << llendl; - } - } - - // create IM window as necessary - if(!floater) - { - floater = createFloater( - new_session_id, - other_participant_id, - fixed_session_name, - dialog, - FALSE); - } - if (new_session) - { // When we get a new IM, and if you are a god, display a bit // of information about the source. This is to help liaisons // when answering questions. @@ -2207,50 +2146,13 @@ void LLIMMgr::addMessage( //<< "*** region_id: " << region_id << std::endl //<< "*** position: " << position << std::endl; - floater->addHistoryLine(bonus_info.str(), LLUIColorTable::instance().getColor("SystemChatColor")); LLIMModel::instance().addMessage(new_session_id, from, other_participant_id, bonus_info.str()); } make_ui_sound("UISndNewIncomingIMSession"); } - // now add message to floater - bool is_from_system = target_id.isNull() || (from == SYSTEM_FROM); - const LLColor4& color = ( is_from_system ? - LLUIColorTable::instance().getColor("SystemChatColor") : - LLUIColorTable::instance().getColor("IMChatColor")); - if ( !link_name ) - { - floater->addHistoryLine(msg,color); // No name to prepend, so just add the message normally - } - else - { - floater->addHistoryLine(msg, color, true, other_participant_id, from); // Insert linked name to front of message - } - LLIMModel::instance().addMessage(new_session_id, from, other_participant_id, msg); - - if( !LLFloaterReg::instanceVisible("communicate") && !floater->getVisible()) - { - LLFloaterChatterBox* chat_floater = LLFloaterChatterBox::getInstance(); - - //if the IM window is not open and the floater is not visible (i.e. not torn off) - LLFloater* previouslyActiveFloater = chat_floater->getActiveFloater(); - - // select the newly added floater (or the floater with the new line added to it). - // it should be there. - chat_floater->selectFloater(floater); - - //there was a previously unseen IM, make that old tab flashing - //it is assumed that the most recently unseen IM tab is the one current selected/active - if ( previouslyActiveFloater && getIMReceived() ) - { - chat_floater->setFloaterFlashing(previouslyActiveFloater, TRUE); - } - - //notify of a new IM - notifyNewIM(); - } } void LLIMMgr::addSystemMessage(const LLUUID& session_id, const std::string& message_name, const LLSD& args) @@ -2283,14 +2185,6 @@ void LLIMMgr::addSystemMessage(const LLUUID& session_id, const std::string& mess } } -void LLIMMgr::notifyNewIM() -{ - if(!LLFloaterReg::instanceVisible("communicate")) - { - mIMReceived = TRUE; - } -} - S32 LLIMMgr::getNumberOfUnreadIM() { std::map<LLUUID, LLIMModel::LLIMSession*>::iterator it; @@ -2317,16 +2211,6 @@ S32 LLIMMgr::getNumberOfUnreadParticipantMessages() return num; } -void LLIMMgr::clearNewIMNotification() -{ - mIMReceived = FALSE; -} - -BOOL LLIMMgr::getIMReceived() const -{ - return mIMReceived; -} - void LLIMMgr::autoStartCallOnStartup(const LLUUID& session_id) { LLIMModel::LLIMSession *session = LLIMModel::getInstance()->findIMSession(session_id); @@ -2414,21 +2298,6 @@ LLUUID LLIMMgr::addSession( LLIMModel::getInstance()->newSession(session_id, name, dialog, other_participant_id, ids, voice); } - //*TODO remove this "floater" thing when Communicate Floater's gone - LLFloaterIMPanel* floater = findFloaterBySession(session_id); - if(!floater) - { - // On creation, use the first element of ids as the - // "other_participant_id" - floater = createFloater( - session_id, - other_participant_id, - name, - dialog, - TRUE, - ids); - } - //we don't need to show notes about online/offline, mute/unmute users' statuses for existing sessions if (!new_session) return session_id; @@ -2439,7 +2308,7 @@ LLUUID LLIMMgr::addSession( // Only warn for regular IMs - not group IMs if( dialog == IM_NOTHING_SPECIAL ) { - noteMutedUsers(session_id, floater, ids); + noteMutedUsers(session_id, ids); } return session_id; @@ -2460,14 +2329,6 @@ void LLIMMgr::removeSession(const LLUUID& session_id) { llassert_always(hasSession(session_id)); - //*TODO remove this floater thing when Communicate Floater is being deleted (IB) - LLFloaterIMPanel* floater = findFloaterBySession(session_id); - if(floater) - { - mFloaters.erase(floater->getHandle()); - LLFloaterChatterBox::getInstance()->removeFloater(floater); - } - clearPendingInvitation(session_id); clearPendingAgentListUpdates(session_id); @@ -2577,50 +2438,12 @@ void LLIMMgr::onInviteNameLookup(LLSD payload, const LLUUID& id, const std::stri LLFloaterReg::showInstance("incoming_call", payload, TRUE); } +//*TODO disconnects all sessions void LLIMMgr::disconnectAllSessions() { - LLFloaterIMPanel* floater = NULL; - std::set<LLHandle<LLFloater> >::iterator handle_it; - for(handle_it = mFloaters.begin(); - handle_it != mFloaters.end(); - ) - { - floater = (LLFloaterIMPanel*)handle_it->get(); - - // MUST do this BEFORE calling floater->onClose() because that may remove the item from the set, causing the subsequent increment to crash. - ++handle_it; - - if (floater) - { - floater->setEnabled(FALSE); - floater->closeFloater(TRUE); - } - } + //*TODO disconnects all IM sessions } - -// This method returns the im panel corresponding to the uuid -// provided. The uuid can either be a session id or an agent -// id. Returns NULL if there is no matching panel. -LLFloaterIMPanel* LLIMMgr::findFloaterBySession(const LLUUID& session_id) -{ - LLFloaterIMPanel* rv = NULL; - std::set<LLHandle<LLFloater> >::iterator handle_it; - for(handle_it = mFloaters.begin(); - handle_it != mFloaters.end(); - ++handle_it) - { - rv = (LLFloaterIMPanel*)handle_it->get(); - if(rv && session_id == rv->getSessionID()) - { - break; - } - rv = NULL; - } - return rv; -} - - BOOL LLIMMgr::hasSession(const LLUUID& session_id) { return LLIMModel::getInstance()->findIMSession(session_id) != NULL; @@ -2804,49 +2627,14 @@ bool LLIMMgr::isVoiceCall(const LLUUID& session_id) return im_session->mStartedAsIMCall; } -// create a floater and update internal representation for -// consistency. Returns the pointer, caller (the class instance since -// it is a private method) is not responsible for deleting the -// pointer. Add the floater to this but do not select it. -LLFloaterIMPanel* LLIMMgr::createFloater( - const LLUUID& session_id, - const LLUUID& other_participant_id, - const std::string& session_label, - EInstantMessage dialog, - BOOL user_initiated, - const LLDynamicArray<LLUUID>& ids) -{ - if (session_id.isNull()) - { - llwarns << "Creating LLFloaterIMPanel with null session ID" << llendl; - } - - llinfos << "LLIMMgr::createFloater: from " << other_participant_id - << " in session " << session_id << llendl; - LLFloaterIMPanel* floater = new LLFloaterIMPanel(session_label, - session_id, - other_participant_id, - ids, - dialog); - LLTabContainer::eInsertionPoint i_pt = user_initiated ? LLTabContainer::RIGHT_OF_CURRENT : LLTabContainer::END; - LLFloaterChatterBox::getInstance()->addFloater(floater, FALSE, i_pt); - mFloaters.insert(floater->getHandle()); - return floater; -} - void LLIMMgr::noteOfflineUsers( const LLUUID& session_id, - LLFloaterIMPanel* floater, const LLDynamicArray<LLUUID>& ids) { S32 count = ids.count(); if(count == 0) { const std::string& only_user = LLTrans::getString("only_user_message"); - if (floater) - { - floater->addHistoryLine(only_user, LLUIColorTable::instance().getColor("SystemChatColor")); - } LLIMModel::getInstance()->addMessage(session_id, SYSTEM_FROM, LLUUID::null, only_user); } else @@ -2870,7 +2658,7 @@ void LLIMMgr::noteOfflineUsers( } } -void LLIMMgr::noteMutedUsers(const LLUUID& session_id, LLFloaterIMPanel* floater, +void LLIMMgr::noteMutedUsers(const LLUUID& session_id, const LLDynamicArray<LLUUID>& ids) { // Don't do this if we don't have a mute list. @@ -2891,9 +2679,6 @@ void LLIMMgr::noteMutedUsers(const LLUUID& session_id, LLFloaterIMPanel* floater { LLUIString muted = LLTrans::getString("muted_message"); - //*TODO remove this "floater" thing when Communicate Floater's gone - floater->addHistoryLine(muted); - im_model->addMessage(session_id, SYSTEM_FROM, LLUUID::null, muted); break; } @@ -2914,12 +2699,6 @@ void LLIMMgr::processIMTypingStop(const LLIMInfo* im_info) void LLIMMgr::processIMTypingCore(const LLIMInfo* im_info, BOOL typing) { LLUUID session_id = computeSessionID(im_info->mIMType, im_info->mFromID); - LLFloaterIMPanel* floater = findFloaterBySession(session_id); - if (floater) - { - floater->processIMTyping(im_info, typing); - } - LLIMFloater* im_floater = LLIMFloater::findInstance(session_id); if ( im_floater ) { @@ -2965,15 +2744,6 @@ public: speaker_mgr->updateSpeakers(gIMMgr->getPendingAgentListUpdates(session_id)); } - LLFloaterIMPanel* floaterp = gIMMgr->findFloaterBySession(session_id); - if (floaterp) - { - if ( body.has("session_info") ) - { - floaterp->processSessionUpdate(body["session_info"]); - } - } - LLIMFloater* im_floater = LLIMFloater::findInstance(session_id); if ( im_floater ) { @@ -3068,11 +2838,6 @@ public: const LLSD& input) const { LLUUID session_id = input["body"]["session_id"].asUUID(); - LLFloaterIMPanel* floaterp = gIMMgr->findFloaterBySession(session_id); - if (floaterp) - { - floaterp->processSessionUpdate(input["body"]["info"]); - } LLIMFloater* im_floater = LLIMFloater::findInstance(session_id); if ( im_floater ) { @@ -3217,6 +2982,48 @@ public: } }; +LLCallInfoDialog::LLCallInfoDialog(const LLSD& payload) : LLCallDialog(payload) +{ +} + +BOOL LLCallInfoDialog::postBuild() +{ + // init notification's lifetime + std::istringstream ss( getString("lifetime") ); + if (!(ss >> mLifetime)) + { + mLifetime = DEFAULT_LIFETIME; + } + return LLCallDialog::postBuild(); +} + +void LLCallInfoDialog::onOpen(const LLSD& key) +{ + if(key.has("msg")) + { + std::string msg = key["msg"]; + getChild<LLTextBox>("msg")->setValue(msg); + } + + mLifetimeTimer.start(); +} + +void LLCallInfoDialog::show(const std::string& status_name, const LLSD& args) +{ + LLUIString message = LLTrans::getString(status_name); + message.setArgs(args); + + LLSD payload; + payload["msg"] = message; + LLFloater* inst = LLFloaterReg::findInstance("call_info"); + + // avoid recreate instance with the same message + if (inst == NULL || message.getString() != inst->getChild<LLTextBox>("msg")->getValue()) + { + LLFloaterReg::showInstance("call_info", payload); + } +} + LLHTTPRegistration<LLViewerChatterBoxSessionStartReply> gHTTPRegistrationMessageChatterboxsessionstartreply( "/message/ChatterBoxSessionStartReply"); diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h index a3b4f78af0..b573490fa3 100644 --- a/indra/newview/llimview.h +++ b/indra/newview/llimview.h @@ -39,9 +39,8 @@ #include "lllogchat.h" #include "llvoicechannel.h" -class LLFloaterChatterBox; -class LLUUID; -class LLFloaterIMPanel; + + class LLFriendObserver; class LLCallDialogManager; class LLIMSpeakerMgr; @@ -361,15 +360,9 @@ public: void processIMTypingStart(const LLIMInfo* im_info); void processIMTypingStop(const LLIMInfo* im_info); - void notifyNewIM(); - void clearNewIMNotification(); - // automatically start a call once the session has initialized void autoStartCallOnStartup(const LLUUID& session_id); - // IM received that you haven't seen yet - BOOL getIMReceived() const; - // Calc number of all unread IMs S32 getNumberOfUnreadIM(); @@ -386,11 +379,6 @@ public: BOOL hasSession(const LLUUID& session_id); - // This method returns the im panel corresponding to the uuid - // provided. The uuid must be a session id. Returns NULL if there - // is no matching panel. - LLFloaterIMPanel* findFloaterBySession(const LLUUID& session_id); - static LLUUID computeSessionID(EInstantMessage dialog, const LLUUID& other_participant_id); void clearPendingInvitation(const LLUUID& session_id); @@ -402,10 +390,6 @@ public: const LLSD& updates); void clearPendingAgentListUpdates(const LLUUID& session_id); - //HACK: need a better way of enumerating existing session, or listening to session create/destroy events - //@deprecated, is used only by LLToolBox, which is not used anywhere, right? (IB) - const std::set<LLHandle<LLFloater> >& getIMFloaterHandles() { return mFloaters; } - void addSessionObserver(LLIMSessionObserver *); void removeSessionObserver(LLIMSessionObserver *); @@ -436,23 +420,12 @@ private: */ void removeSession(const LLUUID& session_id); - // create a panel and update internal representation for - // consistency. Returns the pointer, caller (the class instance - // since it is a private method) is not responsible for deleting - // the pointer. - LLFloaterIMPanel* createFloater(const LLUUID& session_id, - const LLUUID& target_id, - const std::string& name, - EInstantMessage dialog, - BOOL user_initiated = FALSE, - const LLDynamicArray<LLUUID>& ids = LLDynamicArray<LLUUID>()); - // This simple method just iterates through all of the ids, and // prints a simple message if they are not online. Used to help // reduce 'hello' messages to the linden employees unlucky enough // to have their calling card in the default inventory. - void noteOfflineUsers(const LLUUID& session_id, LLFloaterIMPanel* panel, const LLDynamicArray<LLUUID>& ids); - void noteMutedUsers(const LLUUID& session_id, LLFloaterIMPanel* panel, const LLDynamicArray<LLUUID>& ids); + void noteOfflineUsers(const LLUUID& session_id, const LLDynamicArray<LLUUID>& ids); + void noteMutedUsers(const LLUUID& session_id, const LLDynamicArray<LLUUID>& ids); void processIMTypingCore(const LLIMInfo* im_info, BOOL typing); @@ -464,15 +437,9 @@ private: private: - //*TODO should be deleted when Communicate Floater is being deleted - std::set<LLHandle<LLFloater> > mFloaters; - typedef std::list <LLIMSessionObserver *> session_observers_list_t; session_observers_list_t mSessionObservers; - // An IM has been received that you haven't seen yet. - BOOL mIMReceived; - LLSD mPendingInvitations; LLSD mPendingAgentListUpdates; }; @@ -512,8 +479,8 @@ protected: // notification's lifetime in seconds S32 mLifetime; static const S32 DEFAULT_LIFETIME = 5; - virtual bool lifetimeHasExpired() {return false;}; - virtual void onLifetimeExpired() {}; + virtual bool lifetimeHasExpired(); + virtual void onLifetimeExpired(); virtual void getAllowedRect(LLRect& rect); @@ -543,7 +510,6 @@ public: static void onStartIM(void* user_data); private: - /*virtual*/ bool lifetimeHasExpired(); /*virtual*/ void onLifetimeExpired(); void processCallResponse(S32 response); }; @@ -562,8 +528,16 @@ public: private: // hide all text boxes void hideAllText(); - /*virtual*/ bool lifetimeHasExpired(); - /*virtual*/ void onLifetimeExpired(); +}; + +class LLCallInfoDialog : public LLCallDialog +{ +public: + LLCallInfoDialog(const LLSD& payload); + /*virtual*/ BOOL postBuild(); + /*virtual*/ void onOpen(const LLSD& key); + + static void show(const std::string& status_name, const LLSD& args); }; // Globals diff --git a/indra/newview/llinspectavatar.cpp b/indra/newview/llinspectavatar.cpp index 8aaa95364c..857abed811 100644 --- a/indra/newview/llinspectavatar.cpp +++ b/indra/newview/llinspectavatar.cpp @@ -229,6 +229,7 @@ LLInspectAvatar::LLInspectAvatar(const LLSD& sd) mEnableCallbackRegistrar.add("InspectAvatar.VisibleZoomIn", boost::bind(&LLInspectAvatar::onVisibleZoomIn, this)); mEnableCallbackRegistrar.add("InspectAvatar.Gear.Enable", boost::bind(&LLInspectAvatar::isNotFriend, this)); + mEnableCallbackRegistrar.add("InspectAvatar.Gear.EnableCall", boost::bind(&LLAvatarActions::canCall)); mEnableCallbackRegistrar.add("InspectAvatar.EnableMute", boost::bind(&LLInspectAvatar::enableMute, this)); mEnableCallbackRegistrar.add("InspectAvatar.EnableUnmute", boost::bind(&LLInspectAvatar::enableUnmute, this)); diff --git a/indra/newview/llinspectremoteobject.cpp b/indra/newview/llinspectremoteobject.cpp index 7319bd0331..892dce588f 100644 --- a/indra/newview/llinspectremoteobject.cpp +++ b/indra/newview/llinspectremoteobject.cpp @@ -31,17 +31,16 @@ #include "llviewerprecompiledheaders.h" +#include "llfloaterreg.h" #include "llinspectremoteobject.h" #include "llinspect.h" -#include "llslurl.h" #include "llmutelist.h" -#include "llurlaction.h" #include "llpanelblockedlist.h" -#include "llfloaterreg.h" +#include "llslurl.h" +#include "lltrans.h" #include "llui.h" #include "lluictrl.h" - -class LLViewerObject; +#include "llurlaction.h" ////////////////////////////////////////////////////////////////////////////// // LLInspectRemoteObject @@ -183,11 +182,25 @@ void LLInspectRemoteObject::update() owner = LLSLURL("agent", mOwnerID, "about").getSLURLString(); } } + else + { + owner = LLTrans::getString("Unknown"); + } getChild<LLUICtrl>("object_owner")->setValue(owner); // display the object's SLurl - click it to teleport - std::string url = "secondlife:///app/teleport/" + mSLurl; + std::string url; + if (! mSLurl.empty()) + { + std::string url = "secondlife:///app/teleport/" + mSLurl; + } getChild<LLUICtrl>("object_slurl")->setValue(url); + + // disable the Map button if we don't have a SLurl + getChild<LLUICtrl>("map_btn")->setEnabled(! mSLurl.empty()); + + // disable the Block button if we don't have the owner ID + getChild<LLUICtrl>("block_btn")->setEnabled(! mOwnerID.isNull()); } ////////////////////////////////////////////////////////////////////////////// diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 6c9c7d15be..e04d3ec5a0 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -5079,7 +5079,7 @@ void LLLandmarkBridgeAction::doIt() payload["asset_id"] = item->getAssetUUID(); LLSD args; - args["LOCATION"] = item->getDisplayName(); + args["LOCATION"] = item->getName(); LLNotificationsUtil::add("TeleportFromLandmark", args, payload); } diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h index 759d0cba18..eeb8246b11 100644 --- a/indra/newview/llinventorybridge.h +++ b/indra/newview/llinventorybridge.h @@ -320,8 +320,12 @@ public: LLViewerInventoryCategory* getCategory() const; protected: - LLFolderBridge(LLInventoryPanel* inventory, const LLUUID& uuid) : - LLInvFVBridge(inventory, uuid), mCallingCards(FALSE), mWearables(FALSE) {} + LLFolderBridge(LLInventoryPanel* inventory, const LLUUID& uuid) + : LLInvFVBridge(inventory, uuid), + + mCallingCards(FALSE), + mWearables(FALSE), + mMenu(NULL) {} // menu callbacks static void pasteClipboard(void* user_data); diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp index b4dcb566e4..cd20d64ca8 100644 --- a/indra/newview/llinventoryfilter.cpp +++ b/indra/newview/llinventoryfilter.cpp @@ -39,7 +39,6 @@ #include "llfolderviewitem.h" #include "llinventorymodel.h" // gInventory.backgroundFetchActive() #include "llviewercontrol.h" -#include "llviewerinventory.h" #include "llfolderview.h" // linden library includes diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp index 2885ba13fa..33623539e9 100644 --- a/indra/newview/llinventoryfunctions.cpp +++ b/indra/newview/llinventoryfunctions.cpp @@ -76,7 +76,6 @@ #include "lltabcontainer.h" #include "lltooldraganddrop.h" #include "lluictrlfactory.h" -#include "llviewerinventory.h" #include "llviewermessage.h" #include "llviewerobjectlist.h" #include "llviewerregion.h" diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp index bd766e8519..0af584e7dc 100644 --- a/indra/newview/llinventorymodel.cpp +++ b/indra/newview/llinventorymodel.cpp @@ -142,6 +142,105 @@ bool LLCanCache::operator()(LLInventoryCategory* cat, LLInventoryItem* item) return rv; } +/* +This namespace contains a functionality to remove LM prefixes were used to store sort order of +Favorite Landmarks in landmarks' names. +Once being in Favorites folder LM inventory Item has such prefix. +Due to another solution is implemented in EXT-3985 these prefixes should be removed. + +*NOTE: It will be unnecessary after the first successful session in viewer 2.0. +Can be removed before public release. + +Implementation details: +At the first run with this patch it patches all cached landmarks: removes LM sort prefixes and +updates them on the viewer and server sides. +Also it calls fetching agent's inventory to process not yet loaded landmarks too. +If fetching is successfully done it will store special per-agent empty file-marker +in the user temporary folder (where cached inventory is loaded) while caching agent's inventory. +After that in will not affect the viewer until cached marker is removed. +*/ +namespace LMSortPrefix +{ + bool cleanup_done = false; + const std::string getMarkerPath() + { + std::string path(gDirUtilp->getExpandedFilename(LL_PATH_CACHE, gAgentID.asString())); + std::string marker_filename = llformat("%s-lm_prefix_marker", path.c_str()); + + return marker_filename; + } + bool wasClean() + { + static bool was_clean = false; + static bool already_init = false; + if (already_init) return was_clean; + + already_init = true; + std::string path_to_marker = getMarkerPath(); + was_clean = LLFile::isfile(path_to_marker); + + return was_clean; + } + + void setLandmarksWereCleaned() + { + if (cleanup_done) + { + std::string path_to_marker = getMarkerPath(); + LLFILE* file = LLFile::fopen(path_to_marker, "w"); + if(!file) + { + llwarns << "unable to save marker that LM prefixes were removed: " << path_to_marker << llendl; + return; + } + + fclose(file); + } + } + + void removePrefix(LLPointer<LLViewerInventoryItem> inv_item) + { + if (wasClean()) + { + LL_INFOS_ONCE("") << "Inventory was cleaned for this avatar. Patch can be removed." << LL_ENDL; + return; + } + + if (LLInventoryType::IT_LANDMARK != inv_item->getInventoryType()) return; + + std::string old_name = inv_item->getName(); + + S32 sort_field = -1; + std::string display_name; + BOOL exists = LLViewerInventoryItem::extractSortFieldAndDisplayName(old_name, &sort_field, &display_name); + if (exists && sort_field != -1) + { + llinfos << "Removing Landmark sort field and separator for: " << old_name << " | " << inv_item->getUUID() << llendl; + LLUUID parent_uuid = inv_item->getParentUUID(); + if (gInventory.getCategory(parent_uuid)) + { + llinfos << "parent folder is: " << gInventory.getCategory(parent_uuid)->getName() << llendl; + } + + + // mark item completed to avoid error while copying and updating server + inv_item->setComplete(TRUE); + LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(inv_item.get()); + new_item->rename(display_name); + gInventory.updateItem(new_item); + new_item->updateServer(FALSE); + + gInventory.notifyObservers(); + } + } + + void completeCleanup() + { + // background fetch is completed. can save marker + cleanup_done = true; + } +} + ///---------------------------------------------------------------------------- /// Class LLInventoryModel ///---------------------------------------------------------------------------- @@ -1741,6 +1840,8 @@ void LLInventoryModel::stopBackgroundFetch() gIdleCallbacks.deleteFunction(&LLInventoryModel::backgroundFetch, NULL); sBulkFetchCount=0; sMinTimeBetweenFetches=0.0f; + + LMSortPrefix::completeCleanup(); } } @@ -1887,6 +1988,13 @@ void LLInventoryModel::cache( const LLUUID& parent_folder_id, const LLUUID& agent_id) { + if (getRootFolderID() == parent_folder_id) + { + // *TODO: mantipov: can be removed before public release, EXT-3985 + //save marker to avoid fetching inventory on future sessions + LMSortPrefix::setLandmarksWereCleaned(); + } + lldebugs << "Caching " << parent_folder_id << " for " << agent_id << llendl; LLViewerInventoryCategory* root_cat = getCategory(parent_folder_id); @@ -2697,6 +2805,28 @@ void LLInventoryModel::buildParentChildMap() // The inv tree is built. mIsAgentInvUsable = true; + {// *TODO: mantipov: can be removed before public release, EXT-3985 + /* + *HACK: mantipov: to cleanup landmarks were marked with sort index prefix in name. + Is necessary to be called once per account after EXT-3985 is implemented. + So, let fetch agent's inventory, processing will be done in processInventoryDescendents() + Should be removed before public release. + */ + if (!LMSortPrefix::wasClean()) + { + cat_array_t cats; + item_array_t items; + collectDescendents(agent_inv_root_id, cats, items, INCLUDE_TRASH); + + for (item_array_t::const_iterator it= items.begin(); it != items.end(); ++it) + { + LMSortPrefix::removePrefix(*it); + } + + gInventory.startBackgroundFetch(agent_inv_root_id); + } + } + llinfos << "Inventory initialized, notifying observers" << llendl; addChangedMask(LLInventoryObserver::ALL, LLUUID::null); notifyObservers(); @@ -3462,6 +3592,10 @@ void LLInventoryModel::processInventoryDescendents(LLMessageSystem* msg,void**) continue; } gInventory.updateItem(titem); + + {// *TODO: mantipov: can be removed before public release, EXT-3985 + LMSortPrefix::removePrefix(titem); + } } // set version and descendentcount according to message. diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 7e71ac90b4..12a2c370d2 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -759,7 +759,9 @@ bool LLInventoryPanel::beginIMSession() S32 count = item_array.count(); if(count > 0) { - LLFloaterReg::showInstance("communicate"); + //*TODO by what to replace that? + //LLFloaterReg::showInstance("communicate"); + // create the session LLAvatarTracker& at = LLAvatarTracker::instance(); LLUUID id; diff --git a/indra/newview/lllocaltextureobject.cpp b/indra/newview/lllocaltextureobject.cpp index 6bcbe6f58c..69eb5fce2f 100644 --- a/indra/newview/lllocaltextureobject.cpp +++ b/indra/newview/lllocaltextureobject.cpp @@ -47,7 +47,9 @@ LLLocalTextureObject::LLLocalTextureObject() : mImage = NULL; } -LLLocalTextureObject::LLLocalTextureObject(LLViewerFetchedTexture* image, const LLUUID& id) +LLLocalTextureObject::LLLocalTextureObject(LLViewerFetchedTexture* image, const LLUUID& id) : + mIsBakedReady(FALSE), + mDiscard(MAX_DISCARD_LEVEL+1) { mImage = image; gGL.getTexUnit(0)->bind(mImage); diff --git a/indra/newview/lllocationhistory.cpp b/indra/newview/lllocationhistory.cpp index ae1b8f8540..df93930d33 100644 --- a/indra/newview/lllocationhistory.cpp +++ b/indra/newview/lllocationhistory.cpp @@ -50,18 +50,19 @@ void LLLocationHistory::addItem(const LLLocationHistoryItem& item) { // check if this item doesn't duplicate any existing one location_list_t::iterator item_iter = std::find(mItems.begin(), mItems.end(),item); - if(item_iter != mItems.end()){ + if(item_iter != mItems.end()) // if it already exists, erase the old one + { mItems.erase(item_iter); } mItems.push_back(item); - // If the vector size exceeds the maximum, purge the oldest items. - if ((S32)mItems.size() > max_items) { - for(location_list_t::iterator i = mItems.begin(); i != mItems.end()-max_items; ++i) { - mItems.erase(i); - } + // If the vector size exceeds the maximum, purge the oldest items (at the start of the mItems vector). + if ((S32)mItems.size() > max_items) + { + mItems.erase(mItems.begin(), mItems.end()-max_items); } + llassert((S32)mItems.size() <= max_items); } /* diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp index 8956a5e1bb..73fb124e9e 100644 --- a/indra/newview/lllocationinputctrl.cpp +++ b/indra/newview/lllocationinputctrl.cpp @@ -39,6 +39,7 @@ #include "llbutton.h" #include "llfocusmgr.h" #include "llmenugl.h" +#include "llparcel.h" #include "llstring.h" #include "lltrans.h" #include "lluictrlfactory.h" @@ -671,11 +672,12 @@ void LLLocationInputCtrl::refreshParcelIcons() if (show_properties) { LLViewerParcelMgr* vpm = LLViewerParcelMgr::getInstance(); - bool allow_buy = vpm->canAgentBuyParcel( vpm->getAgentParcel(), false); + LLParcel* agent_parcel = vpm->getAgentParcel(); + bool allow_buy = vpm->canAgentBuyParcel( agent_parcel, false); bool allow_voice = vpm->allowAgentVoice(); bool allow_fly = vpm->allowAgentFly(); bool allow_push = vpm->allowAgentPush(); - bool allow_build = vpm->allowAgentBuild(); + bool allow_build = agent_parcel && agent_parcel->getAllowModify(); // true when anyone is allowed to build. See EXT-4610. bool allow_scripts = vpm->allowAgentScripts(); bool allow_damage = vpm->allowAgentDamage(); diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp index 84a5eb7352..ee3ffa2450 100644 --- a/indra/newview/llmanipscale.cpp +++ b/indra/newview/llmanipscale.cpp @@ -180,6 +180,7 @@ LLManipScale::LLManipScale( LLToolComposite* composite ) mScaleSnapUnit2(1.f), mSnapRegimeOffset(0.f), mSnapGuideLength(0.f), + mInSnapRegime(FALSE), mScaleSnapValue(0.f) { mManipulatorScales = new F32[NUM_MANIPULATORS]; diff --git a/indra/newview/llmaniptranslate.cpp b/indra/newview/llmaniptranslate.cpp index 5f30ab4e01..52fe31fbba 100644 --- a/indra/newview/llmaniptranslate.cpp +++ b/indra/newview/llmaniptranslate.cpp @@ -123,9 +123,13 @@ LLManipTranslate::LLManipTranslate( LLToolComposite* composite ) mAxisArrowLength(50), mConeSize(0), mArrowLengthMeters(0.f), + mGridSizeMeters(1.f), mPlaneManipOffsetMeters(0.f), mUpdateTimer(), mSnapOffsetMeters(0.f), + mSubdivisions(10.f), + mInSnapRegime(FALSE), + mSnapped(FALSE), mArrowScales(1.f, 1.f, 1.f), mPlaneScales(1.f, 1.f, 1.f), mPlaneManipPositions(1.f, 1.f, 1.f, 1.f) diff --git a/indra/newview/llmoveview.cpp b/indra/newview/llmoveview.cpp index 0ab3b07aea..4bf2bac649 100644 --- a/indra/newview/llmoveview.cpp +++ b/indra/newview/llmoveview.cpp @@ -589,8 +589,16 @@ void LLPanelStandStopFlying::setVisible(BOOL visible) updatePosition(); } - //change visibility of parent layout_panel to animate in/out - if (getParent()) getParent()->setVisible(visible); + // do not change parent visibility in case panel is attached into Move Floater: EXT-3632, EXT-4646 + if (!mAttached) + { + //change visibility of parent layout_panel to animate in/out. EXT-2504 + if (getParent()) getParent()->setVisible(visible); + } + + // also change own visibility to avoid displaying the panel in mouselook (broken when EXT-2504 was implemented). + // See EXT-4718. + LLPanel::setVisible(visible); } BOOL LLPanelStandStopFlying::handleToolTip(S32 x, S32 y, MASK mask) @@ -614,7 +622,7 @@ void LLPanelStandStopFlying::reparent(LLFloaterMove* move_view) LLPanel* parent = dynamic_cast<LLPanel*>(getParent()); if (!parent) { - llwarns << "Stand/stop flying panel parent is unset" << llendl; + llwarns << "Stand/stop flying panel parent is unset, already attached?: " << mAttached << ", new parent: " << (move_view == NULL ? "NULL" : "Move Floater") << llendl; return; } @@ -643,6 +651,9 @@ void LLPanelStandStopFlying::reparent(LLFloaterMove* move_view) // Detach from movement controls. parent->removeChild(this); mOriginalParent.get()->addChild(this); + // update parent with self visibility (it is changed in setVisible()). EXT-4743 + mOriginalParent.get()->setVisible(getVisible()); + mAttached = false; updatePosition(); // don't defer until next draw() to avoid flicker } @@ -684,6 +695,7 @@ void LLPanelStandStopFlying::onStopFlyingButtonClick() gAgent.setFlying(FALSE); setFocus(FALSE); // EXT-482 + setVisible(FALSE); } /** diff --git a/indra/newview/llmutelist.cpp b/indra/newview/llmutelist.cpp index c1666f5666..2d3c4b187e 100644 --- a/indra/newview/llmutelist.cpp +++ b/indra/newview/llmutelist.cpp @@ -58,7 +58,6 @@ #include "llagent.h" #include "llviewergenericmessage.h" // for gGenericDispatcher #include "llworld.h" //for particle system banning -#include "llimpanel.h" #include "llimview.h" #include "llnotifications.h" #include "llviewerobjectlist.h" @@ -472,12 +471,6 @@ void notify_automute_callback(const LLUUID& agent_id, const std::string& first_n if (reason == LLMuteList::AR_IM) { - LLFloaterIMPanel *timp = gIMMgr->findFloaterBySession(agent_id); - if (timp) - { - timp->addHistoryLine(message); - } - LLIMModel::getInstance()->addMessage(agent_id, SYSTEM_FROM, LLUUID::null, message); } } diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp index 6375362ae2..9f04558d50 100644 --- a/indra/newview/llnamelistctrl.cpp +++ b/indra/newview/llnamelistctrl.cpp @@ -148,7 +148,7 @@ BOOL LLNameListCtrl::handleToolTip(S32 x, S32 y, MASK mask) && column_index == mNameColumnIndex) { // ...this is the column with the avatar name - LLUUID avatar_id = getItemId(hit_item); + LLUUID avatar_id = hit_item->getUUID(); if (avatar_id.notNull()) { // ...valid avatar id @@ -230,14 +230,15 @@ LLScrollListItem* LLNameListCtrl::addNameItemRow( std::string& suffix) { LLUUID id = name_item.value().asUUID(); - LLScrollListItem* item = NULL; + LLNameListItem* item = NULL; // Store item type so that we can invoke the proper inspector. // *TODO Vadim: Is there a more proper way of storing additional item data? { - LLNameListCtrl::NameItem name_item_(name_item); - name_item_.value = LLSD().with("uuid", id).with("is_group", name_item.target() == GROUP); - item = LLScrollListCtrl::addRow(name_item_, pos); + LLNameListCtrl::NameItem item_p(name_item); + item_p.value = LLSD().with("uuid", id).with("is_group", name_item.target() == GROUP); + item = new LLNameListItem(item_p); + LLScrollListCtrl::addRow(item, item_p, pos); } if (!item) return NULL; @@ -298,7 +299,7 @@ void LLNameListCtrl::removeNameItem(const LLUUID& agent_id) for (item_list::iterator it = getItemList().begin(); it != getItemList().end(); it++) { LLScrollListItem* item = *it; - if (getItemId(item) == agent_id) + if (item->getUUID() == agent_id) { idx = getItemIndex(item); break; @@ -335,7 +336,7 @@ void LLNameListCtrl::refresh(const LLUUID& id, const std::string& first, for (iter = getItemList().begin(); iter != getItemList().end(); iter++) { LLScrollListItem* item = *iter; - if (getItemId(item) == id) + if (item->getUUID() == id) { LLScrollListCell* cell = (LLScrollListCell*)item->getColumn(0); cell = item->getColumn(mNameColumnIndex); @@ -375,9 +376,3 @@ void LLNameListCtrl::updateColumns() } } } - -// static -LLUUID LLNameListCtrl::getItemId(LLScrollListItem* item) -{ - return item->getValue()["uuid"].asUUID(); -} diff --git a/indra/newview/llnamelistctrl.h b/indra/newview/llnamelistctrl.h index 192a3a5afa..23b1cb6897 100644 --- a/indra/newview/llnamelistctrl.h +++ b/indra/newview/llnamelistctrl.h @@ -122,7 +122,6 @@ public: /*virtual*/ void updateColumns(); private: void showInspector(const LLUUID& avatar_id, bool is_group); - static LLUUID getItemId(LLScrollListItem* item); private: S32 mNameColumnIndex; @@ -130,4 +129,24 @@ private: BOOL mAllowCallingCardDrop; }; +/** + * LLNameListCtrl item + * + * We don't use LLScrollListItem to be able to override getUUID(), which is needed + * because the name list item value is not simply an UUID but a map (uuid, is_group). + */ +class LLNameListItem : public LLScrollListItem +{ +public: + LLUUID getUUID() const { return getValue()["uuid"].asUUID(); } + +protected: + friend class LLNameListCtrl; + + LLNameListItem( const LLScrollListItem::Params& p ) + : LLScrollListItem(p) + { + } +}; + #endif diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp index 0a8d020b4f..90482eb74d 100644 --- a/indra/newview/llnearbychat.cpp +++ b/indra/newview/llnearbychat.cpp @@ -153,7 +153,7 @@ std::string appendTime() } -void LLNearbyChat::addMessage(const LLChat& chat,bool archive) +void LLNearbyChat::addMessage(const LLChat& chat,bool archive,const LLSD &args) { if (chat.mChatType == CHAT_TYPE_DEBUG_MSG) { @@ -184,7 +184,9 @@ void LLNearbyChat::addMessage(const LLChat& chat,bool archive) if (!chat.mMuted) { tmp_chat.mFromName = chat.mFromName; - mChatHistory->appendMessage(chat, use_plain_text_chat_history); + LLSD chat_args = args; + chat_args["use_plain_text_chat_history"] = use_plain_text_chat_history; + mChatHistory->appendMessage(chat, chat_args); } if(archive) diff --git a/indra/newview/llnearbychat.h b/indra/newview/llnearbychat.h index 938b77df7a..5fb8ade19e 100644 --- a/indra/newview/llnearbychat.h +++ b/indra/newview/llnearbychat.h @@ -47,7 +47,7 @@ public: ~LLNearbyChat(); BOOL postBuild (); - void addMessage (const LLChat& message,bool archive = true); + void addMessage (const LLChat& message,bool archive = true, const LLSD &args = LLSD()); void onNearbyChatContextMenuItemClicked(const LLSD& userdata); bool onNearbyChatCheckContextMenuItem(const LLSD& userdata); diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp index c50e049d4c..c08ca30bab 100644 --- a/indra/newview/llnearbychathandler.cpp +++ b/indra/newview/llnearbychathandler.cpp @@ -319,7 +319,7 @@ void LLNearbyChatHandler::initChannel() -void LLNearbyChatHandler::processChat(const LLChat& chat_msg) +void LLNearbyChatHandler::processChat(const LLChat& chat_msg, const LLSD &args) { if(chat_msg.mMuted == TRUE) return; @@ -337,7 +337,7 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg) //if(tmp_chat.mFromName.empty() && tmp_chat.mFromID!= LLUUID::null) // tmp_chat.mFromName = tmp_chat.mFromID.asString(); } - nearby_chat->addMessage(chat_msg); + nearby_chat->addMessage(chat_msg, true, args); if(nearby_chat->getVisible()) return;//no need in toast if chat is visible @@ -356,12 +356,17 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg) initChannel(); } + /* + //comment all this due to EXT-4432 + ..may clean up after some time... + //only messages from AGENTS if(CHAT_SOURCE_OBJECT == chat_msg.mSourceType) { if(chat_msg.mChatType == CHAT_TYPE_DEBUG_MSG) return;//ok for now we don't skip messeges from object, so skip only debug messages } + */ LLUUID id; id.generate(); diff --git a/indra/newview/llnearbychathandler.h b/indra/newview/llnearbychathandler.h index fb2abac6a4..01a6de5610 100644 --- a/indra/newview/llnearbychathandler.h +++ b/indra/newview/llnearbychathandler.h @@ -45,7 +45,7 @@ public: virtual ~LLNearbyChatHandler(); - virtual void processChat(const LLChat& chat_msg); + virtual void processChat(const LLChat& chat_msg, const LLSD &args); protected: virtual void onDeleteToast(LLToast* toast); diff --git a/indra/newview/llnotificationhandler.h b/indra/newview/llnotificationhandler.h index 0fb438bfe9..e57674d31c 100644 --- a/indra/newview/llnotificationhandler.h +++ b/indra/newview/llnotificationhandler.h @@ -135,7 +135,7 @@ class LLChatHandler : public LLEventHandler public: virtual ~LLChatHandler() {}; - virtual void processChat(const LLChat& chat_msg)=0; + virtual void processChat(const LLChat& chat_msg, const LLSD &args)=0; }; /** diff --git a/indra/newview/llnotificationhandlerutil.cpp b/indra/newview/llnotificationhandlerutil.cpp index fba5773602..02f948eca9 100644 --- a/indra/newview/llnotificationhandlerutil.cpp +++ b/indra/newview/llnotificationhandlerutil.cpp @@ -123,7 +123,14 @@ void LLHandlerUtil::logToIM(const EInstantMessage& session_type, message); // restore active session id - LLIMModel::instance().setActiveSessionID(active_session_id); + if (active_session_id.isNull()) + { + LLIMModel::instance().resetActiveSessionID(); + } + else + { + LLIMModel::instance().setActiveSessionID(active_session_id); + } } } diff --git a/indra/newview/llnotificationmanager.cpp b/indra/newview/llnotificationmanager.cpp index 66bc217d15..4401bb953f 100644 --- a/indra/newview/llnotificationmanager.cpp +++ b/indra/newview/llnotificationmanager.cpp @@ -107,16 +107,17 @@ bool LLNotificationManager::onNotification(const LLSD& notify) } //-------------------------------------------------------------------------- -void LLNotificationManager::onChat(const LLChat& msg,ENotificationType type) +void LLNotificationManager::onChat(const LLChat& msg, const LLSD &args) { - switch(type) + // check ENotificationType argument + switch(args["type"].asInteger()) { case NT_NEARBYCHAT: { LLNearbyChatHandler* handle = dynamic_cast<LLNearbyChatHandler*>(mNotifyHandlers["nearbychat"].get()); if(handle) - handle->processChat(msg); + handle->processChat(msg, args); } break; default: //no need to handle all enum types diff --git a/indra/newview/llnotificationmanager.h b/indra/newview/llnotificationmanager.h index 072fc6f24c..575aa69c4d 100644 --- a/indra/newview/llnotificationmanager.h +++ b/indra/newview/llnotificationmanager.h @@ -66,7 +66,7 @@ public: bool onNotification(const LLSD& notification); // this method reacts on chat notifications and calls an appropriate handler - void onChat(const LLChat& msg,ENotificationType type); + void onChat(const LLChat& msg, const LLSD &args); // get a handler for a certain type of notification LLEventHandler* getHandlerForNotification(std::string notification_type); diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp index dc40ed9c6a..03d3c11b76 100644 --- a/indra/newview/llpanelavatar.cpp +++ b/indra/newview/llpanelavatar.cpp @@ -635,6 +635,9 @@ void LLPanelAvatarProfile::fillCommonData(const LLAvatarData* avatar_data) childSetValue("2nd_life_pic", avatar_data->image_id); childSetValue("real_world_pic", avatar_data->fl_image_id); childSetValue("homepage_edit", avatar_data->profile_url); + + // Hide home page textbox if no page was set to fix "homepage URL appears clickable without URL - EXT-4734" + childSetVisible("homepage_edit", !avatar_data->profile_url.empty()); } void LLPanelAvatarProfile::fillPartnerData(const LLAvatarData* avatar_data) diff --git a/indra/newview/llpanelcontents.cpp b/indra/newview/llpanelcontents.cpp index 9d591ef43d..2a7d097f94 100644 --- a/indra/newview/llpanelcontents.cpp +++ b/indra/newview/llpanelcontents.cpp @@ -50,7 +50,6 @@ // project includes #include "llagent.h" -#include "llfloaterbulkpermission.h" #include "llpanelobjectinventory.h" #include "llpreviewscript.h" #include "llresmgr.h" @@ -60,6 +59,7 @@ #include "lltoolmgr.h" #include "lltrans.h" #include "llviewerassettype.h" +#include "llviewerinventory.h" #include "llviewerobject.h" #include "llviewerregion.h" #include "llviewerwindow.h" diff --git a/indra/newview/llpanelgroup.cpp b/indra/newview/llpanelgroup.cpp index c37fc59745..28abcab99e 100644 --- a/indra/newview/llpanelgroup.cpp +++ b/indra/newview/llpanelgroup.cpp @@ -89,8 +89,8 @@ BOOL LLPanelGroupTab::postBuild() LLPanelGroup::LLPanelGroup() : LLPanel(), LLGroupMgrObserver( LLUUID() ), - mAllowEdit( TRUE ) - ,mShowingNotifyDialog(false) + mSkipRefresh(FALSE), + mShowingNotifyDialog(false) { // Set up the factory callbacks. // Roles sub tabs @@ -168,7 +168,6 @@ BOOL LLPanelGroup::postBuild() button = getChild<LLButton>("btn_refresh"); button->setClickedCallback(onBtnRefresh, this); - button->setVisible(mAllowEdit); getChild<LLButton>("btn_create")->setVisible(false); @@ -492,7 +491,12 @@ bool LLPanelGroup::apply(LLPanelGroupTab* tab) std::string apply_mesg; if(tab->apply( apply_mesg ) ) + { + //we skip refreshing group after ew manually apply changes since its very annoying + //for those who are editing group + mSkipRefresh = TRUE; return true; + } if ( !apply_mesg.empty() ) { @@ -539,6 +543,11 @@ void LLPanelGroup::draw() void LLPanelGroup::refreshData() { + if(mSkipRefresh) + { + mSkipRefresh = FALSE; + return; + } LLGroupMgr::getInstance()->clearGroupData(getID()); setGroupID(getID()); @@ -560,10 +569,10 @@ void LLPanelGroup::chatGroup() } void LLPanelGroup::showNotice(const std::string& subject, - const std::string& message, - const bool& has_inventory, - const std::string& inventory_name, - LLOfferInfo* inventory_offer) + const std::string& message, + const bool& has_inventory, + const std::string& inventory_name, + LLOfferInfo* inventory_offer) { LLPanelGroupNotices* panel_notices = findChild<LLPanelGroupNotices>("group_notices_tab_panel"); if(!panel_notices) diff --git a/indra/newview/llpanelgroup.h b/indra/newview/llpanelgroup.h index 8c84695677..6e23eedffb 100644 --- a/indra/newview/llpanelgroup.h +++ b/indra/newview/llpanelgroup.h @@ -85,9 +85,6 @@ public: virtual void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); - void setAllowEdit(BOOL v) { mAllowEdit = v; } - - static void refreshCreatedGroup(const LLUUID& group_id); static void showNotice(const std::string& subject, @@ -126,7 +123,7 @@ protected: LLTimer mRefreshTimer; - BOOL mAllowEdit; + BOOL mSkipRefresh; std::string mDefaultNeedsApplyMesg; std::string mWantApplyMesg; @@ -169,8 +166,6 @@ public: virtual BOOL isVisibleByAgent(LLAgent* agentp); - void setAllowEdit(BOOL v) { mAllowEdit = v; } - virtual void setGroupID(const LLUUID& id) {mGroupID = id;}; void notifyObservers() {}; diff --git a/indra/newview/llpanelgroupnotices.cpp b/indra/newview/llpanelgroupnotices.cpp index 45fc3d4688..6210973dae 100644 --- a/indra/newview/llpanelgroupnotices.cpp +++ b/indra/newview/llpanelgroupnotices.cpp @@ -614,7 +614,7 @@ void LLPanelGroupNotices::showNotice(const std::string& subject, mViewInventoryIcon->setVisible(TRUE); std::stringstream ss; - ss << " " << LLViewerInventoryItem::getDisplayName(inventory_name); + ss << " " << inventory_name; mViewInventoryName->setText(ss.str()); mBtnOpenAttachment->setEnabled(TRUE); diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp index 45f0381d6f..c6287472fe 100644 --- a/indra/newview/llpanelgrouproles.cpp +++ b/indra/newview/llpanelgrouproles.cpp @@ -867,7 +867,7 @@ void LLPanelGroupMembersSubTab::handleMemberSelect() for (itor = selection.begin(); itor != selection.end(); ++itor) { - LLUUID member_id = (*itor)->getValue()["uuid"]; + LLUUID member_id = (*itor)->getUUID(); selected_members.push_back( member_id ); // Get this member's power mask including any unsaved changes @@ -1093,7 +1093,7 @@ void LLPanelGroupMembersSubTab::handleEjectMembers() for (itor = selection.begin() ; itor != selection.end(); ++itor) { - LLUUID member_id = (*itor)->getValue()["uuid"]; + LLUUID member_id = (*itor)->getUUID(); selected_members.push_back( member_id ); } @@ -1151,7 +1151,7 @@ void LLPanelGroupMembersSubTab::handleRoleCheck(const LLUUID& role_id, itor != selection.end(); ++itor) { - member_id = (*itor)->getValue()["uuid"]; + member_id = (*itor)->getUUID(); //see if we requested a change for this member before if ( mMemberRoleChangeData.find(member_id) == mMemberRoleChangeData.end() ) @@ -1242,7 +1242,7 @@ void LLPanelGroupMembersSubTab::handleMemberDoubleClick() LLScrollListItem* selected = mMembersList->getFirstSelected(); if (selected) { - LLUUID member_id = selected->getValue()["uuid"]; + LLUUID member_id = selected->getUUID(); LLAvatarActions::showProfile( member_id ); } } @@ -1632,7 +1632,7 @@ void LLPanelGroupMembersSubTab::updateMembers() LLScrollListItem* member = mMembersList->addElement(row);//, ADD_SORTED); - LLUUID id = member->getValue()["uuid"]; + LLUUID id = member->getUUID(); mHasMatch = TRUE; } } diff --git a/indra/newview/llpanellandmarkinfo.cpp b/indra/newview/llpanellandmarkinfo.cpp index 9654e17659..36a542cfa0 100644 --- a/indra/newview/llpanellandmarkinfo.cpp +++ b/indra/newview/llpanellandmarkinfo.cpp @@ -98,17 +98,17 @@ void LLPanelLandmarkInfo::resetLocation() { LLPanelPlaceInfo::resetLocation(); - std::string not_available = getString("not_available"); - mCreator->setText(not_available); - mOwner->setText(not_available); - mCreated->setText(not_available); + std::string loading = LLTrans::getString("LoadingData"); + mCreator->setText(loading); + mOwner->setText(loading); + mCreated->setText(loading); mLandmarkTitle->setText(LLStringUtil::null); mLandmarkTitleEditor->setText(LLStringUtil::null); mNotesEditor->setText(LLStringUtil::null); } // virtual -void LLPanelLandmarkInfo::setInfoType(INFO_TYPE type) +void LLPanelLandmarkInfo::setInfoType(EInfoType type) { LLPanel* landmark_info_panel = getChild<LLPanel>("landmark_info_panel"); @@ -367,7 +367,6 @@ void LLPanelLandmarkInfo::createLandmark(const LLUUID& folder_id) } LLStringUtil::replaceChar(desc, '\n', ' '); - LLViewerInventoryItem::insertDefaultSortField(name); // If no folder chosen use the "Landmarks" folder. LLLandmarkActions::createLandmarkHere(name, desc, diff --git a/indra/newview/llpanellandmarkinfo.h b/indra/newview/llpanellandmarkinfo.h index 2a9949ae41..b3dc3f5ad9 100644 --- a/indra/newview/llpanellandmarkinfo.h +++ b/indra/newview/llpanellandmarkinfo.h @@ -49,7 +49,7 @@ public: /*virtual*/ void resetLocation(); - /*virtual*/ void setInfoType(INFO_TYPE type); + /*virtual*/ void setInfoType(EInfoType type); /*virtual*/ void processParcelInfo(const LLParcelData& parcel_data); diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp index d17c287cc7..30221da12a 100644 --- a/indra/newview/llpanelobject.cpp +++ b/indra/newview/llpanelobject.cpp @@ -316,11 +316,14 @@ BOOL LLPanelObject::postBuild() LLPanelObject::LLPanelObject() : LLPanel(), + mComboMaterialItemCount(0), mIsPhysical(FALSE), mIsTemporary(FALSE), mIsPhantom(FALSE), mCastShadows(TRUE), - mSelectedType(MI_BOX) + mSelectedType(MI_BOX), + mSculptTextureRevert(LLUUID::null), + mSculptTypeRevert(0) { } diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp index d4376550d6..5c5c35141e 100644 --- a/indra/newview/llpanelobjectinventory.cpp +++ b/indra/newview/llpanelobjectinventory.cpp @@ -463,10 +463,6 @@ BOOL LLTaskInvFVBridge::removeItem() } else { - remove_data_t* data = new remove_data_t; - data->first = mPanel; - data->second.first = mPanel->getTaskUUID(); - data->second.second.push_back(mUUID); LLSD payload; payload["task_id"] = mPanel->getTaskUUID(); payload["inventory_ids"].append(mUUID); diff --git a/indra/newview/llpanelpeoplemenus.cpp b/indra/newview/llpanelpeoplemenus.cpp index d9651a6045..470cfca8fe 100644 --- a/indra/newview/llpanelpeoplemenus.cpp +++ b/indra/newview/llpanelpeoplemenus.cpp @@ -55,6 +55,22 @@ ContextMenu::ContextMenu() { } +ContextMenu::~ContextMenu() +{ + // do not forget delete LLContextMenu* mMenu. + // It can have registered Enable callbacks which are called from the LLMenuHolderGL::draw() + // via selected item (menu_item_call) by calling LLMenuItemCallGL::buildDrawLabel. + // we can have a crash via using callbacks of deleted instance of ContextMenu. EXT-4725 + + // menu holder deletes its menus on viewer exit, so we have no way to determine if instance + // of mMenu has already been deleted except of using LLHandle. EXT-4762. + if (!mMenuHandle.isDead()) + { + mMenu->die(); + mMenu = NULL; + } +} + void ContextMenu::show(LLView* spawning_view, const std::vector<LLUUID>& uuids, S32 x, S32 y) { if (mMenu) @@ -77,6 +93,7 @@ void ContextMenu::show(LLView* spawning_view, const std::vector<LLUUID>& uuids, std::copy(uuids.begin(), uuids.end(), mUUIDs.begin()); mMenu = createMenu(); + mMenuHandle = mMenu->getHandle(); mMenu->show(x, y); LLMenuGL::showPopup(spawning_view, mMenu, x, y); } diff --git a/indra/newview/llpanelpeoplemenus.h b/indra/newview/llpanelpeoplemenus.h index 14ae2985f0..913638d8c8 100644 --- a/indra/newview/llpanelpeoplemenus.h +++ b/indra/newview/llpanelpeoplemenus.h @@ -45,7 +45,7 @@ class ContextMenu : public LLAvatarListItem::ContextMenu { public: ContextMenu(); - virtual ~ContextMenu() {} + virtual ~ContextMenu(); /** * Show the menu at specified coordinates. @@ -62,6 +62,7 @@ protected: std::vector<LLUUID> mUUIDs; LLContextMenu* mMenu; + LLHandle<LLView> mMenuHandle; }; /** diff --git a/indra/newview/llpanelplaceinfo.cpp b/indra/newview/llpanelplaceinfo.cpp index 0c10f11bfc..9ebc8ca2b9 100644 --- a/indra/newview/llpanelplaceinfo.cpp +++ b/indra/newview/llpanelplaceinfo.cpp @@ -43,6 +43,8 @@ #include "lliconctrl.h" #include "lltextbox.h" +#include "lltrans.h" + #include "llagent.h" #include "llexpandabletextbox.h" #include "llpanelpick.h" @@ -56,6 +58,7 @@ LLPanelPlaceInfo::LLPanelPlaceInfo() mPosRegion(), mScrollingPanelMinHeight(0), mScrollingPanelWidth(0), + mInfoType(UNKNOWN), mScrollingPanel(NULL), mScrollContainer(NULL) {} @@ -99,12 +102,12 @@ void LLPanelPlaceInfo::resetLocation() mRequestedID.setNull(); mPosRegion.clearVec(); - std::string not_available = getString("not_available"); - mMaturityRatingIcon->setValue(not_available); - mMaturityRatingText->setValue(not_available); - mRegionName->setText(not_available); - mParcelName->setText(not_available); - mDescEditor->setText(not_available); + std::string loading = LLTrans::getString("LoadingData"); + mMaturityRatingIcon->setValue(loading); + mMaturityRatingText->setValue(loading); + mRegionName->setText(loading); + mParcelName->setText(loading); + mDescEditor->setText(loading); mSnapshotCtrl->setImageAssetID(LLUUID::null); mSnapshotCtrl->setFallbackImageName("default_land_picture.j2c"); @@ -118,7 +121,7 @@ void LLPanelPlaceInfo::setParcelID(const LLUUID& parcel_id) } //virtual -void LLPanelPlaceInfo::setInfoType(INFO_TYPE type) +void LLPanelPlaceInfo::setInfoType(EInfoType type) { mTitle->setText(mCurrentTitle); @@ -206,6 +209,10 @@ void LLPanelPlaceInfo::processParcelInfo(const LLParcelData& parcel_data) { mDescEditor->setText(parcel_data.desc); } + else + { + mDescEditor->setText(getString("not_available")); + } S32 region_x; S32 region_y; diff --git a/indra/newview/llpanelplaceinfo.h b/indra/newview/llpanelplaceinfo.h index 3091f7ed24..deedbd2b0f 100644 --- a/indra/newview/llpanelplaceinfo.h +++ b/indra/newview/llpanelplaceinfo.h @@ -54,8 +54,10 @@ class LLViewerInventoryCategory; class LLPanelPlaceInfo : public LLPanel, LLRemoteParcelInfoObserver { public: - enum INFO_TYPE + enum EInfoType { + UNKNOWN, + AGENT, CREATE_LANDMARK, LANDMARK, @@ -79,7 +81,7 @@ public: // Depending on how the panel was triggered // (from landmark or current location, or other) // sets a corresponding title and contents. - virtual void setInfoType(INFO_TYPE type); + virtual void setInfoType(EInfoType type); // Requests remote parcel info by parcel ID. void sendParcelInfoRequest(); @@ -114,7 +116,7 @@ protected: std::string mCurrentTitle; S32 mScrollingPanelMinHeight; S32 mScrollingPanelWidth; - INFO_TYPE mInfoType; + EInfoType mInfoType; LLScrollContainer* mScrollContainer; LLPanel* mScrollingPanel; diff --git a/indra/newview/llpanelplaceprofile.cpp b/indra/newview/llpanelplaceprofile.cpp index d892e2885b..8d689b2c5e 100644 --- a/indra/newview/llpanelplaceprofile.cpp +++ b/indra/newview/llpanelplaceprofile.cpp @@ -42,6 +42,8 @@ #include "lltextbox.h" #include "lltexteditor.h" +#include "lltrans.h" + #include "llaccordionctrl.h" #include "llaccordionctrltab.h" #include "llagent.h" @@ -163,49 +165,49 @@ void LLPanelPlaceProfile::resetLocation() mForSalePanel->setVisible(FALSE); mYouAreHerePanel->setVisible(FALSE); - std::string not_available = getString("not_available"); - mParcelOwner->setValue(not_available); - - mParcelRatingIcon->setValue(not_available); - mParcelRatingText->setText(not_available); - mVoiceIcon->setValue(not_available); - mVoiceText->setText(not_available); - mFlyIcon->setValue(not_available); - mFlyText->setText(not_available); - mPushIcon->setValue(not_available); - mPushText->setText(not_available); - mBuildIcon->setValue(not_available); - mBuildText->setText(not_available); - mScriptsIcon->setValue(not_available); - mScriptsText->setText(not_available); - mDamageIcon->setValue(not_available); - mDamageText->setText(not_available); - - mRegionNameText->setValue(not_available); - mRegionTypeText->setValue(not_available); - mRegionRatingIcon->setValue(not_available); - mRegionRatingText->setValue(not_available); - mRegionOwnerText->setValue(not_available); - mRegionGroupText->setValue(not_available); - - mEstateNameText->setValue(not_available); - mEstateRatingText->setValue(not_available); - mEstateOwnerText->setValue(not_available); - mCovenantText->setValue(not_available); - - mSalesPriceText->setValue(not_available); - mAreaText->setValue(not_available); - mTrafficText->setValue(not_available); - mPrimitivesText->setValue(not_available); - mParcelScriptsText->setValue(not_available); - mTerraformLimitsText->setValue(not_available); - mSubdivideText->setValue(not_available); - mResaleText->setValue(not_available); - mSaleToText->setValue(not_available); + std::string loading = LLTrans::getString("LoadingData"); + mParcelOwner->setValue(loading); + + mParcelRatingIcon->setValue(loading); + mParcelRatingText->setText(loading); + mVoiceIcon->setValue(loading); + mVoiceText->setText(loading); + mFlyIcon->setValue(loading); + mFlyText->setText(loading); + mPushIcon->setValue(loading); + mPushText->setText(loading); + mBuildIcon->setValue(loading); + mBuildText->setText(loading); + mScriptsIcon->setValue(loading); + mScriptsText->setText(loading); + mDamageIcon->setValue(loading); + mDamageText->setText(loading); + + mRegionNameText->setValue(loading); + mRegionTypeText->setValue(loading); + mRegionRatingIcon->setValue(loading); + mRegionRatingText->setValue(loading); + mRegionOwnerText->setValue(loading); + mRegionGroupText->setValue(loading); + + mEstateNameText->setValue(loading); + mEstateRatingText->setValue(loading); + mEstateOwnerText->setValue(loading); + mCovenantText->setValue(loading); + + mSalesPriceText->setValue(loading); + mAreaText->setValue(loading); + mTrafficText->setValue(loading); + mPrimitivesText->setValue(loading); + mParcelScriptsText->setValue(loading); + mTerraformLimitsText->setValue(loading); + mSubdivideText->setValue(loading); + mResaleText->setValue(loading); + mSaleToText->setValue(loading); } // virtual -void LLPanelPlaceProfile::setInfoType(INFO_TYPE type) +void LLPanelPlaceProfile::setInfoType(EInfoType type) { bool is_info_type_agent = type == AGENT; diff --git a/indra/newview/llpanelplaceprofile.h b/indra/newview/llpanelplaceprofile.h index 8ca9526875..e77b441567 100644 --- a/indra/newview/llpanelplaceprofile.h +++ b/indra/newview/llpanelplaceprofile.h @@ -48,7 +48,7 @@ public: /*virtual*/ void resetLocation(); - /*virtual*/ void setInfoType(INFO_TYPE type); + /*virtual*/ void setInfoType(EInfoType type); /*virtual*/ void processParcelInfo(const LLParcelData& parcel_data); diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp index a8a9717750..29cfbbe606 100644 --- a/indra/newview/llpanelplaces.cpp +++ b/indra/newview/llpanelplaces.cpp @@ -34,7 +34,7 @@ #include "llpanelplaces.h" #include "llassettype.h" -#include "llwindow.h" +#include "lltimer.h" #include "llinventory.h" #include "lllandmark.h" @@ -49,6 +49,8 @@ #include "lltrans.h" #include "lluictrlfactory.h" +#include "llwindow.h" + #include "llagent.h" #include "llagentpicksinfo.h" #include "llavatarpropertiesprocessor.h" @@ -73,6 +75,7 @@ #include "llviewerwindow.h" static const S32 LANDMARK_FOLDERS_MENU_WIDTH = 250; +static const F32 PLACE_INFO_UPDATE_INTERVAL = 3.0; static const std::string AGENT_INFO_TYPE = "agent"; static const std::string CREATE_LANDMARK_INFO_TYPE = "create_landmark"; static const std::string LANDMARK_INFO_TYPE = "landmark"; @@ -269,11 +272,11 @@ BOOL LLPanelPlaces::postBuild() if (!mPlaceProfile || !mLandmarkInfo) return FALSE; - LLButton* back_btn = mPlaceProfile->getChild<LLButton>("back_btn"); - back_btn->setClickedCallback(boost::bind(&LLPanelPlaces::onBackButtonClicked, this)); + mPlaceProfileBackBtn = mPlaceProfile->getChild<LLButton>("back_btn"); + mPlaceProfileBackBtn->setClickedCallback(boost::bind(&LLPanelPlaces::onBackButtonClicked, this)); - back_btn = mLandmarkInfo->getChild<LLButton>("back_btn"); - back_btn->setClickedCallback(boost::bind(&LLPanelPlaces::onBackButtonClicked, this)); + mLandmarkInfoBackBtn = mLandmarkInfo->getChild<LLButton>("back_btn"); + mLandmarkInfoBackBtn->setClickedCallback(boost::bind(&LLPanelPlaces::onBackButtonClicked, this)); LLLineEditor* title_editor = mLandmarkInfo->getChild<LLLineEditor>("title_editor"); title_editor->setKeystrokeCallback(boost::bind(&LLPanelPlaces::onEditButtonClicked, this), NULL); @@ -324,9 +327,12 @@ void LLPanelPlaces::onOpen(const LLSD& key) mLandmarkInfo->displayParcelInfo(LLUUID(), mPosGlobal); - // Disable Save button because there is no item to save yet. - // The button will be enabled in onLandmarkLoaded callback. + // Disabling "Save", "Close" and "Back" buttons to prevent closing "Create Landmark" + // panel before created landmark is loaded. + // These buttons will be enabled when created landmark is added to inventory. mSaveBtn->setEnabled(FALSE); + mCloseBtn->setEnabled(FALSE); + mLandmarkInfoBackBtn->setEnabled(FALSE); } else if (mPlaceInfoType == LANDMARK_INFO_TYPE) { @@ -434,6 +440,8 @@ void LLPanelPlaces::setItem(LLInventoryItem* item) mEditBtn->setEnabled(is_landmark_editable); mSaveBtn->setEnabled(is_landmark_editable); + mCloseBtn->setEnabled(TRUE); + mLandmarkInfoBackBtn->setEnabled(TRUE); if (is_landmark_editable) { @@ -485,8 +493,6 @@ void LLPanelPlaces::onLandmarkLoaded(LLLandmark* landmark) landmark->getGlobalPos(mPosGlobal); mLandmarkInfo->displayParcelInfo(region_id, mPosGlobal); - mSaveBtn->setEnabled(TRUE); - updateVerbs(); } @@ -830,6 +836,10 @@ void LLPanelPlaces::togglePlaceInfoPanel(BOOL visible) { mPlaceProfile->resetLocation(); + // Do not reset location info until mResetInfoTimer has expired + // to avoid text blinking. + mResetInfoTimer.setTimerExpirySec(PLACE_INFO_UPDATE_INTERVAL); + LLRect rect = getRect(); LLRect new_rect = LLRect(rect.mLeft, rect.mTop, rect.mRight, mTabContainer->getRect().mBottom); mPlaceProfile->reshape(new_rect.getWidth(), new_rect.getHeight()); @@ -920,11 +930,12 @@ void LLPanelPlaces::changedParcelSelection() } } - // Reset location info only if global position is changed - // to reduce unnecessary text and icons updates. - if (prev_pos_global != mPosGlobal) + // Reset location info only if global position has changed + // and update timer has expired to reduce unnecessary text and icons updates. + if (prev_pos_global != mPosGlobal && mResetInfoTimer.hasExpired()) { mPlaceProfile->resetLocation(); + mResetInfoTimer.setTimerExpirySec(PLACE_INFO_UPDATE_INTERVAL); } mPlaceProfile->displaySelectedParcelInfo(parcel, region, mPosGlobal, is_current_parcel); @@ -1022,6 +1033,13 @@ void LLPanelPlaces::updateVerbs() { mTeleportBtn->setEnabled(have_3d_pos); } + + // Do not enable landmark info Back button when we are waiting + // for newly created landmark to load. + if (!is_create_landmark_visible) + { + mLandmarkInfoBackBtn->setEnabled(TRUE); + } } else { diff --git a/indra/newview/llpanelplaces.h b/indra/newview/llpanelplaces.h index 0eba7f3afc..110d7a1054 100644 --- a/indra/newview/llpanelplaces.h +++ b/indra/newview/llpanelplaces.h @@ -32,6 +32,8 @@ #ifndef LL_LLPANELPLACES_H #define LL_LLPANELPLACES_H +#include "lltimer.h" + #include "llpanel.h" class LLInventoryItem; @@ -113,6 +115,8 @@ private: LLToggleableMenu* mPlaceMenu; LLToggleableMenu* mLandmarkMenu; + LLButton* mPlaceProfileBackBtn; + LLButton* mLandmarkInfoBackBtn; LLButton* mTeleportBtn; LLButton* mShowOnMapBtn; LLButton* mEditBtn; @@ -132,6 +136,10 @@ private: // be available (hence zero) LLVector3d mPosGlobal; + // Sets a period of time during which the requested place information + // is expected to be updated and doesn't need to be reset. + LLTimer mResetInfoTimer; + // Information type currently shown in Place Information panel std::string mPlaceInfoType; diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp index 1b8fb49641..43e0f9a88c 100644 --- a/indra/newview/llpanelteleporthistory.cpp +++ b/indra/newview/llpanelteleporthistory.cpp @@ -46,7 +46,6 @@ #include "llnotificationsutil.h" #include "lltextbox.h" #include "llviewermenu.h" -#include "llviewerinventory.h" #include "lllandmarkactions.h" #include "llclipboard.h" @@ -308,7 +307,7 @@ void LLTeleportHistoryFlatItemStorage::purge() //////////////////////////////////////////////////////////////////////////////// LLTeleportHistoryPanel::ContextMenu::ContextMenu() : - mMenu(NULL) + mMenu(NULL), mIndex(0) { } diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp index e64d297326..dc0839c774 100644 --- a/indra/newview/llparticipantlist.cpp +++ b/indra/newview/llparticipantlist.cpp @@ -627,7 +627,9 @@ bool LLParticipantList::LLParticipantListMenu::enableContextMenuItem(const LLSD& } else if (item == "can_call") { - return LLVoiceClient::getInstance()->voiceEnabled()&&LLVoiceClient::getInstance()->isVoiceWorking(); + bool not_agent = mUUIDs.front() != gAgentID; + bool can_call = not_agent && LLVoiceClient::getInstance()->voiceEnabled() && LLVoiceClient::getInstance()->isVoiceWorking(); + return can_call; } return true; diff --git a/indra/newview/llplacesinventorypanel.cpp b/indra/newview/llplacesinventorypanel.cpp index 4de953a59d..8edeebaeeb 100644 --- a/indra/newview/llplacesinventorypanel.cpp +++ b/indra/newview/llplacesinventorypanel.cpp @@ -143,6 +143,23 @@ void LLPlacesInventoryPanel::restoreFolderState() getRootFolder()->scrollToShowSelection(); } +S32 LLPlacesInventoryPanel::notify(const LLSD& info) +{ + if(info.has("action")) + { + std::string str_action = info["action"]; + if(str_action == "select_first") + { + return getRootFolder()->notify(info); + } + else if(str_action == "select_last") + { + return getRootFolder()->notify(info); + } + } + return 0; +} + /************************************************************************/ /* PROTECTED METHODS */ /************************************************************************/ diff --git a/indra/newview/llplacesinventorypanel.h b/indra/newview/llplacesinventorypanel.h index 7b34045d32..86937e7c7f 100644 --- a/indra/newview/llplacesinventorypanel.h +++ b/indra/newview/llplacesinventorypanel.h @@ -57,6 +57,8 @@ public: void saveFolderState(); void restoreFolderState(); + virtual S32 notify(const LLSD& info) ; + private: LLSaveFolderState* mSavedFolderState; }; diff --git a/indra/newview/llpreviewgesture.cpp b/indra/newview/llpreviewgesture.cpp index 84bdaafacf..53e351e66e 100644 --- a/indra/newview/llpreviewgesture.cpp +++ b/indra/newview/llpreviewgesture.cpp @@ -155,6 +155,12 @@ LLPreviewGesture* LLPreviewGesture::show(const LLUUID& item_id, const LLUUID& ob return preview; } +void LLPreviewGesture::draw() +{ + // Skip LLPreview::draw() to avoid description update + LLFloater::draw(); +} + // virtual BOOL LLPreviewGesture::handleKeyHere(KEY key, MASK mask) { @@ -497,11 +503,9 @@ BOOL LLPreviewGesture::postBuild() if (item) { - childSetCommitCallback("desc", LLPreview::onText, this); childSetText("desc", item->getDescription()); childSetPrevalidate("desc", &LLLineEditor::prevalidateASCIIPrintableNoPipe); - childSetCommitCallback("name", LLPreview::onText, this); childSetText("name", item->getName()); childSetPrevalidate("name", &LLLineEditor::prevalidateASCIIPrintableNoPipe); } @@ -1077,6 +1081,8 @@ void LLPreviewGesture::saveIfNeeded() } else { + LLPreview::onCommit(); + // Every save gets a new UUID. Yup. LLTransactionID tid; LLAssetID asset_id; diff --git a/indra/newview/llpreviewgesture.h b/indra/newview/llpreviewgesture.h index 19fa1dcc37..5968e936ef 100644 --- a/indra/newview/llpreviewgesture.h +++ b/indra/newview/llpreviewgesture.h @@ -60,6 +60,7 @@ public: virtual ~LLPreviewGesture(); // LLView + /*virtual*/ void draw(); /*virtual*/ BOOL handleKeyHere(KEY key, MASK mask); /*virtual*/ BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, EDragAndDropType cargo_type, diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index 36ed1c466b..9835bfc082 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -218,7 +218,8 @@ LLSelectMgr::LLSelectMgr() mHoverObjects = new LLObjectSelection(); mHighlightedObjects = new LLObjectSelection(); - + mForceSelection = FALSE; + mShowSelection = FALSE; } @@ -5093,6 +5094,7 @@ LLSelectNode::LLSelectNode(const LLSelectNode& nodep) mName = nodep.mName; mDescription = nodep.mDescription; mCategory = nodep.mCategory; + mInventorySerial = 0; mSavedPositionLocal = nodep.mSavedPositionLocal; mSavedPositionGlobal = nodep.mSavedPositionGlobal; mSavedScale = nodep.mSavedScale; diff --git a/indra/newview/llsidepanelinventorysubpanel.cpp b/indra/newview/llsidepanelinventorysubpanel.cpp index 56e342c3ce..f51462dcce 100644 --- a/indra/newview/llsidepanelinventorysubpanel.cpp +++ b/indra/newview/llsidepanelinventorysubpanel.cpp @@ -44,7 +44,6 @@ #include "lllineeditor.h" #include "llradiogroup.h" #include "llviewercontrol.h" -#include "llviewerinventory.h" #include "llviewerobjectlist.h" diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp index 514d8facb4..2a57d48f16 100644 --- a/indra/newview/llspatialpartition.cpp +++ b/indra/newview/llspatialpartition.cpp @@ -294,7 +294,7 @@ LLSpatialGroup::~LLSpatialGroup() sNodeCount--; - if (gGLManager.mHasOcclusionQuery && mOcclusionQuery) + if (gGLManager.mHasOcclusionQuery && mOcclusionQuery[LLViewerCamera::sCurCameraID]) { sQueryPool.release(mOcclusionQuery[LLViewerCamera::sCurCameraID]); } @@ -2607,6 +2607,7 @@ void renderBoundingBox(LLDrawable* drawable, BOOL set_color = TRUE) break; case LL_PCODE_LEGACY_TREE: gGL.color4f(0,0.5f,0,1); + break; default: gGL.color4f(1,0,1,1); break; diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index 8a36475510..bff32af228 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -354,7 +354,7 @@ void LLStatusBar::refresh() childSetEnabled("stat_btn", net_stats_visible); // update the master volume button state - BOOL mute_audio = gSavedSettings.getBOOL("MuteAudio"); + bool mute_audio = LLAppViewer::instance()->getMasterSystemAudioMute(); mBtnVolume->setToggleState(mute_audio); } @@ -523,8 +523,8 @@ void LLStatusBar::onMouseEnterVolume(LLUICtrl* ctrl) static void onClickVolume(void* data) { // toggle the master mute setting - BOOL mute_audio = gSavedSettings.getBOOL("MuteAudio"); - gSavedSettings.setBOOL("MuteAudio", !mute_audio); + bool mute_audio = LLAppViewer::instance()->getMasterSystemAudioMute(); + LLAppViewer::instance()->setMasterSystemAudioMute(!mute_audio); } // sets the static variables necessary for the date diff --git a/indra/newview/llsurfacepatch.cpp b/indra/newview/llsurfacepatch.cpp index 0ce794addb..48e4a6ccc7 100644 --- a/indra/newview/llsurfacepatch.cpp +++ b/indra/newview/llsurfacepatch.cpp @@ -60,6 +60,7 @@ LLSurfacePatch::LLSurfacePatch() : mHeightsGenerated(FALSE), mDataOffset(0), mDataZ(NULL), + mDataNorm(NULL), mVObjp(NULL), mOriginRegion(0.f, 0.f, 0.f), mCenterRegion(0.f, 0.f, 0.f), @@ -355,12 +356,14 @@ void LLSurfacePatch::calcNormal(const U32 x, const U32 y, const U32 stride) normal %= c2; normal.normVec(); + llassert(mDataNorm); *(mDataNorm + surface_stride * y + x) = normal; } const LLVector3 &LLSurfacePatch::getNormal(const U32 x, const U32 y) const { U32 surface_stride = mSurfacep->getGridsPerEdge(); + llassert(mDataNorm); return *(mDataNorm + surface_stride * y + x); } @@ -402,6 +405,7 @@ void LLSurfacePatch::updateVerticalStats() U32 i, j, k; F32 z, total; + llassert(mDataZ); z = *(mDataZ); mMinZ = z; diff --git a/indra/newview/lltexlayer.cpp b/indra/newview/lltexlayer.cpp index 84c8b9d5f0..ddb6405c41 100644 --- a/indra/newview/lltexlayer.cpp +++ b/indra/newview/lltexlayer.cpp @@ -567,6 +567,7 @@ LLTexLayerSet::LLTexLayerSet(LLVOAvatarSelf* const avatar) : mAvatar( avatar ), mUpdatesEnabled( FALSE ), mIsVisible( TRUE ), + mBakedTexIndex(LLVOAvatarDefines::BAKED_HEAD), mInfo( NULL ) { } @@ -1860,7 +1861,7 @@ U32 LLTexLayerTemplate::updateWearableCache() } LLTexLayer* LLTexLayerTemplate::getLayer(U32 i) { - if (mWearableCache.size() <= i || i < 0) + if (mWearableCache.size() <= i) { return NULL; } diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp index 051c189013..a7f26f1df1 100644 --- a/indra/newview/lltexturecache.cpp +++ b/indra/newview/lltexturecache.cpp @@ -1617,20 +1617,20 @@ bool LLTextureCache::writeComplete(handle_t handle, bool abort) { lockWorkers(); handle_map_t::iterator iter = mWriters.find(handle); - llassert_always(iter != mWriters.end()); - LLTextureCacheWorker* worker = iter->second; - if (worker->complete() || abort) - { - mWriters.erase(handle); - unlockWorkers(); - worker->scheduleDelete(); - return true; - } - else + llassert(iter != mWriters.end()); + if (iter != mWriters.end()) { - unlockWorkers(); - return false; + LLTextureCacheWorker* worker = iter->second; + if (worker->complete() || abort) + { + mWriters.erase(handle); + unlockWorkers(); + worker->scheduleDelete(); + return true; + } } + unlockWorkers(); + return false; } void LLTextureCache::prioritizeWrite(handle_t handle) diff --git a/indra/newview/lltexturecache.h b/indra/newview/lltexturecache.h index 4203cbbc43..64ec881fc3 100644 --- a/indra/newview/lltexturecache.h +++ b/indra/newview/lltexturecache.h @@ -59,7 +59,12 @@ private: }; struct Entry { - Entry() {} + Entry() : + mBodySize(0), + mImageSize(0), + mTime(0) + { + } Entry(const LLUUID& id, S32 imagesize, S32 bodysize, U32 time) : mID(id), mImageSize(imagesize), mBodySize(bodysize), mTime(time) {} void init(const LLUUID& id, U32 time) { mID = id, mImageSize = 0; mBodySize = 0; mTime = time; } diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index 5ce6884239..404b79bfaf 100644 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -661,6 +661,8 @@ bool LLTextureFetchWorker::doWork(S32 param) } setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority); mState = SEND_HTTP_REQ; + delete responder; + responder = NULL; } } diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp index c3ccb9380b..da31bb3e73 100644 --- a/indra/newview/lltoastalertpanel.cpp +++ b/indra/newview/lltoastalertpanel.cpp @@ -170,6 +170,7 @@ LLToastAlertPanel::LLToastAlertPanel( LLNotificationPtr notification, bool modal params.tab_stop(false); params.wrap(true); params.follows.flags(FOLLOWS_LEFT | FOLLOWS_TOP); + params.allow_html(false); LLTextBox * msg_box = LLUICtrlFactory::create<LLTextBox> (params); // Compute max allowable height for the dialog text, so we can allocate diff --git a/indra/newview/lltoastgroupnotifypanel.cpp b/indra/newview/lltoastgroupnotifypanel.cpp index e49044cdca..add61c00cf 100644 --- a/indra/newview/lltoastgroupnotifypanel.cpp +++ b/indra/newview/lltoastgroupnotifypanel.cpp @@ -127,17 +127,7 @@ LLToastGroupNotifyPanel::LLToastGroupNotifyPanel(LLNotificationPtr& notification pAttachLink->setVisible(hasInventory); pAttachIcon->setVisible(hasInventory); if (hasInventory) { - std::string dis_name; - std::string inv_name = payload["inventory_name"]; - - if (LLViewerInventoryItem::extractSortFieldAndDisplayName(inv_name, NULL, &dis_name)) - { - pAttachLink->setValue(dis_name); - } - else - { - pAttachLink->setValue(inv_name); - } + pAttachLink->setValue(payload["inventory_name"]); mInventoryOffer = new LLOfferInfo(payload["inventory_offer"]); childSetActionTextbox("attachment", boost::bind( diff --git a/indra/newview/lltoastimpanel.cpp b/indra/newview/lltoastimpanel.cpp index d62017cc2f..89a58cd736 100644 --- a/indra/newview/lltoastimpanel.cpp +++ b/indra/newview/lltoastimpanel.cpp @@ -33,22 +33,25 @@ #include "llviewerprecompiledheaders.h" #include "lltoastimpanel.h" +#include "llfloaterreg.h" #include "llnotifications.h" #include "llinstantmessage.h" +#include "lltooltip.h" + #include "llviewerchat.h" const S32 LLToastIMPanel::DEFAULT_MESSAGE_MAX_LINE_COUNT = 6; //-------------------------------------------------------------------------- LLToastIMPanel::LLToastIMPanel(LLToastIMPanel::Params &p) : LLToastPanel(p.notification), - mAvatar(NULL), mUserName(NULL), + mAvatarIcon(NULL), mAvatarName(NULL), mTime(NULL), mMessage(NULL) { LLUICtrlFactory::getInstance()->buildPanel(this, "panel_instant_message.xml"); LLIconCtrl* sys_msg_icon = getChild<LLIconCtrl>("sys_msg_icon"); - mAvatar = getChild<LLAvatarIconCtrl>("avatar_icon"); - mUserName = getChild<LLTextBox>("user_name"); + mAvatarIcon = getChild<LLAvatarIconCtrl>("avatar_icon"); + mAvatarName = getChild<LLTextBox>("user_name"); mTime = getChild<LLTextBox>("time_box"); mMessage = getChild<LLTextBox>("message"); @@ -77,22 +80,23 @@ LLToastIMPanel::LLToastIMPanel(LLToastIMPanel::Params &p) : LLToastPanel(p.notif mMessage->setValue(p.message); } - mUserName->setValue(p.from); + mAvatarName->setValue(p.from); mTime->setValue(p.time); mSessionID = p.session_id; + mAvatarID = p.avatar_id; mNotification = p.notification; if(p.from == SYSTEM_FROM) { - mAvatar->setVisible(FALSE); + mAvatarIcon->setVisible(FALSE); sys_msg_icon->setVisible(TRUE); } else { - mAvatar->setVisible(TRUE); + mAvatarIcon->setVisible(TRUE); sys_msg_icon->setVisible(FALSE); - mAvatar->setValue(p.avatar_id); + mAvatarIcon->setValue(p.avatar_id); } S32 maxLinesCount; @@ -119,3 +123,36 @@ BOOL LLToastIMPanel::handleMouseDown(S32 x, S32 y, MASK mask) return TRUE; } + +//virtual +BOOL LLToastIMPanel::handleToolTip(S32 x, S32 y, MASK mask) +{ + // It's not our direct child, so parentPointInView() doesn't work. + LLRect name_rect; + mAvatarName->localRectToOtherView(mAvatarName->getLocalRect(), &name_rect, this); + if (!name_rect.pointInRect(x, y)) + return LLToastPanel::handleToolTip(x, y, mask); + + // Spawn at right side of the name textbox. + LLRect sticky_rect = mAvatarName->calcScreenRect(); + S32 icon_x = llmin(sticky_rect.mLeft + mAvatarName->getTextPixelWidth() + 3, sticky_rect.mRight - 16); + LLCoordGL pos(icon_x, sticky_rect.mTop); + + LLToolTip::Params params; + params.background_visible(false); + params.click_callback(boost::bind(&LLToastIMPanel::showInspector, this)); + params.delay_time(0.0f); // spawn instantly on hover + params.image(LLUI::getUIImage("Info_Small")); + params.message(""); + params.padding(0); + params.pos(pos); + params.sticky_rect(sticky_rect); + + LLToolTipMgr::getInstance()->show(params); + return TRUE; +} + +void LLToastIMPanel::showInspector() +{ + LLFloaterReg::showInstance("inspect_avatar", LLSD().with("avatar_id", mAvatarID)); +} diff --git a/indra/newview/lltoastimpanel.h b/indra/newview/lltoastimpanel.h index 53661f2cf6..154e6dae16 100644 --- a/indra/newview/lltoastimpanel.h +++ b/indra/newview/lltoastimpanel.h @@ -58,13 +58,16 @@ public: LLToastIMPanel(LLToastIMPanel::Params &p); virtual ~LLToastIMPanel(); /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask); + /*virtual*/ BOOL handleToolTip(S32 x, S32 y, MASK mask); private: + void showInspector(); static const S32 DEFAULT_MESSAGE_MAX_LINE_COUNT; LLNotificationPtr mNotification; LLUUID mSessionID; - LLAvatarIconCtrl* mAvatar; - LLTextBox* mUserName; + LLUUID mAvatarID; + LLAvatarIconCtrl* mAvatarIcon; + LLTextBox* mAvatarName; LLTextBox* mTime; LLTextBox* mMessage; }; diff --git a/indra/newview/lltoolbar.cpp b/indra/newview/lltoolbar.cpp index edbaa0d45a..404eab9249 100644 --- a/indra/newview/lltoolbar.cpp +++ b/indra/newview/lltoolbar.cpp @@ -54,7 +54,6 @@ #include "lltooldraganddrop.h" #include "llfloaterinventory.h" #include "llfloaterchatterbox.h" -#include "llfloaterfriends.h" #include "llfloatersnapshot.h" #include "llinventorypanel.h" #include "lltoolmgr.h" @@ -70,7 +69,6 @@ #include "llviewerwindow.h" #include "lltoolgrab.h" #include "llcombobox.h" -#include "llimpanel.h" #include "lllayoutstack.h" #if LL_DARWIN @@ -95,7 +93,10 @@ F32 LLToolBar::sInventoryAutoOpenTime = 1.f; // LLToolBar::LLToolBar() -: LLPanel() + : LLPanel(), + + mInventoryAutoOpen(FALSE), + mNumUnreadIMs(0) #if LL_DARWIN , mResizeHandle(NULL) #endif // LL_DARWIN @@ -262,12 +263,12 @@ void LLToolBar::updateCommunicateList() communicate_button->removeall(); - LLFloater* frontmost_floater = LLFloaterChatterBox::getInstance()->getActiveFloater(); + //LLFloater* frontmost_floater = LLFloaterChatterBox::getInstance()->getActiveFloater(); LLScrollListItem* itemp = NULL; LLSD contact_sd; contact_sd["value"] = "contacts"; - contact_sd["columns"][0]["value"] = LLFloaterMyFriends::getInstance()->getShortTitle(); + /*contact_sd["columns"][0]["value"] = LLFloaterMyFriends::getInstance()->getShortTitle(); if (LLFloaterMyFriends::getInstance() == frontmost_floater) { contact_sd["columns"][0]["font"]["name"] = "SANSSERIF_SMALL"; @@ -277,7 +278,7 @@ void LLToolBar::updateCommunicateList() { selected = "contacts"; } - } + }*/ itemp = communicate_button->addElement(contact_sd, ADD_TOP); communicate_button->addSeparator(ADD_TOP); @@ -287,7 +288,7 @@ void LLToolBar::updateCommunicateList() std::set<LLHandle<LLFloater> >::const_iterator floater_handle_it; - if (gIMMgr->getIMFloaterHandles().size() > 0) + /*if (gIMMgr->getIMFloaterHandles().size() > 0) { communicate_button->addSeparator(ADD_TOP); } @@ -313,7 +314,7 @@ void LLToolBar::updateCommunicateList() } itemp = communicate_button->addElement(im_sd, ADD_TOP); } - } + }*/ communicate_button->setValue(selected); } @@ -337,7 +338,7 @@ void LLToolBar::onClickCommunicate(LLUICtrl* ctrl, const LLSD& user_data) } else if (selected_option.asString() == "redock") { - LLFloaterChatterBox* chatterbox_instance = LLFloaterChatterBox::getInstance(); + /*LLFloaterChatterBox* chatterbox_instance = LLFloaterChatterBox::getInstance(); if(chatterbox_instance) { chatterbox_instance->addFloater(LLFloaterMyFriends::getInstance(), FALSE); @@ -358,7 +359,7 @@ void LLToolBar::onClickCommunicate(LLUICtrl* ctrl, const LLSD& user_data) } } LLFloaterReg::showInstance("communicate", session_to_show); - } + }*/ } else if (selected_option.asString() == "mute list") { @@ -366,11 +367,11 @@ void LLToolBar::onClickCommunicate(LLUICtrl* ctrl, const LLSD& user_data) } else if (selected_option.isUndefined()) // user just clicked the communicate button, treat as toggle { - LLFloaterReg::toggleInstance("communicate"); + /*LLFloaterReg::toggleInstance("communicate");*/ } else // otherwise selection_option is undifined or a specific IM session id { - LLFloaterReg::showInstance("communicate", selected_option); + /*LLFloaterReg::showInstance("communicate", selected_option);*/ } } diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp index 4420b046d8..125c62474e 100644 --- a/indra/newview/lltooldraganddrop.cpp +++ b/indra/newview/lltooldraganddrop.cpp @@ -1404,18 +1404,6 @@ void LLToolDragAndDrop::dropInventory(LLViewerObject* hit_obj, gFloaterTools->dirty(); } -struct LLGiveInventoryInfo -{ - LLUUID mToAgentID; - LLUUID mInventoryObjectID; - LLUUID mIMSessionID; - LLGiveInventoryInfo(const LLUUID& to_agent, const LLUUID& obj_id, const LLUUID &im_session_id = LLUUID::null) : - mToAgentID(to_agent), - mInventoryObjectID(obj_id), - mIMSessionID(im_session_id) - {} -}; - void LLToolDragAndDrop::giveInventory(const LLUUID& to_agent, LLInventoryItem* item, const LLUUID& im_session_id) @@ -1584,8 +1572,6 @@ void LLToolDragAndDrop::giveInventoryCategory(const LLUUID& to_agent, } else { - LLGiveInventoryInfo* info = NULL; - info = new LLGiveInventoryInfo(to_agent, cat->getUUID(), im_session_id); LLSD args; args["COUNT"] = llformat("%d",giveable.countNoCopy()); LLSD payload; diff --git a/indra/newview/lltoolgrab.cpp b/indra/newview/lltoolgrab.cpp index 26dbe6a489..d837a334f1 100644 --- a/indra/newview/lltoolgrab.cpp +++ b/indra/newview/lltoolgrab.cpp @@ -78,9 +78,15 @@ LLToolGrab::LLToolGrab( LLToolComposite* composite ) : LLTool( std::string("Grab"), composite ), mMode( GRAB_INACTIVE ), mVerticalDragging( FALSE ), + mHitLand(FALSE), + mLastMouseX(0), + mLastMouseY(0), + mAccumDeltaX(0), + mAccumDeltaY(0), mHasMoved( FALSE ), mOutsideSlop(FALSE), mDeselectedThisClick(FALSE), + mLastFace(0), mSpinGrabbing( FALSE ), mSpinRotation(), mHideBuildHighlight(FALSE) diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index c79a66892d..39e71974fd 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -922,7 +922,7 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l const LLMediaEntry* mep = tep->hasMedia() ? tep->getMediaData() : NULL; if (mep) { - viewer_media_t media_impl = mep ? LLViewerMedia::getMediaImplFromTextureID(mep->getMediaID()) : NULL; + viewer_media_t media_impl = LLViewerMedia::getMediaImplFromTextureID(mep->getMediaID()); LLPluginClassMedia* media_plugin = NULL; if (media_impl.notNull() && (media_impl->hasMedia())) diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index 7be45c649c..d2baf2d02b 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -63,7 +63,6 @@ #include "llviewerjoystick.h" #include "llviewerparcelmgr.h" #include "llparcel.h" -#include "lloverlaybar.h" #include "llkeyboard.h" #include "llerrorcontrol.h" #include "llappviewer.h" @@ -257,35 +256,6 @@ static bool handleJoystickChanged(const LLSD& newvalue) return true; } -static bool handleAudioStreamMusicChanged(const LLSD& newvalue) -{ - if (gAudiop) - { - if ( newvalue.asBoolean() ) - { - if (LLViewerParcelMgr::getInstance()->getAgentParcel() - && !LLViewerParcelMgr::getInstance()->getAgentParcel()->getMusicURL().empty()) - { - // if music isn't playing, start it - if (gOverlayBar && !gOverlayBar->musicPlaying()) - { - LLOverlayBar::toggleMusicPlay(NULL); - } - } - } - else - { - // if music is playing, stop it. - if (gOverlayBar && gOverlayBar->musicPlaying()) - { - LLOverlayBar::toggleMusicPlay(NULL); - } - - } - } - return true; -} - static bool handleUseOcclusionChanged(const LLSD& newvalue) { LLPipeline::sUseOcclusion = (newvalue.asBoolean() && gGLManager.mHasOcclusionQuery @@ -592,7 +562,6 @@ void settings_setup_listeners() gSavedSettings.getControl("AudioLevelVoice")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2)); gSavedSettings.getControl("AudioLevelDoppler")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2)); gSavedSettings.getControl("AudioLevelRolloff")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2)); - gSavedSettings.getControl("AudioStreamingMusic")->getSignal()->connect(boost::bind(&handleAudioStreamMusicChanged, _2)); gSavedSettings.getControl("MuteAudio")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2)); gSavedSettings.getControl("MuteMusic")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2)); gSavedSettings.getControl("MuteMedia")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2)); diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index 3a834e7532..658d1c9ddd 100644 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -54,7 +54,6 @@ #include "llfloaterbulkpermission.h" #include "llfloaterbump.h" #include "llfloatercamera.h" -#include "llfloaterchatterbox.h" #include "llfloaterdaycycle.h" #include "llfloatersearch.h" #include "llfloaterenvsettings.h" @@ -69,7 +68,6 @@ #include "llfloaterhud.h" #include "llfloaterimagepreview.h" #include "llimfloater.h" -#include "llimpanel.h" #include "llfloaterinspect.h" #include "llfloaterinventory.h" #include "llfloaterjoystick.h" @@ -116,7 +114,6 @@ #include "llinspectobject.h" #include "llinspectremoteobject.h" #include "llinspecttoast.h" -#include "llmediaremotectrl.h" #include "llmoveview.h" #include "llnearbychat.h" #include "llpanelblockedlist.h" @@ -155,9 +152,8 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterReg::add("camera", "floater_camera.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterCamera>); //LLFloaterReg::add("chat", "floater_chat_history.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterChat>); LLFloaterReg::add("nearby_chat", "floater_nearby_chat.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLNearbyChat>); - LLFloaterReg::add("communicate", "floater_chatterbox.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterChatterBox>); + LLFloaterReg::add("compile_queue", "floater_script_queue.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterCompileQueue>); - LLFloaterReg::add("contacts", "floater_my_friends.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterMyFriends>); LLFloaterReg::add("env_day_cycle", "floater_day_cycle_options.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterDayCycle>); LLFloaterReg::add("env_post_process", "floater_post_process.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPostProcess>); @@ -204,6 +200,7 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterReg::add("openobject", "floater_openobject.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterOpenObject>); LLFloaterReg::add("outgoing_call", "floater_outgoing_call.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLOutgoingCallDialog>); + LLFloaterReg::add("call_info", "floater_call_info.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLCallInfoDialog>); LLFloaterReg::add("parcel_info", "floater_preview_url.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterParcelInfo>); LLFloaterPayUtil::registerFloater(); @@ -264,8 +261,5 @@ void LLViewerFloaterReg::registerFloaters() // *NOTE: Please keep these alphabetized for easier merges - // debug use only - LLFloaterReg::add("media_remote_ctrl", "floater_media_remote.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterMediaRemoteCtrl>); - LLFloaterReg::registerControlVariables(); // Make sure visibility and rect controls get preserved when saving } diff --git a/indra/newview/llviewerhelp.cpp b/indra/newview/llviewerhelp.cpp index 5af79b4fd3..b82538dacb 100644 --- a/indra/newview/llviewerhelp.cpp +++ b/indra/newview/llviewerhelp.cpp @@ -33,6 +33,7 @@ #include "llviewerprecompiledheaders.h" +#include "llcommandhandler.h" #include "llfloaterhelpbrowser.h" #include "llfloaterreg.h" #include "llfocusmgr.h" @@ -43,6 +44,33 @@ #include "llviewerhelputil.h" #include "llviewerhelp.h" +// support for secondlife:///app/help/{TOPIC} SLapps +class LLHelpHandler : public LLCommandHandler +{ +public: + // requests will be throttled from a non-trusted browser + LLHelpHandler() : LLCommandHandler("help", UNTRUSTED_THROTTLE) {} + + bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web) + { + LLViewerHelp* vhelp = LLViewerHelp::getInstance(); + if (! vhelp) + { + return false; + } + + // get the requested help topic name, or use the fallback if none + std::string help_topic = vhelp->defaultTopic(); + if (params.size() >= 1) + { + help_topic = params[0].asString(); + } + + vhelp->showTopic(help_topic); + return true; + } +}; +LLHelpHandler gHelpHandler; ////////////////////////////// // implement LLHelp interface @@ -65,18 +93,16 @@ void LLViewerHelp::showTopic(const std::string &topic) help_topic = defaultTopic(); } - // f1 help topic means: if user not logged in yet, show the - // pre-login topic, otherwise show help for the focused item + // f1 help topic means: if the user is not logged in yet, show + // the pre-login topic instead of the default fallback topic, + // otherwise show help for the focused item if (help_topic == f1HelpTopic()) { - if (! LLLoginInstance::getInstance()->authSuccess()) + help_topic = getTopicFromFocus(); + if (help_topic == defaultTopic() && ! LLLoginInstance::getInstance()->authSuccess()) { help_topic = preLoginTopic(); } - else - { - help_topic = getTopicFromFocus(); - } } // work out the URL for this topic and display it diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index 6387133a86..bfac7e4b8b 100644 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -34,6 +34,7 @@ #include "llviewerinventory.h" #include "llnotificationsutil.h" +#include "llsdserialize.h" #include "message.h" #include "llagent.h" @@ -1174,81 +1175,196 @@ const std::string& LLViewerInventoryItem::getName() const return linked_category->getName(); } - return getDisplayName(); + return LLInventoryItem::getName(); } -const std::string& LLViewerInventoryItem::getDisplayName() const +/** + * Class to store sorting order of favorites landmarks in a local file. EXT-3985. + * It replaced previously implemented solution to store sort index in landmark's name as a "<N>@" prefix. + * Data are stored in user home directory. + */ +class LLFavoritesOrderStorage : public LLSingleton<LLFavoritesOrderStorage> + , public LLDestroyClass<LLFavoritesOrderStorage> { - std::string result; - BOOL hasSortField = extractSortFieldAndDisplayName(0, &result); +public: + /** + * Sets sort index for specified with LLUUID favorite landmark + */ + void setSortIndex(const LLUUID& inv_item_id, S32 sort_index); + + /** + * Gets sort index for specified with LLUUID favorite landmark + */ + S32 getSortIndex(const LLUUID& inv_item_id); + void removeSortIndex(const LLUUID& inv_item_id); + + /** + * Implementation of LLDestroyClass. Calls cleanup() instance method. + * + * It is important this callback is called before gInventory is cleaned. + * For now it is called from LLAppViewer::cleanup() -> LLAppViewer::disconnectViewer(), + * Inventory is cleaned later from LLAppViewer::cleanup() after LLAppViewer::disconnectViewer() is called. + * @see cleanup() + */ + static void destroyClass(); + + const static S32 NO_INDEX; +private: + friend class LLSingleton<LLFavoritesOrderStorage>; + LLFavoritesOrderStorage() : mIsDirty(false) { load(); } + ~LLFavoritesOrderStorage() { save(); } + + /** + * Removes sort indexes for items which are not in Favorites bar for now. + */ + void cleanup(); + + const static std::string SORTING_DATA_FILE_NAME; + + void load(); + void save(); + + typedef std::map<LLUUID, S32> sort_index_map_t; + sort_index_map_t mSortIndexes; + + bool mIsDirty; + + struct IsNotInFavorites + { + IsNotInFavorites(const LLInventoryModel::item_array_t& items) + : mFavoriteItems(items) + { - return mDisplayName = hasSortField ? result : LLInventoryItem::getName(); -} + } -// static -std::string LLViewerInventoryItem::getDisplayName(const std::string& name) -{ - std::string result; - BOOL hasSortField = extractSortFieldAndDisplayName(name, 0, &result); + /** + * Returns true if specified item is not found among inventory items + */ + bool operator()(const sort_index_map_t::value_type& id_index_pair) const + { + LLPointer<LLViewerInventoryItem> item = gInventory.getItem(id_index_pair.first); + if (item.isNull()) return true; - return hasSortField ? result : name; -} + LLInventoryModel::item_array_t::const_iterator found_it = + std::find(mFavoriteItems.begin(), mFavoriteItems.end(), item); -S32 LLViewerInventoryItem::getSortField() const -{ - S32 result; - BOOL hasSortField = extractSortFieldAndDisplayName(&result, 0); + return found_it == mFavoriteItems.end(); + } + private: + LLInventoryModel::item_array_t mFavoriteItems; + }; + +}; + +const std::string LLFavoritesOrderStorage::SORTING_DATA_FILE_NAME = "landmarks_sorting.xml"; +const S32 LLFavoritesOrderStorage::NO_INDEX = -1; - return hasSortField ? result : -1; +void LLFavoritesOrderStorage::setSortIndex(const LLUUID& inv_item_id, S32 sort_index) +{ + mSortIndexes[inv_item_id] = sort_index; + mIsDirty = true; } -void LLViewerInventoryItem::setSortField(S32 sortField) +S32 LLFavoritesOrderStorage::getSortIndex(const LLUUID& inv_item_id) { - using std::string; + sort_index_map_t::const_iterator it = mSortIndexes.find(inv_item_id); + if (it != mSortIndexes.end()) + { + return it->second; + } + return NO_INDEX; +} - std::stringstream ss; - ss << sortField; +void LLFavoritesOrderStorage::removeSortIndex(const LLUUID& inv_item_id) +{ + mSortIndexes.erase(inv_item_id); + mIsDirty = true; +} - string newSortField = ss.str(); +// static +void LLFavoritesOrderStorage::destroyClass() +{ + LLFavoritesOrderStorage::instance().cleanup(); +} - const char separator = getSeparator(); - const string::size_type separatorPos = mName.find(separator, 0); +void LLFavoritesOrderStorage::load() +{ + // load per-resident sorting information + std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, SORTING_DATA_FILE_NAME); - if (separatorPos < string::npos) + LLSD settings_llsd; + llifstream file; + file.open(filename); + if (file.is_open()) { - // the name of the LLViewerInventoryItem already consists of sort field and display name. - mName = newSortField + separator + mName.substr(separatorPos + 1, string::npos); + LLSDSerialize::fromXML(settings_llsd, file); } - else + + for (LLSD::map_const_iterator iter = settings_llsd.beginMap(); + iter != settings_llsd.endMap(); ++iter) { - // there is no sort field in the name of LLViewerInventoryItem, we should add it - mName = newSortField + separator + mName; + mSortIndexes.insert(std::make_pair(LLUUID(iter->first), (S32)iter->second.asInteger())); } } -void LLViewerInventoryItem::rename(const std::string& n) +void LLFavoritesOrderStorage::save() { - using std::string; + // nothing to save if clean + if (!mIsDirty) return; - string new_name(n); - LLStringUtil::replaceNonstandardASCII(new_name, ' '); - LLStringUtil::replaceChar(new_name, '|', ' '); - LLStringUtil::trim(new_name); - LLStringUtil::truncate(new_name, DB_INV_ITEM_NAME_STR_LEN); + // If we quit from the login screen we will not have an SL account + // name. Don't try to save, otherwise we'll dump a file in + // C:\Program Files\SecondLife\ or similar. JC + std::string user_dir = gDirUtilp->getLindenUserDir(); + if (!user_dir.empty()) + { + std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, SORTING_DATA_FILE_NAME); + LLSD settings_llsd; - const char separator = getSeparator(); - const string::size_type separatorPos = mName.find(separator, 0); + for(sort_index_map_t::const_iterator iter = mSortIndexes.begin(); iter != mSortIndexes.end(); ++iter) + { + settings_llsd[iter->first.asString()] = iter->second; + } - if (separatorPos < string::npos) - { - mName.replace(separatorPos + 1, string::npos, new_name); - } - else - { - mName = new_name; + llofstream file; + file.open(filename); + LLSDSerialize::toPrettyXML(settings_llsd, file); } } +void LLFavoritesOrderStorage::cleanup() +{ + // nothing to clean + if (!mIsDirty) return; + + const LLUUID fav_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_FAVORITE); + LLInventoryModel::cat_array_t cats; + LLInventoryModel::item_array_t items; + gInventory.collectDescendents(fav_id, cats, items, LLInventoryModel::EXCLUDE_TRASH); + + IsNotInFavorites is_not_in_fav(items); + + sort_index_map_t aTempMap; + //copy unremoved values from mSortIndexes to aTempMap + std::remove_copy_if(mSortIndexes.begin(), mSortIndexes.end(), + inserter(aTempMap, aTempMap.begin()), + is_not_in_fav); + + //Swap the contents of mSortIndexes and aTempMap + mSortIndexes.swap(aTempMap); +} + + +S32 LLViewerInventoryItem::getSortField() const +{ + return LLFavoritesOrderStorage::instance().getSortIndex(mUUID); +} + +void LLViewerInventoryItem::setSortField(S32 sortField) +{ + LLFavoritesOrderStorage::instance().setSortIndex(mUUID, sortField); +} + const LLPermissions& LLViewerInventoryItem::getPermissions() const { // Use the actual permissions of the symlink, not its parent. @@ -1337,6 +1453,8 @@ U32 LLViewerInventoryItem::getCRC32() const return LLInventoryItem::getCRC32(); } +// *TODO: mantipov: should be removed with LMSortPrefix patch in llinventorymodel.cpp, EXT-3985 +static char getSeparator() { return '@'; } BOOL LLViewerInventoryItem::extractSortFieldAndDisplayName(const std::string& name, S32* sortField, std::string* displayName) { using std::string; @@ -1372,12 +1490,6 @@ BOOL LLViewerInventoryItem::extractSortFieldAndDisplayName(const std::string& na return result; } -void LLViewerInventoryItem::insertDefaultSortField(std::string& name) -{ - name.insert(0, std::string("1") + getSeparator()); -} - - // This returns true if the item that this item points to // doesn't exist in memory (i.e. LLInventoryModel). The baseitem // might still be in the database but just not loaded yet. diff --git a/indra/newview/llviewerinventory.h b/indra/newview/llviewerinventory.h index 917b8747ea..c24f76c87a 100644 --- a/indra/newview/llviewerinventory.h +++ b/indra/newview/llviewerinventory.h @@ -58,18 +58,14 @@ public: protected: ~LLViewerInventoryItem( void ); // ref counted BOOL extractSortFieldAndDisplayName(S32* sortField, std::string* displayName) const { return extractSortFieldAndDisplayName(mName, sortField, displayName); } - static char getSeparator() { return '@'; } mutable std::string mDisplayName; public: virtual LLAssetType::EType getType() const; virtual const LLUUID& getAssetUUID() const; virtual const std::string& getName() const; - virtual const std::string& getDisplayName() const; - static std::string getDisplayName(const std::string& name); virtual S32 getSortField() const; virtual void setSortField(S32 sortField); - virtual void rename(const std::string& new_name); virtual const LLPermissions& getPermissions() const; virtual const LLUUID& getCreatorUUID() const; virtual const std::string& getDescription() const; @@ -82,7 +78,6 @@ public: virtual U32 getCRC32() const; // really more of a checksum. static BOOL extractSortFieldAndDisplayName(const std::string& name, S32* sortField, std::string* displayName); - static void insertDefaultSortField(std::string& name); // construct a complete viewer inventory item LLViewerInventoryItem(const LLUUID& uuid, const LLUUID& parent_uuid, diff --git a/indra/newview/llviewerjoint.cpp b/indra/newview/llviewerjoint.cpp index c2591ac8d7..95f05b5f5f 100644 --- a/indra/newview/llviewerjoint.cpp +++ b/indra/newview/llviewerjoint.cpp @@ -59,13 +59,9 @@ BOOL LLViewerJoint::sDisableLOD = FALSE; // Class Constructor //----------------------------------------------------------------------------- LLViewerJoint::LLViewerJoint() + : LLJoint() { - mUpdateXform = TRUE; - mValid = FALSE; - mComponents = SC_JOINT | SC_BONE | SC_AXES; - mMinPixelArea = DEFAULT_LOD; - mPickName = PN_DEFAULT; - mVisible = TRUE; + init(); } @@ -73,13 +69,21 @@ LLViewerJoint::LLViewerJoint() // LLViewerJoint() // Class Constructor //----------------------------------------------------------------------------- -LLViewerJoint::LLViewerJoint(const std::string &name, LLJoint *parent) : - LLJoint(name, parent) +LLViewerJoint::LLViewerJoint(const std::string &name, LLJoint *parent) + : LLJoint(name, parent) +{ + init(); +} + + +void LLViewerJoint::init() { mValid = FALSE; mComponents = SC_JOINT | SC_BONE | SC_AXES; mMinPixelArea = DEFAULT_LOD; mPickName = PN_DEFAULT; + mVisible = TRUE; + mMeshID = 0; } diff --git a/indra/newview/llviewerjoint.h b/indra/newview/llviewerjoint.h index 08c4ec36fd..0d3092a044 100644 --- a/indra/newview/llviewerjoint.h +++ b/indra/newview/llviewerjoint.h @@ -142,6 +142,8 @@ public: void setMeshID( S32 id ) {mMeshID = id;} protected: + void init(); + BOOL mValid; U32 mComponents; F32 mMinPixelArea; diff --git a/indra/newview/llviewerjointmesh.cpp b/indra/newview/llviewerjointmesh.cpp index 5b8902dec4..1a67fc0966 100644 --- a/indra/newview/llviewerjointmesh.cpp +++ b/indra/newview/llviewerjointmesh.cpp @@ -147,6 +147,7 @@ LLViewerJointMesh::LLViewerJointMesh() mTexture( NULL ), mLayerSet( NULL ), mTestImageName( 0 ), + mFaceIndexCount(0), mIsTransparent(FALSE) { diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index d712446d83..9ced0194a2 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -940,7 +940,6 @@ bool LLViewerMedia::firstRunCallback(const LLSD& notification, const LLSD& respo { // user has elected to automatically play media. gSavedSettings.setBOOL(LLViewerMedia::AUTO_PLAY_MEDIA_SETTING, TRUE); - gSavedSettings.setBOOL("AudioStreamingVideo", TRUE); gSavedSettings.setBOOL("AudioStreamingMusic", TRUE); gSavedSettings.setBOOL("AudioStreamingMedia", TRUE); @@ -961,7 +960,6 @@ bool LLViewerMedia::firstRunCallback(const LLSD& notification, const LLSD& respo { gSavedSettings.setBOOL(LLViewerMedia::AUTO_PLAY_MEDIA_SETTING, FALSE); gSavedSettings.setBOOL("AudioStreamingMedia", FALSE); - gSavedSettings.setBOOL("AudioStreamingVideo", FALSE); gSavedSettings.setBOOL("AudioStreamingMusic", FALSE); } return false; @@ -1813,11 +1811,6 @@ void LLViewerMediaImpl::navigateStop() bool LLViewerMediaImpl::handleKeyHere(KEY key, MASK mask) { bool result = false; - // *NOTE:Mani - if this doesn't exist llmozlib goes crashy in the debug build. - // LLMozlib::init wants to write some files to <exe_dir>/components - std::string debug_init_component_dir( gDirUtilp->getExecutableDir() ); - debug_init_component_dir += "/components"; - LLAPRFile::makeDir(debug_init_component_dir.c_str()); if (mMediaSource) { diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 455b572537..51dbe4b64b 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -53,7 +53,6 @@ #include "llfloaterbuycontents.h" #include "llfloaterbuycurrency.h" #include "llfloatercustomize.h" -#include "llfloaterchatterbox.h" #include "llfloatergodtools.h" #include "llfloaterinventory.h" #include "llfloaterland.h" @@ -82,7 +81,6 @@ #include "llsidetray.h" #include "llstatusbar.h" #include "lltextureview.h" -#include "lltoolbar.h" #include "lltoolcomp.h" #include "lltoolmgr.h" #include "lltoolpie.h" @@ -6389,10 +6387,9 @@ void handle_selected_texture_info(void*) msg.assign("Texture info for: "); msg.append(node->mName); - //TODO* CHAT: how to show this? - //LLSD args; - //args["MESSAGE"] = msg; - //LLNotificationsUtil::add("SystemMessage", args); + LLSD args; + args["MESSAGE"] = msg; + LLNotificationsUtil::add("SystemMessage", args); U8 te_count = node->getObject()->getNumTEs(); // map from texture ID to list of faces using it @@ -6425,10 +6422,9 @@ void handle_selected_texture_info(void*) msg.append( llformat("%d ", (S32)(it->second[i]))); } - //TODO* CHAT: how to show this? - //LLSD args; - //args["MESSAGE"] = msg; - //LLNotificationsUtil::add("SystemMessage", args); + LLSD args; + args["MESSAGE"] = msg; + LLNotificationsUtil::add("SystemMessage", args); } } } @@ -7959,6 +7955,7 @@ void initialize_menus() commit.add("Avatar.Eject", boost::bind(&handle_avatar_eject, LLSD())); view_listener_t::addMenu(new LLAvatarSendIM(), "Avatar.SendIM"); view_listener_t::addMenu(new LLAvatarCall(), "Avatar.Call"); + enable.add("Avatar.EnableCall", boost::bind(&LLAvatarActions::canCall)); view_listener_t::addMenu(new LLAvatarReportAbuse(), "Avatar.ReportAbuse"); view_listener_t::addMenu(new LLAvatarEnableAddFriend(), "Avatar.EnableAddFriend"); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index fccd2b2e54..317eecb7a3 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -906,7 +906,7 @@ void open_inventory_offer(const std::vector<LLUUID>& items, const std::string& f if ("inventory_handler" == from_name) { //we have to filter inventory_handler messages to avoid notification displaying - LLSideTray::getInstance()->showPanel("panel_places", + LLSideTray::getInstance()->showPanel("panel_places", LLSD().with("type", "landmark").with("id", item->getUUID())); } else if("group_offer" == from_name) @@ -925,8 +925,9 @@ void open_inventory_offer(const std::vector<LLUUID>& items, const std::string& f args["FOLDER_NAME"] = std::string(parent_folder ? parent_folder->getName() : "unknown"); LLNotificationsUtil::add("LandmarkCreated", args); // Created landmark is passed to Places panel to allow its editing. In fact panel should be already displayed. + // If the panel is closed we don't reopen it until created landmark is loaded. //TODO*:: dserduk(7/12/09) remove LLPanelPlaces dependency from here - LLPanelPlaces *places_panel = dynamic_cast<LLPanelPlaces*>(LLSideTray::getInstance()->showPanel("panel_places", LLSD())); + LLPanelPlaces *places_panel = dynamic_cast<LLPanelPlaces*>(LLSideTray::getInstance()->getPanel("panel_places")); if (places_panel) { // we are creating a landmark @@ -1365,10 +1366,9 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const if (check_offer_throttle(mFromName, true)) { log_message = chatHistory_string + " " + LLTrans::getString("InvOfferGaveYou") + " " + mDesc + LLTrans::getString("."); - //TODO* CHAT: how to show this? - //LLSD args; - //args["MESSAGE"] = log_message; - //LLNotificationsUtil::add("SystemMessage", args); + LLSD args; + args["MESSAGE"] = log_message; + LLNotificationsUtil::add("SystemMessage", args); } // we will want to open this item when it comes back. @@ -1410,11 +1410,10 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const // send the message msg->sendReliable(mHost); - //TODO* CHAT: how to show this? - //log_message = LLTrans::getString("InvOfferYouDecline") + " " + mDesc + " " + LLTrans::getString("InvOfferFrom") + " " + mFromName +"."; - //LLSD args; - //args["MESSAGE"] = log_message; - //LLNotificationsUtil::add("SystemMessage", args); + log_message = LLTrans::getString("InvOfferYouDecline") + " " + mDesc + " " + LLTrans::getString("InvOfferFrom") + " " + mFromName +"."; + LLSD args; + args["MESSAGE"] = log_message; + LLNotificationsUtil::add("SystemMessage", args); if (busy && (!mFromGroup && !mFromObject)) { @@ -1473,11 +1472,6 @@ void inventory_offer_handler(LLOfferInfo* info) LLStringUtil::truncate(msg, indx); } - if(LLAssetType::AT_LANDMARK == info->mType) - { - msg = LLViewerInventoryItem::getDisplayName(msg); - } - LLSD args; args["[OBJECTNAME]"] = msg; @@ -1843,11 +1837,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) // history. Pretend the chat is from a local agent, // so it will go into the history but not be shown on screen. - //TODO* CHAT: how to show this? - //and this is not system message... - //LLSD args; - //args["MESSAGE"] = buffer; - //LLNotificationsUtil::add("SystemMessage", args); + LLSD args; + args["MESSAGE"] = buffer; + LLNotificationsUtil::add("SystemMessageTip", args); } } break; @@ -1911,7 +1903,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) if (has_inventory) { - info = new LLOfferInfo; + info = new LLOfferInfo(); info->mIM = IM_GROUP_NOTICE; info->mFromID = from_id; @@ -1965,6 +1957,10 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) LLPanelGroup::showNotice(subj,mes,group_id,has_inventory,item_name,info); } + else + { + delete info; + } } break; case IM_GROUP_INVITATION: @@ -2025,6 +2021,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) if (sizeof(offer_agent_bucket_t) != binary_bucket_size) { LL_WARNS("Messaging") << "Malformed inventory offer from agent" << LL_ENDL; + delete info; break; } bucketp = (struct offer_agent_bucket_t*) &binary_bucket[0]; @@ -2036,6 +2033,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) if (sizeof(S8) != binary_bucket_size) { LL_WARNS("Messaging") << "Malformed inventory offer from object" << LL_ENDL; + delete info; break; } info->mType = (LLAssetType::EType) binary_bucket[0]; @@ -2181,10 +2179,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) query_string["groupowned"] = "true"; } - std::ostringstream link; - link << "secondlife:///app/objectim/" << session_id << LLURI::mapToQueryString(query_string); - - chat.mURL = link.str(); + chat.mURL = LLSLURL("objectim", session_id, "").getSLURLString(); chat.mText = message; chat.mSourceType = CHAT_SOURCE_OBJECT; @@ -2215,7 +2210,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) payload["SESSION_NAME"] = session_name; if (from_group) { - payload["groupowned"] = "true"; + payload["group_owned"] = "true"; } LLNotificationsUtil::add("ServerObjectMessage", substitutions, payload); } @@ -2517,7 +2512,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data) // Object owner for objects msg->getUUID("ChatData", "OwnerID", owner_id); - + msg->getU8Fast(_PREHASH_ChatData, _PREHASH_SourceType, source_temp); chat.mSourceType = (EChatSourceType)source_temp; @@ -2546,7 +2541,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data) if (chatter) { chat.mPosAgent = chatter->getPositionAgent(); - + // Make swirly things only for talking objects. (not script debug messages, though) if (chat.mSourceType == CHAT_SOURCE_OBJECT && chat.mChatType != CHAT_TYPE_DEBUG_MSG) @@ -2691,8 +2686,13 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data) chat.mMuted = is_muted && !is_linden; - LLNotificationsUI::LLNotificationManager::instance().onChat( - chat, LLNotificationsUI::NT_NEARBYCHAT); + // pass owner_id to chat so that we can display the remote + // object inspect for an object that is chatting with you + LLSD args; + args["type"] = LLNotificationsUI::NT_NEARBYCHAT; + args["owner_id"] = owner_id; + + LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args); } } @@ -3078,10 +3078,9 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**) { // Chat the "back" SLURL. (DEV-4907) - //TODO* CHAT: how to show this? - //LLSD args; - //args["MESSAGE"] = message; - //LLNotificationsUtil::add("SystemMessage", args); + LLSD args; + args["MESSAGE"] = "Teleport completed from " + gAgent.getTeleportSourceSLURL().getSLURLString(); + LLNotificationsUtil::add("SystemMessageTip", args); // Set the new position avatarp->setPositionAgent(agent_pos); diff --git a/indra/newview/llviewermessage.h b/indra/newview/llviewermessage.h index 8404d6fde0..1415c16090 100644 --- a/indra/newview/llviewermessage.h +++ b/indra/newview/llviewermessage.h @@ -205,7 +205,9 @@ void open_inventory_offer(const std::vector<LLUUID>& items, const std::string& f struct LLOfferInfo { - LLOfferInfo() {}; + LLOfferInfo() + : mFromGroup(FALSE), mFromObject(FALSE), + mIM(IM_NOTHING_SPECIAL), mType(LLAssetType::AT_NONE) {}; LLOfferInfo(const LLSD& sd); void forceResponse(InventoryOfferResponse response); diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index ce7b45bc11..202ad30287 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -861,6 +861,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, htonmemcpy(collision_plane.mV, &data[count], MVT_LLVector4, sizeof(LLVector4)); ((LLVOAvatar*)this)->setFootPlane(collision_plane); count += sizeof(LLVector4); + // fall through case 60: this_update_precision = 32; // this is a terse update @@ -900,6 +901,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, htonmemcpy(collision_plane.mV, &data[count], MVT_LLVector4, sizeof(LLVector4)); ((LLVOAvatar*)this)->setFootPlane(collision_plane); count += sizeof(LLVector4); + // fall through case 32: this_update_precision = 16; test_pos_parent.quantize16(-0.5f*size, 1.5f*size, MIN_HEIGHT, MAX_HEIGHT); @@ -1172,6 +1174,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, htonmemcpy(collision_plane.mV, &data[count], MVT_LLVector4, sizeof(LLVector4)); ((LLVOAvatar*)this)->setFootPlane(collision_plane); count += sizeof(LLVector4); + // fall through case 60: // this is a terse 32 update // pos @@ -1211,6 +1214,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, htonmemcpy(collision_plane.mV, &data[count], MVT_LLVector4, sizeof(LLVector4)); ((LLVOAvatar*)this)->setFootPlane(collision_plane); count += sizeof(LLVector4); + // fall through case 32: // this is a terse 16 update this_update_precision = 16; diff --git a/indra/newview/llviewerparcelmedia.cpp b/indra/newview/llviewerparcelmedia.cpp index e87dbe5c07..c4fc2e5cab 100644 --- a/indra/newview/llviewerparcelmedia.cpp +++ b/indra/newview/llviewerparcelmedia.cpp @@ -179,7 +179,7 @@ void LLViewerParcelMedia::play(LLParcel* parcel) if (!parcel) return; - if (!gSavedSettings.getBOOL("AudioStreamingMedia") || !gSavedSettings.getBOOL("AudioStreamingVideo")) + if (!gSavedSettings.getBOOL("AudioStreamingMedia")) return; std::string media_url = parcel->getMediaURL(); diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp index 10a95443f1..c537865937 100644 --- a/indra/newview/llviewerparcelmgr.cpp +++ b/indra/newview/llviewerparcelmgr.cpp @@ -69,7 +69,6 @@ #include "llviewerparceloverlay.h" #include "llviewerregion.h" #include "llworld.h" -#include "lloverlaybar.h" #include "roles_constants.h" #include "llweb.h" @@ -706,8 +705,8 @@ bool LLViewerParcelMgr::allowAgentScripts() const bool LLViewerParcelMgr::allowAgentDamage() const { LLViewerRegion* region = gAgent.getRegion(); - return region && region->getAllowDamage() - && mAgentParcel && mAgentParcel->getAllowDamage(); + return (region && region->getAllowDamage()) + || (mAgentParcel && mAgentParcel->getAllowDamage()); } BOOL LLViewerParcelMgr::isOwnedAt(const LLVector3d& pos_global) const diff --git a/indra/newview/llviewerpartsim.cpp b/indra/newview/llviewerpartsim.cpp index 841a7ccc5e..6b480ccf8e 100644 --- a/indra/newview/llviewerpartsim.cpp +++ b/indra/newview/llviewerpartsim.cpp @@ -81,6 +81,7 @@ F32 calc_desired_size(LLViewerCamera* camera, LLVector3 pos, LLVector2 scale) LLViewerPart::LLViewerPart() : mPartID(0), mLastUpdateTime(0.f), + mSkipOffset(0.f), mVPCallback(NULL), mImagep(NULL) { diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp index 6dc9f5c465..86b1a8c910 100644 --- a/indra/newview/llviewershadermgr.cpp +++ b/indra/newview/llviewershadermgr.cpp @@ -135,7 +135,8 @@ LLGLSLShader gLuminanceGatherProgram; GLint gAvatarMatrixParam; LLViewerShaderMgr::LLViewerShaderMgr() : - mVertexShaderLevel(SHADER_COUNT, 0) + mVertexShaderLevel(SHADER_COUNT, 0), + mMaxAvatarShaderLevel(0) { /// Make sure WL Sky is the first program mShaderList.push_back(&gWLSkyProgram); diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 3f42cba561..0ad269392d 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -1029,6 +1029,8 @@ void LLViewerFetchedTexture::init(bool firstinit) // does not contain this image. mIsMissingAsset = FALSE; + mLoadedCallbackDesiredDiscardLevel = 0; + mNeedsCreateTexture = FALSE; mIsRawImageValid = FALSE; @@ -1041,6 +1043,7 @@ void LLViewerFetchedTexture::init(bool firstinit) mFetchPriority = 0; mDownloadProgress = 0.f; mFetchDeltaTime = 999999.f; + mRequestDeltaTime = 0.f; mForSculpt = FALSE ; mIsFetched = FALSE ; @@ -2777,7 +2780,6 @@ void LLViewerMediaTexture::updateClass() #if 0 //force to play media. gSavedSettings.setBOOL("AudioStreamingMedia", true) ; - gSavedSettings.setBOOL("AudioStreamingVideo", true) ; #endif for(media_map_t::iterator iter = sMediaMap.begin() ; iter != sMediaMap.end(); ) diff --git a/indra/newview/llviewervisualparam.cpp b/indra/newview/llviewervisualparam.cpp index b088ef0730..fad398e00b 100644 --- a/indra/newview/llviewervisualparam.cpp +++ b/indra/newview/llviewervisualparam.cpp @@ -46,6 +46,7 @@ LLViewerVisualParamInfo::LLViewerVisualParamInfo() : mWearableType( WT_INVALID ), + mCrossWearable(FALSE), mCamDist( 0.5f ), mCamAngle( 0.f ), mCamElevation( 0.f ), diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index b2ee7f4469..0c756d122c 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -101,7 +101,6 @@ #include "llfloaterbuildoptions.h" #include "llfloaterbuyland.h" #include "llfloatercamera.h" -#include "llfloaterchatterbox.h" #include "llfloatercustomize.h" #include "llfloaterland.h" #include "llfloaterinspect.h" @@ -128,7 +127,6 @@ #include "llmorphview.h" #include "llmoveview.h" #include "llnavigationbar.h" -#include "lloverlaybar.h" #include "llpreviewtexture.h" #include "llprogressview.h" #include "llresmgr.h" @@ -147,7 +145,6 @@ #include "lltexturefetch.h" #include "lltextureview.h" #include "lltool.h" -#include "lltoolbar.h" #include "lltoolcomp.h" #include "lltooldraganddrop.h" #include "lltoolface.h" @@ -1463,10 +1460,6 @@ void LLViewerWindow::initWorldUI() bottom_tray_container->addChild(bottom_tray); bottom_tray_container->setVisible(TRUE); - // Pre initialize instance communicate instance; - // currently needs to happen before initializing chat or IM - LLFloaterReg::getInstance("communicate"); - LLRect morph_view_rect = full_window; morph_view_rect.stretch( -STATUS_BAR_HEIGHT ); morph_view_rect.mTop = full_window.mTop - 32; @@ -1659,6 +1652,9 @@ LLViewerWindow::~LLViewerWindow() { llinfos << "Destroying Window" << llendl; destroyWindow(); + + delete mDebugText; + mDebugText = NULL; } @@ -2266,15 +2262,18 @@ void LLViewerWindow::handleScrollWheel(S32 clicks) void LLViewerWindow::moveCursorToCenter() { - S32 x = getWorldViewWidthScaled() / 2; - S32 y = getWorldViewHeightScaled() / 2; + if (! gSavedSettings.getBOOL("DisableMouseWarp")) + { + S32 x = getWorldViewWidthScaled() / 2; + S32 y = getWorldViewHeightScaled() / 2; - //on a forced move, all deltas get zeroed out to prevent jumping - mCurrentMousePoint.set(x,y); - mLastMousePoint.set(x,y); - mCurrentMouseDelta.set(0,0); + //on a forced move, all deltas get zeroed out to prevent jumping + mCurrentMousePoint.set(x,y); + mLastMousePoint.set(x,y); + mCurrentMouseDelta.set(0,0); - LLUI::setMousePositionScreen(x, y); + LLUI::setMousePositionScreen(x, y); + } } @@ -4846,10 +4845,10 @@ LLPickInfo::LLPickInfo() } LLPickInfo::LLPickInfo(const LLCoordGL& mouse_pos, - MASK keyboard_mask, - BOOL pick_transparent, - BOOL pick_uv_coords, - void (*pick_callback)(const LLPickInfo& pick_info)) + MASK keyboard_mask, + BOOL pick_transparent, + BOOL pick_uv_coords, + void (*pick_callback)(const LLPickInfo& pick_info)) : mMousePt(mouse_pos), mKeyMask(keyboard_mask), mPickCallback(pick_callback), diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h index b488276a18..c0a9180b53 100644 --- a/indra/newview/llviewerwindow.h +++ b/indra/newview/llviewerwindow.h @@ -126,9 +126,6 @@ private: void updateXYCoords(); BOOL mWantSurfaceInfo; // do we populate mUVCoord, mNormal, mBinormal? - U8 mPickBuffer[PICK_DIAMETER * PICK_DIAMETER * 4]; - F32 mPickDepthBuffer[PICK_DIAMETER * PICK_DIAMETER]; - BOOL mPickParcelWall; }; diff --git a/indra/newview/llviewerwindowlistener.cpp b/indra/newview/llviewerwindowlistener.cpp index de57788271..fae98cf49a 100644 --- a/indra/newview/llviewerwindowlistener.cpp +++ b/indra/newview/llviewerwindowlistener.cpp @@ -77,6 +77,7 @@ void LLViewerWindowListener::saveSnapshot(const LLSD& event) const { LL_ERRS("LLViewerWindowListener") << "LLViewerWindowListener::saveSnapshot(): " << "unrecognized type " << event["type"] << LL_ENDL; + return; } type = found->second; } diff --git a/indra/newview/llvoicechannel.cpp b/indra/newview/llvoicechannel.cpp index 4388f473b4..202abe2833 100644 --- a/indra/newview/llvoicechannel.cpp +++ b/indra/newview/llvoicechannel.cpp @@ -395,13 +395,13 @@ void LLVoiceChannel::setState(EState state) switch(state) { case STATE_RINGING: - gIMMgr->addSystemMessage(mSessionID, "ringing", mNotifyArgs); + LLCallInfoDialog::show("ringing", mNotifyArgs); break; case STATE_CONNECTED: - gIMMgr->addSystemMessage(mSessionID, "connected", mNotifyArgs); + LLCallInfoDialog::show("connected", mNotifyArgs); break; case STATE_HUNG_UP: - gIMMgr->addSystemMessage(mSessionID, "hang_up", mNotifyArgs); + LLCallInfoDialog::show("hang_up", mNotifyArgs); break; default: break; @@ -640,7 +640,7 @@ void LLVoiceChannelGroup::setState(EState state) case STATE_RINGING: if ( !mIsRetrying ) { - gIMMgr->addSystemMessage(mSessionID, "ringing", mNotifyArgs); + LLCallInfoDialog::show("ringing", mNotifyArgs); } doSetState(state); @@ -702,7 +702,11 @@ void LLVoiceChannelProximal::handleStatusChange(EStatusType status) // do not notify user when leaving proximal channel return; case STATUS_VOICE_DISABLED: - gIMMgr->addSystemMessage(LLUUID::null, "unavailable", mNotifyArgs); + //skip showing "Voice not available at your current location" when agent voice is disabled (EXT-4749) + if(LLVoiceClient::getInstance()->voiceEnabled() && LLVoiceClient::getInstance()->isVoiceWorking()) + { + LLCallInfoDialog::show("unavailable", mNotifyArgs); + } return; default: break; @@ -901,7 +905,7 @@ void LLVoiceChannelP2P::setState(EState state) // so provide a special purpose message here if (mReceivedCall && state == STATE_RINGING) { - gIMMgr->addSystemMessage(mSessionID, "answering", mNotifyArgs); + LLCallInfoDialog::show("answering", mNotifyArgs); doSetState(state); return; } diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp index 232171cab6..a1bfda1e2a 100644 --- a/indra/newview/llvoicevivox.cpp +++ b/indra/newview/llvoicevivox.cpp @@ -5493,6 +5493,7 @@ void LLVivoxVoiceClient::filePlaybackSetMode(bool vox, float speed) } LLVivoxVoiceClient::sessionState::sessionState() : + mErrorStatusCode(0), mMediaStreamState(streamStateUnknown), mTextStreamState(streamStateUnknown), mCreateInProgress(false), @@ -6230,8 +6231,14 @@ void LLVivoxProtocolParser::reset() ignoringTags = false; accumulateText = false; energy = 0.f; + hasText = false; + hasAudio = false; + hasVideo = false; + terminated = false; ignoreDepth = 0; isChannel = false; + incoming = false; + enabled = false; isEvent = false; isLocallyMuted = false; isModeratorMuted = false; diff --git a/indra/newview/llvosky.cpp b/indra/newview/llvosky.cpp index 5ff8f0d267..0550ed770b 100644 --- a/indra/newview/llvosky.cpp +++ b/indra/newview/llvosky.cpp @@ -343,7 +343,6 @@ LLVOSky::LLVOSky(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp) cloud_pos_density1 = LLColor3(); cloud_pos_density2 = LLColor3(); - mInitialized = FALSE; mbCanSelect = FALSE; mUpdateTimer.reset(); @@ -385,6 +384,10 @@ LLVOSky::LLVOSky(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp) mBloomTexturep->setAddressMode(LLTexUnit::TAM_CLAMP); mHeavenlyBodyUpdated = FALSE ; + + mDrawRefl = 0; + mHazeConcentration = 0.f; + mInterpVal = 0.f; } @@ -1072,10 +1075,10 @@ BOOL LLVOSky::updateSky() ++next_frame; next_frame = next_frame % cycle_frame_no; - sInterpVal = (!mInitialized) ? 1 : (F32)next_frame / cycle_frame_no; + mInterpVal = (!mInitialized) ? 1 : (F32)next_frame / cycle_frame_no; // sInterpVal = (F32)next_frame / cycle_frame_no; - LLSkyTex::setInterpVal( sInterpVal ); - LLHeavenBody::setInterpVal( sInterpVal ); + LLSkyTex::setInterpVal( mInterpVal ); + LLHeavenBody::setInterpVal( mInterpVal ); calcAtmospherics(); if (mForceUpdate || total_no_tiles == frame) diff --git a/indra/newview/llvosky.h b/indra/newview/llvosky.h index ef74324e58..8366909755 100644 --- a/indra/newview/llvosky.h +++ b/indra/newview/llvosky.h @@ -613,7 +613,7 @@ protected: LLColor3 mLastTotalAmbient; F32 mAmbientScale; LLColor3 mNightColorShift; - F32 sInterpVal; + F32 mInterpVal; LLColor4 mFogColor; LLColor4 mGLFogCol; @@ -636,8 +636,8 @@ protected: public: //by bao //fake vertex buffer updating - //to guaranttee at least updating one VBO buffer every frame - //to walk around the bug caused by ATI card --> DEV-3855 + //to guarantee at least updating one VBO buffer every frame + //to work around the bug caused by ATI card --> DEV-3855 // void createDummyVertexBuffer() ; void updateDummyVertexBuffer() ; diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index 295c0c8010..bfe38c14ba 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -180,8 +180,10 @@ LLVOVolume::LLVOVolume(const LLUUID &id, const LLPCode pcode, LLViewerRegion *re mRelativeXform.setIdentity(); mRelativeXformInvTrans.setIdentity(); + mFaceMappingChanged = FALSE; mLOD = MIN_LOD; mTextureAnimp = NULL; + mVolumeChanged = FALSE; mVObjRadius = LLVector3(1,1,0.5f).length(); mNumFaces = 0; mLODChanged = FALSE; diff --git a/indra/newview/llwearable.cpp b/indra/newview/llwearable.cpp index b789bd3650..d093031bea 100644 --- a/indra/newview/llwearable.cpp +++ b/indra/newview/llwearable.cpp @@ -818,16 +818,13 @@ const LLLocalTextureObject* LLWearable::getConstLocalTextureObject(S32 index) co return NULL; } -void LLWearable::setLocalTextureObject(S32 index, LLLocalTextureObject *lto) +void LLWearable::setLocalTextureObject(S32 index, LLLocalTextureObject <o) { if( mTEMap.find(index) != mTEMap.end() ) { mTEMap.erase(index); } - if( lto ) - { - mTEMap[index] = new LLLocalTextureObject(*lto); - } + mTEMap[index] = new LLLocalTextureObject(lto); } diff --git a/indra/newview/llwearable.h b/indra/newview/llwearable.h index 7a579b248e..dae983bcf3 100644 --- a/indra/newview/llwearable.h +++ b/indra/newview/llwearable.h @@ -114,7 +114,7 @@ public: LLLocalTextureObject* getLocalTextureObject(S32 index); const LLLocalTextureObject* getConstLocalTextureObject(S32 index) const; - void setLocalTextureObject(S32 index, LLLocalTextureObject *lto); + void setLocalTextureObject(S32 index, LLLocalTextureObject <o); void addVisualParam(LLVisualParam *param); void setVisualParams(); void setVisualParamWeight(S32 index, F32 value, BOOL upload_bake); diff --git a/indra/newview/llwearablelist.cpp b/indra/newview/llwearablelist.cpp index 5636256856..d6a9837b86 100644 --- a/indra/newview/llwearablelist.cpp +++ b/indra/newview/llwearablelist.cpp @@ -38,7 +38,6 @@ #include "llassetstorage.h" #include "llagent.h" #include "llvoavatar.h" -#include "llviewerinventory.h" #include "llviewerstats.h" #include "llnotificationsutil.h" #include "llinventorymodel.h" diff --git a/indra/newview/skins/default/xui/de/floater_about_land.xml b/indra/newview/skins/default/xui/de/floater_about_land.xml index af489d39d2..cd5abf86e0 100644 --- a/indra/newview/skins/default/xui/de/floater_about_land.xml +++ b/indra/newview/skins/default/xui/de/floater_about_land.xml @@ -13,7 +13,7 @@ Restzeit </floater.string> <tab_container name="landtab"> - <panel label="Allgemein" name="land_general_panel"> + <panel label="ALLGEMEIN" name="land_general_panel"> <panel.string name="new users only"> Nur neue Benutzer </panel.string> @@ -36,10 +36,10 @@ (In Gruppenbesitz) </panel.string> <panel.string name="profile_text"> - Profil... + Profil </panel.string> <panel.string name="info_text"> - Info... + Info </panel.string> <panel.string name="public_text"> (öffentlich) @@ -52,7 +52,6 @@ </panel.string> <panel.string name="no_selection_text"> Keine Parzelle ausgewÀhlt. -Ãffnen Sie âWeltâ > âLand-Infoâ oder wÀhlen Sie eine andere Parzelle aus, um Informationen darÃŒber anzuzeigen. </panel.string> <text name="Name:"> Name: @@ -78,33 +77,35 @@ <text name="OwnerText"> Leyla Linden </text> - <button label="Profil..." label_selected="Profil..." name="Profile..."/> <text name="Group:"> Gruppe: </text> - <button label="Einstellen..." label_selected="Einstellen..." name="Set..."/> + <text name="GroupText"> + Leyla Linden + </text> + <button label="Festlegen" label_selected="Einstellen..." name="Set..."/> <check_box label="Ãbertragung an Gruppe zulassen" name="check deed" tool_tip="Ein Gruppen-Officer kann dieses Land der Gruppe ÃŒbertragen. Das Land wird dann ÃŒber die Landzuteilung der Gruppe verwaltet."/> - <button label="Ãbertragen..." label_selected="Ãbertragen..." name="Deed..." tool_tip="Sie können Land nur ÃŒbertragen, wenn Sie in der ausgewÀhlten Gruppe Officer sind."/> + <button label="Ãbertragung" label_selected="Ãbertragen..." name="Deed..." tool_tip="Sie können Land nur ÃŒbertragen, wenn Sie in der ausgewÀhlten Gruppe Officer sind."/> <check_box label="EigentÃŒmer leistet Beitrag durch Ãbertragung" name="check contrib" tool_tip="Wenn das Land an die Gruppe ÃŒbertragen wird, trÀgt der frÃŒhere EigentÃŒmer ausreichend Landnutzungsrechte bei, um es zu halten."/> <text name="For Sale:"> Zum Verkauf: </text> <text name="Not for sale."> - Nicht zu verkaufen. + Nicht zu verkaufen </text> <text name="For Sale: Price L$[PRICE]."> - Preis: [PRICE] L$ ([PRICE_PER_SQM]L$/m²). + Preis: [PRICE] L$ ([PRICE_PER_SQM]L$/m²) </text> <text name="SalePending"/> - <button bottom="-222" label="Land verkaufen..." label_selected="Land verkaufen..." name="Sell Land..."/> + <button bottom="-222" label="Land verkaufen" label_selected="Land verkaufen..." name="Sell Land..."/> <text name="For sale to"> Zum Verkauf an: [BUYER] </text> <text name="Sell with landowners objects in parcel." width="210"> - Objekte sind im Verkauf eingeschlossen. + Objekte sind im Verkauf eingeschlossen </text> <text name="Selling with no objects in parcel." width="237"> - Objekte sind im Verkauf nicht eingeschlossen. + Objekte sind im Verkauf nicht eingeschlossen </text> <button bottom="-222" label="Landverkauf abbrechen" label_selected="Landverkauf abbrechen" name="Cancel Land Sale"/> <text name="Claimed:"> @@ -125,14 +126,15 @@ <text name="DwellText"> 0 </text> - <button label="Land kaufen..." label_selected="Land kaufen..." name="Buy Land..."/> - <button label="FÃŒr Gruppe kaufen..." label_selected="FÃŒr Gruppe kaufen..." name="Buy For Group..."/> - <button label="Pass kaufen..." label_selected="Pass kaufen..." name="Buy Pass..." tool_tip="Ein Pass gibt Ihnen zeitbegrenzten Zugang zu diesem Land."/> - <button label="Land aufgeben..." label_selected="Land aufgeben..." name="Abandon Land..."/> - <button label="Land in Besitz nehmen..." label_selected="Land in Besitz nehmen..." name="Reclaim Land..."/> - <button label="Linden-Verkauf..." label_selected="Linden-Verkauf..." name="Linden Sale..." tool_tip="Land muss Eigentum und auf Inhalt gesetzt sein und nicht zur Auktion stehen."/> + <button label="Land kaufen" label_selected="Land kaufen..." name="Buy Land..."/> + <button label="Skriptinfo" name="Scripts..."/> + <button label="FÃŒr Gruppe kaufen" label_selected="FÃŒr Gruppe kaufen..." name="Buy For Group..."/> + <button label="Pass kaufen" label_selected="Pass kaufen..." name="Buy Pass..." tool_tip="Ein Pass gibt Ihnen zeitbegrenzten Zugang zu diesem Land."/> + <button label="Land aufgeben" label_selected="Land aufgeben..." name="Abandon Land..."/> + <button label="Land in Besitz nehmen" label_selected="Land in Besitz nehmen..." name="Reclaim Land..."/> + <button label="Linden-Verkauf" label_selected="Linden-Verkauf..." name="Linden Sale..." tool_tip="Land muss Eigentum und auf Inhalt gesetzt sein und nicht zur Auktion stehen."/> </panel> - <panel label="Vertrag" name="land_covenant_panel"> + <panel label="VERTRAG" name="land_covenant_panel"> <panel.string name="can_resell"> Gekauftes Land in dieser Region kann wiederverkauft werden. </panel.string> @@ -150,9 +152,6 @@ und geteilt werden. <text name="estate_section_lbl"> GrundstÃŒck: </text> - <text name="estate_name_lbl"> - Name: - </text> <text name="estate_name_text"> Mainland </text> @@ -171,11 +170,8 @@ und geteilt werden. <text name="region_section_lbl"> Region: </text> - <text name="region_name_lbl"> - Name: - </text> <text name="region_name_text"> - leyla + EricaVille </text> <text name="region_landtype_lbl"> Typ: @@ -203,7 +199,7 @@ und geteilt werden. werden. </text> </panel> - <panel label="Objekte" name="land_objects_panel"> + <panel label="OBJEKTE" name="land_objects_panel"> <panel.string name="objects_available_text"> [COUNT] von [MAX] ([AVAILABLE] verfÃŒgbar) </panel.string> @@ -214,19 +210,19 @@ werden. Objektbonusfaktor in Region: [BONUS] </text> <text name="Simulator primitive usage:"> - Primitive in Simulator: + Prim-Verwendung: </text> <text name="objects_available"> [COUNT] von [MAX] ([AVAILABLE] verfÃŒgbar) </text> <text name="Primitives parcel supports:" width="200"> - Von Parzelle unterstÃŒtzte Primitiva: + Von Parzelle unterstÃŒtzte Prims: </text> <text left="204" name="object_contrib_text" width="152"> [COUNT] </text> <text name="Primitives on parcel:"> - Primitiva auf Parzelle: + Prims auf Parzelle: </text> <text left="204" name="total_objects_text" width="48"> [COUNT] @@ -238,7 +234,7 @@ werden. [COUNT] </text> <button label="Anzeigen" label_selected="Anzeigen" name="ShowOwner" right="-135" width="60"/> - <button label="ZurÃŒckgeben..." label_selected="ZurÃŒckgeben..." name="ReturnOwner..." right="-10" tool_tip="Objekte an ihre EigentÃŒmer zurÃŒckgeben." width="119"/> + <button label="ZurÃŒckgeben" label_selected="ZurÃŒckgeben..." name="ReturnOwner..." right="-10" tool_tip="Objekte an ihre EigentÃŒmer zurÃŒckgeben." width="119"/> <text left="14" name="Set to group:"> Der Gruppe zugeordnet: </text> @@ -246,7 +242,7 @@ werden. [COUNT] </text> <button label="Anzeigen" label_selected="Anzeigen" name="ShowGroup" right="-135" width="60"/> - <button label="ZurÃŒckgeben..." label_selected="ZurÃŒckgeben..." name="ReturnGroup..." right="-10" tool_tip="Objekte an ihre EigentÃŒmer zurÃŒckgeben." width="119"/> + <button label="ZurÃŒckgeben" label_selected="ZurÃŒckgeben..." name="ReturnGroup..." right="-10" tool_tip="Objekte an ihre EigentÃŒmer zurÃŒckgeben." width="119"/> <text left="14" name="Owned by others:" width="128"> Im Eigentum anderer: </text> @@ -254,7 +250,7 @@ werden. [COUNT] </text> <button label="Anzeigen" label_selected="Anzeigen" name="ShowOther" right="-135" width="60"/> - <button label="ZurÃŒckgeben..." label_selected="ZurÃŒckgeben..." name="ReturnOther..." right="-10" tool_tip="Objekte an ihre EigentÃŒmer zurÃŒckgeben." width="119"/> + <button label="ZurÃŒckgeben" label_selected="ZurÃŒckgeben..." name="ReturnOther..." right="-10" tool_tip="Objekte an ihre EigentÃŒmer zurÃŒckgeben." width="119"/> <text left="14" name="Selected / sat upon:" width="140"> AusgewÀhlt/gesessen auf: </text> @@ -268,8 +264,8 @@ werden. <text name="Object Owners:"> ObjekteigentÃŒmer: </text> - <button label="Liste aktualisieren" label_selected="Liste aktualisieren" name="Refresh List"/> - <button label="Objekte zurÃŒckgeben..." label_selected="Objekte zurÃŒckgeben..." name="Return objects..."/> + <button label="Liste aktualisieren" label_selected="Liste aktualisieren" name="Refresh List" tool_tip="Objektliste aktualisieren"/> + <button label="Objekte zurÃŒckgeben" label_selected="Objekte zurÃŒckgeben..." name="Return objects..."/> <name_list name="owner list"> <name_list.columns label="Typ" name="type"/> <name_list.columns label="Name" name="name"/> @@ -277,7 +273,7 @@ werden. <name_list.columns label="Aktuellster" name="mostrecent"/> </name_list> </panel> - <panel label="Optionen" name="land_options_panel"> + <panel label="OPTIONEN" name="land_options_panel"> <panel.string name="search_enabled_tooltip"> Diese Parzelle in Suchergebnissen anzeigen. </panel.string> @@ -289,13 +285,13 @@ Nur groÃe Parzellen können in der Suche aufgefÃŒhrt werden. Diese Option ist nicht aktiviert, da Sie die Parzellenoptionen nicht verÀndern können. </panel.string> <panel.string name="mature_check_mature"> - Mature-Inhalt + Moderater Inhalt </panel.string> <panel.string name="mature_check_adult"> Adult-Inhalt </panel.string> <panel.string name="mature_check_mature_tooltip"> - Die Informationen oder Inhalte Ihrer Parzelle sind âMatureâ. + Die Informationen oder Inhalte Ihrer Parzelle sind âModeratâ. </panel.string> <panel.string name="mature_check_adult_tooltip"> Die Informationen oder Inhalte Ihrer Parzelle sind âAdultâ. @@ -315,26 +311,26 @@ Nur groÃe Parzellen können in der Suche aufgefÃŒhrt werden. <check_box label="Terrain bearbeiten" name="edit land check" tool_tip="Falls aktiviert, kann jeder Ihr Land terraformen. Am besten ist es, wenn Sie diese Option deaktiviert lassen. Sie können Ihr eigenes Land jederzeit bearbeiten."/> <check_box label="Fliegen" name="check fly" tool_tip="Falls aktiviert, können Einwohner auf Ihrem Land fliegen. Falls nicht aktiviert, können Einwohner lediglich auf Ihr Land fliegen und dort landen (dann jedoch nicht wieder weiterfliegen) oder ÃŒber Ihr Land hinweg fliegen."/> <text name="allow_label2"> - Objekte erstellen: + Bauen: </text> - <check_box label="Alle Einwohner" name="edit objects check"/> + <check_box label="Jeder" name="edit objects check"/> <check_box label="Gruppe" name="edit group objects check"/> <text name="allow_label3"> Objekteintritt: </text> - <check_box label="Alle Einwohner" name="all object entry check"/> + <check_box label="Jeder" name="all object entry check"/> <check_box label="Gruppe" name="group object entry check"/> <text name="allow_label4"> Skripts ausfÃŒhren: </text> - <check_box label="Alle Einwohner" name="check other scripts"/> + <check_box label="Jeder" name="check other scripts"/> <check_box label="Gruppe" name="check group scripts"/> <text name="land_options_label"> Landoptionen: </text> <check_box label="Sicher (kein Schaden)" name="check safe" tool_tip="Falls aktiviert, wird Land auf Option âSicherâ eingestellt, KampfschÀden sind deaktiviert. Falls nicht aktiviert, sind KampfschÀden aktiviert."/> <check_box label="Kein StoÃen" name="PushRestrictCheck" tool_tip="Verhindert Skripte am StoÃen. Durch Aktivieren dieser Option verhindern Sie störendes Verhalten auf Ihrem Land."/> - <check_box label="Ort in Suche anzeigen (30 L$/Woche) unter" name="ShowDirectoryCheck" tool_tip="Diese Parzelle in Suchergebnissen anzeigen."/> + <check_box label="Ort in Suche anzeigen (30 L$/Woche)" name="ShowDirectoryCheck" tool_tip="Diese Parzelle in Suchergebnissen anzeigen."/> <combo_box name="land category with adult"> <combo_box.item label="Alle Kategorien" name="item0"/> <combo_box.item label="Lindenort" name="item1"/> @@ -364,7 +360,7 @@ Nur groÃe Parzellen können in der Suche aufgefÃŒhrt werden. <combo_box.item label="Shopping" name="item11"/> <combo_box.item label="Sonstige" name="item12"/> </combo_box> - <check_box label="Mature-Inhalt" name="MatureCheck" tool_tip=""/> + <check_box label="Moderater Inhalt" name="MatureCheck" tool_tip=""/> <text name="Snapshot:"> Foto: </text> @@ -383,33 +379,30 @@ Nur groÃe Parzellen können in der Suche aufgefÃŒhrt werden. <combo_box.item label="Ãberall" name="Anywhere"/> </combo_box> </panel> - <panel label="Medien" name="land_media_panel"> + <panel label="MEDIEN" name="land_media_panel"> <text name="with media:"> Typ: </text> <combo_box name="media type" tool_tip="Geben Sie einen URL fÃŒr den Film, die Webseite oder ein anderes Medium ein"/> <text name="at URL:"> - Start URL: + Homepage: </text> - <button label="Einstellen..." label_selected="Einstellen..." name="set_media_url"/> + <button label="Festlegen" label_selected="Einstellen..." name="set_media_url"/> <text name="CurrentURL:"> - Aktuelle URL: + Aktuelle Seite: </text> - <button label="ZurÃŒcksetzen..." label_selected="ZurÃŒcksetzen..." name="reset_media_url"/> + <button label="ZurÃŒcksetzen..." label_selected="ZurÃŒcksetzen..." name="reset_media_url" tool_tip="URL aktualisieren"/> <check_box label="URL ausblenden" name="hide_media_url" tool_tip="Aktivieren Sie diese Option, wenn Sie nicht möchten, dass unautorisierte Personen die Medien-URL sehen können. Diese Option ist fÃŒr HTML-Medien nicht verfÃŒgbar."/> <text name="Description:"> Inhalt: </text> <line_editor name="url_description" tool_tip="Text, der neben der Abspielen/Laden-SchaltflÀche angezeigt wird"/> <text name="Media texture:"> - Textur -ersetzen: + Textur ersetzen: </text> <texture_picker label="" name="media texture" tool_tip="Klicken Sie hier, um ein Bild auszuwÀhlen"/> <text name="replace_texture_help"> - Objekte, die diese Textur verwenden, werden den Film oder die Webseite anzeigen, nachdem Sie auf den Pfeil (Wiedergabe) klicken. - -WÀhlen Sie das kleine Bild aus, um eine andere Textur auszuwÀhlen. + Objekte, die diese Textur verwenden, werden den Film oder die Webseite anzeigen, nachdem Sie auf den Pfeil (Wiedergabe) klicken. WÀhlen Sie das kleine Bild aus, um eine andere Textur auszuwÀhlen. </text> <check_box label="Automatisch skalieren" name="media_auto_scale" tool_tip="Aktivieren Sie diese Option, um den Inhalt fÃŒr diese Parzelle automatisch zu skalieren. Dies ist eventuell langsamer und die QualitÀt ist schlechter, aber Sie mÃŒssen keine weitere Texturskalierung oder -anpassung vornehmen."/> <text name="media_size" tool_tip="DarstellungsgröÃe von Webmedien, fÃŒr Standard bei 0 belassen."> @@ -425,7 +418,7 @@ WÀhlen Sie das kleine Bild aus, um eine andere Textur auszuwÀhlen. </text> <check_box label="Schleife" name="media_loop" tool_tip="Spielt das Medium in einer Schleife ab. Der Abspielvorgang wird immer wieder von vorne fortgesetzt."/> </panel> - <panel label="Audio" name="land_audio_panel"> + <panel label="SOUND" name="land_audio_panel"> <text name="MusicURL:"> Musik-URL: </text> @@ -440,19 +433,22 @@ WÀhlen Sie das kleine Bild aus, um eine andere Textur auszuwÀhlen. <check_box label="Voice aktivieren (vom GrundstÃŒck eingerichtet)" name="parcel_enable_voice_channel_is_estate_disabled"/> <check_box label="Voice auf diese Parzelle beschrÀnken" name="parcel_enable_voice_channel_parcel"/> </panel> - <panel label="Zugang" name="land_access_panel"> + <panel label="ZUGANG" name="land_access_panel"> + <panel.string name="access_estate_defined"> + (Durch GrundstÃŒck festgelegt) + </panel.string> <panel.string name="estate_override"> Eine oder mehrere dieser Optionen gelten auf GrundstÃŒcksebene </panel.string> <text name="Limit access to this parcel to:"> Zugang zu dieser Parzelle </text> - <check_box label="Freien Zugang erlauben" name="public_access"/> + <check_box label="Ãffentlichen Zugang erlauben [MATURITY]" name="public_access"/> <text name="Only Allow"> - Zugang verweigern fÃŒr: + Zugang auf Einwohner beschrÀnken, die ÃŒberprÃŒft wurden von: </text> - <check_box label="Einwohner, die keine Zahlungsinformationen bei Linden Lab hinterlegt haben" name="limit_payment" tool_tip="Nicht identifizierte Einwohner verbannen."/> - <check_box label="Einwohner, die keine altersgeprÃŒften Erwachsenen sind" name="limit_age_verified" tool_tip="Einwohner ohne AltersÃŒberprÃŒfung verbannen. Weitere Informationen finden Sie auf [SUPPORT_SITE]."/> + <check_box label="Zahlungsinformation gespeichert [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Nicht identifizierte Einwohner verbannen."/> + <check_box label="AltersÃŒberprÃŒfung [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Einwohner ohne AltersÃŒberprÃŒfung verbannen. Weitere Informationen finden Sie auf [SUPPORT_SITE]."/> <check_box label="Gruppenzugang erlauben: [GROUP]" name="GroupCheck" tool_tip="Gruppe im Register âAllgemeinâ festlegen."/> <check_box label="PÀsse verkaufen an:" name="PassCheck" tool_tip="Ermöglicht befristeten Zugang zu dieser Parzelle"/> <combo_box name="pass_combo"> @@ -461,18 +457,22 @@ WÀhlen Sie das kleine Bild aus, um eine andere Textur auszuwÀhlen. </combo_box> <spinner label="Preis in L$:" name="PriceSpin"/> <spinner label="Online-Zeit:" name="HoursSpin"/> - <text label="Immer erlauben" name="AllowedText"> - ZulÀssige Einwohner - </text> - <name_list name="AccessList" tool_tip="([LISTED] angezeigt, max. [MAX])"/> - <button label="HinzufÃŒgen..." label_selected="HinzufÃŒgen..." name="add_allowed"/> - <button label="Entfernen" label_selected="Entfernen" name="remove_allowed"/> - <text label="Verbannen" name="BanCheck"> - Verbannte Einwohner - </text> - <name_list name="BannedList" tool_tip="([LISTED] angezeigt, max. [MAX])"/> - <button label="HinzufÃŒgen..." label_selected="HinzufÃŒgen..." name="add_banned"/> - <button label="Entfernen" label_selected="Entfernen" name="remove_banned"/> + <panel name="Allowed_layout_panel"> + <text label="Immer erlauben" name="AllowedText"> + ZulÀssige Einwohner + </text> + <name_list name="AccessList" tool_tip="([LISTED] aufgefÃŒhrt, [MAX] max)"/> + <button label="HinzufÃŒgen" name="add_allowed"/> + <button label="Entfernen" label_selected="Entfernen" name="remove_allowed"/> + </panel> + <panel name="Banned_layout_panel"> + <text label="Verbannen" name="BanCheck"> + Verbannte Einwohner + </text> + <name_list name="BannedList" tool_tip="([LISTED] aufgefÃŒhrt, [MAX] max)"/> + <button label="HinzufÃŒgen" name="add_banned"/> + <button label="Entfernen" label_selected="Entfernen" name="remove_banned"/> + </panel> </panel> </tab_container> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_animation_preview.xml b/indra/newview/skins/default/xui/de/floater_animation_preview.xml index 4b4067f186..ce971d158d 100644 --- a/indra/newview/skins/default/xui/de/floater_animation_preview.xml +++ b/indra/newview/skins/default/xui/de/floater_animation_preview.xml @@ -171,7 +171,8 @@ Maximal erlaubt sind [MAX_LENGTH] Sekunden. </combo_box> <spinner label="Eingang glÀtten (s)" label_width="105" name="ease_in_time" tool_tip="Einblendungsgeschwindigkeit von Animationen (in Sekunden)" width="175"/> <spinner bottom_delta="-20" label="Ausgang glÀtten (s)" label_width="105" left="10" name="ease_out_time" tool_tip="Ausblendegeschwindigkeit von Animationen (in Sekunden)" width="175"/> - <button bottom_delta="-32" label="" name="play_btn" tool_tip="Animation stoppen/wiedergeben"/> + <button bottom_delta="-32" label="" name="play_btn" tool_tip="Ihre Animation abspielen"/> + <button name="pause_btn" tool_tip="Ihre Animation pausieren"/> <button label="" name="stop_btn" tool_tip="Animation anhalten"/> <slider label="" name="playback_slider"/> <text name="bad_animation_text"> @@ -179,6 +180,6 @@ Maximal erlaubt sind [MAX_LENGTH] Sekunden. Wir empfehlen exportierte BVH-Dateien aus Poser 4. </text> - <button label="Abbrechen" name="cancel_btn"/> <button label="Hochladen ([AMOUNT] L$)" name="ok_btn"/> + <button label="Abbrechen" name="cancel_btn"/> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_avatar_picker.xml b/indra/newview/skins/default/xui/de/floater_avatar_picker.xml index ed8de62b69..bc78ccd7f8 100644 --- a/indra/newview/skins/default/xui/de/floater_avatar_picker.xml +++ b/indra/newview/skins/default/xui/de/floater_avatar_picker.xml @@ -34,7 +34,7 @@ </panel> <panel label="In meiner NÀhe" name="NearMePanel"> <text name="InstructSelectResident"> - WÀhlen Sie eine Person aus, die sich in der NÀhe befindet: + WÀhlen Sie eine Person aus: </text> <slider bottom_delta="-36" label="Bereich" name="near_me_range"/> <text name="meters"> diff --git a/indra/newview/skins/default/xui/de/floater_avatar_textures.xml b/indra/newview/skins/default/xui/de/floater_avatar_textures.xml index 6f5fe23d4c..3be5194a8f 100644 --- a/indra/newview/skins/default/xui/de/floater_avatar_textures.xml +++ b/indra/newview/skins/default/xui/de/floater_avatar_textures.xml @@ -10,33 +10,37 @@ Zusammengesetzte Texturen </text> <button label="LÀd IDs in Konsole ab" label_selected="Abladen" name="Dump"/> - <texture_picker label="Haare" name="hair-baked"/> - <texture_picker label="Haare" name="hair_grain"/> - <texture_picker label="Alpha: Haare" name="hair_alpha"/> - <texture_picker label="Kopf" name="head-baked"/> - <texture_picker label="Make-Uup" name="head_bodypaint"/> - <texture_picker label="Kopf: Alpha" name="head_alpha"/> - <texture_picker label="Kopftattoo" name="head_tattoo"/> - <texture_picker label="Augen" name="eyes-baked"/> - <texture_picker label="Auge" name="eyes_iris"/> - <texture_picker label="Alpha: Augen" name="eyes_alpha"/> - <texture_picker label="Oberkörper" name="upper-baked"/> - <texture_picker label="Oberkörper: Körperfarbe" name="upper_bodypaint"/> - <texture_picker label="Unterhemd" name="upper_undershirt"/> - <texture_picker label="Handschuhe" name="upper_gloves"/> - <texture_picker label="Hemd" name="upper_shirt"/> - <texture_picker label="Oberjacke" name="upper_jacket"/> - <texture_picker label="Alpha: Oben" name="upper_alpha"/> - <texture_picker label="Obere Tattoos" name="upper_tattoo"/> - <texture_picker label="Unterkörper" name="lower-baked"/> - <texture_picker label="Unterkörper: Körperfarbe" name="lower_bodypaint"/> - <texture_picker label="Unterhose" name="lower_underpants"/> - <texture_picker label="Socken" name="lower_socks"/> - <texture_picker label="Schuhe" name="lower_shoes"/> - <texture_picker label="Hose" name="lower_pants"/> - <texture_picker label="Jacke" name="lower_jacket"/> - <texture_picker label="Alpha: Unten" name="lower_alpha"/> - <texture_picker label="Untere Tattoos" name="lower_tattoo"/> - <texture_picker label="Rock" name="skirt-baked"/> - <texture_picker label="Rock" name="skirt"/> + <scroll_container name="profile_scroll"> + <panel name="scroll_content_panel"> + <texture_picker label="Haare" name="hair-baked"/> + <texture_picker label="Haare" name="hair_grain"/> + <texture_picker label="Alpha: Haare" name="hair_alpha"/> + <texture_picker label="Kopf" name="head-baked"/> + <texture_picker label="Make-Uup" name="head_bodypaint"/> + <texture_picker label="Kopf: Alpha" name="head_alpha"/> + <texture_picker label="Kopftattoo" name="head_tattoo"/> + <texture_picker label="Augen" name="eyes-baked"/> + <texture_picker label="Auge" name="eyes_iris"/> + <texture_picker label="Alpha: Augen" name="eyes_alpha"/> + <texture_picker label="Oberkörper" name="upper-baked"/> + <texture_picker label="Oberkörper: Körperfarbe" name="upper_bodypaint"/> + <texture_picker label="Unterhemd" name="upper_undershirt"/> + <texture_picker label="Handschuhe" name="upper_gloves"/> + <texture_picker label="Hemd" name="upper_shirt"/> + <texture_picker label="Oberjacke" name="upper_jacket"/> + <texture_picker label="Alpha: Oben" name="upper_alpha"/> + <texture_picker label="Obere Tattoos" name="upper_tattoo"/> + <texture_picker label="Unterkörper" name="lower-baked"/> + <texture_picker label="Unterkörper: Körperfarbe" name="lower_bodypaint"/> + <texture_picker label="Unterhose" name="lower_underpants"/> + <texture_picker label="Socken" name="lower_socks"/> + <texture_picker label="Schuhe" name="lower_shoes"/> + <texture_picker label="Hose" name="lower_pants"/> + <texture_picker label="Jacke" name="lower_jacket"/> + <texture_picker label="Alpha: Unten" name="lower_alpha"/> + <texture_picker label="Untere Tattoos" name="lower_tattoo"/> + <texture_picker label="Rock" name="skirt-baked"/> + <texture_picker label="Rock" name="skirt"/> + </panel> + </scroll_container> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_buy_currency.xml b/indra/newview/skins/default/xui/de/floater_buy_currency.xml index 287b16273a..aa6201ec26 100644 --- a/indra/newview/skins/default/xui/de/floater_buy_currency.xml +++ b/indra/newview/skins/default/xui/de/floater_buy_currency.xml @@ -46,7 +46,7 @@ [AMT] L$ </text> <text name="currency_links"> - [http://www.secondlife.com/my/account/payment_method_management.php?lang=de-DE payment method] | [http://www.secondlife.com/my/account/currency.php?lang=de-DE currency] | [http://www.secondlife.com/my/account/exchange_rates.php?lang=de-DE exchange rate] + [http://www.secondlife.com/my/account/payment_method_management.php?lang=de-DE Zahlungsart] | [http://www.secondlife.com/my/account/currency.php?lang=de-DE WÀhrung] | [http://www.secondlife.com/my/account/exchange_rates.php?lang=de-DE Umtauschrate] </text> <text name="exchange_rate_note"> Geben Sie den Betrag erneut ein, um die aktuellste Umtauschrate anzuzeigen. diff --git a/indra/newview/skins/default/xui/de/floater_color_picker.xml b/indra/newview/skins/default/xui/de/floater_color_picker.xml index 552bd2e2bf..aed4bacb30 100644 --- a/indra/newview/skins/default/xui/de/floater_color_picker.xml +++ b/indra/newview/skins/default/xui/de/floater_color_picker.xml @@ -26,6 +26,6 @@ Aktuelle Farbe: </text> <text name="(Drag below to save.)"> - (Zum Speichern nach unten ziehen.) + (Nach unten ziehen) </text> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_customize.xml b/indra/newview/skins/default/xui/de/floater_customize.xml index 34aa17bbe0..a2bf45852a 100644 --- a/indra/newview/skins/default/xui/de/floater_customize.xml +++ b/indra/newview/skins/default/xui/de/floater_customize.xml @@ -1,7 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater customize" title="AUSSEHEN"> <tab_container name="customize tab container"> - <placeholder label="Körperteile" name="body_parts_placeholder"/> + <text label="Körperteile" name="body_parts_placeholder"> + Körperteile + </text> <panel label="Form" name="Shape"> <button font="SansSerifSmall" label="ZurÃŒcksetzen" label_selected="ZurÃŒcksetzen" name="Revert"/> <button label="Körper" label_selected="Körper" name="Body"/> @@ -14,8 +16,8 @@ <button label="Oberkörper" label_selected="Oberkörper" name="Torso"/> <button label="Beine" label_selected="Beine" name="Legs"/> <radio_group name="sex radio"> - <radio_item label="Weiblich" name="radio"/> - <radio_item label="MÀnnlich" name="radio2"/> + <radio_item label="Weiblich" name="radio" value="0"/> + <radio_item label="MÀnnlich" name="radio2" value="1"/> </radio_group> <text name="title"> [DESC] @@ -33,9 +35,7 @@ In [PATH] </text> <text name="not worn instructions"> - Ziehen Sie eine Körperform aus dem Inventar auf Ihren Avatar, -um sie zu tragen. Sie können auch eine neue Körperform erstellen -und diese anziehen. + Ziehen Sie eine neue Form aus dem Inventar auf Ihren Avatar, um diese anzulegen. Sie können aber auch eine neue erstellen und diese anlegen. </text> <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. @@ -68,9 +68,7 @@ und diese anziehen. In [PATH] </text> <text name="not worn instructions"> - Ziehen Sie eine Haut aus dem Inventar auf Ihren Avatar, -um sie zu tragen. Sie können auch eine neue Haut erstellen -und diese anziehen. + Ziehen Sie eine neue Skin (Haut) aus dem Inventar auf Ihren Avatar, um diese anzulegen. Sie können aber auch eine neue erstellen und diese anlegen. </text> <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. @@ -107,9 +105,7 @@ und diese anziehen. In [PATH] </text> <text name="not worn instructions"> - Ziehen Sie Haare aus dem Inventar auf Ihren Avatar, -um sie zu tragen. Sie können auch neue Haare erstellen -und diese anziehen. + Ziehen Sie Haar aus dem Inventar auf Ihren Avatar, um dieses anzulegen. Sie können aber auch eine neue erstellen und diese anlegen. </text> <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. @@ -140,9 +136,7 @@ und diese anziehen. In [PATH] </text> <text name="not worn instructions"> - Ziehen Sie Augen aus dem Inventar auf Ihren Avatar, -um sie zu tragen. Sie können auch neue Augen erstellen -und diese anziehen. + Ziehen Sie neue Augen aus dem Inventar auf Ihren Avatar, um diese anzulegen. Sie können aber auch eine neue erstellen und diese anlegen. </text> <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. @@ -156,7 +150,9 @@ und diese anziehen. <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." left="194" name="Save As" width="105"/> <button font="SansSerifSmall" label="ZurÃŒcksetzen" label_selected="ZurÃŒcksetzen" name="Revert"/> </panel> - <placeholder label="Kleidung" name="clothes_placeholder"/> + <text label="Kleidung" name="clothes_placeholder"> + Kleidung + </text> <panel label="Hemd" name="Shirt"> <texture_picker label="Stoff" name="Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwÀhlen"/> <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/> @@ -181,9 +177,7 @@ und diese anziehen. In [PATH] </text> <text name="not worn instructions"> - Ziehen Sie ein Hemd aus dem Inventar auf Ihren Avatar, -um es zu tragen. Sie können auch ein neues Hemd erstellen -und dieses anziehen. + Ziehen Sie ein neues Hemd aus dem Inventar auf Ihren Avatar, um dieses anzuziehen. Sie können aber auch eine neue erstellen und diese anlegen. </text> <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. @@ -216,9 +210,7 @@ und dieses anziehen. In [PATH] </text> <text name="not worn instructions"> - Ziehen Sie eine Hose aus dem Inventar auf Ihren Avatar, -um sie zu tragen. Sie können auch eine neue Hose erstellen -und diese anziehen. + Ziehen Sie eine neue Hose aus dem Inventar auf Ihren Avatar, um diese anzuziehen. Sie können aber auch eine neue erstellen und diese anlegen. </text> <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. @@ -244,9 +236,7 @@ und diese anziehen. In [PATH] </text> <text name="not worn instructions"> - Ziehen Sie Schuhe aus dem Inventar auf Ihren Avatar, -um sie zu tragen. Sie können auch neue Schuhe erstellen -und diese anziehen. + Ziehen Sie neue Schuhe aus dem Inventar auf Ihren Avatar, um diese anzuziehen. Sie können aber auch eine neue erstellen und diese anlegen. </text> <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. @@ -279,9 +269,7 @@ und diese anziehen. In [PATH] </text> <text name="not worn instructions"> - Ziehen Sie Socken aus dem Inventar auf Ihren Avatar, -um sie zu tragen. Sie können auch neue Socken erstellen -und diese anziehen. + Ziehen Sie neue StrÃŒmpfe aus dem Inventar auf Ihren Avatar, um diese anzuziehen. Sie können aber auch eine neue erstellen und diese anlegen. </text> <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. @@ -314,9 +302,7 @@ und diese anziehen. In [PATH] </text> <text name="not worn instructions"> - Ziehen Sie eine Jacke aus dem Inventar auf Ihren Avatar, -um sie zu tragen. Sie können auch eine neue Jacke erstellen -und diese anziehen. + Ziehen Sie eine neue Jacke aus dem Inventar auf Ihren Avatar, um diese anzuziehen. Sie können aber auch eine neue erstellen und diese anlegen. </text> <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. @@ -350,9 +336,7 @@ und diese anziehen. In [PATH] </text> <text name="not worn instructions"> - Ziehen Sie Handschuhe aus dem Inventar auf Ihren Avatar, -um sie zu tragen. Sie können auch neue Handschuhe erstellen -und diese anziehen. + Ziehen Sie neue Handschuhe aus dem Inventar auf Ihren Avatar, um diese anzuziehen. Sie können aber auch eine neue erstellen und diese anlegen. </text> <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. @@ -385,9 +369,7 @@ und diese anziehen. In [PATH] </text> <text name="not worn instructions"> - Ziehen Sie ein Unterhemd aus dem Inventar auf Ihren Avatar, -um es zu tragen. Sie können auch ein neues Unterhemd erstellen -und dieses anziehen. + Ziehen Sie ein neues Unterhemd aus dem Inventar auf Ihren Avatar, um dieses anzuziehen. Sie können aber auch eine neue erstellen und diese anlegen. </text> <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. @@ -420,9 +402,7 @@ und dieses anziehen. In [PATH] </text> <text name="not worn instructions"> - Ziehen Sie eine Unterhose aus dem Inventar auf Ihren Avatar, -um sie zu tragen. Sie können auch eine neue Unterhose erstellen -und diese anziehen. + Ziehen Sie eine neue Unterhose aus dem Inventar auf Ihren Avatar, um diese anzuziehen. Sie können aber auch eine neue erstellen und diese anlegen. </text> <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. @@ -455,9 +435,7 @@ und diese anziehen. In [PATH] </text> <text name="not worn instructions"> - Ziehen Sie einen Rock aus dem Inventar auf Ihren Avatar, -um ihn zu tragen. Sie können auch einen neuen Rock erstellen -und diesen anziehen. + Ziehen Sie einen neuen Rock aus dem Inventar auf Ihren Avatar, um diesen anzuziehen. Sie können aber auch eine neue erstellen und diese anlegen. </text> <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. @@ -490,8 +468,7 @@ und diesen anziehen. Befindet sich in [PATH] </text> <text name="not worn instructions"> - Sie können eine neue Alpha-Maske anlegen, indem Sie eine von Ihrem Inventar auf Ihren Avatar ziehen. -Sie können aber auch eine neue erstellen und diese anlegen. + Sie können eine neue Alpha-Maske anlegen, indem Sie eine von Ihrem Inventar auf Ihren Avatar ziehen. Sie können aber auch eine neue erstellen und diese anlegen. </text> <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. @@ -527,8 +504,7 @@ Sie können aber auch eine neue erstellen und diese anlegen. Befindet sich in [PATH] </text> <text name="not worn instructions"> - Ziehen Sie eine neue TÀtowierung aus dem Inventar auf Ihren Avatar, um diese anzulegen. -Sie können aber auch eine neue erstellen und diese anlegen. + Ziehen Sie eine neue TÀtowierung aus dem Inventar auf Ihren Avatar, um diese anzulegen. Sie können aber auch eine neue erstellen und diese anlegen. </text> <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. @@ -546,6 +522,7 @@ Sie können aber auch eine neue erstellen und diese anlegen. <button label="ZurÃŒcksetzen" label_selected="ZurÃŒcksetzen" name="Revert"/> </panel> </tab_container> + <button label="Skriptinfo" label_selected="Skriptinfo" name="script_info"/> <button label="Outfit erstellen" label_selected="Outfit erstellen" name="make_outfit_btn"/> <button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/> <button label="OK" label_selected="OK" name="Ok"/> diff --git a/indra/newview/skins/default/xui/de/floater_god_tools.xml b/indra/newview/skins/default/xui/de/floater_god_tools.xml index e790420efb..716165bb6b 100644 --- a/indra/newview/skins/default/xui/de/floater_god_tools.xml +++ b/indra/newview/skins/default/xui/de/floater_god_tools.xml @@ -11,8 +11,7 @@ </text> <check_box label="Startbereich Einleitung" name="check prelude" tool_tip="Diese Region zu einem Startbereich machen."/> <check_box label="Sonne fest" name="check fixed sun" tool_tip="Fixiert den Sonnenstand (wie in âRegion/GrundstÃŒckâ > âTerrainâ."/> - <check_box height="32" label="Zuhause auf Teleport -zurÃŒcksetzen" name="check reset home" tool_tip="Wenn Einwohner wegteleportieren, ihr Zuhause auf Zielposition setzen."/> + <check_box height="32" label="Zuhause auf Teleport zurÃŒcksetzen" name="check reset home" tool_tip="Wenn Einwohner weg teleportieren, ihr Zuhause auf Zielposition setzen."/> <check_box bottom_delta="-32" label="Sichtbar" name="check visible" tool_tip="Diese Region fÃŒr Nicht-Götter sichtbar machen."/> <check_box label="Schaden" name="check damage" tool_tip="Schaden in dieser Region aktivieren."/> <check_box label="TrafficÃŒberwachung blockieren" name="block dwell" tool_tip="In dieser Region die Traffic-Berechnung abschalten."/> @@ -59,10 +58,8 @@ zurÃŒcksetzen" name="check reset home" tool_tip="Wenn Einwohner wegteleportieren <text name="region name"> Welsh </text> - <check_box label="Skripts -deaktivieren" name="disable scripts" tool_tip="Skripts in dieser Region komplett abschalten"/> - <check_box label="Kollisionen -deaktivieren" name="disable collisions" tool_tip="Nicht-Avatar-Kollisionen in dieser Region komplett abschalten"/> + <check_box label="Skripts deaktivieren" name="disable scripts" tool_tip="Skripts in dieser Region komplett abschalten"/> + <check_box label="Kollisionen deaktivieren" name="disable collisions" tool_tip="Nicht-Avatar-Kollisionen in dieser Region komplett abschalten"/> <check_box label="Physik deaktivieren" name="disable physics" tool_tip="Die Physik in dieser Region komplett abschalten"/> <button label="Ãbernehmen" label_selected="Ãbernehmen" name="Apply" tool_tip="Klicken Sie hier, um die obigen Ãnderungen zu ÃŒbernehmen."/> <button label="Ziel festlegen" label_selected="Ziel festlegen" name="Set Target" tool_tip="Den Ziel-Avatar fÃŒr das Löschen von Objekten auswÀhlen."/> diff --git a/indra/newview/skins/default/xui/de/floater_im_container.xml b/indra/newview/skins/default/xui/de/floater_im_container.xml index 62578c00d5..95eda97938 100644 --- a/indra/newview/skins/default/xui/de/floater_im_container.xml +++ b/indra/newview/skins/default/xui/de/floater_im_container.xml @@ -1,2 +1,2 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<multi_floater name="floater_im_box" title="Sofortnachrichten"/> +<multi_floater name="floater_im_box" title="GESPRÃCHE"/> diff --git a/indra/newview/skins/default/xui/de/floater_incoming_call.xml b/indra/newview/skins/default/xui/de/floater_incoming_call.xml index e40d57976f..740085599f 100644 --- a/indra/newview/skins/default/xui/de/floater_incoming_call.xml +++ b/indra/newview/skins/default/xui/de/floater_incoming_call.xml @@ -1,5 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="incoming call" title="ANRUF VON UNBEKANNT"> + <floater.string name="lifetime"> + 5 + </floater.string> <floater.string name="localchat"> Voice-Chat in der NÀhe </floater.string> @@ -12,6 +15,9 @@ <floater.string name="VoiceInviteAdHoc"> ist einem Voice-Konferenz-Chat beigetreten. </floater.string> + <floater.string name="VoiceInviteGroup"> + ist einem Voice-Chat mit der Gruppe [GROUP] beigetreten. + </floater.string> <text name="question"> Möchten Sie [CURRENT_CHAT] verlassen und diesem Voice-Chat beitreten? </text> diff --git a/indra/newview/skins/default/xui/de/floater_lsl_guide.xml b/indra/newview/skins/default/xui/de/floater_lsl_guide.xml index 5e90076487..1d6f690d3c 100644 --- a/indra/newview/skins/default/xui/de/floater_lsl_guide.xml +++ b/indra/newview/skins/default/xui/de/floater_lsl_guide.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="script ed float" title="LSL-WIKI"> +<floater name="script ed float" title="LSL-REFERENZ"> <check_box label="Cursor folgen" name="lock_check"/> <combo_box label="Sperren" name="history_combo"/> <button label="ZurÃŒck" name="back_btn"/> diff --git a/indra/newview/skins/default/xui/de/floater_media_browser.xml b/indra/newview/skins/default/xui/de/floater_media_browser.xml index 62a047b8fe..18adb5ee7f 100644 --- a/indra/newview/skins/default/xui/de/floater_media_browser.xml +++ b/indra/newview/skins/default/xui/de/floater_media_browser.xml @@ -19,7 +19,7 @@ <button label="vorwÀrts" name="seek"/> </layout_panel> <layout_panel name="parcel_owner_controls"> - <button label="Aktuelle URL an Parzelle senden" name="assign"/> + <button label="Aktuelle Seite an Parzelle senden" name="assign"/> </layout_panel> <layout_panel name="external_controls"> <button label="In meinem Browser öffnen" name="open_browser"/> diff --git a/indra/newview/skins/default/xui/de/floater_notification.xml b/indra/newview/skins/default/xui/de/floater_notification.xml index c0806ef50c..7752d22b52 100644 --- a/indra/newview/skins/default/xui/de/floater_notification.xml +++ b/indra/newview/skins/default/xui/de/floater_notification.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="notification" title="BENACHRICHTIGUNGEN"> +<floater name="notification" title="MELDUNGEN"> <text_editor name="payload"> Wird geladen... </text_editor> diff --git a/indra/newview/skins/default/xui/de/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/de/floater_outfit_save_as.xml new file mode 100644 index 0000000000..42cb91ccbb --- /dev/null +++ b/indra/newview/skins/default/xui/de/floater_outfit_save_as.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="modal container"> + <button label="Speichern" label_selected="Speichern" name="Save"/> + <button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/> + <text name="Save item as:"> + Outfit speichern als: + </text> + <line_editor name="name ed"> + [BESCHR] + </line_editor> +</floater> diff --git a/indra/newview/skins/default/xui/de/floater_outgoing_call.xml b/indra/newview/skins/default/xui/de/floater_outgoing_call.xml index 65f2fe10e2..99ef0e900e 100644 --- a/indra/newview/skins/default/xui/de/floater_outgoing_call.xml +++ b/indra/newview/skins/default/xui/de/floater_outgoing_call.xml @@ -1,5 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="outgoing call" title="ANRUF"> + <floater.string name="lifetime"> + 5 + </floater.string> <floater.string name="localchat"> Voice-Chat in der NÀhe </floater.string> @@ -21,6 +24,12 @@ <text name="noanswer"> Der Anruf wurde nicht entgegengenommen. Bitte versuchen Sie es spÀter erneut. </text> + <text name="nearby"> + Die Verbindung zu [VOICE_CHANNEL_NAME] wurde abgebrochen. Sie werden nun wieder mit dem Chat in Ihrer NÀhe verbunden. + </text> + <text name="nearby_P2P"> + [VOICE_CHANNEL_NAME] hat den Anruf beendet. Sie werden nun wieder mit dem Chat in Ihrer NÀhe verbunden. + </text> <text name="leaving"> [CURRENT_CHAT] wird verlassen. </text> diff --git a/indra/newview/skins/default/xui/de/floater_preview_gesture.xml b/indra/newview/skins/default/xui/de/floater_preview_gesture.xml index 16e2fc18cb..51c41a3209 100644 --- a/indra/newview/skins/default/xui/de/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/de/floater_preview_gesture.xml @@ -24,6 +24,9 @@ <floater.string name="Title"> Gesten: [NAME] </floater.string> + <text name="name_text"> + Name: + </text> <text name="desc_label"> Beschreibung: </text> diff --git a/indra/newview/skins/default/xui/de/floater_preview_notecard.xml b/indra/newview/skins/default/xui/de/floater_preview_notecard.xml index a02a58ee0e..62f9e1e9e5 100644 --- a/indra/newview/skins/default/xui/de/floater_preview_notecard.xml +++ b/indra/newview/skins/default/xui/de/floater_preview_notecard.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="preview notecard" title="HINWEIS:"> +<floater name="preview notecard" title="NOTIZKARTE:"> <floater.string name="no_object"> - Es wurde kein Objekt gefunden, das diese Notiz enthÀlt. + Es wurde kein Objekt gefunden, das diese Notizkarte enthÀlt. </floater.string> <floater.string name="not_allowed"> Ihnen fehlt die Berechtigung zur Anzeige dieser Notizkarte. diff --git a/indra/newview/skins/default/xui/de/floater_preview_texture.xml b/indra/newview/skins/default/xui/de/floater_preview_texture.xml index 95d1db1877..ac6a61cde6 100644 --- a/indra/newview/skins/default/xui/de/floater_preview_texture.xml +++ b/indra/newview/skins/default/xui/de/floater_preview_texture.xml @@ -9,8 +9,6 @@ <text name="desc txt"> Beschreibung: </text> - <button label="OK" name="Keep"/> - <button label="Abbrechen" name="Discard"/> <text name="dimensions"> [WIDTH]px x [HEIGHT]px </text> @@ -43,4 +41,7 @@ 2:1 </combo_item> </combo_box> + <button label="OK" name="Keep"/> + <button label="Abbrechen" name="Discard"/> + <button label="Speichern unter" name="save_tex_btn"/> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_report_abuse.xml b/indra/newview/skins/default/xui/de/floater_report_abuse.xml index 3e4cf86a75..3edf5959a2 100644 --- a/indra/newview/skins/default/xui/de/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/de/floater_report_abuse.xml @@ -41,7 +41,7 @@ <combo_box name="category_combo" tool_tip="Kategorie -- wÀhlen Sie die Kategorie aus, die am besten auf diesen Bericht zutrifft"> <combo_box.item label="Kategorie auswÀhlen" name="Select_category"/> <combo_box.item label="Alter> Age-Play" name="Age__Age_play"/> - <combo_box.item label="Alter> Erwachsener Einwohner in Teen Second Life" name="Age__Adult_resident_on_Teen_Second_Life"/> + <combo_box.item label="Alter > Erwachsener Einwohner in Teen Second Life" name="Age__Adult_resident_on_Teen_Second_Life"/> <combo_box.item label="Alter > MinderjÀhriger Einwohner auÃerhalb Teen Second Life" name="Age__Underage_resident_outside_of_Teen_Second_Life"/> <combo_box.item label="Angriff> Kampf-Sandbox / unsichere Region" name="Assault__Combat_sandbox___unsafe_area"/> <combo_box.item label="Angriff> Sichere Region" name="Assault__Safe_area"/> @@ -68,7 +68,7 @@ <combo_box.item label="UnanstÀndigkeit > AnstöÃige Inhalte oder Handlungen in der Ãffentlichkeit" name="Indecency__Broadly_offensive_content_or_conduct"/> <combo_box.item label="UnanstÀndigkeit > AnstöÃiger Avatarname" name="Indecency__Inappropriate_avatar_name"/> <combo_box.item label="UnanstÀndigkeit > Unangemessener Inhalt oder unangemessenes Verhalten in PG-Region" name="Indecency__Mature_content_in_PG_region"/> - <combo_box.item label="UnanstÀndigkeit > Unangemessener Inhalt oder unangemessenes Verhalten in Mature-Region" name="Indecency__Inappropriate_content_in_Mature_region"/> + <combo_box.item label="UnanstÀndigkeit > Unangemessener Inhalt oder unangemessenes Verhalten in moderater Region" name="Indecency__Inappropriate_content_in_Mature_region"/> <combo_box.item label="Urheberrechtsverletzung > Entfernen von Inhalten" name="Intellectual_property_infringement_Content_Removal"/> <combo_box.item label="Urheberrechtsverletzung > CopyBot oder Berechtigungs-Exploit" name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit"/> <combo_box.item label="Intoleranz" name="Intolerance"/> diff --git a/indra/newview/skins/default/xui/de/floater_script_limits.xml b/indra/newview/skins/default/xui/de/floater_script_limits.xml new file mode 100644 index 0000000000..94a24a97ae --- /dev/null +++ b/indra/newview/skins/default/xui/de/floater_script_limits.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="scriptlimits" title="SKRIPT-INFORMATION"/> diff --git a/indra/newview/skins/default/xui/de/floater_search.xml b/indra/newview/skins/default/xui/de/floater_search.xml index 3401db1a39..d44ad44aea 100644 --- a/indra/newview/skins/default/xui/de/floater_search.xml +++ b/indra/newview/skins/default/xui/de/floater_search.xml @@ -6,4 +6,11 @@ <floater.string name="done_text"> Fertig </floater.string> + <layout_stack name="stack1"> + <layout_panel name="browser_layout"> + <text name="refresh_search"> + Suche wiederholen, um aktuellen Gott-Level zu berÃŒcksichtigen + </text> + </layout_panel> + </layout_stack> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_select_key.xml b/indra/newview/skins/default/xui/de/floater_select_key.xml index 6094d11359..8ab9db520a 100644 --- a/indra/newview/skins/default/xui/de/floater_select_key.xml +++ b/indra/newview/skins/default/xui/de/floater_select_key.xml @@ -1,8 +1,7 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="modal container"> - <button label="Abbrechen" label_selected="Abbrechen" name="Cancel" /> + <button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/> <text name="Save item as:"> - Zur Auswahl gewÃŒnschte -Taste drÃŒcken. + Eine Taste drÃŒcken, um die Auslösetaste zum Sprechen festzulegen. </text> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_sell_land.xml b/indra/newview/skins/default/xui/de/floater_sell_land.xml index c9e21a6c4f..2bc7356e65 100644 --- a/indra/newview/skins/default/xui/de/floater_sell_land.xml +++ b/indra/newview/skins/default/xui/de/floater_sell_land.xml @@ -39,7 +39,7 @@ WÀhlen Sie, ob der Verkauf offen oder auf eine bestimmte Person beschrÀnkt ist. </text> <combo_box bottom_delta="-32" height="16" left="72" name="sell_to" width="140"> - <combo_box.item label="-- WÀhlen --" name="--selectone--"/> + <combo_box.item label="-- AuswÀhlen --" name="--selectone--"/> <combo_box.item label="Jeder" name="Anyone"/> <combo_box.item label="Bestimmte Person:" name="Specificuser:"/> </combo_box> diff --git a/indra/newview/skins/default/xui/de/floater_snapshot.xml b/indra/newview/skins/default/xui/de/floater_snapshot.xml index 8aa1ef5497..80573d69ad 100644 --- a/indra/newview/skins/default/xui/de/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/de/floater_snapshot.xml @@ -4,12 +4,12 @@ Zweck des Fotos </text> <radio_group label="Fototyp" name="snapshot_type_radio"> - <radio_item label="Per E-Mail senden" name="postcard"/> - <radio_item label="Im Inventar speichern ([AMOUNT] L$)" name="texture"/> - <radio_item label="Auf Festplatte speichern" name="local"/> + <radio_item label="Email-Adresse" name="postcard"/> + <radio_item label="Mein Inventar ([AMOUNT] L$)" name="texture"/> + <radio_item label="Auf meinem Computer speichern" name="local"/> </radio_group> <text name="file_size_label"> - DateigröÃe: [SIZE] KB + [SIZE] KB </text> <button label="Foto aktualisieren" name="new_snapshot_btn"/> <button label="Senden" name="send_btn"/> @@ -19,8 +19,8 @@ <flyout_button_item label="Speichern unter..." name="saveas_item"/> </flyout_button> <button label="Abbrechen" name="discard_btn"/> - <button label="Mehr >>" name="more_btn" tool_tip="Erweiterte Optionen"/> - <button label="<< Weniger" name="less_btn" tool_tip="Erweiterte Optionen"/> + <button label="Mehr" name="more_btn" tool_tip="Erweiterte Optionen"/> + <button label="Weniger" name="less_btn" tool_tip="Erweiterte Optionen"/> <text name="type_label2"> GröÃe </text> @@ -68,10 +68,10 @@ <combo_box.item label="Tiefe" name="Depth"/> <combo_box.item label="Objektmasken" name="ObjectMattes"/> </combo_box> - <check_box label="Interface auf Foto anzeigen" name="ui_check"/> - <check_box label="HUD-Objekte auf Foto anzeigen" name="hud_check"/> + <check_box label="Schnittstelle" name="ui_check"/> + <check_box label="HUDs" name="hud_check"/> <check_box label="Nach dem Speichern offen lassen" name="keep_open_check"/> - <check_box label="Frame einfrieren (Vollbildvorschau)" name="freeze_frame_check"/> + <check_box label="Frame einfrieren (Vollbild)" name="freeze_frame_check"/> <check_box label="Automatisch aktualisieren" name="auto_snapshot_check"/> <string name="unknown"> unbekannt diff --git a/indra/newview/skins/default/xui/de/floater_sys_well.xml b/indra/newview/skins/default/xui/de/floater_sys_well.xml index bcf0cbd419..982786b66e 100644 --- a/indra/newview/skins/default/xui/de/floater_sys_well.xml +++ b/indra/newview/skins/default/xui/de/floater_sys_well.xml @@ -1,2 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="notification_chiclet" title="BENACHRICHTIGUNGEN"/> +<floater name="notification_chiclet" title="MELDUNGEN"> + <string name="title_im_well_window"> + IM-SITZUNGEN + </string> + <string name="title_notification_well_window"> + BENACHRICHTIGUNGEN + </string> +</floater> diff --git a/indra/newview/skins/default/xui/de/floater_telehub.xml b/indra/newview/skins/default/xui/de/floater_telehub.xml index f348371e4d..923b4c0079 100644 --- a/indra/newview/skins/default/xui/de/floater_telehub.xml +++ b/indra/newview/skins/default/xui/de/floater_telehub.xml @@ -21,12 +21,9 @@ <button label="Spawn hinzufÃŒgen" name="add_spawn_point_btn"/> <button label="Spawn entfernen" name="remove_spawn_point_btn"/> <text name="spawn_point_help"> - WÀhlen Sie ein Objekt und klicken zur -Positionsangabe auf âHinzufÃŒgenâ. AnschlieÃend -können sie das Objekt verschieben oder löschen. -Positionsangaben sind relativ zum -Telehub-Mittelpunkt. -WÀhlen Sie ein Objekt aus, um seine Position in -der Welt anzuzeigen. + WÀhlen Sie ein Objekt und klicken zur Positionsangabe auf Spawn hinzufÃŒgen. +AnschlieÃend können Sie das Objekt verschieben oder löschen. +Positionsangaben sind relativ zum Telehub-Mittelpunkt. +WÀhlen Sie ein Objekt aus der Liste aus, um dieses inworld zu markieren. </text> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_tools.xml b/indra/newview/skins/default/xui/de/floater_tools.xml index 48887191e0..b2f8cbed45 100644 --- a/indra/newview/skins/default/xui/de/floater_tools.xml +++ b/indra/newview/skins/default/xui/de/floater_tools.xml @@ -454,12 +454,12 @@ <spinner label="Vertikal (V)" name="TexOffsetV"/> <panel name="Add_Media"> <text name="media_tex"> - Medien-URL + Medien </text> <button name="add_media" tool_tip="Medien hinzufÃŒgen"/> <button name="delete_media" tool_tip="Diese Medien-Textur löschen"/> <button name="edit_media" tool_tip="Diese Medien bearbeiten"/> - <button label="Ausrichten" label_selected="Medien angleichen" name="button align"/> + <button label="Ausrichten" label_selected="Medien angleichen" name="button align" tool_tip="Medientexturen angleichen (mÃŒssen zunÀchst geladen werden)"/> </panel> </panel> <panel label="Inhalt" name="Contents"> @@ -478,14 +478,7 @@ Gebiet: [AREA] m². </text> <button label="Ãber Land" label_selected="Ãber Land" name="button about land"/> - <check_box label="EigentÃŒmer anzeigen" name="checkbox show owners" tool_tip="Die Parzellen farblich nach EigentÃŒmtertyp anzeigen - -GrÃŒn = Ihr Land -Blau = Das Land Ihrer Gruppe -Rot = Im Eigentum anderer -Geld = Zum Verkauf -Lila = Zur Auktion -Grau = Ãffentlich"/> + <check_box label="EigentÃŒmer anzeigen" name="checkbox show owners" tool_tip="Die Parzellen farblich nach EigentÃŒmtertyp anzeigen GrÃŒn = Ihr Land Blau = Das Land Ihrer Gruppe Rot = Im Eigentum anderer Geld = Zum Verkauf Lila = Zur Auktion Grau = Ãffentlich"/> <text name="label_parcel_modify"> Parzelle Àndern </text> diff --git a/indra/newview/skins/default/xui/de/floater_top_objects.xml b/indra/newview/skins/default/xui/de/floater_top_objects.xml index 579e5cbe7e..dad550227e 100644 --- a/indra/newview/skins/default/xui/de/floater_top_objects.xml +++ b/indra/newview/skins/default/xui/de/floater_top_objects.xml @@ -1,15 +1,40 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="top_objects" title="WIRD GELDADEN..."> +<floater name="top_objects" title="Top-Objekte"> + <floater.string name="top_scripts_title"> + Top-Skripts + </floater.string> + <floater.string name="top_scripts_text"> + [COUNT] Skripts benötigen insgesamt [TIME] ms + </floater.string> + <floater.string name="scripts_score_label"> + Zeit + </floater.string> + <floater.string name="scripts_mono_time_label"> + Mono-Uhrzeit: + </floater.string> + <floater.string name="top_colliders_title"> + Top-Kollisionsobjekte + </floater.string> + <floater.string name="top_colliders_text"> + Top [COUNT] Objekte mit vielen potenziellen Kollisionen + </floater.string> + <floater.string name="colliders_score_label"> + Wertung + </floater.string> + <floater.string name="none_descriptor"> + Nicht gefunden. + </floater.string> <text name="title_text"> Wird geladen... </text> <scroll_list name="objects_list"> - <column label="Wertung" name="score" width="65"/> - <column label="Name" name="name" width="135"/> - <column label="EigentÃŒmer" name="owner"/> - <column label="Position" name="location" width="125"/> - <column label="Uhrzeit" name="time"/> - <column label="Mono-Uhrzeit:" name="mono_time"/> + <scroll_list.columns label="Wertung" name="score" width="65"/> + <scroll_list.columns label="Name" name="name" width="135"/> + <scroll_list.columns label="EigentÃŒmer" name="owner"/> + <scroll_list.columns label="Position" name="location" width="125"/> + <scroll_list.columns label="Uhrzeit" name="time"/> + <scroll_list.columns label="Mono-Uhrzeit:" name="mono_time"/> + <scroll_list.columns label="URLs" name="URLs"/> </scroll_list> <text name="id_text"> Objekt-ID: @@ -22,37 +47,13 @@ <line_editor bg_readonly_color="clear" bottom_delta="3" enabled="false" follows="left|bottom|right" font="SansSerifSmall" height="20" left="80" name="object_name_editor" text_readonly_color="white" width="244"/> <button bottom_delta="0" follows="bottom|right" height="20" label="Filter" name="filter_object_btn" right="-10" width="110"/> <text name="owner_name_text"> - EigentÃŒmername: + EigentÃŒmer: </text> <line_editor bg_readonly_color="clear" bottom_delta="3" enabled="true" follows="left|bottom|right" font="SansSerifSmall" height="20" left="106" name="owner_name_editor" text_readonly_color="white" width="218"/> <button bottom_delta="0" follows="bottom|right" height="20" label="Filter" name="filter_owner_btn" right="-10" width="110"/> + <button bottom_delta="0" follows="bottom|right" height="20" label="Aktualisieren" name="refresh_btn" right="-10" width="110"/> <button bottom="35" follows="bottom|left" height="20" label="Auswahl zurÃŒckgeben" left="10" name="return_selected_btn" width="134"/> <button bottom="35" follows="bottom|left" height="20" label="Alle zurÃŒckgeben" left="150" name="return_all_btn" width="134"/> <button bottom="10" follows="bottom|left" height="20" label="Auswahl deaktivieren" left="10" name="disable_selected_btn" width="134"/> <button bottom="10" follows="bottom|left" height="20" label="Alle deaktivieren" left="150" name="disable_all_btn" width="134"/> - <button bottom_delta="0" follows="bottom|right" height="20" label="Aktualisieren" name="refresh_btn" right="-10" width="110"/> - <string name="top_scripts_title"> - Top-Skripts - </string> - <string name="top_scripts_text"> - [COUNT] Skripts benötigen insgesamt [TIME] ms - </string> - <string name="scripts_score_label"> - Zeit - </string> - <string name="scripts_mono_time_label"> - Mono-Uhrzeit: - </string> - <string name="top_colliders_title"> - Top-Kollisionsobjekte - </string> - <string name="top_colliders_text"> - Top [COUNT] Objekte mit vielen potenziellen Kollisionen - </string> - <string name="colliders_score_label"> - Wertung - </string> - <string name="none_descriptor"> - Nicht gefunden. - </string> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_voice_controls.xml b/indra/newview/skins/default/xui/de/floater_voice_controls.xml index 39675beb45..f978042cc2 100644 --- a/indra/newview/skins/default/xui/de/floater_voice_controls.xml +++ b/indra/newview/skins/default/xui/de/floater_voice_controls.xml @@ -1,13 +1,23 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater_voice_controls" title="Voice-Steuerung"> - <panel name="control_panel"> - <panel name="my_panel"> - <text name="user_text" value="Mein Avatar:"/> - </panel> - <layout_stack> - <layout_panel> - <slider_bar name="volume_slider_bar" tool_tip="Master-LautstÀrke"/> - </layout_panel> - </layout_stack> - </panel> + <string name="title_nearby"> + VOICE IN DER NÃHE + </string> + <string name="title_group"> + GruppengesprÀch mit [GROUP] + </string> + <string name="title_adhoc"> + KonferenzgesprÀch + </string> + <string name="title_peer_2_peer"> + GesprÀch mit [NAME] + </string> + <string name="no_one_near"> + Es ist niemand in der NÀhe, der Voice aktiviert hat. + </string> + <layout_stack name="my_call_stack"> + <layout_panel name="leave_call_btn_panel"> + <button label="Anruf beenden" name="leave_call_btn"/> + </layout_panel> + </layout_stack> </floater> diff --git a/indra/newview/skins/default/xui/de/floater_whitelist_entry.xml b/indra/newview/skins/default/xui/de/floater_whitelist_entry.xml index a0bfc57e42..35a5ec35f7 100644 --- a/indra/newview/skins/default/xui/de/floater_whitelist_entry.xml +++ b/indra/newview/skins/default/xui/de/floater_whitelist_entry.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="whitelist_entry"> +<floater name="whitelist_entry" title="WHITELISTEN-EINTRAG"> <text name="media_label"> Eine URL oder URL </text> diff --git a/indra/newview/skins/default/xui/de/floater_window_size.xml b/indra/newview/skins/default/xui/de/floater_window_size.xml new file mode 100644 index 0000000000..a2a53e0567 --- /dev/null +++ b/indra/newview/skins/default/xui/de/floater_window_size.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="window_size" title="FENSTERGRÃSSE"> + <string name="resolution_format"> + [RES_X] x [RES_Y] + </string> + <text name="windowsize_text"> + FenstergröÃe einstellen: + </text> + <combo_box name="window_size_combo" tool_tip="Breite x Höhe"> + <combo_box.item label="1000 x 700 (Standard)" name="item0"/> + <combo_box.item label="1024 x 768" name="item1"/> + <combo_box.item label="1280 x 720 (720p)" name="item2"/> + <combo_box.item label="1920 x 1080 (1080p)" name="item3"/> + </combo_box> + <button label="Festlegen" name="set_btn"/> + <button label="Abbrechen" name="cancel_btn"/> +</floater> diff --git a/indra/newview/skins/default/xui/de/floater_world_map.xml b/indra/newview/skins/default/xui/de/floater_world_map.xml index dd13623f91..accc023b8f 100644 --- a/indra/newview/skins/default/xui/de/floater_world_map.xml +++ b/indra/newview/skins/default/xui/de/floater_world_map.xml @@ -1,53 +1,81 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="worldmap" title="KARTE"> - <text name="you_label"> - Sie - </text> - <text name="home_label"> - Zuhause - </text> - <text name="auction_label"> - Auktion - </text> - <text font="SansSerifSmall" name="land_for_sale_label"> - Land zum Verkauf - </text> - <button label="Nach Hause" label_selected="Nach Hause" name="Go Home" tool_tip="Nach Hause teleportieren"/> - <check_box label="Einwohner" name="people_chk"/> - <check_box label="Infohub" name="infohub_chk"/> - <check_box label="Telehub" name="telehub_chk"/> - <check_box label="Land zu verkaufen" name="land_for_sale_chk"/> - <text name="events_label"> - Events: - </text> - <check_box label="PG" name="event_chk"/> - <check_box initial_value="true" label="Mature" name="event_mature_chk"/> - <check_box label="Adult" name="event_adult_chk"/> - <combo_box label="Online-Freunde" name="friend combo" tool_tip="Freund, der auf Karte angezeigt werden soll"> - <combo_box.item label="Online-Freunde" name="item1"/> - </combo_box> - <combo_box label="Landmarken" name="landmark combo" tool_tip="Landmarke, die auf Karte angezeigt werden soll"> - <combo_box.item label="Landmarken" name="item1"/> - </combo_box> - <line_editor label="Nach Regionsname suchen" name="location" tool_tip="Geben Sie den Namen einer Region ein"/> - <button label="Suchen" name="DoSearch" tool_tip="Nach einer Region suchen"/> - <text name="search_label"> - Suchergebnisse: - </text> - <scroll_list name="search_results"> - <scroll_list.columns label="" name="icon"/> - <scroll_list.columns label="" name="sim_name"/> - </scroll_list> - <text name="location_label"> - Standort: - </text> - <spinner name="spin x" tool_tip="X-Koordinate der Position auf der Karte"/> - <spinner name="spin y" tool_tip="Y-Koordinate der Position auf der Karte"/> - <spinner name="spin z" tool_tip="Z-Koordinate der Position auf der Karte"/> - <button label="Teleportieren" label_selected="Teleportieren" name="Teleport" tool_tip="Zu ausgewÀhlter Position teleportieren"/> - <button label="Gesuchte Position" label_selected="Ziel anzeigen" name="Show Destination" tool_tip="Karte auf ausgewÀhlte Position zentrieren"/> - <button label="Löschen" label_selected="Löschen" name="Clear" tool_tip="Verfolgung abschalten"/> - <button label="Meine Position" label_selected="Wo bin ich?" name="Show My Location" tool_tip="Karte auf Position Ihres Avatars zentrieren"/> - <button font="SansSerifSmall" label="SLurl in die Zwischenablage kopieren" name="copy_slurl" tool_tip="Kopiert die aktuelle Position als SLurl zur Verwendung im Web."/> - <slider label="Zoom" name="zoom slider"/> + <panel name="layout_panel_1"> + <text name="events_label"> + Legende + </text> + </panel> + <panel> + <button label="Meine Position" label_selected="Wo bin ich?" name="Show My Location" tool_tip="Karte auf Position meines Avatars zentrieren"/> + <text name="me_label"> + Ich + </text> + <check_box label="Einwohner" name="people_chk"/> + <text name="person_label"> + Person + </text> + <check_box label="Infohub" name="infohub_chk"/> + <text name="infohub_label"> + Infohub + </text> + <check_box label="Land zu verkaufen" name="land_for_sale_chk"/> + <text name="land_sale_label"> + Land-Verkauf + </text> + <text name="by_owner_label"> + durch Besitzer + </text> + <text name="auction_label"> + Land-Auktion + </text> + <button label="Nach Hause" label_selected="Nach Hause" name="Go Home" tool_tip="Nach Hause teleportieren"/> + <text name="Home_label"> + Startseite + </text> + <text name="events_label"> + Events: + </text> + <check_box label="PG" name="event_chk"/> + <text name="pg_label"> + Allgemein + </text> + <check_box initial_value="true" label="Mature" name="event_mature_chk"/> + <text name="mature_label"> + Moderat + </text> + <check_box label="Adult" name="event_adult_chk"/> + <text name="adult_label"> + Adult + </text> + </panel> + <panel> + <text name="find_on_map_label"> + Auf Karte anzeigen + </text> + </panel> + <panel> + <combo_box label="Online-Freunde" name="friend combo" tool_tip="Freunde auf Karte anzeigen"> + <combo_box.item label="Meine Freunde: Online" name="item1"/> + </combo_box> + <combo_box label="Meine Landmarken" name="landmark combo" tool_tip="Landmarke, die auf Karte angezeigt werden soll"> + <combo_box.item label="Meine Landmarken" name="item1"/> + </combo_box> + <search_editor label="Regionen nach Name" name="location" tool_tip="Geben Sie den Namen einer Region ein"/> + <button label="Suchen" name="DoSearch" tool_tip="Nach einer Region suchen"/> + <scroll_list name="search_results"> + <scroll_list.columns label="" name="icon"/> + <scroll_list.columns label="" name="sim_name"/> + </scroll_list> + <button label="Teleportieren" label_selected="Teleportieren" name="Teleport" tool_tip="Zu ausgewÀhlter Position teleportieren"/> + <button font="SansSerifSmall" label="SLurl kopieren" name="copy_slurl" tool_tip="Kopiert die aktuelle Position als SLurl zur Verwendung im Web."/> + <button label="Auswahl anzeigen" label_selected="Ziel anzeigen" name="Show Destination" tool_tip="Karte auf ausgewÀhlte Position zentrieren"/> + </panel> + <panel> + <text name="zoom_label"> + Zoom + </text> + </panel> + <panel> + <slider label="Zoom" name="zoom slider"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/de/inspect_avatar.xml b/indra/newview/skins/default/xui/de/inspect_avatar.xml index 91b7650376..489e257867 100644 --- a/indra/newview/skins/default/xui/de/inspect_avatar.xml +++ b/indra/newview/skins/default/xui/de/inspect_avatar.xml @@ -10,19 +10,17 @@ <string name="Details"> [SL_PROFILE] </string> - <string name="Partner"> - Partner: [PARTNER] - </string> <text name="user_name" value="Grumpity ProductEngine"/> <text name="user_subtitle" value="11 Monate und 3 Tage alt"/> <text name="user_details"> Dies ist meine Beschreibung und ich finde sie wirklich gut! </text> - <text name="user_partner"> - Erica Linden - </text> <slider name="volume_slider" tool_tip="LautstÀrke" value="0.5"/> <button label="Freund hinzufÃŒgen" name="add_friend_btn"/> <button label="IM" name="im_btn"/> <button label="Mehr" name="view_profile_btn"/> + <panel name="moderator_panel"> + <button label="Voice deaktivieren" name="disable_voice"/> + <button label="Voice aktivieren" name="enable_voice"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/de/inspect_group.xml b/indra/newview/skins/default/xui/de/inspect_group.xml index fa9764e420..81d946be9d 100644 --- a/indra/newview/skins/default/xui/de/inspect_group.xml +++ b/indra/newview/skins/default/xui/de/inspect_group.xml @@ -31,4 +31,5 @@ Hoch solln sie leben! Elche forever! Und auch Mungos! </text> <button label="Zusammen" 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/menu_attachment_other.xml b/indra/newview/skins/default/xui/de/menu_attachment_other.xml new file mode 100644 index 0000000000..33cff066a2 --- /dev/null +++ b/indra/newview/skins/default/xui/de/menu_attachment_other.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<!-- *NOTE: See also menu_avatar_other.xml --> +<context_menu name="Avatar Pie"> + <menu_item_call label="Profil anzeigen" name="Profile..."/> + <menu_item_call label="Freund hinzufÃŒgen" name="Add Friend"/> + <menu_item_call label="IM" name="Send IM..."/> + <menu_item_call label="Anrufen" name="Call"/> + <menu_item_call label="In Gruppe einladen" name="Invite..."/> + <menu_item_call label="Ignorieren" name="Avatar Mute"/> + <menu_item_call label="Melden" name="abuse"/> + <menu_item_call label="Einfrieren" name="Freeze..."/> + <menu_item_call label="Hinauswerfen" name="Eject..."/> + <menu_item_call label="Debug" name="Debug..."/> + <menu_item_call label="Hineinzoomen" name="Zoom In"/> + <menu_item_call label="Zahlen" name="Pay..."/> + <menu_item_call label="Objektprofil" name="Object Inspect"/> +</context_menu> diff --git a/indra/newview/skins/default/xui/de/menu_attachment_self.xml b/indra/newview/skins/default/xui/de/menu_attachment_self.xml new file mode 100644 index 0000000000..bc33b9b93d --- /dev/null +++ b/indra/newview/skins/default/xui/de/menu_attachment_self.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<context_menu name="Attachment Pie"> + <menu_item_call label="BerÃŒhren" name="Attachment Object Touch"/> + <menu_item_call label="Bearbeiten" name="Edit..."/> + <menu_item_call label="Abnehmen" name="Detach"/> + <menu_item_call label="Fallen lassen" name="Drop"/> + <menu_item_call label="Aufstehen" name="Stand Up"/> + <menu_item_call label="Mein Aussehen" name="Appearance..."/> + <menu_item_call label="Meine Freunde" name="Friends..."/> + <menu_item_call label="Meine Gruppen" name="Groups..."/> + <menu_item_call label="Mein Profil" name="Profile..."/> +</context_menu> diff --git a/indra/newview/skins/default/xui/de/menu_avatar_icon.xml b/indra/newview/skins/default/xui/de/menu_avatar_icon.xml index b1e119c66a..c036cf5515 100644 --- a/indra/newview/skins/default/xui/de/menu_avatar_icon.xml +++ b/indra/newview/skins/default/xui/de/menu_avatar_icon.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="Avatar Icon Menu"> - <menu_item_call label="Profil anzeigen..." name="Show Profile"/> + <menu_item_call label="Profil anzeigen" name="Show Profile"/> <menu_item_call label="IM senden..." name="Send IM"/> <menu_item_call label="Freund hinzufÃŒgen..." name="Add Friend"/> <menu_item_call label="Freund entfernen..." name="Remove Friend"/> diff --git a/indra/newview/skins/default/xui/de/menu_avatar_other.xml b/indra/newview/skins/default/xui/de/menu_avatar_other.xml new file mode 100644 index 0000000000..85db648119 --- /dev/null +++ b/indra/newview/skins/default/xui/de/menu_avatar_other.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<!-- *NOTE: See also menu_attachment_other.xml --> +<context_menu name="Avatar Pie"> + <menu_item_call label="Profil anzeigen" name="Profile..."/> + <menu_item_call label="Freund hinzufÃŒgen" name="Add Friend"/> + <menu_item_call label="IM" name="Send IM..."/> + <menu_item_call label="Anrufen" name="Call"/> + <menu_item_call label="In Gruppe einladen" name="Invite..."/> + <menu_item_call label="Ignorieren" name="Avatar Mute"/> + <menu_item_call label="Melden" name="abuse"/> + <menu_item_call label="Einfrieren" name="Freeze..."/> + <menu_item_call label="Hinauswerfen" name="Eject..."/> + <menu_item_call label="Debug" name="Debug..."/> + <menu_item_call label="Hineinzoomen" name="Zoom In"/> + <menu_item_call label="Zahlen" name="Pay..."/> +</context_menu> diff --git a/indra/newview/skins/default/xui/de/menu_avatar_self.xml b/indra/newview/skins/default/xui/de/menu_avatar_self.xml new file mode 100644 index 0000000000..5f9856a9cb --- /dev/null +++ b/indra/newview/skins/default/xui/de/menu_avatar_self.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<context_menu name="Self Pie"> + <menu_item_call label="Aufstehen" name="Stand Up"/> + <context_menu label="Ausziehen >" name="Take Off >"> + <context_menu label="Kleidung >" name="Clothes >"> + <menu_item_call label="Hemd" name="Shirt"/> + <menu_item_call label="Hose" name="Pants"/> + <menu_item_call label="Rock" name="Skirt"/> + <menu_item_call label="Schuhe" name="Shoes"/> + <menu_item_call label="StrÃŒmpfe" name="Socks"/> + <menu_item_call label="Jacke" name="Jacket"/> + <menu_item_call label="Handschuhe" name="Gloves"/> + <menu_item_call label="Unterhemd" name="Self Undershirt"/> + <menu_item_call label="Unterhose" name="Self Underpants"/> + <menu_item_call label="TÀtowierung" name="Self Tattoo"/> + <menu_item_call label="Alpha" name="Self Alpha"/> + <menu_item_call label="Alle Kleider" name="All Clothes"/> + </context_menu> + <context_menu label="HUD >" name="Object Detach HUD"/> + <context_menu label="Abnehmen >" name="Object Detach"/> + <menu_item_call label="Alles abnehmen" name="Detach All"/> + </context_menu> + <menu_item_call label="Mein Aussehen" name="Appearance..."/> + <menu_item_call label="Meine Freunde" name="Friends..."/> + <menu_item_call label="Meine Gruppen" name="Groups..."/> + <menu_item_call label="Mein Profil" name="Profile..."/> +</context_menu> diff --git a/indra/newview/skins/default/xui/de/menu_bottomtray.xml b/indra/newview/skins/default/xui/de/menu_bottomtray.xml index 246275bee1..3f12906adc 100644 --- a/indra/newview/skins/default/xui/de/menu_bottomtray.xml +++ b/indra/newview/skins/default/xui/de/menu_bottomtray.xml @@ -4,4 +4,9 @@ <menu_item_check label="SchaltflÀche Bewegungssteuerung" name="ShowMoveButton"/> <menu_item_check label="SchaltflÀche Ansicht" name="ShowCameraButton"/> <menu_item_check label="SchaltflÀche Foto" name="ShowSnapshotButton"/> + <menu_item_call label="Ausschneiden" name="NearbyChatBar_Cut"/> + <menu_item_call label="Kopieren" name="NearbyChatBar_Copy"/> + <menu_item_call label="EinfÃŒgen" name="NearbyChatBar_Paste"/> + <menu_item_call label="Löschen" name="NearbyChatBar_Delete"/> + <menu_item_call label="Alle auswÀhlen" name="NearbyChatBar_Select_All"/> </menu> diff --git a/indra/newview/skins/default/xui/de/menu_im_well_button.xml b/indra/newview/skins/default/xui/de/menu_im_well_button.xml new file mode 100644 index 0000000000..f464b71f4a --- /dev/null +++ b/indra/newview/skins/default/xui/de/menu_im_well_button.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<context_menu name="IM Well Button Context Menu"> + <menu_item_call label="Alle schlieÃen" name="Close All"/> +</context_menu> diff --git a/indra/newview/skins/default/xui/de/menu_imchiclet_adhoc.xml b/indra/newview/skins/default/xui/de/menu_imchiclet_adhoc.xml new file mode 100644 index 0000000000..11f93f47b4 --- /dev/null +++ b/indra/newview/skins/default/xui/de/menu_imchiclet_adhoc.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<menu name="IMChiclet AdHoc Menu"> + <menu_item_call label="Sitzung beenden" name="End Session"/> +</menu> diff --git a/indra/newview/skins/default/xui/de/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/de/menu_inspect_avatar_gear.xml index 128bcdb86a..9b6a6b2c4a 100644 --- a/indra/newview/skins/default/xui/de/menu_inspect_avatar_gear.xml +++ b/indra/newview/skins/default/xui/de/menu_inspect_avatar_gear.xml @@ -7,6 +7,7 @@ <menu_item_call label="Teleportieren" name="teleport"/> <menu_item_call label="In Gruppe einladen" name="invite_to_group"/> <menu_item_call label="Ignorieren" name="block"/> + <menu_item_call label="Freischalten" name="unblock"/> <menu_item_call label="Melden" name="report"/> <menu_item_call label="Einfrieren" name="freeze"/> <menu_item_call label="Hinauswerfen" name="eject"/> diff --git a/indra/newview/skins/default/xui/de/menu_inventory.xml b/indra/newview/skins/default/xui/de/menu_inventory.xml index fcdfc8b9e0..77c012d045 100644 --- a/indra/newview/skins/default/xui/de/menu_inventory.xml +++ b/indra/newview/skins/default/xui/de/menu_inventory.xml @@ -10,7 +10,7 @@ <menu_item_call label="FundstÃŒcke ausleeren" name="Empty Lost And Found"/> <menu_item_call label="Neuer Ordner" name="New Folder"/> <menu_item_call label="Neues Skript" name="New Script"/> - <menu_item_call label="Neue Notiz" name="New Note"/> + <menu_item_call label="Neue Notizkarte" name="New Note"/> <menu_item_call label="Neue Geste" name="New Gesture"/> <menu label="Neue Kleider" name="New Clothes"> <menu_item_call label="Neues Hemd" name="New Shirt"/> @@ -46,6 +46,9 @@ <menu_item_call label="Teleportieren" name="Landmark Open"/> <menu_item_call label="Ãffnen" name="Animation Open"/> <menu_item_call label="Ãffnen" name="Sound Open"/> + <menu_item_call label="Aktuelles Outfit ersetzen" name="Replace Outfit"/> + <menu_item_call label="Zum aktuellen Outfit hinzufÃŒgen" name="Add To Outfit"/> + <menu_item_call label="Vom aktuellen Outfit entfernen" name="Remove From Outfit"/> <menu_item_call label="Objekt löschen" name="Purge Item"/> <menu_item_call label="Objekt wiederherstellen" name="Restore Item"/> <menu_item_call label="Original suchen" name="Find Original"/> @@ -56,10 +59,9 @@ <menu_item_call label="Kopieren" name="Copy"/> <menu_item_call label="EinfÃŒgen" name="Paste"/> <menu_item_call label="Als Link einfÃŒgen" name="Paste As Link"/> + <menu_item_call label="Link entfernen" name="Remove Link"/> <menu_item_call label="Löschen" name="Delete"/> - <menu_item_call label="Von Outfit entfernen" name="Remove From Outfit"/> - <menu_item_call label="Zum Outfit hinzufÃŒgen" name="Add To Outfit"/> - <menu_item_call label="Outfit ersetzen" name="Replace Outfit"/> + <menu_item_call label="Systemordner löschen" name="Delete System Folder"/> <menu_item_call label="Konferenz-Chat starten" name="Conference Chat Folder"/> <menu_item_call label="Wiedergeben/Abspielen" name="Sound Play"/> <menu_item_call label="Landmarken-Info" name="About Landmark"/> diff --git a/indra/newview/skins/default/xui/de/menu_inventory_add.xml b/indra/newview/skins/default/xui/de/menu_inventory_add.xml index f6b7e51325..448b1d80bf 100644 --- a/indra/newview/skins/default/xui/de/menu_inventory_add.xml +++ b/indra/newview/skins/default/xui/de/menu_inventory_add.xml @@ -8,7 +8,7 @@ </menu> <menu_item_call label="Neuer Ordner" name="New Folder"/> <menu_item_call label="Neues Skript" name="New Script"/> - <menu_item_call label="Neue Notiz" name="New Note"/> + <menu_item_call label="Neue Notizkarte" name="New Note"/> <menu_item_call label="Neue Geste" name="New Gesture"/> <menu label="Neue Kleider" name="New Clothes"> <menu_item_call label="Neues Hemd" name="New Shirt"/> diff --git a/indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml index 69f9b86d75..e2b980c7b6 100644 --- a/indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml +++ b/indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="menu_gear_default"> - <menu_item_call label="Fenster: Neues Inventar" name="new_window"/> + <menu_item_call label="Neues Inventar-Fenster" name="new_window"/> <menu_item_call label="Nach Name sortieren" name="sort_by_name"/> <menu_item_call label="Nach aktuellesten Objekten sortieren" name="sort_by_recent"/> <menu_item_call label="Filter anzeigen" name="show_filters"/> @@ -9,4 +9,6 @@ <menu_item_call label="Papierkorb ausleeren" name="empty_trash"/> <menu_item_call label="FundbÃŒro ausleeren" name="empty_lostnfound"/> <menu_item_call label="Textur speichern als" name="Save Texture As"/> + <menu_item_call label="Original suchen" name="Find Original"/> + <menu_item_call label="Alle Links suchen" name="Find All Links"/> </menu> diff --git a/indra/newview/skins/default/xui/de/menu_land.xml b/indra/newview/skins/default/xui/de/menu_land.xml new file mode 100644 index 0000000000..9b1e6727b7 --- /dev/null +++ b/indra/newview/skins/default/xui/de/menu_land.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<context_menu name="Land Pie"> + <menu_item_call label="Land-Info" name="Place Information..."/> + <menu_item_call label="Hier sitzen" name="Sit Here"/> + <menu_item_call label="Dieses Land kaufen" name="Land Buy"/> + <menu_item_call label="Pass kaufen" name="Land Buy Pass"/> + <menu_item_call label="Bauen" name="Create"/> + <menu_item_call label="Terrain bearbeiten" name="Edit Terrain"/> +</context_menu> diff --git a/indra/newview/skins/default/xui/de/menu_login.xml b/indra/newview/skins/default/xui/de/menu_login.xml index 26c2a4c2f4..fffa056cac 100644 --- a/indra/newview/skins/default/xui/de/menu_login.xml +++ b/indra/newview/skins/default/xui/de/menu_login.xml @@ -23,10 +23,8 @@ <menu_item_call label="Debug-Einstellungen anzeigen" name="Debug Settings"/> <menu_item_call label="UI/Farb-Einstellungen" name="UI/Color Settings"/> <menu_item_call label="XUI-Editor" name="UI Preview Tool"/> - <menu_item_call label="Seitenleiste anzeigen" name="Show Side Tray"/> - <menu_item_call label="Widget testen" name="Widget Test"/> - <menu_item_call label="Inspektor-Test" name="Inspectors Test"/> - <menu_item_check label="Reg In Client Test (Neustart)" name="Reg In Client Test (restart)"/> + <menu label="UI-Tests" name="UI Tests"/> + <menu_item_call label="FenstergröÃe einstellen..." name="Set Window Size..."/> <menu_item_call label="Servicebedingungen anzeigen" name="TOS"/> <menu_item_call label="Wichtige Meldung anzeigen" name="Critical"/> <menu_item_call label="Web-Browser-Test" name="Web Browser Test"/> diff --git a/indra/newview/skins/default/xui/de/menu_notification_well_button.xml b/indra/newview/skins/default/xui/de/menu_notification_well_button.xml new file mode 100644 index 0000000000..0f2784f160 --- /dev/null +++ b/indra/newview/skins/default/xui/de/menu_notification_well_button.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<context_menu name="Notification Well Button Context Menu"> + <menu_item_call label="Alle schlieÃen" name="Close All"/> +</context_menu> diff --git a/indra/newview/skins/default/xui/de/menu_object.xml b/indra/newview/skins/default/xui/de/menu_object.xml new file mode 100644 index 0000000000..6f8d85ecb8 --- /dev/null +++ b/indra/newview/skins/default/xui/de/menu_object.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<context_menu name="Object Pie"> + <menu_item_call label="BerÃŒhren" name="Object Touch"/> + <menu_item_call label="Bearbeiten" name="Edit..."/> + <menu_item_call label="Bauen" name="Build"/> + <menu_item_call label="Ãffnen" name="Open"/> + <menu_item_call label="Hier sitzen" name="Object Sit"/> + <menu_item_call label="Objektprofil" name="Object Inspect"/> + <menu_item_call label="Hineinzoomen" name="Zoom In"/> + <context_menu label="Anziehen >" name="Put On"> + <menu_item_call label="Anziehen" name="Wear"/> + <context_menu label="AnhÀngen >" name="Object Attach"/> + <context_menu label="HUD anhÀngen >" name="Object Attach HUD"/> + </context_menu> + <context_menu label="Entfernen >" name="Remove"> + <menu_item_call label="Nehmen" name="Pie Object Take"/> + <menu_item_call label="Missbrauch melden" name="Report Abuse..."/> + <menu_item_call label="Ignorieren" name="Object Mute"/> + <menu_item_call label="ZurÃŒckgeben" name="Return..."/> + <menu_item_call label="Löschen" name="Delete"/> + </context_menu> + <menu_item_call label="Kopie nehmen" name="Take Copy"/> + <menu_item_call label="Zahlen" name="Pay..."/> + <menu_item_call label="Kaufen" name="Buy..."/> +</context_menu> diff --git a/indra/newview/skins/default/xui/de/menu_participant_list.xml b/indra/newview/skins/default/xui/de/menu_participant_list.xml index 042123cde4..15c957cee3 100644 --- a/indra/newview/skins/default/xui/de/menu_participant_list.xml +++ b/indra/newview/skins/default/xui/de/menu_participant_list.xml @@ -1,5 +1,20 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <context_menu name="Participant List Context Menu"> - <menu_item_check label="Text stummschalten" name="MuteText"/> - <menu_item_check label="Text-Chat zulassen" name="AllowTextChat"/> + <menu_item_check label="Nach Name sortieren" name="SortByName"/> + <menu_item_check label="Nach letzten Sprechern sortieren" name="SortByRecentSpeakers"/> + <menu_item_call label="Profil anzeigen" name="View Profile"/> + <menu_item_call label="Freund hinzufÃŒgen" name="Add Friend"/> + <menu_item_call label="IM" name="IM"/> + <menu_item_call label="Anrufen" name="Call"/> + <menu_item_call label="Teilen" name="Share"/> + <menu_item_call label="Zahlen" name="Pay"/> + <menu_item_check label="Voice ignorieren" name="Block/Unblock"/> + <menu_item_check label="Text ignorieren" name="MuteText"/> + <context_menu label="Moderator-Optionen >" name="Moderator Options"> + <menu_item_check label="Text-Chat zulassen" name="AllowTextChat"/> + <menu_item_call label="Diesen Teilnehmer stummschalten" name="ModerateVoiceMuteSelected"/> + <menu_item_call label="Alle anderen stummschalten" name="ModerateVoiceMuteOthers"/> + <menu_item_call label="Stummschaltung fÃŒr diesen Teilnehmer aufheben" name="ModerateVoiceUnMuteSelected"/> + <menu_item_call label="Stummschaltung fÃŒr alle anderen aufheben" name="ModerateVoiceUnMuteOthers"/> + </context_menu> </context_menu> diff --git a/indra/newview/skins/default/xui/de/menu_people_groups.xml b/indra/newview/skins/default/xui/de/menu_people_groups.xml new file mode 100644 index 0000000000..87f43d27e6 --- /dev/null +++ b/indra/newview/skins/default/xui/de/menu_people_groups.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<menu name="menu_group_plus"> + <menu_item_call label="Ansichts-Info" name="View Info"/> + <menu_item_call label="Chat" name="Chat"/> + <menu_item_call label="Anrufen" name="Call"/> + <menu_item_call label="Aktivieren" name="Activate"/> + <menu_item_call label="Verlassen" name="Leave"/> +</menu> diff --git a/indra/newview/skins/default/xui/de/menu_people_nearby.xml b/indra/newview/skins/default/xui/de/menu_people_nearby.xml index ef58b4136e..9fa5db5fa3 100644 --- a/indra/newview/skins/default/xui/de/menu_people_nearby.xml +++ b/indra/newview/skins/default/xui/de/menu_people_nearby.xml @@ -7,4 +7,5 @@ <menu_item_call label="Teilen" name="Share"/> <menu_item_call label="Zahlen" name="Pay"/> <menu_item_check label="Ignorieren/Freischalten" name="Block/Unblock"/> + <menu_item_call label="Teleport anbieten" name="teleport"/> </context_menu> diff --git a/indra/newview/skins/default/xui/de/menu_profile_overflow.xml b/indra/newview/skins/default/xui/de/menu_profile_overflow.xml index 89b56d1571..f5cedf5464 100644 --- a/indra/newview/skins/default/xui/de/menu_profile_overflow.xml +++ b/indra/newview/skins/default/xui/de/menu_profile_overflow.xml @@ -2,4 +2,8 @@ <toggleable_menu name="profile_overflow_menu"> <menu_item_call label="Zahlen" name="pay"/> <menu_item_call label="Teilen" name="share"/> + <menu_item_call label="Hinauswerfen" name="kick"/> + <menu_item_call label="Einfrieren" name="freeze"/> + <menu_item_call label="Auftauen" name="unfreeze"/> + <menu_item_call label="CSR" name="csr"/> </toggleable_menu> diff --git a/indra/newview/skins/default/xui/de/menu_teleport_history_gear.xml b/indra/newview/skins/default/xui/de/menu_teleport_history_gear.xml index 2bfdadf22a..68b8e21802 100644 --- a/indra/newview/skins/default/xui/de/menu_teleport_history_gear.xml +++ b/indra/newview/skins/default/xui/de/menu_teleport_history_gear.xml @@ -2,5 +2,5 @@ <menu name="Teleport History Gear Context Menu"> <menu_item_call label="Alle Ordner aufklappen" name="Expand all folders"/> <menu_item_call label="Alle Ordner schlieÃen" name="Collapse all folders"/> - <menu_item_call label="Teleport-Verlauf löschen" name="Clear Teleport History"/> + <menu_item_call label="Teleport-Liste löschen" name="Clear Teleport History"/> </menu> diff --git a/indra/newview/skins/default/xui/de/menu_viewer.xml b/indra/newview/skins/default/xui/de/menu_viewer.xml index ee2f1ee7c9..c6bbea285f 100644 --- a/indra/newview/skins/default/xui/de/menu_viewer.xml +++ b/indra/newview/skins/default/xui/de/menu_viewer.xml @@ -9,7 +9,7 @@ <menu_item_call label="Mein Profil" name="Profile"/> <menu_item_call label="Mein Aussehen" name="Appearance"/> <menu_item_check label="Mein Inventar" name="Inventory"/> - <menu_item_call label="Inventar in Seitenleiste anzeigen" name="ShowSidetrayInventory"/> + <menu_item_call label="Inventar auf Seitenleiste anzeigen" name="ShowSidetrayInventory"/> <menu_item_call label="Meine Gesten" name="Gestures"/> <menu label="Mein Status" name="Status"> <menu_item_call label="Abwesend" name="Set Away"/> @@ -23,38 +23,32 @@ <menu_item_call label="Meine Freunde" name="My Friends"/> <menu_item_call label="Meine Gruppen" name="My Groups"/> <menu_item_check label="Lokaler Chat" name="Nearby Chat"/> - <menu_item_call label="Leute in dern NÀhe" name="Active Speakers"/> + <menu_item_call label="Leute in der NÀhe" name="Active Speakers"/> <menu_item_check label="Medien in der NÀhe" name="Nearby Media"/> - <menu_item_check label="(Legacy) Kommunikation" name="Instant Message"/> - <menu_item_call label="(Temp) Mediensteuerung" name="Preferences"/> </menu> <menu label="Welt" name="World"> - <menu_item_check label="Bewegen" name="Movement Controls"/> - <menu_item_check label="Ansicht" name="Camera Controls"/> - <menu_item_call label="Ãber Land" name="About Land"/> - <menu_item_call label="Region/GrundstÃŒck" name="Region/Estate"/> - <menu_item_call label="Land kaufen" name="Buy Land"/> - <menu_item_call label="Mein Land" name="My Land"/> - <menu label="Anzeigen" name="Land"> - <menu_item_check label="Bannlinien" name="Ban Lines"/> - <menu_item_check label="Strahlen" name="beacons"/> - <menu_item_check label="GrundstÃŒcksgrenzen" name="Property Lines"/> - <menu_item_check label="LandeigentÃŒmer" name="Land Owners"/> - </menu> - <menu label="Landmarken" name="Landmarks"> - <menu_item_call label="Landmarke hier setzen" name="Create Landmark Here"/> - <menu_item_call label="Hier als Zuhause wÀhlen" name="Set Home to Here"/> - </menu> - <menu_item_call label="Startseite" name="Teleport Home"/> <menu_item_check label="Minikarte" name="Mini-Map"/> <menu_item_check label="Weltkarte" name="World Map"/> <menu_item_call label="Foto" name="Take Snapshot"/> + <menu_item_call label="Landmarke fÃŒr diesen Ort setzen" name="Create Landmark Here"/> + <menu label="Ortsprofil" name="Land"> + <menu_item_call label="Land-Info" name="About Land"/> + <menu_item_call label="Region/GrundstÃŒck" name="Region/Estate"/> + </menu> + <menu_item_call label="Dieses Land kaufen" name="Buy Land"/> + <menu_item_call label="Mein Land" name="My Land"/> + <menu label="Anzeigen" name="LandShow"> + <menu_item_check label="Bewegungssteuerung" name="Movement Controls"/> + <menu_item_check label="Ansichtsteuerung" name="Camera Controls"/> + </menu> + <menu_item_call label="Teleport nach Hause" name="Teleport Home"/> + <menu_item_call label="Hier als Zuhause wÀhlen" name="Set Home to Here"/> <menu label="Sonne" name="Environment Settings"> <menu_item_call label="Sonnenaufgang" name="Sunrise"/> <menu_item_call label="Mittag" name="Noon"/> <menu_item_call label="Sonnenuntergang" name="Sunset"/> <menu_item_call label="Mitternacht" name="Midnight"/> - <menu_item_call label="GrundstÃŒckszeit verwenden" name="Revert to Region Default"/> + <menu_item_call label="GrundstÃŒckszeit" name="Revert to Region Default"/> <menu_item_call label="Umwelt-Editor" name="Environment Editor"/> </menu> </menu> @@ -125,21 +119,20 @@ </menu> <menu label="Hilfe" name="Help"> <menu_item_call label="[SECOND_LIFE]-Hilfe" name="Second Life Help"/> - <menu_item_call label="Tutorial" name="Tutorial"/> <menu_item_call label="Missbrauch melden" name="Report Abuse"/> + <menu_item_call label="Fehler melden" name="Report Bug"/> <menu_item_call label="INFO ÃBER [APP_NAME]" name="About Second Life"/> </menu> <menu label="Erweitert" name="Advanced"> - <menu_item_check label="Nach 30 Min auf Abwesend stellen" name="Go Away/AFK When Idle"/> <menu_item_call label="Animation meines Avatars stoppen" name="Stop Animating My Avatar"/> <menu_item_call label="Textur neu laden" name="Rebake Texture"/> <menu_item_call label="UI-GröÃe auf Standard setzen" name="Set UI Size to Default"/> + <menu_item_call label="FenstergröÃe einstellen..." name="Set Window Size..."/> <menu_item_check label="Auswahldistanz einschrÀnken" name="Limit Select Distance"/> <menu_item_check label="KamerabeschrÀnkungen deaktivieren" name="Disable Camera Distance"/> <menu_item_check label="Foto (hohe Auflösung)" name="HighResSnapshot"/> <menu_item_check label="Fotos auf Festplatte leise speichern" name="QuietSnapshotsToDisk"/> <menu_item_check label="Fotos auf Festplatte komprimieren" name="CompressSnapshotsToDisk"/> - <menu_item_call label="Textur speichern als" name="Save Texture As"/> <menu label="Performance Tools" name="Performance Tools"> <menu_item_call label="Lag-Anzeige" name="Lag Meter"/> <menu_item_check label="Statistikleiste" name="Statistics Bar"/> @@ -215,7 +208,7 @@ <menu label="Konsolen" name="Consoles"> <menu_item_check label="Textur" name="Texture Console"/> <menu_item_check label="Fehler beseitigen" name="Debug Console"/> - <menu_item_call label="Konsole: Meldungen" name="Notifications"/> + <menu_item_call label="Meldungen" name="Notifications"/> <menu_item_check label="TexturgröÃe" name="Texture Size"/> <menu_item_check label="Texture-Kategorie" name="Texture Category"/> <menu_item_check label="Schnelle Timer" name="Fast Timers"/> @@ -288,7 +281,7 @@ <menu label="Netzwerk" name="Network"> <menu_item_check label="Agent pausieren" name="AgentPause"/> <menu_item_call label="Meldungsprotokoll aktivieren" name="Enable Message Log"/> - <menu_item_call label="Meldungs-Protokoll deaktivieren" name="Disable Message Log"/> + <menu_item_call label="Meldungsprotokoll deaktivieren" name="Disable Message Log"/> <menu_item_check label="Objektposition laut Geschwindigkeit interpolieren" name="Velocity Interpolate Objects"/> <menu_item_check label="Positionen der interpolierten Objekte anfragen" name="Ping Interpolate Object Positions"/> <menu_item_call label="Ein Paket fallenlassen" name="Drop a Packet"/> @@ -333,7 +326,6 @@ <menu_item_call label="Als XML speichern" name="Save to XML"/> <menu_item_check label="XUI-Namen anzeigen" name="Show XUI Names"/> <menu_item_call label="Test-IMs senden" name="Send Test IMs"/> - <menu_item_call label="Inspektoren testen" name="Test Inspectors"/> </menu> <menu label="Avatar" name="Character"> <menu label="Geladene Textur nehmen" name="Grab Baked Texture"> @@ -366,6 +358,7 @@ <menu_item_call label="Fehler in Avatar-Texturen beseitigen" name="Debug Avatar Textures"/> <menu_item_call label="Lokale Texturen ausgeben" name="Dump Local Textures"/> </menu> + <menu_item_check label="HTTP-Texturen" name="HTTP Textures"/> <menu_item_call label="Bilder komprimieren" name="Compress Images"/> <menu_item_check label="Ausgabe Fehlerbeseitigung ausgeben" name="Output Debug Minidump"/> <menu_item_check label="Bei nÀchster AusfÃŒhrung Fenster öffnen" name="Console Window"/> @@ -383,7 +376,7 @@ <menu_item_call label="Asset-ID zulassen" name="Get Assets IDs"/> </menu> <menu label="Parzelle" name="Parcel"> - <menu_item_call label="Besitzer zu mir" name="Owner To Me"/> + <menu_item_call label="Besitzer zu mir zwingen" name="Owner To Me"/> <menu_item_call label="Auf Linden-Inhalt festlegen" name="Set to Linden Content"/> <menu_item_call label="Ãffentiches Land in Besitz nehmen" name="Claim Public Land"/> </menu> @@ -410,7 +403,6 @@ <menu_item_call label="TÀtowierung" name="Tattoo"/> <menu_item_call label="Alle Kleider" name="All Clothes"/> </menu> - <menu_item_check label="Werkzeugleiste anzeigen" name="Show Toolbar"/> <menu label="Hilfe" name="Help"> <menu_item_call label="Offizielles Linden-Blog" name="Official Linden Blog"/> <menu_item_call label="Scripting-Portal" name="Scripting Portal"/> diff --git a/indra/newview/skins/default/xui/de/mime_types_linux.xml b/indra/newview/skins/default/xui/de/mime_types_linux.xml new file mode 100644 index 0000000000..e4b5c53292 --- /dev/null +++ b/indra/newview/skins/default/xui/de/mime_types_linux.xml @@ -0,0 +1,217 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<mimetypes name="default"> + <widgetset name="web"> + <label name="web_label"> + Webinhalt + </label> + <tooltip name="web_tooltip"> + Dieser Ort verfÃŒgt ÃŒber Webinhalte + </tooltip> + <playtip name="web_playtip"> + Webinhalt anzeigen + </playtip> + </widgetset> + <widgetset name="movie"> + <label name="movie_label"> + Video + </label> + <tooltip name="movie_tooltip"> + Ein Video wurde gefunden. + </tooltip> + <playtip name="movie_playtip"> + Video wiedergeben + </playtip> + </widgetset> + <widgetset name="image"> + <label name="image_label"> + Bild + </label> + <tooltip name="image_tooltip"> + Dieser Ort verfÃŒgt ÃŒber Bildinhalte + </tooltip> + <playtip name="image_playtip"> + Das Bild an diesem Ort anzeigen + </playtip> + </widgetset> + <widgetset name="audio"> + <label name="audio_label"> + Audio + </label> + <tooltip name="audio_tooltip"> + Dieser Ort verfÃŒgt ÃŒber Audioinhalte + </tooltip> + <playtip name="audio_playtip"> + Das Audio dieses Standorts abspielen + </playtip> + </widgetset> + <scheme name="rtsp"> + <label name="rtsp_label"> + Echtzeit-Streaming + </label> + </scheme> + <mimetype name="blank"> + <label name="blank_label"> + - Keine - + </label> + </mimetype> + <mimetype name="none/none"> + <label name="none/none_label"> + - Keine - + </label> + </mimetype> + <mimetype name="audio/*"> + <label name="audio2_label"> + Audio + </label> + </mimetype> + <mimetype name="video/*"> + <label name="video2_label"> + Video + </label> + </mimetype> + <mimetype name="image/*"> + <label name="image2_label"> + Bild + </label> + </mimetype> + <mimetype name="video/vnd.secondlife.qt.legacy"> + <label name="vnd.secondlife.qt.legacy_label"> + Video (QuickTime) + </label> + </mimetype> + <mimetype name="application/javascript"> + <label name="application/javascript_label"> + Javascript + </label> + </mimetype> + <mimetype name="application/ogg"> + <label name="application/ogg_label"> + Ogg Audio/Video + </label> + </mimetype> + <mimetype name="application/pdf"> + <label name="application/pdf_label"> + PDF-Dokument + </label> + </mimetype> + <mimetype name="application/postscript"> + <label name="application/postscript_label"> + Postscript-Dokument + </label> + </mimetype> + <mimetype name="application/rtf"> + <label name="application/rtf_label"> + Rich Text (RTF) + </label> + </mimetype> + <mimetype name="application/smil"> + <label name="application/smil_label"> + Synchronized Multimedia Integration Language (SMIL) + </label> + </mimetype> + <mimetype name="application/xhtml+xml"> + <label name="application/xhtml+xml_label"> + Webseite (XHTML) + </label> + </mimetype> + <mimetype name="application/x-director"> + <label name="application/x-director_label"> + Macromedia Director + </label> + </mimetype> + <mimetype name="audio/mid"> + <label name="audio/mid_label"> + Audio (MIDI) + </label> + </mimetype> + <mimetype name="audio/mpeg"> + <label name="audio/mpeg_label"> + Audio (MP3) + </label> + </mimetype> + <mimetype name="audio/x-aiff"> + <label name="audio/x-aiff_label"> + Audio (AIFF) + </label> + </mimetype> + <mimetype name="audio/x-wav"> + <label name="audio/x-wav_label"> + Audio (WAV) + </label> + </mimetype> + <mimetype name="image/bmp"> + <label name="image/bmp_label"> + Bild (BMP) + </label> + </mimetype> + <mimetype name="image/gif"> + <label name="image/gif_label"> + Bild (GIF) + </label> + </mimetype> + <mimetype name="image/jpeg"> + <label name="image/jpeg_label"> + Bild (JPEG) + </label> + </mimetype> + <mimetype name="image/png"> + <label name="image/png_label"> + Bild (PNG) + </label> + </mimetype> + <mimetype name="image/svg+xml"> + <label name="image/svg+xml_label"> + Bild (SVG) + </label> + </mimetype> + <mimetype name="image/tiff"> + <label name="image/tiff_label"> + Bild (TIFF) + </label> + </mimetype> + <mimetype name="text/html"> + <label name="text/html_label"> + Webseite + </label> + </mimetype> + <mimetype name="text/plain"> + <label name="text/plain_label"> + Text + </label> + </mimetype> + <mimetype name="text/xml"> + <label name="text/xml_label"> + XML + </label> + </mimetype> + <mimetype name="video/mpeg"> + <label name="video/mpeg_label"> + Video (MPEG) + </label> + </mimetype> + <mimetype name="video/mp4"> + <label name="video/mp4_label"> + Video (MP4) + </label> + </mimetype> + <mimetype name="video/quicktime"> + <label name="video/quicktime_label"> + Video (QuickTime) + </label> + </mimetype> + <mimetype name="video/x-ms-asf"> + <label name="video/x-ms-asf_label"> + Video (Windows Media ASF) + </label> + </mimetype> + <mimetype name="video/x-ms-wmv"> + <label name="video/x-ms-wmv_label"> + Video (Windows Media WMV) + </label> + </mimetype> + <mimetype name="video/x-msvideo"> + <label name="video/x-msvideo_label"> + Video (AVI) + </label> + </mimetype> +</mimetypes> diff --git a/indra/newview/skins/default/xui/de/mime_types_mac.xml b/indra/newview/skins/default/xui/de/mime_types_mac.xml new file mode 100644 index 0000000000..e4b5c53292 --- /dev/null +++ b/indra/newview/skins/default/xui/de/mime_types_mac.xml @@ -0,0 +1,217 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<mimetypes name="default"> + <widgetset name="web"> + <label name="web_label"> + Webinhalt + </label> + <tooltip name="web_tooltip"> + Dieser Ort verfÃŒgt ÃŒber Webinhalte + </tooltip> + <playtip name="web_playtip"> + Webinhalt anzeigen + </playtip> + </widgetset> + <widgetset name="movie"> + <label name="movie_label"> + Video + </label> + <tooltip name="movie_tooltip"> + Ein Video wurde gefunden. + </tooltip> + <playtip name="movie_playtip"> + Video wiedergeben + </playtip> + </widgetset> + <widgetset name="image"> + <label name="image_label"> + Bild + </label> + <tooltip name="image_tooltip"> + Dieser Ort verfÃŒgt ÃŒber Bildinhalte + </tooltip> + <playtip name="image_playtip"> + Das Bild an diesem Ort anzeigen + </playtip> + </widgetset> + <widgetset name="audio"> + <label name="audio_label"> + Audio + </label> + <tooltip name="audio_tooltip"> + Dieser Ort verfÃŒgt ÃŒber Audioinhalte + </tooltip> + <playtip name="audio_playtip"> + Das Audio dieses Standorts abspielen + </playtip> + </widgetset> + <scheme name="rtsp"> + <label name="rtsp_label"> + Echtzeit-Streaming + </label> + </scheme> + <mimetype name="blank"> + <label name="blank_label"> + - Keine - + </label> + </mimetype> + <mimetype name="none/none"> + <label name="none/none_label"> + - Keine - + </label> + </mimetype> + <mimetype name="audio/*"> + <label name="audio2_label"> + Audio + </label> + </mimetype> + <mimetype name="video/*"> + <label name="video2_label"> + Video + </label> + </mimetype> + <mimetype name="image/*"> + <label name="image2_label"> + Bild + </label> + </mimetype> + <mimetype name="video/vnd.secondlife.qt.legacy"> + <label name="vnd.secondlife.qt.legacy_label"> + Video (QuickTime) + </label> + </mimetype> + <mimetype name="application/javascript"> + <label name="application/javascript_label"> + Javascript + </label> + </mimetype> + <mimetype name="application/ogg"> + <label name="application/ogg_label"> + Ogg Audio/Video + </label> + </mimetype> + <mimetype name="application/pdf"> + <label name="application/pdf_label"> + PDF-Dokument + </label> + </mimetype> + <mimetype name="application/postscript"> + <label name="application/postscript_label"> + Postscript-Dokument + </label> + </mimetype> + <mimetype name="application/rtf"> + <label name="application/rtf_label"> + Rich Text (RTF) + </label> + </mimetype> + <mimetype name="application/smil"> + <label name="application/smil_label"> + Synchronized Multimedia Integration Language (SMIL) + </label> + </mimetype> + <mimetype name="application/xhtml+xml"> + <label name="application/xhtml+xml_label"> + Webseite (XHTML) + </label> + </mimetype> + <mimetype name="application/x-director"> + <label name="application/x-director_label"> + Macromedia Director + </label> + </mimetype> + <mimetype name="audio/mid"> + <label name="audio/mid_label"> + Audio (MIDI) + </label> + </mimetype> + <mimetype name="audio/mpeg"> + <label name="audio/mpeg_label"> + Audio (MP3) + </label> + </mimetype> + <mimetype name="audio/x-aiff"> + <label name="audio/x-aiff_label"> + Audio (AIFF) + </label> + </mimetype> + <mimetype name="audio/x-wav"> + <label name="audio/x-wav_label"> + Audio (WAV) + </label> + </mimetype> + <mimetype name="image/bmp"> + <label name="image/bmp_label"> + Bild (BMP) + </label> + </mimetype> + <mimetype name="image/gif"> + <label name="image/gif_label"> + Bild (GIF) + </label> + </mimetype> + <mimetype name="image/jpeg"> + <label name="image/jpeg_label"> + Bild (JPEG) + </label> + </mimetype> + <mimetype name="image/png"> + <label name="image/png_label"> + Bild (PNG) + </label> + </mimetype> + <mimetype name="image/svg+xml"> + <label name="image/svg+xml_label"> + Bild (SVG) + </label> + </mimetype> + <mimetype name="image/tiff"> + <label name="image/tiff_label"> + Bild (TIFF) + </label> + </mimetype> + <mimetype name="text/html"> + <label name="text/html_label"> + Webseite + </label> + </mimetype> + <mimetype name="text/plain"> + <label name="text/plain_label"> + Text + </label> + </mimetype> + <mimetype name="text/xml"> + <label name="text/xml_label"> + XML + </label> + </mimetype> + <mimetype name="video/mpeg"> + <label name="video/mpeg_label"> + Video (MPEG) + </label> + </mimetype> + <mimetype name="video/mp4"> + <label name="video/mp4_label"> + Video (MP4) + </label> + </mimetype> + <mimetype name="video/quicktime"> + <label name="video/quicktime_label"> + Video (QuickTime) + </label> + </mimetype> + <mimetype name="video/x-ms-asf"> + <label name="video/x-ms-asf_label"> + Video (Windows Media ASF) + </label> + </mimetype> + <mimetype name="video/x-ms-wmv"> + <label name="video/x-ms-wmv_label"> + Video (Windows Media WMV) + </label> + </mimetype> + <mimetype name="video/x-msvideo"> + <label name="video/x-msvideo_label"> + Video (AVI) + </label> + </mimetype> +</mimetypes> diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml index 7f5a561f74..d94bbd8564 100644 --- a/indra/newview/skins/default/xui/de/notifications.xml +++ b/indra/newview/skins/default/xui/de/notifications.xml @@ -32,10 +32,10 @@ <button name="No" text="$notext"/> </form> </template> - <notification functor="GenericAcknowledge" label="Unbekannter Warnhinweis" name="MissingAlert"> - Ihre Version von [APP_NAME] kann den gerade empfangenen Warnhinweis nicht anzeigen. Bitte vergewissern Sie sich, dass Sie den aktuellsten Viewer installiert haben. + <notification functor="GenericAcknowledge" label="Unbekannte Meldung" name="MissingAlert"> + Ihre Version von [APP_NAME] kann die gerade empfangene Benachrichtigung nicht anzeigen. Bitte vergewissern Sie sich, dass Sie den aktuellsten Viewer installiert haben. -Fehlerdetails: Der Warnhinweis '[_NAME]' wurde in notifications.xml nicht gefunden. +Fehlerdetails: The notification called '[_NAME]' was not found in notifications.xml. <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="FloaterNotFound"> @@ -94,12 +94,12 @@ WÀhlen Sie ein einzelnes Objekt aus und versuchen Sie es erneut. <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Nicht speichern" yestext="Alles speichern"/> </notification> <notification name="GrantModifyRights"> - Die GewÀhrung von Ãnderungsrechten an andere Einwohner ermöglicht es diesen, JEDES BELIEBIGE Objekt zu Àndern oder an sich zu nehmen, das Sie in der [SECOND_LIFE]-Welt besitzen. Seien Sie SEHR vorsichtig beim Erteilen dieser Erlaubnis. -Möchten Sie [FIRST_NAME] [LAST_NAME] Ãnderungsrechte gewÀhren? + Wenn Sie einem anderen Einwohner, das die Erlaubnis zum Bearbeiten erteilen, dann kann dieser JEDES Objekt, das Sie inworld besitzen, verÀndern, löschen oder nehmen. Seien Sie SEHR vorsichtig, wenn Sie diese Erlaubnis gewÀhren! +Möchten Sie [FIRST_NAME] [LAST_NAME] die Erlaubnis zum Bearbeiten gewÀhren? <usetemplate name="okcancelbuttons" notext="Nein" yestext="Ja"/> </notification> <notification name="GrantModifyRightsMultiple"> - Die GewÀhrung von Ãnderungsrechten an andere Einwohner ermöglicht es diesen, JEDES BELIEBIGE Objekt zu Àndern, das Sie in der [SECOND_LIFE]-Welt besitzen. Seien Sie SEHR vorsichtig beim Erteilen dieser Erlaubnis. + Wenn Sie einem anderen Einwohner, die Erlaubnis zum Bearbeiten erteilen, dann kann dieser JEDES Objekt, das Sie inworld besitzen, verÀndern. Seien Sie SEHR vorsichtig, wenn Sie diese Erlaubnis gewÀhren! Möchten Sie den ausgewÀhlten Einwohnern Ãnderungsrechte gewÀhren? <usetemplate name="okcancelbuttons" notext="Nein" yestext="Ja"/> </notification> @@ -156,6 +156,11 @@ Der Rolle â[ROLE_NAME]â diese FÀhigkeit zuweisen? Der Rolle â[ROLE_NAME]â diese FÀhigkeit zuweisen? <usetemplate name="okcancelbuttons" notext="Nein" yestext="Ja"/> </notification> + <notification name="AttachmentDrop"> + Sie möchten Ihren Anhang wirklich fallen lassen? +Möchten Sie fortfahren? + <usetemplate ignoretext="BestÀtigen, bevor AnhÀnge fallen gelassen werden" name="okcancelignore" notext="Nein" yestext="Ja"/> + </notification> <notification name="ClickUnimplemented"> Leider ist diese Funktion noch nicht implementiert. </notification> @@ -253,15 +258,11 @@ FÃŒr die gesamte Region ist Schaden aktiviert. Damit Waffen funktionieren, mÃŒssen Skripts erlaubt sein. </notification> <notification name="MultipleFacesSelected"> - Momentan sind mehrere Seiten ausgewÀhlt. Wenn Sie fortfahren, werden einzelne Medien auf mehreren Seiten des Objektes dargestellt. Um die Medien auf einer einzigen Seite darzustellen, wÀhlen Sie Textur auswÀhlen und klicken Sie auf die gewÃŒnschte Seite. Danach klicken Sie HinzufÃŒgen. + Mehrere FlÀchen wurden ausgewÀhlt. +Wenn Sie fortfahren werden auf mehrere FlÀchen des Objekts unterschiedlichen Medien-Instanzen eingefÃŒgt. +Um Medien nur auf einer FlÀche einzufÃŒgen, wÀhlen Sie âOberflÀche auswÀhlen" und klicken Sie auf die gewÃŒnschte FlÀche des Objektes. Klicken Sie dann auf âHinzufÃŒgen". <usetemplate ignoretext="Die Medien werden auf mehrere ausgewÀhlte Seiten ÃŒbertragen" name="okcancelignore" notext="Abbrechen" yestext="OK"/> </notification> - <notification name="WhiteListInvalidatesHomeUrl"> - Wenn Sie diesen Eintrag zur Whitelist hinzufÃŒgen, dann wird die URL, -die Sie fÃŒr diese Medien-Instanz festgelegt haben, ungÃŒltig. Dies ist nicht zulÀssig. -Der Eintrag kann nicht zur Whitelist hinzugefÃŒgt werden. - <usetemplate name="okbutton" yestext="OK"/> - </notification> <notification name="MustBeInParcel"> Sie mÃŒssen auf einer Landparzelle stehen, um ihren Landepunkt festzulegen. </notification> @@ -352,14 +353,6 @@ Sind Sie sicher, dass Sie fortfahren wollen? <notification name="SelectHistoryItemToView"> WÀhlen Sie ein Element zur Ansicht. </notification> - <notification name="ResetShowNextTimeDialogs"> - Möchten Sie alle Popups wieder aktivieren, die Sie zuvor auf âNicht mehr anzeigenâ gesetzt haben? - <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/> - </notification> - <notification name="SkipShowNextTimeDialogs"> - Möchten Sie alle Popups, die ÃŒbersprungen werden können, deaktivieren? - <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/> - </notification> <notification name="CacheWillClear"> Der Cache wird nach einem Neustart von [APP_NAME] geleert. </notification> @@ -424,7 +417,7 @@ Das Objekt ist möglicherweise auÃer Reichweite oder wurde gelöscht. </notification> <notification name="StartRegionEmpty"> Sie haben keine Start-Region festgelegt. -Bitte geben Sie den Namen der Region im Feld âStartpositionâ ein oder wÀhlen Sie âMein letzter Standortâ oder âMein Heimatortâ als Startposition aus. +Bitte geben Sie den Namen der Region im Feld âStartpositionâ ein oder wÀhlen Sie âMein letzter Standortâ oder âMein Zuhauseâ als Startposition aus. <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="CouldNotStartStopScript"> @@ -621,6 +614,10 @@ Bitte versuchen Sie es erneut. <notification name="LandmarkCreated"> â[LANDMARK_NAME]â wurde zum Ordner â[FOLDER_NAME]â hinzugefÃŒgt. </notification> + <notification name="LandmarkAlreadyExists"> + Sie besitzen fÃŒr diesen Standort bereits eine Landmarke. + <usetemplate name="okbutton" yestext="OK"/> + </notification> <notification name="CannotCreateLandmarkNotOwner"> Sie können hier keine Landmarke erstellen, da der LandeigentÃŒmer dies verboten hat. </notification> @@ -722,7 +719,8 @@ Keine Parzelle ausgewÀhlt. Eine erzwungene LandÃŒbertragung ist nicht möglich, da die Auswahl mehrere Regionen umfasst. WÀhlen Sie ein kleineres Gebiet und versuchen Sie es erneut. </notification> <notification name="ForceOwnerAuctionWarning"> - Diese Parzelle steht zur Auktion. Eine zwangsweise EigentumsÃŒbertragung beendet die Auktion und verÀrgert womöglich Einwohner, die bereits ein Gebot abgegeben haben. EigentumsÃŒbertragung erzwingen? + Diese Parzelle steht zur Auktion. Wenn Sie eine EigentumsÃŒbertragung erzwingen, wird die Auktion abgesagt. Wenn die Auktion bereits begonnen hatte, dann werden Sie sich hiermit keine Freunde machen! +EigentumsÃŒbertragung erzwingen? <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/> </notification> <notification name="CannotContentifyNothingSelected"> @@ -775,7 +773,7 @@ WÀhlen Sie eine einzelne Parzelle. Streaming-Medien erfordern eine schnelle Internet-Verbindung. Streaming-Medien abspielen, wenn verfÃŒgbar? -(Sie können diese Option spÀter unter âEinstellungenâ > âAudio & Videoâ Àndern.) +(Sie können diese Option spÀter unter Einstellungen > Datenschutz Àndern.) <usetemplate name="okcancelbuttons" notext="Deaktivieren" yestext="Medien wiedergeben"/> </notification> <notification name="CannotDeedLandWaitingForServer"> @@ -1340,6 +1338,10 @@ Chat und Instant Messages werden ausgeblendet. Instant Messages (Sofortnachricht [INVITE] <usetemplate name="okcancelbuttons" notext="Ablehnen" yestext="Beitreten"/> </notification> + <notification name="JoinedTooManyGroups"> + Sie haben die maximale Anzahl an Gruppen erreicht. Bitte verlassen Sie eine Gruppe bevor Sie einer neuen beitreten oder eine neue Gruppe bilden. + <usetemplate name="okbutton" yestext="OK"/> + </notification> <notification name="KickUser"> Beim Hinauswerfen dieses Benutzers welche Meldung anzeigen? <form name="form"> @@ -1584,11 +1586,11 @@ Anzeige fÃŒr [AMOUNT] L$ veröffentlichen? <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/> </notification> <notification name="SetClassifiedMature"> - EnthÀlt diese Anzeige Mature-Inhalte? + EnthÀlt diese Anzeige moderate Inhalte? <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Nein" yestext="Ja"/> </notification> <notification name="SetGroupMature"> - BeschÀftigt sich diese Gruppe mit Mature-Inhalten? + BeschÀftigt sich diese Gruppe mit moderaten Inhalten? <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Nein" yestext="Ja"/> </notification> <notification label="Neustart bestÀtigen" name="ConfirmRestart"> @@ -1605,7 +1607,9 @@ Anzeige fÃŒr [AMOUNT] L$ veröffentlichen? </notification> <notification label="Alterseinstufung der Region Àndern" name="RegionMaturityChange"> Die Alterseinstufung dieser Region wurde aktualisiert. -Es kann eine Weile dauern, bis sich die Ãnderung auf die Karte auswirkt. +Es kann eine Weile dauern, bis diese Ãnderung auf der Karte angezeigt wird. + +Um Regionen der Alterseinstufung âAdult" zu betreten, mÃŒssen Einwohner altersÃŒberprÃŒft sein. Dies kann entweder ÃŒber die Alterverifizierung oder Zahlungsverifizierung geschehen. </notification> <notification label="Falsche Voice-Version" name="VoiceVersionMismatch"> Diese Version von [APP_NAME] ist mit der Voice-Chat-Funktion in dieser Region nicht kompatibel. Damit Voice-Chat funktioniert, mÃŒssen Sie [APP_NAME] aktualisieren. @@ -1728,16 +1732,6 @@ Inventarobjekt(e) verschieben? Alle gemeldeten VerstöÃe werden bearbeitet. Sie können auf der Seite [http://secondlife.com/support/incidentreport.php VerstoÃmeldungen] nachverfolgen, welche VerstoÃmeldungen bearbeitet wurden. </notification> - <notification name="HelpReportAbuseEmailEO"> - WICHTIG: Diese Meldung wird an den EigentÃŒmer der Region gesendet, in der Sie sich gerade befinden, nicht an Linden Lab. - -Als besonderen Service fÃŒr Einwohner und Besucher ÃŒbernimmt der EigentÃŒmer dieser Region die Bearbeitung aller anfallenden Meldungen. Von diesem Standort aus eingereichte Meldungen werden nicht von Linden Lab bearbeitet. - -Der EigentÃŒmer der Region bearbeitet Meldungen auf Grundlage der Richtlinien, die im fÃŒr diese Region geltenden GrundstÃŒcksvertrag festgelegt sind. -(Den Vertrag können Sie unter 'Welt ' > 'Land-Info ' einsehen.) - -Die KlÀrung des gemeldeten VerstoÃes bezieht sich nur auf diese Region. Der Zugang fÃŒr Einwohner zu anderen Bereichen von [SECOND_LIFE] wird durch das Resultat dieser Meldung nicht beeintrÀchtigt. Nur Linden Lab kann den Zugang zu [SECOND_LIFE] beschrÀnken. - </notification> <notification name="HelpReportAbuseSelectCategory"> WÀhlen Sie eine Missbrauchskategorie aus. Die Angabe einer Kategorie hilft uns bei der Bearbeitung des Berichts. @@ -1971,7 +1965,6 @@ Von einer Webseite zu diesem Formular linken, um anderen leichten Zugang zu dies </notification> <notification name="UnableToLoadGesture"> Geste [NAME] konnte nicht geladen werden. -Bitte versuchen Sie es erneut. </notification> <notification name="LandmarkMissing"> Landmarke fehlt in Datenbank. @@ -2073,7 +2066,7 @@ WÀhlen Sie eine kleinere LandflÀche. Einige Begriffe in Ihrer Suchanfrage wurden ausgeschlossen, aufgrund von in den Community Standards definierten InhaltsbeschrÀnkungen. </notification> <notification name="NoContentToSearch"> - Bitte wÀhlen Sie mindestens eine Inhaltsart fÃŒr die Suche aus (PG, Mature oder Adult). + Bitte wÀhlen Sie mindestens eine Inhaltsart fÃŒr die Suche aus (Allgemein, Moderat oder Adult). </notification> <notification name="GroupVote"> [NAME] hat eine Abstimmung vorgeschlagen ÃŒber: @@ -2086,6 +2079,9 @@ WÀhlen Sie eine kleinere LandflÀche. <notification name="SystemMessage"> [MESSAGE] </notification> + <notification name="PaymentRecived"> + [MESSAGE] + </notification> <notification name="EventNotification"> Event-Benachrichtigung: @@ -2132,8 +2128,7 @@ Bitte installieren Sie das Plugin erneut. Falls weiterhin Problem auftreten, kon Die Objekte von [FIRST] [LAST] auf dieser Parzelle wurden in das Inventar dieser Person transferiert. </notification> <notification name="OtherObjectsReturned2"> - Die Objekte von [FIRST] [LAST] auf dieser -Parzelle von â[NAME]â wurden an ihren EigentÃŒmer zurÃŒckgegeben. + Alle Objekte auf der ausgewÀhlten Parzelle, die Einwohner '[NAME]' gehören, wurden an ihren EigentÃŒmern zurÃŒckgegeben. </notification> <notification name="GroupObjectsReturned"> Die mit der Gruppe [GROUPNAME] gemeinsam genutzten Objekte auf dieser Parzelle wurden in das Inventar ihrer EigentÃŒmer transferiert. @@ -2146,7 +2141,6 @@ Nicht transferierbare an die Gruppe ÃŒbertragene Objekte wurden gelöscht. <notification name="ServerObjectMessage"> Nachricht von [NAME]: [MSG] - <usetemplate name="okcancelbuttons" notext="OK" yestext="Untersuchen"/> </notification> <notification name="NotSafe"> Auf diesem Land ist Schaden aktiviert. @@ -2276,12 +2270,12 @@ Versuchen Sie es in einigen Minuten erneut. </form> </notification> <notification name="UserGiveItem"> - [NAME_SLURL] hat Ihnen folgendes [OBJECTTYPE]: + [NAME_SLURL] hat Ihnen folgendes [OBJECTTYPE] ÃŒbergeben: [ITEM_SLURL] <form name="form"> - <button name="Keep" text="Behalten"/> <button name="Show" text="Anzeigen"/> <button name="Discard" text="Verwerfen"/> + <button name="Mute" text="Ignorieren"/> </form> </notification> <notification name="GodMessage"> @@ -2306,6 +2300,9 @@ Versuchen Sie es in einigen Minuten erneut. <button name="Cancel" text="Abbrechen"/> </form> </notification> + <notification name="TeleportOfferSent"> + Ein Teleportangebot wurde an [TO_NAME] geschickt + </notification> <notification name="GotoURL"> [MESSAGE] [URL] @@ -2323,8 +2320,12 @@ Versuchen Sie es in einigen Minuten erneut. <form name="form"> <button name="Accept" text="Akzeptieren"/> <button name="Decline" text="Ablehnen"/> + <button name="Send IM" text="IM senden"/> </form> </notification> + <notification name="FriendshipOffered"> + Sie haben [TO_NAME] die Freundschaft angeboten. + </notification> <notification name="OfferFriendshipNoMessage"> [NAME] bietet Ihnen die Freundschaft an. @@ -2341,8 +2342,8 @@ Versuchen Sie es in einigen Minuten erneut. [NAME] hat Ihr Freundschaftsangebot abgelehnt. </notification> <notification name="OfferCallingCard"> - [FIRST] [LAST] bietet Ihnen eine Visitenkarte an. -Dies erstellt ein Lesezeichen in Ihrem Inventar, damit Sie diesen Einwohner jederzeit ÃŒber IM erreichen. + [FIRST] [LAST] bietet Ihnen ihre/seine Visitenkarte an. +Ihrem Inventar wird ein Lesezeichen erstellt, damit Sie diesem Einwohner einfach eine IM schicken können. <form name="form"> <button name="Accept" text="Akzeptieren"/> <button name="Decline" text="Ablehnen"/> @@ -2422,14 +2423,6 @@ Anfrage gestatten? <button name="Block" text="Ignorieren"/> </form> </notification> - <notification name="FirstBalanceIncrease"> - Sie haben gerade [AMOUNT] L$ erhalten. -Ihr Kontostand wird oben rechts angezeigt. - </notification> - <notification name="FirstBalanceDecrease"> - Sie haben gerade [AMOUNT] L$ bezahlt. -Ihr Kontostand wird oben rechts angezeigt. - </notification> <notification name="BuyLindenDollarSuccess"> Vielen Dank fÃŒr Ihre Zahlung. @@ -2437,58 +2430,17 @@ Ihr L$-Kontostand wird aktualisiert, sobald die Bearbeitung abgeschlossen ist. F Der Zahlungsstatus kann auf Ihrer [http://secondlife.com/account/ Startseite] unter TransaktionsÃŒbersicht ÃŒberprÃŒft werden. </notification> - <notification name="FirstSit"> - Sie sitzen. -Verwenden Sie die Pfeiltasten (oder AWSD-Tasten), um sich umzusehen. -Um aufzustehen, klicken Sie auf die SchaltflÀche âAufstehenâ. - </notification> - <notification name="FirstMap"> - Klicken Sie auf die Karte und bewegen Sie die Maus, um sich auf der Karte umzusehen. -Zum Teleportieren doppelklicken. -Nutzen Sie die Optionen rechts, um Objekte, Einwohner oder Events anzuzeigen und einen anderen Hintergrund auszuwÀhlen. - </notification> - <notification name="FirstBuild"> - Sie haben die Bauwerkzeuge geöffnet. Jedes Objekt, dass Sie sehen wurde mit diesen Werkzeugen gebaut. - </notification> - <notification name="FirstTeleport"> - Sie können nur zu bestimmten Bereichen in dieser Region teleportieren. Der Pfeil deutet zu Ihrem Ziel hin. Klicken Sie auf den Pfeil, um diesen auszublenden. - </notification> <notification name="FirstOverrideKeys"> Ihre Bewegungstasten werden jetzt von einem Objekt gesteuert. Probieren Sie die Pfeil- oder WASD-Tasten aus. Manche Objekte (wie Waffen) mÃŒssen per Mouselook gesteuert werden. DrÃŒcken Sie dazu âMâ. </notification> - <notification name="FirstAppearance"> - Sie bearbeiten gerade Ihr Aussehen. -Verwenden Sie die Pfeiltasten, um sich umzusehen. -Klicken Sie auf âAlles speichernâ, wenn Sie fertig sind. - </notification> - <notification name="FirstInventory"> - Dies ist Ihr Inventar. Es enthÀlt Objekte, die Ihnen gehören. - -* Um etwas anzuziehen, ziehen Sie es mit der Maus auf Ihren Avatar. -* Um etwas inworld zu rezzen, ziehen Sie das Objekt auf den Boden. -* Zum Lesen einer Notizkarte klicken Sie sie doppelt an. - </notification> <notification name="FirstSandbox"> Dies ist ein Sandkasten. Hier können Einwohner lernen, wie Objekte gebaut werden. Objekte, die Sie hier bauen, werden gelöscht, nachdem Sie den Sandkasten verlassen. Vergessen Sie nicht, Ihr Werk mit einem Rechtsklick und der Auswahl âNehmenâ in Ihrem Inventar zu speichern. </notification> - <notification name="FirstFlexible"> - Dieses Objekt ist flexibel. Flexible Objekte mÃŒssen die Eigenschaft âPhantomâ haben und dÃŒrfen nicht âphysischâ sein. - </notification> - <notification name="FirstDebugMenus"> - Sie haben das MenÃŒ âErweitertâ geöffnet. - -Um dieses MenÃŒ zu aktivieren bzw. deaktivieren: - Windows Strg+Alt+D - Mac ⌥⌘D - </notification> - <notification name="FirstSculptedPrim"> - Sie bearbeiten ein geformtes Primitiv. Geformte Primitive benötigen eine spezielle Textur, die ihre Form definiert. - </notification> <notification name="MaxListSelectMessage"> Sie können maximal [MAX_SELECT] Objekte von der Liste auswÀhlen. @@ -2583,12 +2535,23 @@ Klicken Sie auf 'Akzeptieren ', um dem Chat beizutreten, oder auf &a <notification name="UnsupportedCommandSLURL"> Die SLurl, auf die Sie geklickt haben, wird nicht unterstÃŒtzt. </notification> + <notification name="BlockedSLURL"> + Ein untrusted Browser hat eine SLurl geschickt, diese wurde sicherheitshalber gesperrt. + </notification> + <notification name="ThrottledSLURL"> + Innerhalb kurzer Zeit wurden von einem untrusted Browser mehrere SLurls erhalten. +Diese werden fÃŒr ein paar Sekunden sicherheitshalber gesperrt. + </notification> <notification name="IMToast"> [MESSAGE] <form name="form"> <button name="respondbutton" text="Antworten"/> </form> </notification> + <notification name="ConfirmCloseAll"> + Möchten Sie wirklich alle IMs schlieÃen? + <usetemplate name="okcancelignore" notext="Abbrechen" yestext="OK"/> + </notification> <notification name="AttachmentSaved"> Der Anhang wurde gespeichert. </notification> @@ -2600,8 +2563,16 @@ Klicken Sie auf 'Akzeptieren ', um dem Chat beizutreten, oder auf &a '[ERROR]' <usetemplate name="okbutton" yestext="OK"/> </notification> + <notification name="TextChatIsMutedByModerator"> + Sie wurden vom Moderator stummgeschaltet. + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="VoiceIsMutedByModerator"> + Sie wurden vom Moderator stummgeschaltet. + <usetemplate name="okbutton" yestext="OK"/> + </notification> <notification name="ConfirmClearTeleportHistory"> - Möchten Sie Ihren Teleport-Verlauf löschen? + Möchten Sie Ihre Teleport-Liste löschen? <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/> </notification> <notification name="BottomTrayButtonCanNotBeShown"> diff --git a/indra/newview/skins/default/xui/de/panel_active_object_row.xml b/indra/newview/skins/default/xui/de/panel_active_object_row.xml new file mode 100644 index 0000000000..00de705a30 --- /dev/null +++ b/indra/newview/skins/default/xui/de/panel_active_object_row.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="panel_activeim_row"> + <string name="unknown_obj"> + Unbekanntes Objekt + </string> + <text name="object_name"> + Unbenanntes Objekt + </text> +</panel> diff --git a/indra/newview/skins/default/xui/de/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/de/panel_adhoc_control_panel.xml index 6109d8b0ea..6ad18781f5 100644 --- a/indra/newview/skins/default/xui/de/panel_adhoc_control_panel.xml +++ b/indra/newview/skins/default/xui/de/panel_adhoc_control_panel.xml @@ -1,8 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="panel_im_control_panel"> - <panel name="panel_call_buttons"> - <button label="Anrufen" name="call_btn"/> - <button label="Anruf beenden" name="end_call_btn"/> - <button label="Voice-Steuerung" name="voice_ctrls_btn"/> - </panel> + <layout_stack name="vertical_stack"> + <layout_panel name="call_btn_panel"> + <button label="Anrufen" name="call_btn"/> + </layout_panel> + <layout_panel name="end_call_btn_panel"> + <button label="Anruf beenden" name="end_call_btn"/> + </layout_panel> + <layout_panel name="voice_ctrls_btn_panel"> + <button label="Voice-Steuerung" name="voice_ctrls_btn"/> + </layout_panel> + </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/de/panel_avatar_list_item.xml index ae5c1ec424..0715175dd9 100644 --- a/indra/newview/skins/default/xui/de/panel_avatar_list_item.xml +++ b/indra/newview/skins/default/xui/de/panel_avatar_list_item.xml @@ -23,4 +23,5 @@ </string> <text name="avatar_name" value="Unbekannt"/> <text name="last_interaction" value="0s"/> + <button name="profile_btn" tool_tip="Profil anzeigen"/> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/de/panel_block_list_sidetray.xml index 462009746b..eb4832770e 100644 --- a/indra/newview/skins/default/xui/de/panel_block_list_sidetray.xml +++ b/indra/newview/skins/default/xui/de/panel_block_list_sidetray.xml @@ -4,7 +4,7 @@ Liste der ignorierten Einwohner </text> <scroll_list name="blocked" tool_tip="Liste der zur Zeit ignorierten Einwohner"/> - <button label="Einwohner ignorieren..." label_selected="Einwohner ignorieren..." name="Block resident..." tool_tip="WÀhlen Sie einen Einwohner, um ihn zu ignorieren"/> - <button label="Objekt nach Name ignorieren..." label_selected="Objekt nach Name ignorieren..." name="Block object by name..." tool_tip="Ein Objekt auswÀhlen, um nach Namen zu ignorieren."/> + <button label="Einwohner ignorieren" label_selected="Einwohner ignorieren..." name="Block resident..." tool_tip="WÀhlen Sie einen Einwohner, um ihn zu ignorieren"/> + <button label="Objekt nach Name ignorieren" label_selected="Objekt nach Name ignorieren..." name="Block object by name..." tool_tip="Ein Objekt auswÀhlen, um nach Namen zu ignorieren."/> <button label="Freischalten" label_selected="Freischalten" name="Unblock" tool_tip="Einwohner oder Objekt von der Liste der ignorierten Einwohner oder Objekte entfernen"/> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_bottomtray.xml b/indra/newview/skins/default/xui/de/panel_bottomtray.xml index 11dd99a1d4..7a627e32c8 100644 --- a/indra/newview/skins/default/xui/de/panel_bottomtray.xml +++ b/indra/newview/skins/default/xui/de/panel_bottomtray.xml @@ -8,7 +8,7 @@ </string> <layout_stack name="toolbar_stack"> <layout_panel name="gesture_panel"> - <gesture_combo_box label="Gesten" name="Gesture" tool_tip="Gesten anzeigen/ausblenden"/> + <gesture_combo_list label="Gesten" name="Gesture" tool_tip="Gesten anzeigen/ausblenden"/> </layout_panel> <layout_panel name="movement_panel"> <button label="Bewegen" name="movement_btn" tool_tip="Bewegungssteuerung anzeigen/ausblenden"/> @@ -19,5 +19,15 @@ <layout_panel name="snapshot_panel"> <button label="" name="snapshots" tool_tip="Foto machen"/> </layout_panel> + <layout_panel name="im_well_panel"> + <chiclet_im_well name="im_well"> + <button name="Unread IM messages" tool_tip="IMs"/> + </chiclet_im_well> + </layout_panel> + <layout_panel name="notification_well_panel"> + <chiclet_notification name="notification_well"> + <button name="Unread" tool_tip="Benachrichtigungen"/> + </chiclet_notification> + </layout_panel> </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_edit_classified.xml b/indra/newview/skins/default/xui/de/panel_edit_classified.xml index ca357abda3..a9b5da163f 100644 --- a/indra/newview/skins/default/xui/de/panel_edit_classified.xml +++ b/indra/newview/skins/default/xui/de/panel_edit_classified.xml @@ -24,10 +24,10 @@ <button label="Auf aktuelle Position einstellen" name="set_to_curr_location_btn"/> <combo_box name="content_type"> <combo_item name="mature_ci"> - Mature-Inhalt + Moderater Inhalt </combo_item> <combo_item name="pg_ci"> - PG-Inhalt + Allgemeiner Inhalt </combo_item> </combo_box> <spinner label="L$" name="price_for_listing" tool_tip="Preis fÃŒr Anzeige." value="50"/> diff --git a/indra/newview/skins/default/xui/de/panel_edit_profile.xml b/indra/newview/skins/default/xui/de/panel_edit_profile.xml index 811ca118d6..f643115dbe 100644 --- a/indra/newview/skins/default/xui/de/panel_edit_profile.xml +++ b/indra/newview/skins/default/xui/de/panel_edit_profile.xml @@ -19,6 +19,9 @@ <string name="partner_edit_link_url"> http://www.secondlife.com/account/partners.php?lang=de </string> + <string name="my_account_link_url"> + http://de.secondlife.com/my + </string> <string name="no_partner_text" value="Keiner"/> <scroll_container name="profile_scroll"> <panel name="scroll_content_panel"> @@ -44,7 +47,7 @@ <text name="title_partner_text" value="Mein Partner:"/> <text name="partner_edit_link" value="[[URL] bearbeiten]"/> <panel name="partner_data_panel"> - <text name="partner_text" value="[FIRST] [LAST]"/> + <name_box name="partner_text" value="[FIRST] [LAST]"/> </panel> </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_friends.xml b/indra/newview/skins/default/xui/de/panel_friends.xml index bb2adb36fe..10c5954775 100644 --- a/indra/newview/skins/default/xui/de/panel_friends.xml +++ b/indra/newview/skins/default/xui/de/panel_friends.xml @@ -1,41 +1,31 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="friends"> <string name="Multiple"> - Mehrere Freunde... + Mehrere Freunde </string> - <scroll_list name="friend_list" - tool_tip="Halten Sie die Tasten âUmschaltâ oder âStrgâ gedrÃŒckt, um durch Klicken mehrere Freunde auszuwÀhlen."> - <column name="icon_online_status" tool_tip="Online-Status" /> - <column label="Name" name="friend_name" tool_tip="Name" /> - <column name="icon_visible_online" tool_tip="Freund kann sehen, wenn Sie online sind" /> - <column name="icon_visible_map" tool_tip="Freund kann Sie auf der Karte finden" /> - <column name="icon_edit_mine" - tool_tip="Freunde können Objekte bearbeiten, löschen und an sich nehmen" /> - <column name="icon_edit_theirs" - tool_tip="Sie können die Objekte dieses Freunds bearbeiten" /> + <scroll_list name="friend_list" tool_tip="Halten Sie die Tasten âUmschaltâ oder âStrgâ gedrÃŒckt, um durch Klicken mehrere Freunde auszuwÀhlen."> + <column name="icon_online_status" tool_tip="Online-Status"/> + <column label="Name" name="friend_name" tool_tip="Name"/> + <column name="icon_visible_online" tool_tip="Freund kann sehen, wenn Sie online sind"/> + <column name="icon_visible_map" tool_tip="Freund kann Sie auf der Karte finden"/> + <column name="icon_edit_mine" tool_tip="Freunde können Objekte bearbeiten, löschen und an sich nehmen"/> + <column name="icon_edit_theirs" tool_tip="Sie können die Objekte dieses Freunds bearbeiten"/> </scroll_list> <panel name="rights_container"> <text name="friend_name_label"> WÀhlen Sie den/die Freund(e) aus, dessen/deren Rechte Sie Àndern möchten... </text> - <check_box label="Kann meinen Online-Status sehen" name="online_status_cb" - tool_tip="Festlegen, ob dieser Freund meinen Online-Status auf seiner Freundesliste oder Visitenkarte einsehen kann" /> - <check_box label="Kann mich auf der Weltkarte sehen" name="map_status_cb" - tool_tip="Festlegen, ob dieser Freund auf seiner Karte meinen Standort sehen kann" /> - <check_box label="Kann meine Objekte verÀndern" name="modify_status_cb" - tool_tip="Festlegen, ob dieser Freund meine Objekte verÀndern kann" /> + <check_box label="Kann meinen Online-Status sehen" name="online_status_cb" tool_tip="Festlegen, ob dieser Freund meinen Online-Status auf seiner Freundesliste oder Visitenkarte einsehen kann"/> + <check_box label="Kann mich auf der Weltkarte sehen" name="map_status_cb" tool_tip="Festlegen, ob dieser Freund auf seiner Karte meinen Standort sehen kann"/> + <check_box label="Kann meine Objekte verÀndern" name="modify_status_cb" tool_tip="Festlegen, ob dieser Freund meine Objekte verÀndern kann"/> <text name="process_rights_label"> Rechte werden geÀndert... </text> </panel> - <button label="IM/Anruf" name="im_btn" tool_tip="Beginnt eine Instant Message-Sitzung" /> - <button label="Profil" name="profile_btn" - tool_tip="Bilder, Gruppen und andere Informationen anzeigen" /> - <button label="Teleport" name="offer_teleport_btn" - tool_tip="Bieten Sie diesem Freund einen Teleport an Ihre Position an" /> - <button label="Zahlen" name="pay_btn" tool_tip="Diesem Freund Linden-Dollar (L$) geben" /> - <button label="Entfernen" name="remove_btn" - tool_tip="Diese Person von Ihrer Freundesliste entfernen" /> - <button label="HinzufÃŒgen" name="add_btn" - tool_tip="Bieten Sie einem Einwohner die Freundschaft an" /> + <button label="IM/Anruf" name="im_btn" tool_tip="Beginnt eine Instant Message-Sitzung"/> + <button label="Profil" name="profile_btn" tool_tip="Bilder, Gruppen und andere Informationen anzeigen"/> + <button label="Teleportieren" name="offer_teleport_btn" tool_tip="Bieten Sie diesem Freund einen Teleport an Ihre Position an"/> + <button label="Zahlen" name="pay_btn" tool_tip="Diesem Freund Linden-Dollar (L$) geben"/> + <button label="Entfernen" name="remove_btn" tool_tip="Diese Person von Ihrer Freundesliste entfernen"/> + <button label="HinzufÃŒgen" name="add_btn" tool_tip="Bieten Sie einem Einwohner die Freundschaft an"/> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_group_control_panel.xml b/indra/newview/skins/default/xui/de/panel_group_control_panel.xml index 6a7546457f..9cb72fafff 100644 --- a/indra/newview/skins/default/xui/de/panel_group_control_panel.xml +++ b/indra/newview/skins/default/xui/de/panel_group_control_panel.xml @@ -1,9 +1,17 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="panel_im_control_panel"> - <button label="Gruppeninfo" name="group_info_btn"/> - <panel name="panel_call_buttons"> - <button label="Gruppe anrufen" name="call_btn"/> - <button label="Anruf beenden" name="end_call_btn"/> - <button label="Voice-Steuerung öffnen" name="voice_ctrls_btn"/> - </panel> + <layout_stack name="vertical_stack"> + <layout_panel name="group_info_btn_panel"> + <button label="Gruppenprofil" name="group_info_btn"/> + </layout_panel> + <layout_panel name="call_btn_panel"> + <button label="Gruppe anrufen" name="call_btn"/> + </layout_panel> + <layout_panel name="end_call_btn_panel"> + <button label="Anruf beenden" name="end_call_btn"/> + </layout_panel> + <layout_panel name="voice_ctrls_btn_panel"> + <button label="Voice-Steuerung öffnen" name="voice_ctrls_btn"/> + </layout_panel> + </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_group_general.xml b/indra/newview/skins/default/xui/de/panel_group_general.xml index e6abd4349d..8904193f18 100644 --- a/indra/newview/skins/default/xui/de/panel_group_general.xml +++ b/indra/newview/skins/default/xui/de/panel_group_general.xml @@ -22,16 +22,16 @@ Bewegen Sie die Maus ÃŒber die Optionen, um weitere Informationen anzuzeigen. Mein Titel </text> <combo_box name="active_title" tool_tip="Legt fest, was im Namensschild Ihres Avatars angezeigt wird, wenn diese Gruppe aktiviert ist."/> - <check_box label="Notizen erhalten" name="receive_notices" tool_tip="Festlegen, ob Sie von dieser Gruppe Mitteilungen erhalten können. Deaktivieren Sie diese Option, wenn Sie von der Gruppe Spam erhalten."/> + <check_box label="Gruppenmitteilungen erhalten" name="receive_notices" tool_tip="Festlegen, ob Sie von dieser Gruppe Mitteilungen erhalten können. Deaktivieren Sie diese Option, wenn Sie von der Gruppe Spam erhalten."/> <check_box label="In meinem Profil anzeigen" name="list_groups_in_profile" tool_tip="Steuert, ob diese Gruppe in Ihrem Profil angezeigt wird"/> <panel name="preferences_container"> <check_box label="Registrierung offen" name="open_enrollement" tool_tip="Festlegen, ob der Gruppenbeitritt ohne Einladung zulÀssig ist."/> <check_box label="BeitrittsgebÃŒhr" name="check_enrollment_fee" tool_tip="Festlegen, ob Neumitglieder eine BeitrittsgebÃŒhr zahlen mÃŒssen"/> <spinner label="L$" name="spin_enrollment_fee" tool_tip="Wenn BeitrittsgebÃŒhr aktiviert ist, mÃŒssen neue Mitglieder diesen Betrag zahlen."/> <check_box initial_value="true" label="In Suche anzeigen" name="show_in_group_list" tool_tip="Diese Gruppe in Suchergebnissen anzeigen"/> - <combo_box name="group_mature_check" tool_tip="Festlegen, ob die Informationen Ihrer Gruppe âModeratâ sind"> - <combo_box.item label="PG-Inhalt" name="pg"/> - <combo_box.item label="Mature-Inhalt" name="mature"/> + <combo_box name="group_mature_check" tool_tip="Legt fest, ob Ihre Gruppeninformation moderate Inhalte enthÀlt"> + <combo_box.item label="Allgemeiner Inhalt" name="pg"/> + <combo_box.item label="Moderater Inhalt" name="mature"/> </combo_box> </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/de/panel_group_info_sidetray.xml index 71a0adcdfb..f70291c922 100644 --- a/indra/newview/skins/default/xui/de/panel_group_info_sidetray.xml +++ b/indra/newview/skins/default/xui/de/panel_group_info_sidetray.xml @@ -31,6 +31,8 @@ </accordion> <panel name="button_row"> <button label="Erstellen" label_selected="Neue Gruppe" name="btn_create"/> + <button label="Gruppen-Chat" name="btn_chat"/> + <button label="Gruppe anrufen" name="btn_call"/> <button label="Speichern" label_selected="Speichern" name="btn_apply"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_group_invite.xml b/indra/newview/skins/default/xui/de/panel_group_invite.xml index 0712722cb3..8e1fb5e4b2 100644 --- a/indra/newview/skins/default/xui/de/panel_group_invite.xml +++ b/indra/newview/skins/default/xui/de/panel_group_invite.xml @@ -7,15 +7,13 @@ (wird geladen...) </panel.string> <panel.string name="already_in_group"> - Einige Avatare sind bereits Mitglied und wurden nicht eingeladen. + Einige der ausgewÀhlten Einwohner sind bereits Gruppenmitglieder und haben aus diesem Grund keine Einladung erhalten. </panel.string> <text name="help_text"> - Sie können mehrere Einwohner in Ihre -Gruppe einladen. Klicken Sie hierzu -auf âEinwohnerliste öffnenâ. + Sie können mehrere Einwohner auswÀhlen, um diese in Ihre Gruppe einzuladen. Klicken Sie hierzu auf âEinwohnerliste öffnenâ. </text> <button label="Einwohnerliste öffnen" name="add_button" tool_tip=""/> - <name_list name="invitee_list" tool_tip="Halten Sie zur Mehrfachauswahl die Strg-Taste gedrÃŒckt und klicken Sie auf die Einwohnernamen."/> + <name_list name="invitee_list" tool_tip="Halten Sie zur Mehrfachauswahl die Strg-Taste gedrÃŒckt und klicken Sie auf die Namen."/> <button label="Auswahl aus Liste löschen" name="remove_button" tool_tip="Die oben ausgewÀhlten Einwohner von der Einladungsliste entfernen."/> <text name="role_text"> WÀhlen Sie eine Rolle aus: diff --git a/indra/newview/skins/default/xui/de/panel_group_list_item.xml b/indra/newview/skins/default/xui/de/panel_group_list_item.xml index 1b37c35ea5..d097a2b18c 100644 --- a/indra/newview/skins/default/xui/de/panel_group_list_item.xml +++ b/indra/newview/skins/default/xui/de/panel_group_list_item.xml @@ -1,4 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="group_list_item"> <text name="group_name" value="Unbekannt"/> + <button name="profile_btn" tool_tip="Profil anzeigen"/> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_group_notices.xml b/indra/newview/skins/default/xui/de/panel_group_notices.xml index 6d0fd9eefb..d2ba40ae2c 100644 --- a/indra/newview/skins/default/xui/de/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/de/panel_group_notices.xml @@ -1,11 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Mitteilungen" name="notices_tab"> <panel.string name="help_text"> - Mit Mitteilungen können Sie eine Nachricht und -Objekte im Anhang versenden. Mitteilungen werden -nur an Mitglieder mit einer entsprechenden Rolle -gesendet. Mitteilungen können unter - 'Allgemein ' ausgeschaltet werden. + Mit Mitteilungen können Sie eine Nachricht und auch einen Anhang versenden. +Mitteilungen werden nur an Gruppenmitglieder verschickt, deren Rolle es zulÀsst, dass sie Mitteilungen empfangen. +Sie können auf der Registerkarte âAllgemeinâ wÀhlen, ob Sie Mitteilungen empfangen möchten. </panel.string> <panel.string name="no_notices_text"> Keine Àlteren Mitteilungen. @@ -24,7 +22,7 @@ Maximal 200 pro Gruppe tÀglich Nicht gefunden. </text> <button label="Neue Mitteilung erstellen" label_selected="Neue Mitteilung" name="create_new_notice" tool_tip="Neue Mitteilung erstellen"/> - <button label="Aktualisieren" label_selected="Liste aktualisieren" name="refresh_notices"/> + <button label="Aktualisieren" label_selected="Liste aktualisieren" name="refresh_notices" tool_tip="Mitteilungsliste aktualisieren"/> <panel label="Neue Mitteilung" name="panel_create_new_notice"> <text name="lbl"> Mitteilung schreiben @@ -39,11 +37,11 @@ Maximal 200 pro Gruppe tÀglich AnhÀngen: </text> <text name="string"> - Hierhin ziehen, um etwas anzuhÀngen -- > + Das Objekt hierin ziehen und ablegen, um es anzuhÀngen: </text> <button label="Entfernen" label_selected="Anhang entfernen" name="remove_attachment"/> <button label="Senden" label_selected="Senden" name="send_notice"/> - <group_drop_target name="drop_target" tool_tip="Drag an inventory item onto the message box to send it with the notice. You must have permission to copy and transfer the object to send it with the notice."/> + <group_drop_target name="drop_target" tool_tip="Ziehen Sie ein Objekt aus Ihrem Inventar auf dieses Feld, um es mit dieser Mitteilung zu versenden. Um das Objekt anhÀngen zu können, mÃŒssen Sie die Erlaubnis zum Kopieren und Ãbertragen besitzen."/> </panel> <panel label="Ãltere Notiz anzeigen" name="panel_view_past_notice"> <text name="lbl"> diff --git a/indra/newview/skins/default/xui/de/panel_im_control_panel.xml b/indra/newview/skins/default/xui/de/panel_im_control_panel.xml index d91c7c0dcf..8132f769cb 100644 --- a/indra/newview/skins/default/xui/de/panel_im_control_panel.xml +++ b/indra/newview/skins/default/xui/de/panel_im_control_panel.xml @@ -1,13 +1,27 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="panel_im_control_panel"> <text name="avatar_name" value="Unbekannt"/> - <button label="Profil" name="view_profile_btn"/> - <button label="Freund hinzufÃŒgen" name="add_friend_btn"/> - <button label="Teleportieren" name="teleport_btn"/> - <button label="Teilen" name="share_btn"/> - <panel name="panel_call_buttons"> - <button label="Anrufen" name="call_btn"/> - <button label="Anruf beenden" name="end_call_btn"/> - <button label="Voice-Steuerung" name="voice_ctrls_btn"/> - </panel> + <layout_stack name="button_stack"> + <layout_panel name="view_profile_btn_panel"> + <button label="Profil" name="view_profile_btn"/> + </layout_panel> + <layout_panel name="add_friend_btn_panel"> + <button label="Freund hinzufÃŒgen" name="add_friend_btn"/> + </layout_panel> + <layout_panel name="teleport_btn_panel"> + <button label="Teleportieren" name="teleport_btn"/> + </layout_panel> + <layout_panel name="share_btn_panel"> + <button label="Teilen" name="share_btn"/> + </layout_panel> + <layout_panel name="call_btn_panel"> + <button label="Anrufen" name="call_btn"/> + </layout_panel> + <layout_panel name="end_call_btn_panel"> + <button label="Anruf beenden" name="end_call_btn"/> + </layout_panel> + <layout_panel name="voice_ctrls_btn_panel"> + <button label="Voice-Steuerung" name="voice_ctrls_btn"/> + </layout_panel> + </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_landmark_info.xml b/indra/newview/skins/default/xui/de/panel_landmark_info.xml index 1a68c9b351..9cef7b6d35 100644 --- a/indra/newview/skins/default/xui/de/panel_landmark_info.xml +++ b/indra/newview/skins/default/xui/de/panel_landmark_info.xml @@ -21,6 +21,7 @@ <string name="icon_PG" value="parcel_drk_PG"/> <string name="icon_M" value="parcel_drk_M"/> <string name="icon_R" value="parcel_drk_R"/> + <button name="back_btn" tool_tip="Hinten"/> <text name="title" value="Ortsprofil"/> <scroll_container name="place_scroll"> <panel name="scrolling_panel"> diff --git a/indra/newview/skins/default/xui/de/panel_login.xml b/indra/newview/skins/default/xui/de/panel_login.xml index 62973be4cb..bd82fc6872 100644 --- a/indra/newview/skins/default/xui/de/panel_login.xml +++ b/indra/newview/skins/default/xui/de/panel_login.xml @@ -6,36 +6,40 @@ <panel.string name="forgot_password_url"> http://secondlife.com/account/request.php?lang=de </panel.string> - <panel name="login_widgets"> - <text name="first_name_text"> - Vorname: - </text> - <line_editor name="first_name_edit" tool_tip="[SECOND_LIFE] Vorname"/> - <text name="last_name_text"> - Nachname: - </text> - <line_editor name="last_name_edit" tool_tip="[SECOND_LIFE] Nachname"/> - <text name="password_text"> - Kennwort: - </text> - <button label="Login" label_selected="Login" name="connect_btn"/> - <text name="start_location_text"> - Startposition: - </text> - <combo_box name="start_location_combo"> - <combo_box.item label="Mein letzter Standort" name="MyLastLocation"/> - <combo_box.item label="Mein Zuhause" name="MyHome"/> - <combo_box.item label="<Region eingeben>" name="Typeregionname"/> - </combo_box> - <check_box label="Kennwort merken" name="remember_check"/> - <text name="create_new_account_text"> - Neues Konto erstellen - </text> - <text name="forgot_password_text"> - Namen oder Kennwort vergessen? - </text> - <text name="channel_text"> - [VERSION] - </text> - </panel> + <layout_stack name="login_widgets"> + <layout_panel name="login"> + <text name="first_name_text"> + Vorname: + </text> + <line_editor label="Vorname" name="first_name_edit" tool_tip="[SECOND_LIFE] Vorname"/> + <text name="last_name_text"> + Nachname: + </text> + <line_editor label="Nachname" name="last_name_edit" tool_tip="[SECOND_LIFE] Nachname"/> + <text name="password_text"> + Kennwort: + </text> + <check_box label="Kennwort merken" name="remember_check"/> + <text name="start_location_text"> + Hier anfangen: + </text> + <combo_box name="start_location_combo"> + <combo_box.item label="Mein letzter Standort" name="MyLastLocation"/> + <combo_box.item label="Mein Zuhause" name="MyHome"/> + <combo_box.item label="<Region eingeben>" name="Typeregionname"/> + </combo_box> + <button label="Anmelden" name="connect_btn"/> + </layout_panel> + <layout_panel name="links"> + <text name="create_new_account_text"> + Registrieren + </text> + <text name="forgot_password_text"> + Namen oder Kennwort vergessen? + </text> + <text name="login_help"> + Sie brauchen Hilfe? + </text> + </layout_panel> + </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_main_inventory.xml b/indra/newview/skins/default/xui/de/panel_main_inventory.xml index 3d1b89ff40..aa0b43b550 100644 --- a/indra/newview/skins/default/xui/de/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/de/panel_main_inventory.xml @@ -3,10 +3,10 @@ <panel.string name="Title"> Sonstiges </panel.string> - <filter_editor label="Filter" name="inventory search editor"/> + <filter_editor label="Inventar filtern" name="inventory search editor"/> <tab_container name="inventory filter tabs"> - <inventory_panel label="Alle Objekte" name="All Items"/> - <inventory_panel label="Letzte Objekte" name="Recent Items"/> + <inventory_panel label="MEIN INVENTAR" name="All Items"/> + <inventory_panel label="AKTUELL" name="Recent Items"/> </tab_container> <panel name="bottom_panel"> <button name="options_gear_btn" tool_tip="ZusÀtzliche Optionen anzeigen"/> @@ -29,10 +29,10 @@ <menu_item_call label="Papierkorb ausleeren" name="Empty Trash"/> <menu_item_call label="FundstÃŒcke ausleeren" name="Empty Lost And Found"/> </menu> - <menu label="Bauen" name="Create"> + <menu label="Erstellen" name="Create"> <menu_item_call label="Neuer Ordner" name="New Folder"/> <menu_item_call label="Neues Skript" name="New Script"/> - <menu_item_call label="Neue Notiz" name="New Note"/> + <menu_item_call label="Neue Notizkarte" name="New Note"/> <menu_item_call label="Neue Geste" name="New Gesture"/> <menu label="Neue Kleider" name="New Clothes"> <menu_item_call label="Neues Hemd" name="New Shirt"/> diff --git a/indra/newview/skins/default/xui/de/panel_media_settings_general.xml b/indra/newview/skins/default/xui/de/panel_media_settings_general.xml index b657333439..75c9057571 100644 --- a/indra/newview/skins/default/xui/de/panel_media_settings_general.xml +++ b/indra/newview/skins/default/xui/de/panel_media_settings_general.xml @@ -1,19 +1,19 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Allgemein" name="Media Settings General"> <text name="home_label"> - Home-URL: + Homepage: </text> <text name="home_fails_whitelist_label"> - (Diese URL befindet sich nicht auf der festgelegten Whitelist) + (Diese Seite wird von der angegebenen Whiteliste nicht zugelassen) </text> - <line_editor name="home_url" tool_tip="Die Home-URL fÃŒr diese Medienquelle"/> + <line_editor name="home_url" tool_tip="Die Start-URL fÃŒr diese Medienquelle"/> <text name="preview_label"> Vorschau </text> <text name="current_url_label"> - Derzeitige URL: + Aktuelle Seite: </text> - <text name="current_url" tool_tip="Die derzeitige URL fÃŒr diese Medienquelle" value=""/> + <text name="current_url" tool_tip="Die aktuelle Seite fÃŒr diese Medienquelle" value=""/> <button label="ZurÃŒcksetzen" name="current_url_reset_btn"/> <check_box initial_value="false" label="Automatisch wiederholen" name="auto_loop"/> <check_box initial_value="false" label="Interaktion beim ersten Anklicken" name="first_click_interact"/> diff --git a/indra/newview/skins/default/xui/de/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/de/panel_media_settings_permissions.xml index 603fb67fd2..7ee0074a3b 100644 --- a/indra/newview/skins/default/xui/de/panel_media_settings_permissions.xml +++ b/indra/newview/skins/default/xui/de/panel_media_settings_permissions.xml @@ -1,9 +1,20 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Steuerung" name="Media settings for controls"> - <check_box initial_value="false" label="Navigation & InteraktivitÀt deaktivieren" name="perms_owner_interact"/> - <check_box initial_value="false" label="Kontrollleiste verstecken" name="perms_owner_control"/> - <check_box initial_value="false" label="Navigation & InteraktivitÀt deaktivieren" name="perms_group_interact"/> - <check_box initial_value="false" label="Kontrollleiste verstecken" name="perms_group_control"/> - <check_box initial_value="false" label="Navigation & InteraktivitÀt deaktivieren" name="perms_anyone_interact"/> - <check_box initial_value="false" label="Kontrollleiste verstecken" name="perms_anyone_control"/> +<panel label="Anpassen" name="Media settings for controls"> + <text name="controls_label"> + Steuerung: + </text> + <combo_box name="controls"> + <combo_item name="Standard"> + Standard + </combo_item> + <combo_item name="Mini"> + Mini + </combo_item> + </combo_box> + <check_box initial_value="false" label="Naviation & Interaktion zulassen" name="perms_owner_interact"/> + <check_box initial_value="false" label="Steuerungsleiste anzeigen" name="perms_owner_control"/> + <check_box initial_value="false" label="Naviation & Interaktion zulassen" name="perms_group_interact"/> + <check_box initial_value="false" label="Steuerungsleiste anzeigen" name="perms_group_control"/> + <check_box initial_value="false" label="Naviation & Interaktion zulassen" name="perms_anyone_interact"/> + <check_box initial_value="false" label="Steuerungsleiste anzeigen" name="perms_anyone_control"/> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_media_settings_security.xml b/indra/newview/skins/default/xui/de/panel_media_settings_security.xml index d94d8b9375..8ff013f66b 100644 --- a/indra/newview/skins/default/xui/de/panel_media_settings_security.xml +++ b/indra/newview/skins/default/xui/de/panel_media_settings_security.xml @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Sicherheit" name="Media Settings Security"> - <check_box initial_value="false" label="Zugang nur fÃŒr bestimmte URLs ermöglichen (mittels PrÀfix)" name="whitelist_enable"/> + <check_box initial_value="false" label="Nur Zugriff auf festgelegte URL-Muster zulassen" name="whitelist_enable"/> <text name="home_url_fails_some_items_in_whitelist"> - EintrÀge, die auf ungÃŒltige Home-URLs hinweisen, sind markiert: + EintrÀge, die fÃŒr die Startseite nicht akzeptiert werden, sind markiert: </text> <button label="HinzufÃŒgen" name="whitelist_add"/> <button label="Löschen" name="whitelist_del"/> <text name="home_url_fails_whitelist"> - Warnung: Die Home-URL, die in der Registerkarte "Allgemein" angegeben wurde, entspricht nicht den EintrÀgen auf der Whitelist. Sie wurde deaktiviert, bis ein gÃŒltiger Eintrag angegeben wird. + Achtung: Die auf der Registerkarte Allgemein festgelegte Startseite wird von der Whitelist nicht akzeptiert. Sie wurde deaktiviert bis ein gÃŒltiger Eintrag hinzugefÃŒgt wurde. </text> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_my_profile.xml b/indra/newview/skins/default/xui/de/panel_my_profile.xml index 8357e4318d..618ed88846 100644 --- a/indra/newview/skins/default/xui/de/panel_my_profile.xml +++ b/indra/newview/skins/default/xui/de/panel_my_profile.xml @@ -4,52 +4,44 @@ [ACCTTYPE] [PAYMENTINFO] [AGEVERIFICATION] </string> + <string name="payment_update_link_url"> + http://www.secondlife.com/account/billing.php?lang=de-DE + </string> + <string name="partner_edit_link_url"> + http://www.secondlife.com/account/partners.php?lang=de + </string> + <string name="my_account_link_url" value="http://secondlife.com/my/account/index.php?lang=de-DE"/> <string name="no_partner_text" value="Keiner"/> + <string name="no_group_text" value="Keiner"/> <string name="RegisterDateFormat"> [REG_DATE] ([AGE]) </string> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="second_life_image_panel"> - <icon label="" name="2nd_life_edit_icon" tool_tip="Klicken Sie unten auf die SchaltflÀche Profil bearbeiten, um das Bild zu Àndern."/> - <text name="title_sl_descr_text" value="[SECOND_LIFE]:"/> - <expandable_text name="sl_description_edit"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. - </expandable_text> - </panel> - <panel name="first_life_image_panel"> - <icon label="" name="real_world_edit_icon" tool_tip="Klicken Sie unten auf die SchaltflÀche Profil bearbeiten, um das Bild zu Àndern."/> - <text name="title_rw_descr_text" value="Echtes Leben:"/> - <expandable_text name="fl_description_edit"> - Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. - </expandable_text> - </panel> - <text name="me_homepage_text"> - Webseite: - </text> - <text name="title_member_text" value="Mitglied seit:"/> - <text name="register_date" value="05/31/1976"/> - <text name="title_acc_status_text" value="Kontostatus:"/> - <text name="acc_status_text" value="Einwohner. Keine Zahlungsinfo archiviert."/> - <text name="title_partner_text" value="Partner:"/> - <panel name="partner_data_panel"> - <text name="partner_text" value="[FIRST] [LAST]"/> - </panel> - <text name="title_groups_text" value="Gruppen:"/> - <expandable_text name="sl_groups"> - Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. - </expandable_text> - </panel> - </scroll_container> - <panel name="profile_buttons_panel"> - <button label="Freund hinzufÃŒgen" name="add_friend"/> - <button label="IM" name="im"/> - <button label="Anrufen" name="call"/> - <button label="Karte" name="show_on_map_btn"/> - <button label="Teleportieren" name="teleport"/> - </panel> - <panel name="profile_me_buttons_panel"> - <button label="Profil bearbeiten" name="edit_profile_btn"/> - <button label="Aussehen bearbeiten" name="edit_appearance_btn"/> - </panel> + <layout_stack name="layout"> + <layout_panel name="profile_stack"> + <scroll_container name="profile_scroll"> + <panel name="scroll_content_panel"> + <panel name="second_life_image_panel"> + <icon label="" name="2nd_life_edit_icon" tool_tip="Klicken Sie unten auf die SchaltflÀche Profil bearbeiten, um das Bild zu Àndern."/> + <text name="title_sl_descr_text" value="[SECOND_LIFE]:"/> + </panel> + <panel name="first_life_image_panel"> + <icon label="" name="real_world_edit_icon" tool_tip="Klicken Sie unten auf die SchaltflÀche Profil bearbeiten, um das Bild zu Àndern."/> + <text name="title_rw_descr_text" value="Echtes Leben:"/> + </panel> + <text name="title_member_text" value="Einwohner seit:"/> + <text name="title_acc_status_text" value="Kontostatus:"/> + <text name="acc_status_text"> + Einwohner. Keine Zahlungsinfo archiviert. + Linden. + </text> + <text name="title_partner_text" value="Partner:"/> + <text name="title_groups_text" value="Gruppen:"/> + </panel> + </scroll_container> + </layout_panel> + <layout_panel name="profile_me_buttons_panel"> + <button label="Profil bearbeiten" name="edit_profile_btn" tool_tip="Ihre persönlichen Informationen bearbeiten"/> + <button label="Aussehen bearbeiten" name="edit_appearance_btn" tool_tip="Ihr Aussehen bearbeiten: KörpermaÃe, Bekleidung, usw."/> + </layout_panel> + </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_navigation_bar.xml b/indra/newview/skins/default/xui/de/panel_navigation_bar.xml index 5bf78be3d3..ab59c207bf 100644 --- a/indra/newview/skins/default/xui/de/panel_navigation_bar.xml +++ b/indra/newview/skins/default/xui/de/panel_navigation_bar.xml @@ -10,6 +10,6 @@ </search_combo_box> </panel> <favorites_bar name="favorite"> - <chevron_button name=">>" tool_tip="Zeige weitere meiner Favoriten an"/> + <chevron_button name=">>" tool_tip="Mehr meiner Favoriten anzeigen"/> </favorites_bar> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_notes.xml b/indra/newview/skins/default/xui/de/panel_notes.xml index 994c02935c..e6a63fc0c8 100644 --- a/indra/newview/skins/default/xui/de/panel_notes.xml +++ b/indra/newview/skins/default/xui/de/panel_notes.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Notizen & PrivatsphÀre" name="panel_notes"> <layout_stack name="layout"> - <panel name="notes_stack"> + <layout_panel name="notes_stack"> <scroll_container name="profile_scroll"> <panel name="profile_scroll_panel"> <text name="status_message" value="Meine Notizen:"/> @@ -11,13 +11,13 @@ <check_box label="meine Objekte bearbeiten, löschen oder nehmen." name="objects_check"/> </panel> </scroll_container> - </panel> - <panel name="notes_buttons_panel"> - <button label="HinzufÃŒgen" name="add_friend"/> - <button label="IM" name="im"/> - <button label="Anrufen" name="call"/> - <button label="Karte" name="show_on_map_btn"/> - <button label="Teleportieren" name="teleport"/> - </panel> + </layout_panel> + <layout_panel name="notes_buttons_panel"> + <button label="Freund hinzufÃŒgen" name="add_friend" tool_tip="Bieten Sie dem Einwohner die Freundschaft an"/> + <button label="IM" name="im" tool_tip="Instant Messenger öffnen"/> + <button label="Anrufen" name="call" tool_tip="Diesen Einwohner anrufen"/> + <button label="Karte" name="show_on_map_btn" tool_tip="Einwohner auf Karte anzeigen"/> + <button label="Teleportieren" name="teleport" tool_tip="Teleport anbieten"/> + </layout_panel> </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml index da871cad47..8d2dd84512 100644 --- a/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml +++ b/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml @@ -1,13 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="Outfits"> - <accordion name="outfits_accordion"> - <accordion_tab name="tab_outfits" title="Outfit-Leiste"/> - <accordion_tab name="tab_cof" title="Aktuelles Outfit"/> - </accordion> - <button label=">" name="selector" tool_tip="Outfit-Eigenschaften anzeigen"/> +<panel label="Sonstiges" name="Outfits"> + <tab_container name="appearance_tabs"> + <inventory_panel label="MEINE OUTFITS" name="outfitslist_tab"/> + <inventory_panel label="AKTUELLES OUTFIT" name="cof_accordionpanel"/> + </tab_container> <panel name="bottom_panel"> <button name="options_gear_btn" tool_tip="ZusÀtzliche Optionen anzeigen"/> - <button name="add_btn" tool_tip="Neues Objekt hinzufÃŒgen"/> <dnd_button name="trash_btn" tool_tip="Auswahl löschen"/> + <button label="Outfit speichern" name="make_outfit_btn" tool_tip="Aussehen als Outfit speichern"/> + <button label="Anziehen" name="wear_btn" tool_tip="AusgewÀhltes Outfit tragen"/> + <button label="M" name="look_edit_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_outfits_inventory_gear_default.xml b/indra/newview/skins/default/xui/de/panel_outfits_inventory_gear_default.xml index ec4d109acd..ad0e039070 100644 --- a/indra/newview/skins/default/xui/de/panel_outfits_inventory_gear_default.xml +++ b/indra/newview/skins/default/xui/de/panel_outfits_inventory_gear_default.xml @@ -1,6 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="menu_gear_default"> - <menu_item_call label="Neues Outfit" name="new"/> - <menu_item_call label="Outfit anziehen" name="wear"/> + <menu_item_call label="Aktuelles Outfit ersetzen" name="wear"/> + <menu_item_call label="Vom aktuellen Outfit entfernen" name="remove"/> + <menu_item_call label="Umbenennen" name="rename"/> + <menu_item_call label="Link entfernen" name="remove_link"/> <menu_item_call label="Outfit löschen" name="delete"/> </menu> diff --git a/indra/newview/skins/default/xui/de/panel_people.xml b/indra/newview/skins/default/xui/de/panel_people.xml index 3e99272833..91a17e127a 100644 --- a/indra/newview/skins/default/xui/de/panel_people.xml +++ b/indra/newview/skins/default/xui/de/panel_people.xml @@ -49,5 +49,6 @@ <button label="Teleportieren" name="teleport_btn" tool_tip="Teleport anbieten"/> <button label="Gruppenprofil" name="group_info_btn" tool_tip="Gruppeninformationen anzeigen"/> <button label="Gruppen-Chat" name="chat_btn" tool_tip="Chat öffnen"/> + <button label="Gruppe anrufen" name="group_call_btn" tool_tip="Diese Gruppe anrufen"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_picks.xml b/indra/newview/skins/default/xui/de/panel_picks.xml index a1588e5930..a07bc170f6 100644 --- a/indra/newview/skins/default/xui/de/panel_picks.xml +++ b/indra/newview/skins/default/xui/de/panel_picks.xml @@ -2,20 +2,16 @@ <panel label="Auswahl" name="panel_picks"> <string name="no_picks" value="Keine Auswahl"/> <string name="no_classifieds" value="Keine Anzeigen"/> - <text name="empty_picks_panel_text"> - Es wurde keine Auswahl getroffen/keine Anzeigen ausgewÀhlt - </text> <accordion name="accordion"> <accordion_tab name="tab_picks" title="Auswahl"/> <accordion_tab name="tab_classifieds" title="Anzeigen"/> </accordion> <panel label="bottom_panel" name="edit_panel"> - <button name="new_btn" tool_tip="Aktuellen Standort zur Auswahl hinzufÃŒgen"/> + <button name="new_btn" tool_tip="An aktuellem Standort neue Auswahl oder Anzeige erstellen"/> </panel> <panel name="buttons_cucks"> - <button label="Info" name="info_btn"/> - <button label="Teleportieren" name="teleport_btn"/> - <button label="Karte" name="show_on_map_btn"/> - <button label="âŒ" name="overflow_btn"/> + <button label="Info" name="info_btn" tool_tip="Auswahl-Information anzeigen"/> + <button label="Teleportieren" name="teleport_btn" tool_tip="Zu entsprechendem Standort teleportieren"/> + <button label="Karte" name="show_on_map_btn" tool_tip="Den entsprechenden Standort auf der Karte anzeigen"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_place_profile.xml b/indra/newview/skins/default/xui/de/panel_place_profile.xml index e012acac8d..94a43833bf 100644 --- a/indra/newview/skins/default/xui/de/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/de/panel_place_profile.xml @@ -6,7 +6,7 @@ <string name="available" value="verfÃŒgbar"/> <string name="allocated" value="vergeben"/> <string name="title_place" value="Ortsprofil"/> - <string name="title_teleport_history" value="Teleport-Verlauf"/> + <string name="title_teleport_history" value="Speicherort der Teleport-Liste"/> <string name="not_available" value="k.A."/> <string name="unknown" value="(unbekannt)"/> <string name="public" value="(öffentlich)"/> @@ -56,6 +56,7 @@ <string name="icon_ScriptsNo" value="parcel_drk_ScriptsNo"/> <string name="icon_Damage" value="parcel_drk_Damage"/> <string name="icon_DamageNo" value="parcel_drk_DamageNo"/> + <button name="back_btn" tool_tip="Hinten"/> <text name="title" value="Ortsprofil"/> <scroll_container name="place_scroll"> <panel name="scrolling_panel"> diff --git a/indra/newview/skins/default/xui/de/panel_places.xml b/indra/newview/skins/default/xui/de/panel_places.xml index a2f98bf199..8ee26f4e5f 100644 --- a/indra/newview/skins/default/xui/de/panel_places.xml +++ b/indra/newview/skins/default/xui/de/panel_places.xml @@ -1,12 +1,13 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Orte" name="places panel"> <string name="landmarks_tab_title" value="MEINE LANDMARKEN"/> - <string name="teleport_history_tab_title" value="TELEPORT-VERLAUF"/> - <filter_editor label="Filter" name="Filter"/> + <string name="teleport_history_tab_title" value="TELEPORT-LISTE"/> + <filter_editor label="Orte filtern" name="Filter"/> <panel name="button_panel"> - <button label="Teleportieren" name="teleport_btn"/> + <button label="Teleportieren" name="teleport_btn" tool_tip="Zu ausgewÀhltem Standort teleportieren"/> <button label="Karte" name="map_btn"/> - <button label="Bearbeiten" name="edit_btn"/> + <button label="Bearbeiten" name="edit_btn" tool_tip="Landmarken-Info bearbeiten"/> + <button name="overflow_btn" tool_tip="ZusÀtzliche Optionen anzeigen"/> <button label="SchlieÃen" name="close_btn"/> <button label="Abbrechen" name="cancel_btn"/> <button label="Speichern" name="save_btn"/> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/de/panel_preferences_alerts.xml index 3e00c39289..def5fb3b1b 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_alerts.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_alerts.xml @@ -9,6 +9,6 @@ Diese Warnhinweise immer anzeigen: </text> <text name="dont_show_label"> - Diese Warnhinweise immer anzeigen: + Diese Benachrichtungen nie anzeigen: </text> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml index d51675e150..cc0a09c06c 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Text-Chat" name="chat"> <radio_group name="chat_font_size"> - <radio_item label="Klein" name="radio"/> - <radio_item label="Mittel" name="radio2"/> - <radio_item label="GroÃ" name="radio3"/> + <radio_item label="Klein" name="radio" value="0"/> + <radio_item label="Mittel" name="radio2" value="1"/> + <radio_item label="GroÃ" name="radio3" value="2"/> </radio_group> <color_swatch label="Sie" name="user"/> <text name="text_box1"> @@ -40,4 +40,8 @@ <check_box initial_value="true" label="Beim Chatten Tippanimation abspielen" name="play_typing_animation"/> <check_box label="IMs per Email zuschicken, wenn ich offline bin" name="send_im_to_email"/> <check_box label="Text-Chatverlauf aktivieren" name="plain_text_chat_history"/> + <radio_group name="chat_window" tool_tip="Zeigen sie Ihre Sofortnachrichten (Instant Messages) in einem anderen Fenster oder in einem einzigen Fenster mit viele Registerkarten an (Neustart erforderlich)."> + <radio_item label="Mehrere Fenster" name="radio" value="0"/> + <radio_item label="Ein Fenster" name="radio2" value="1"/> + </radio_group> </panel> 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 5bbd579ff6..490b0b296b 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_general.xml @@ -15,7 +15,6 @@ <combo_box.item label="Polski (Polnisch) - Beta" name="Polish"/> <combo_box.item label="Português (Portugiesisch) - Beta" name="Portugese"/> <combo_box.item label="æ¥æ¬èª (Japanisch) - Beta" name="(Japanese)"/> - <combo_box.item label="Testsprache" name="TestLanguage"/> </combo_box> <text name="language_textbox2"> (Erfordert Neustart) @@ -25,8 +24,8 @@ </text> <text name="maturity_desired_textbox"/> <combo_box name="maturity_desired_combobox"> - <combo_box.item label="PG, Mature und Adult" name="Desired_Adult"/> - <combo_box.item label="PG und Mature" name="Desired_Mature"/> + <combo_box.item label="Allgemein, Moderat, Adult" name="Desired_Adult"/> + <combo_box.item label="Allgemein und Moderat" name="Desired_Mature"/> <combo_box.item label="Allgemein" name="Desired_PG"/> </combo_box> <text name="start_location_textbox"> @@ -41,9 +40,9 @@ Avatarnamen: </text> <radio_group name="Name_Tag_Preference"> - <radio_item label="Aus" name="radio"/> - <radio_item label="An" name="radio2"/> - <radio_item label="VorÃŒbergehend anzeigen" name="radio3"/> + <radio_item label="Aus" name="radio" value="0"/> + <radio_item label="An" name="radio2" value="1"/> + <radio_item label="VorÃŒbergehend anzeigen" name="radio3" value="2"/> </radio_group> <check_box label="Meinen Namen anzeigen" name="show_my_name_checkbox1"/> <check_box initial_value="true" label="Kleine Avatarnamen" name="small_avatar_names_checkbox"/> @@ -51,14 +50,17 @@ <text name="effects_color_textbox"> Meine Effekte: </text> - <color_swatch label="" name="effect_color_swatch" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/> <text name="title_afk_text"> Zeit bis zur Abwesenheit: </text> - <spinner label="" name="afk_timeout_spinner"/> - <text name="seconds_textbox"> - Sekunden - </text> + <color_swatch label="" name="effect_color_swatch" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/> + <combo_box label="Timeout fÃŒr Abwesenheit:" name="afk"> + <combo_box.item label="2 Minuten" name="item0"/> + <combo_box.item label="5 Minuten" name="item1"/> + <combo_box.item label="10 Minuten" name="item2"/> + <combo_box.item label="30 Minuten" name="item3"/> + <combo_box.item label="nie" name="item4"/> + </combo_box> <text name="text_box3"> Antwort, wenn im âBeschÀftigtâ-Modus: </text> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/de/panel_preferences_privacy.xml index fe0dca78d1..0c0924026e 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_privacy.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_privacy.xml @@ -11,8 +11,8 @@ <check_box label="Nur Freunde und Gruppen können mich anrufen oder mir eine IM schicken" name="voice_call_friends_only_check"/> <check_box label="Mikrofon ausschalten, wenn Anrufe beendet werden" name="auto_disengage_mic_check"/> <check_box label="Cookies annehmen" name="cookies_enabled"/> - <check_box label="Automatisches Abspielen von Medien erlauben" name="autoplay_enabled"/> - <check_box label="Medien auf Parzellen automatisch abspielen" name="parcel_autoplay_enabled"/> + <check_box label="Medien aktiviert" name="media_enabled"/> + <check_box label="Automatische Wiedergabe zulassen" name="autoplay_enabled"/> <text name="Logs:"> Protokolle: </text> @@ -20,7 +20,7 @@ <check_box label="IM Protokolle auf meinem Computer speichern" name="log_instant_messages"/> <check_box label="Zeitstempel hinzufÃŒgen" name="show_timestamps_check_im"/> <text name="log_path_desc"> - Speicherort der Protokolldateien + Speicherort fÃŒr Protokolle: </text> <button label="Durchsuchen" label_selected="Durchsuchen" name="log_path_button"/> <button label="Ignorierte Einwohner/Objekte" name="block_list"/> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_setup.xml b/indra/newview/skins/default/xui/de/panel_preferences_setup.xml index f1d4a853e8..00be3920ca 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_setup.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Kamera" name="Input panel"> +<panel label="Hardware/Internet" name="Input panel"> <button label="Andere GerÀte" name="joystick_setup_button"/> <text name="Mouselook:"> Mouselook: @@ -26,9 +26,9 @@ MB </text> <button label="Durchsuchen" label_selected="Durchsuchen" name="set_cache"/> - <button label="ZurÃŒcksetzen" label_selected="Set" name="reset_cache"/> + <button label="ZurÃŒcksetzen" label_selected="ZurÃŒcksetzen" name="reset_cache"/> <text name="Cache location"> - Speicherort des Caches + Cache-Ordner: </text> <text name="Web:"> Web: @@ -41,6 +41,6 @@ <line_editor name="web_proxy_editor" tool_tip="Name oder IP Adresse des Proxyservers, den Sie benutzen möchten"/> <button label="Durchsuchen" label_selected="Durchsuchen" name="set_proxy"/> <text name="Proxy location"> - Proxyadresse + Proxy-Standort: </text> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_sound.xml b/indra/newview/skins/default/xui/de/panel_preferences_sound.xml index 94c215b80b..2398da71d0 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_sound.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_sound.xml @@ -7,10 +7,10 @@ <slider label="Medien" name="Media Volume"/> <slider label="Soundeffekte" name="SFX Volume"/> <slider label="Musik wird gestreamt" name="Music Volume"/> - <check_box label="Sprache" name="enable_voice_check"/> + <check_box label="Voice aktivieren" name="enable_voice_check"/> <slider label="Sprache" name="Voice Volume"/> <text name="Listen from"> - Hören von: + Zuhören von: </text> <radio_group name="ear_location"> <radio_item label="Kameraposition" name="0"/> diff --git a/indra/newview/skins/default/xui/de/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/de/panel_prim_media_controls.xml index ed5daa60ce..0a19483f8b 100644 --- a/indra/newview/skins/default/xui/de/panel_prim_media_controls.xml +++ b/indra/newview/skins/default/xui/de/panel_prim_media_controls.xml @@ -6,7 +6,36 @@ <string name="skip_step"> 0.2 </string> + <layout_stack name="progress_indicator_area"> + <panel name="media_progress_indicator"> + <progress_bar name="media_progress_bar" tool_tip="Medien werden geladen"/> + </panel> + </layout_stack> <layout_stack name="media_controls"> + <layout_panel name="back"> + <button name="back_btn" tool_tip="RÃŒckwÀrts"/> + </layout_panel> + <layout_panel name="fwd"> + <button name="fwd_btn" tool_tip="VorwÀrts"/> + </layout_panel> + <layout_panel name="home"> + <button name="home_btn" tool_tip="Startseite"/> + </layout_panel> + <layout_panel name="media_stop"> + <button name="media_stop_btn" tool_tip="Medienwiedergabe stoppen"/> + </layout_panel> + <layout_panel name="reload"> + <button name="reload_btn" tool_tip="Neu laden"/> + </layout_panel> + <layout_panel name="stop"> + <button name="stop_btn" tool_tip="Ladevorgang stoppen"/> + </layout_panel> + <layout_panel name="play"> + <button name="play_btn" tool_tip="Medien wiedergeben"/> + </layout_panel> + <layout_panel name="pause"> + <button name="pause_btn" tool_tip="Medien pausieren"/> + </layout_panel> <layout_panel name="media_address"> <line_editor name="media_address_url" tool_tip="Medien URL"/> <layout_stack name="media_address_url_icons"> @@ -21,13 +50,24 @@ <layout_panel name="media_play_position"> <slider_bar initial_value="0.5" name="media_play_slider" tool_tip="Fortschritt der Filmwiedergabe"/> </layout_panel> + <layout_panel name="skip_back"> + <button name="skip_back_btn" tool_tip="RÃŒckwÀrts"/> + </layout_panel> + <layout_panel name="skip_forward"> + <button name="skip_forward_btn" tool_tip="VorwÀrts"/> + </layout_panel> <layout_panel name="media_volume"> - <button name="media_volume_button" tool_tip="Dieses Medium stummschalten"/> + <button name="media_mute_button" tool_tip="Stummschalten"/> + <slider name="volume_slider" tool_tip="LautstÀrke"/> + </layout_panel> + <layout_panel name="zoom_frame"> + <button name="zoom_frame_btn" tool_tip="Auf Medien zoomen"/> + </layout_panel> + <layout_panel name="close"> + <button name="close_btn" tool_tip="Herauszoomen"/> + </layout_panel> + <layout_panel name="new_window"> + <button name="new_window_btn" tool_tip="URL in Browser öffnen"/> </layout_panel> - </layout_stack> - <layout_stack> - <panel name="media_progress_indicator"> - <progress_bar name="media_progress_bar" tool_tip="Medien werden geladen"/> - </panel> </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_profile.xml b/indra/newview/skins/default/xui/de/panel_profile.xml index c67d7f7fbc..82467eb570 100644 --- a/indra/newview/skins/default/xui/de/panel_profile.xml +++ b/indra/newview/skins/default/xui/de/panel_profile.xml @@ -12,50 +12,41 @@ </string> <string name="my_account_link_url" value="http://secondlife.com/my/account/index.php?lang=de-DE"/> <string name="no_partner_text" value="Keiner"/> + <string name="no_group_text" value="Keiner"/> <string name="RegisterDateFormat"> [REG_DATE] ([AGE]) </string> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="second_life_image_panel"> - <text name="title_sl_descr_text" value="[SECOND_LIFE]:"/> - <expandable_text name="sl_description_edit"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. - </expandable_text> - </panel> - <panel name="first_life_image_panel"> - <text name="title_rw_descr_text" value="Echtes Leben:"/> - <expandable_text name="fl_description_edit"> - Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. - </expandable_text> - </panel> - <text name="me_homepage_text"> - Webseite: - </text> - <text name="title_member_text" value="Mitglied seit:"/> - <text name="register_date" value="05/31/1976"/> - <text name="title_acc_status_text" value="Kontostatus:"/> - <text name="acc_status_text" value="Einwohner. Keine Zahlungsinfo archiviert."/> - <text name="title_partner_text" value="Partner:"/> - <panel name="partner_data_panel"> - <text name="partner_text" value="[FIRST] [LAST]"/> - </panel> - <text name="title_groups_text" value="Gruppen:"/> - <expandable_text name="sl_groups"> - Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. - </expandable_text> - </panel> - </scroll_container> - <panel name="profile_buttons_panel"> - <button label="Freund hinzufÃŒgen" name="add_friend"/> - <button label="IM" name="im"/> - <button label="Anrufen" name="call"/> - <button label="Karte" name="show_on_map_btn"/> - <button label="Teleportieren" name="teleport"/> - <button label="âŒ" name="overflow_btn"/> - </panel> - <panel name="profile_me_buttons_panel"> - <button label="Profil bearbeiten" name="edit_profile_btn"/> - <button label="Aussehen bearbeiten" name="edit_appearance_btn"/> - </panel> + <layout_stack name="layout"> + <layout_panel name="profile_stack"> + <scroll_container name="profile_scroll"> + <panel name="profile_scroll_panel"> + <panel name="second_life_image_panel"> + <text name="title_sl_descr_text" value="[SECOND_LIFE]:"/> + </panel> + <panel name="first_life_image_panel"> + <text name="title_rw_descr_text" value="Echtes Leben:"/> + </panel> + <text name="title_member_text" value="Einwohner seit:"/> + <text name="title_acc_status_text" value="Kontostatus:"/> + <text name="acc_status_text"> + Einwohner. Keine Zahlungsinfo archiviert. + Linden. + </text> + <text name="title_partner_text" value="Partner:"/> + <text name="title_groups_text" value="Gruppen:"/> + </panel> + </scroll_container> + </layout_panel> + <layout_panel name="profile_buttons_panel"> + <button label="Freund hinzufÃŒgen" name="add_friend" tool_tip="Bieten Sie dem Einwohner die Freundschaft an"/> + <button label="IM" name="im" tool_tip="Instant Messenger öffnen"/> + <button label="Anrufen" name="call" tool_tip="Diesen Einwohner anrufen"/> + <button label="Karte" name="show_on_map_btn" tool_tip="Einwohner auf Karte anzeigen"/> + <button label="Teleportieren" name="teleport" tool_tip="Teleport anbieten"/> + </layout_panel> + <layout_panel name="profile_me_buttons_panel"> + <button label="Profil bearbeiten" name="edit_profile_btn" tool_tip="Ihre persönlichen Informationen bearbeiten"/> + <button label="Aussehen bearbeiten" name="edit_appearance_btn" tool_tip="Ihr Aussehen bearbeiten: KörpermaÃe, Bekleidung, usw."/> + </layout_panel> + </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_region_estate.xml b/indra/newview/skins/default/xui/de/panel_region_estate.xml index e0008d2a39..b0c6dce8cf 100644 --- a/indra/newview/skins/default/xui/de/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/de/panel_region_estate.xml @@ -1,8 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="GrundstÃŒck" name="Estate"> <text name="estate_help_text"> - Ãnderungen auf dieser Registerkarte wirken sich -auf alle Regionen auf dem GrundstÃŒck aus. + Ãnderungen auf dieser Registerkarte wirken sich auf alle Regionen auf dem GrundstÃŒck aus. </text> <text name="estate_text"> GrundstÃŒck: @@ -17,10 +16,10 @@ auf alle Regionen auf dem GrundstÃŒck aus. (unbekannt) </text> <text name="Only Allow"> - Zugang beschrÀnken auf: + Zugang auf Einwohner beschrÀnken, die ÃŒberprÃŒft wurden von: </text> - <check_box label="Einwohner mit Zahlungsinformationen" name="limit_payment" tool_tip="Nicht identifizierte Einwohner verbannen"/> - <check_box label="AltersgeprÃŒfte Erwachsene" name="limit_age_verified" tool_tip="Einwohner ohne AltersÃŒberprÃŒfung verbannen. Weitere Informationen finden Sie auf [SUPPORT_SITE]."/> + <check_box label="Zahlungsinformation gespeichert" name="limit_payment" tool_tip="Nicht identifizierte Einwohner verbannen"/> + <check_box label="AltersÃŒberprÃŒfung" name="limit_age_verified" tool_tip="Einwohner ohne AltersÃŒberprÃŒfung verbannen. Weitere Informationen finden Sie auf [SUPPORT_SITE]."/> <check_box label="Voice-Chat erlauben" name="voice_chat_check"/> <button label="?" name="voice_chat_help"/> <text name="abuse_email_text" width="222"> diff --git a/indra/newview/skins/default/xui/de/panel_region_general.xml b/indra/newview/skins/default/xui/de/panel_region_general.xml index 13df2bfb3b..978b701054 100644 --- a/indra/newview/skins/default/xui/de/panel_region_general.xml +++ b/indra/newview/skins/default/xui/de/panel_region_general.xml @@ -39,10 +39,10 @@ <text label="Alterseinstufung" name="access_text"> Einstufung: </text> - <combo_box label="Mature" name="access_combo"> + <combo_box label="Moderat" name="access_combo"> <combo_box.item label="Adult" name="Adult"/> - <combo_box.item label="Mature" name="Mature"/> - <combo_box.item label="PG" name="PG"/> + <combo_box.item label="Moderat" name="Mature"/> + <combo_box.item label="Allgemein" name="PG"/> </combo_box> <button label="?" name="access_help"/> <button label="Ãbernehmen" name="apply_btn"/> diff --git a/indra/newview/skins/default/xui/de/panel_region_general_layout.xml b/indra/newview/skins/default/xui/de/panel_region_general_layout.xml new file mode 100644 index 0000000000..732249df35 --- /dev/null +++ b/indra/newview/skins/default/xui/de/panel_region_general_layout.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel label="Region" name="General"> + <text name="region_text_lbl"> + Region: + </text> + <text name="region_text"> + unbekannt + </text> + <text name="version_channel_text_lbl"> + Version: + </text> + <text name="version_channel_text"> + unbekannt + </text> + <text name="region_type_lbl"> + Typ: + </text> + <text name="region_type"> + unbekannt + </text> + <check_box label="Terraformen blockieren" name="block_terraform_check"/> + <check_box label="Fliegen blockieren" name="block_fly_check"/> + <check_box label="Schaden zulassen" name="allow_damage_check"/> + <check_box label="StoÃen beschrÀnken" name="restrict_pushobject"/> + <check_box label="Landwiederverkauf zulassen" name="allow_land_resell_check"/> + <check_box label="Zusammenlegen/Teilen von Land zulassen" name="allow_parcel_changes_check"/> + <check_box label="Landanzeige in Suche blockieren" name="block_parcel_search_check" tool_tip="Diese Region und ihre Parzellen in Suchergebnissen anzeigen"/> + <spinner label="Avatar-Limit" name="agent_limit_spin"/> + <spinner label="Objektbonus" name="object_bonus_spin"/> + <text label="Alterseinstufung" name="access_text"> + Einstufung: + </text> + <combo_box label="Moderat" name="access_combo"> + <combo_box.item label="Adult" name="Adult"/> + <combo_box.item label="Moderat" name="Mature"/> + <combo_box.item label="Allgemein" name="PG"/> + </combo_box> + <button label="Ãbernehmen" name="apply_btn"/> + <button label="Einen Benutzer nach Hause teleportieren..." name="kick_btn"/> + <button label="Alle Benutzer nach Hause teleportieren..." name="kick_all_btn"/> + <button label="Nachricht an Region senden..." name="im_btn"/> + <button label="Telehub verwalten..." name="manage_telehub_btn"/> +</panel> diff --git a/indra/newview/skins/default/xui/de/panel_region_texture.xml b/indra/newview/skins/default/xui/de/panel_region_texture.xml index 4361b39def..d489b5bac8 100644 --- a/indra/newview/skins/default/xui/de/panel_region_texture.xml +++ b/indra/newview/skins/default/xui/de/panel_region_texture.xml @@ -48,8 +48,7 @@ Diese Werte geben den Mischungsgrad fÃŒr die obigen Texturen an. </text> <text name="height_text_lbl11"> - Der UNTERE Wert gibt die MAXIMALE Höhe von Textur Nr. 1 an -und der OBERE WERT die MINIMALE Höhe von Textur 4. + In Metern gemessen. Der NIEDRIG-Wert ist die MAXIMALE Höhe der Textur #1, der HÃCHST-Wert ist die MINDEST-Höhe von Textur #4. </text> <text name="height_text_lbl12"> und der OBERE WERT die MINIMALE Höhe von Textur 4. diff --git a/indra/newview/skins/default/xui/de/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/de/panel_script_limits_my_avatar.xml new file mode 100644 index 0000000000..f6a1d7e9b5 --- /dev/null +++ b/indra/newview/skins/default/xui/de/panel_script_limits_my_avatar.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel label="MEIN AVATAR" name="script_limits_my_avatar_panel"> + <text name="loading_text"> + Wird geladen... + </text> + <scroll_list name="scripts_list"> + <scroll_list.columns label="GröÃe (KB)" name="size"/> + <scroll_list.columns label="URLs" name="urls"/> + <scroll_list.columns label="Objektname" name="name"/> + <scroll_list.columns label="Ort" name="location"/> + </scroll_list> + <button label="Liste aktualisieren" name="refresh_list_btn"/> +</panel> diff --git a/indra/newview/skins/default/xui/de/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/de/panel_script_limits_region_memory.xml new file mode 100644 index 0000000000..c466c04e86 --- /dev/null +++ b/indra/newview/skins/default/xui/de/panel_script_limits_region_memory.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel label="REGIONSSPEICHER" name="script_limits_region_memory_panel"> + <text name="script_memory"> + Parzellenskript-Speicher + </text> + <text name="parcels_listed"> + ParzelleneigentÃŒmer: + </text> + <text name="memory_used"> + Verwendeter Speicher: + </text> + <text name="loading_text"> + Wird geladen... + </text> + <scroll_list name="scripts_list"> + <scroll_list.columns label="GröÃe (KB)" name="size"/> + <scroll_list.columns label="Objektname" name="name"/> + <scroll_list.columns label="ObjekteigentÃŒmer" name="owner"/> + <scroll_list.columns label="Parzelle / Standort" name="location"/> + </scroll_list> + <button label="Liste aktualisieren" name="refresh_list_btn"/> + <button label="Markieren" name="highlight_btn"/> + <button label="ZurÃŒckgeben" name="return_btn"/> +</panel> diff --git a/indra/newview/skins/default/xui/de/panel_side_tray.xml b/indra/newview/skins/default/xui/de/panel_side_tray.xml index d5baacd357..2cd11cdcef 100644 --- a/indra/newview/skins/default/xui/de/panel_side_tray.xml +++ b/indra/newview/skins/default/xui/de/panel_side_tray.xml @@ -2,9 +2,13 @@ <!-- Side tray cannot show background because it is always partially on screen to hold tab buttons. --> <side_tray name="sidebar"> + <sidetray_tab description="Seitenleiste auf-/zuklappen." name="sidebar_openclose"/> <sidetray_tab description="Startseite." name="sidebar_home"> <panel label="Startseite" name="panel_home"/> </sidetray_tab> + <sidetray_tab description="Ihr öffentliches Profil und Auswahl bearbeiten." name="sidebar_me"> + <panel label="Ich" name="panel_me"/> + </sidetray_tab> <sidetray_tab description="Freunde, Kontakte und Leute in Ihrer NÀhe finden." name="sidebar_people"> <panel_container name="panel_container"> <panel label="Gruppeninfo" name="panel_group_info_sidetray"/> @@ -14,13 +18,10 @@ <sidetray_tab description="Hier finden Sie neue Orte und Orte, die Sie bereits besucht haben." label="Orte" name="sidebar_places"> <panel label="Orte" name="panel_places"/> </sidetray_tab> - <sidetray_tab description="Ihr öffentliches Profil und Auswahl bearbeiten." name="sidebar_me"> - <panel label="Ich" name="panel_me"/> + <sidetray_tab description="Inventar durchsuchen." name="sidebar_inventory"> + <panel label="Inventar bearbeiten" name="sidepanel_inventory"/> </sidetray_tab> <sidetray_tab description="Ãndern Sie Ihr Aussehen und Ihren aktuellen Look." name="sidebar_appearance"> <panel label="Aussehen bearbeiten" name="sidepanel_appearance"/> </sidetray_tab> - <sidetray_tab description="Inventar durchsuchen." name="sidebar_inventory"> - <panel label="Inventar bearbeiten" name="sidepanel_inventory"/> - </sidetray_tab> </side_tray> diff --git a/indra/newview/skins/default/xui/de/panel_status_bar.xml b/indra/newview/skins/default/xui/de/panel_status_bar.xml index 253207fe73..33fd0f6348 100644 --- a/indra/newview/skins/default/xui/de/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/de/panel_status_bar.xml @@ -21,7 +21,8 @@ <panel.string name="buycurrencylabel"> [AMT] L$ </panel.string> - <button label="" label_selected="" name="buycurrency" tool_tip="Mein Kontostand: Hier klicken, um mehr L$ zu kaufen"/> + <button label="" label_selected="" name="buycurrency" tool_tip="Mein Kontostand"/> + <button label="L$ kaufen" name="buyL" tool_tip="Hier klicken, um mehr L$ zu kaufen"/> <text name="TimeText" tool_tip="Aktuelle Zeit (Pazifik)"> 12:00 </text> diff --git a/indra/newview/skins/default/xui/de/panel_teleport_history.xml b/indra/newview/skins/default/xui/de/panel_teleport_history.xml index 3149ddf19e..4efd83dfff 100644 --- a/indra/newview/skins/default/xui/de/panel_teleport_history.xml +++ b/indra/newview/skins/default/xui/de/panel_teleport_history.xml @@ -11,5 +11,7 @@ <accordion_tab name="1_month_and_older" title="1 Monat und Àlter"/> <accordion_tab name="6_months_and_older" title="6 Monate und Àlter"/> </accordion> - <panel label="bottom_panel" name="bottom_panel"/> + <panel label="bottom_panel" name="bottom_panel"> + <button name="gear_btn" tool_tip="ZusÀtzliche Optionen anzeigen"/> + </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/de/panel_teleport_history_item.xml index 9d18c52442..4b57aa69b6 100644 --- a/indra/newview/skins/default/xui/de/panel_teleport_history_item.xml +++ b/indra/newview/skins/default/xui/de/panel_teleport_history_item.xml @@ -1,4 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="teleport_history_item"> <text name="region" value="..."/> + <button name="profile_btn" tool_tip="Objektinfo anzeigen"/> </panel> diff --git a/indra/newview/skins/default/xui/de/role_actions.xml b/indra/newview/skins/default/xui/de/role_actions.xml index 95eb6c5eb2..554a5c27a4 100644 --- a/indra/newview/skins/default/xui/de/role_actions.xml +++ b/indra/newview/skins/default/xui/de/role_actions.xml @@ -1,200 +1,76 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> <role_actions> - <action_set - description="Diese FÀhigkeiten ermöglichen das HinzufÃŒgen und Entfernen von Mitgliedern sowie den Beitritt ohne Einladung." - name="Membership"> - <action description="Personen in diese Gruppe einladen" - longdescription="Personen zu dieser Gruppe einladen können Sie mit âNeue Person einladen...â unter âMitglieder und Rollenâ > âMitgliederâ." - name="member invite" /> - <action description="Mitglieder aus dieser Gruppe werfen" - longdescription="Mitglieder von der Gruppe ausschlieÃen können Sie mit âAus Gruppe werfenâ unter âMitglieder und Rollenâ > âMitgliederâ. Ein EigentÃŒmer kann jeden, auÃer einen anderen EigentÃŒmer, ausschlieÃen. Wenn Sie kein EigentÃŒmer sind, können Sie ein Mitglied nur dann von der Gruppe ausschlieÃen, wenn es die Rolle âJederâ innehat, aber KEINE ANDERE Rolle. Um Mitgliedern Rollen entziehen zu können, mÃŒssen Sie ÃŒber die FÀhigkeit âMitgliedern Rollen entziehenâ verfÃŒgen." - name="member eject" /> - <action - description="âRegistrierung offenâ einstellen und âBeitrittsgebÃŒhrâ Àndern" - longdescription="âBeitritt möglichâ erlaubt den Beitritt zur Gruppe ohne vorhergehende Einladung. Die âBeitrittsgebÃŒhrâ wird in den Gruppeneinstellungen auf der Registerkarte âAllgemeinâ festgelegt." - name="member options" /> + <action_set description="Diese FÀhigkeiten ermöglichen das HinzufÃŒgen und Entfernen von Mitgliedern sowie den Beitritt ohne Einladung." name="Membership"> + <action description="Personen in diese Gruppe einladen" longdescription="Leute in diese Gruppe mit der SchaltflÀche âEinladenâ im Abschnitt âRollenâ > Registerkarte âMitgliederâ in die Gruppe einladen." name="member invite"/> + <action description="Mitglieder aus dieser Gruppe werfen" longdescription="Leute aus dieser Gruppe mit der SchaltflÀche âHinauswerfenâ im Abschnitt âRollenâ > Registerkarte âMitgliederâ aus der Gruppe werfen. Ein EigentÃŒmer kann jeden, auÃer einen anderen EigentÃŒmer, ausschlieÃen. Wenn Sie kein EigentÃŒmer sind, können Sie ein Mitglied nur dann aus der Gruppe werfen, wenn es die Rolle Jeder inne hat, jedoch KEINE andere Rolle. Um Mitgliedern Rollen entziehen zu können, mÃŒssen Sie ÃŒber die FÀhigkeit âMitgliedern Rollen entziehenâ verfÃŒgen." name="member eject"/> + <action description="âRegistrierung offenâ aktivieren/deaktivieren und âBeitrittsgebÃŒhrâ Àndern." longdescription="âRegistrierung offenâ aktivieren, um damit neue Mitglieder ohne Einladung beitreten können, und die âBeitrittsgebÃŒhrâ im Abschnitt âAllgemeinâ Àndern." name="member options"/> </action_set> - <action_set - description="Diese FÀhigkeiten ermöglichen das HinzufÃŒgen, Entfernen und Ãndern von Gruppenrollen, das Zuweisen und Entfernen von Rollen und das Zuweisen von FÀhigkeiten zu Rollen." - name="Roles"> - <action description="Neue Rollen erstellen" - longdescription="Neue Rollen erstellen Sie unter âMitglieder und Rollenâ > âRollenâ." - name="role create" /> - <action description="Rollen löschen" - longdescription="Rollen löschen können Sie unter âMitglieder und Rollenâ > âRollenâ." - name="role delete" /> - <action description="Rollennamen, Titel und Beschreibung Àndern" - longdescription="Namen, Titel und Beschreibungen von Rollen können Sie nach Auswahl einer Rolle unten auf der Registerkarte âMitglieder und Rollenâ > âRollenâ Àndern." - name="role properties" /> - <action description="Mitgliedern nur eigene Rollen zuweisen" - longdescription="Mitgliedern nur eigene Rollen zuweisen können Sie im Bereich âZugewiesene Rollenâ auf der Registerkarte âMitglieder und Rollenâ > âMitgliederâ. Ein Mitglied mit dieser FÀhigkeit kann anderen Mitgliedern nur die eigenen Rollen zuweisen." - name="role assign member limited" /> - <action description="Mitgliedern beliebige Rolle zuweisen" - longdescription="Mitgliedern beliebige Rolle zuweisen können Sie im Bereich âZugewiesene Rollenâ auf der Registerkarte âMitglieder und Rollenâ > âMitgliederâ. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser FÀhigkeit kann sich selbst und jedem anderen Mitglied (auÃer dem EigentÃŒmer) Rollen mit weitreichenden FÀhigkeiten zuweisen und damit fast EigentÃŒmerrechte erreichen. Ãberlegen Sie sich, wem Sie diese FÀhigkeit verleihen." - name="role assign member" /> - <action description="Mitgliedern Rollen entziehen" - longdescription="Mitgliedern Rollen entziehen können Sie im Bereich âRollenâ auf der Registerkarte âMitglieder und Rollenâ > âMitgliederâ. EigentÃŒmer können nicht entfernt werden." - name="role remove member" /> - <action description="RollenfÀhigkeiten zuweisen und entfernen" - longdescription="RollenfÀhigkeiten zuweisen und entfernen können Sie im Bereich âZulÀssige FÀhigkeitenâ auf der Registerkarte âMitglieder und Rollenâ > âRollenâ. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser FÀhigkeit kann sich selbst und jedem anderen Mitglied (auÃer dem EigentÃŒmer) alle FÀhigkeiten zuweisen und damit fast EigentÃŒmerrechte erreichen. Ãberlegen Sie sich, wem Sie diese FÀhigkeit verleihen." - name="role change actions" /> + <action_set description="Diese FÀhigkeiten ermöglichen das HinzufÃŒgen, Entfernen und Ãndern von Gruppenrollen, das Zuweisen und Entfernen von Rollen und das Zuweisen von FÀhigkeiten zu Rollen." name="Roles"> + <action description="Neue Rollen erstellen" longdescription="Neue Rollen im Abschnitt âRollenâ > Registerkarte âRollenâ erstellen." name="role create"/> + <action description="Rollen löschen" longdescription="Neue Rollen im Abschnitt âRollenâ > Registerkarte âRollenâ löschen." name="role delete"/> + <action description="Rollennamen, Titel, Beschreibungen und ob die Rolleninhaber öffentlich bekannt sein sollen, Àndern." longdescription="Rollennamen, Titel, Beschreibungen und ob die Rolleninhaber öffentlich bekannt sein sollen, Àndern. Dies wird im unteren Bereich des Abschnitts âRollenâ > Registerkarte âRollenâ eingestellt, nachdem eine Rolle ausgewÀhlt wurde." name="role properties"/> + <action description="Mitgliedern nur eigene Rollen zuweisen" longdescription="In der Liste âRollenâ (Abschnitt âRollenâ > Registerkarte âMitgliederâ) können Mitgliedern Rollen zugewiesen werden. Ein Mitglied mit dieser FÀhigkeit kann anderen Mitgliedern nur die eigenen Rollen zuweisen." name="role assign member limited"/> + <action description="Mitgliedern beliebige Rolle zuweisen" longdescription="Sie können Mitglieder jede beliebige Rolle der Liste âRollenâ (Abschnitt âRollenâ > Registerkarte âMitgliederâ) zuweisen. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser FÀhigkeit kann sich selbst und jedem anderen Mitglied (auÃer dem EigentÃŒmer) Rollen mit weitreichenden FÀhigkeiten zuweisen und damit fast EigentÃŒmerrechte erreichen. Ãberlegen Sie sich gut, wem Sie diese FÀhigkeit verleihen." name="role assign member"/> + <action description="Mitgliedern Rollen entziehen" longdescription="In der Liste âRollenâ (Abschnitt âRollenâ > Registerkarte âMitgliederâ) können Mitgliedern Rollen abgenommen werden. EigentÃŒmer können nicht entfernt werden." name="role remove member"/> + <action description="RollenfÀhigkeiten zuweisen und entfernen" longdescription="FÀhigkeiten fÃŒr jede Rolle können in der Liste âZulÀssige FÀhigkeiten" (Abschnitt âRollen" > Registerkarte âRollenâ) zugewiesen und auch entzogen werden. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser FÀhigkeit kann sich selbst und jedem anderen Mitglied (auÃer dem EigentÃŒmer) alle FÀhigkeiten zuweisen und damit fast EigentÃŒmerrechte erreichen. Ãberlegen Sie sich gut, wem Sie diese FÀhigkeit verleihen." name="role change actions"/> </action_set> - <action_set - description="Diese FÀhigkeiten ermöglichen es, die GruppenidentitÀt zu Àndern, z. B. öffentliche Sichtbarkeit, Charta und Insignien." - name="Group Identity"> - <action - description="Charta, Insignien und âIm Web veröffentlichenâ Àndern und festlegen, welche Mitglieder in der Gruppeninfo öffentlich sichtbar sind." - longdescription="Charta, Insignien und âIm Web veröffentlichenâ Àndern und festlegen, welche Mitglieder in der Gruppeninfo öffentlich sichtbar sind. Diese Einstellungen finden Sie auf der Registerkarte âAllgemeinâ." - name="group change identity" /> + <action_set description="Diese FÀhigkeiten ermöglichen es, die GruppenidentitÀt zu Àndern, z. B. öffentliche Sichtbarkeit, Charta und Insignien." name="Group Identity"> + <action description="Charta, Insignien und âIm Web veröffentlichenâ Àndern und festlegen, welche Mitglieder in der Gruppeninfo öffentlich sichtbar sind." longdescription="Charta, Insignien und âIn Suche anzeigen" Àndern. Diese Einstellungen werden im Abschnitt âAllgemein" vorgenommen." name="group change identity"/> </action_set> - <action_set - description="Diese FÀhigkeiten ermöglichen es, gruppeneigenes Land zu ÃŒbertragen, zu bearbeiten und zu verkaufen. Klicken Sie mit rechts auf den Boden und wÀhlen Sie âLand-Info...â oder klicken Sie in der MenÃŒleiste auf den Parzellennamen." - name="Parcel Management"> - <action description="Land ÃŒbertragen und fÃŒr Gruppe kaufen" - longdescription="Land ÃŒbertragen und fÃŒr Gruppe kaufen. Diese Einstellung finden Sie unter âLand-Infoâ > âAllgemeinâ." - name="land deed" /> - <action description="Land Governor Linden ÃŒberlassen" - longdescription="Land Governor Linden ÃŒberlassen. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser FÀhigkeit kann gruppeneigenes Land unter âLand-Infoâ > âAllgemeinâ aufgeben und es ohne Verkauf in das Eigentum von Linden zurÃŒckfÃŒhren! Ãberlegen Sie sich, wem Sie diese FÀhigkeit verleihen." - name="land release" /> - <action description="Land.zu.verkaufen-Info einstellen" - longdescription="Land zu verkaufen-Info einstellen. *WARNUNG* Mitglieder in einer Rolle mit dieser FÀhigkeit können gruppeneigenes Land jederzeit unter âLand-Infoâ > âAllgemeinâ verkaufen! Ãberlegen Sie sich, wem Sie diese FÀhigkeit verleihen." - name="land set sale info" /> - <action description="Parzellen teilen und zusammenlegen" - longdescription="Parzellen teilen und zusammenlegen. Klicken Sie dazu mit rechts auf den Boden, wÀhlen sie âTerrain bearbeitenâ und ziehen Sie die Maus auf das Land, um eine Auswahl zu treffen. Zum Teilen treffen Sie eine Auswahl und klicken auf âUnterteilen...â. Zum Zusammenlegen von zwei oder mehr angrenzenden Parzellen klicken Sie auf âZusammenlegen...â." - name="land divide join" /> + <action_set description="Diese FÀhigkeiten ermöglichen es, gruppeneigenes Land zu ÃŒbertragen, zu bearbeiten und zu verkaufen. Klicken Sie mit rechts auf den Boden und wÀhlen Sie âLand-Info...â oder klicken Sie in der Navigationsleiste auf das Symbol âi"." name="Parcel Management"> + <action description="Land ÃŒbertragen und fÃŒr Gruppe kaufen" longdescription="Land ÃŒbertragen und fÃŒr Gruppe kaufen. Diese Einstellung finden Sie unter âLand-Infoâ > âAllgemeinâ." name="land deed"/> + <action description="Land Governor Linden ÃŒberlassen" longdescription="Land Governor Linden ÃŒberlassen. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser FÀhigkeit kann gruppeneigenes Land unter âLand-Infoâ > âAllgemeinâ aufgeben und es ohne Verkauf in das Eigentum von Linden zurÃŒckfÃŒhren! Ãberlegen Sie sich, wem Sie diese FÀhigkeit verleihen." name="land release"/> + <action description="Land.zu.verkaufen-Info einstellen" longdescription="Land zu verkaufen-Info einstellen. *WARNUNG* Mitglieder in einer Rolle mit dieser FÀhigkeit können gruppeneigenes Land jederzeit unter âLand-Infoâ > âAllgemeinâ verkaufen! Ãberlegen Sie sich, wem Sie diese FÀhigkeit verleihen." name="land set sale info"/> + <action description="Parzellen teilen und zusammenlegen" longdescription="Parzellen teilen und zusammenlegen. Klicken Sie dazu mit rechts auf den Boden, wÀhlen sie âTerrain bearbeitenâ und ziehen Sie die Maus auf das Land, um eine Auswahl zu treffen. Zum Teilen treffen Sie eine Auswahl und klicken auf âUnterteilenâ. Zum Zusammenlegen von zwei oder mehr angrenzenden Parzellen klicken Sie auf âZusammenlegenâ." name="land divide join"/> </action_set> - <action_set - description="Diese FÀhigkeiten ermöglichen es, den Parzellennamen und die Veröffentlichungseinstellungen sowie die Anzeige des Suchverzeichnisses, den Landepunkt und die TP-Routenoptionen festzulegen." - name="Parcel Identity"> - <action - description="âIn Orte suchen anzeigenâ ein-/ausschalten und Kategorie festlegen" - longdescription="Auf der Registerkarte âOptionenâ unter âLand-Infoâ können Sie âIn Orte suchen anzeigenâ ein- und ausschalten und die Parzellenkategorie festlegen." - name="land find places" /> - <action - description="Name und Beschreibung der Parzelle und Einstellungen fÃŒr âIm Web veröffentlichenâ Àndern" - longdescription="Name und Beschreibung der Parzelle und Einstellungen fÃŒr âIm Web veröffentlichenâ Àndern. Diese Einstellungen finden Sie unter âLand-Infoâ > âOptionenâ." - name="land change identity" /> - <action description="Landepunkt und Teleport-Route festlegen" - longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer gruppeneigenen Parzelle einen Landepunkt fÃŒr ankommende Teleports und Teleport-Routen festlegen. Diese Einstellungen finden Sie unter âLand-Infoâ > âOptionenâ." - name="land set landing point" /> + <action_set description="Diese FÀhigkeiten ermöglichen es, den Parzellennamen und die Veröffentlichungseinstellungen sowie die Anzeige des Suchverzeichnisses, den Landepunkt und die TP-Routenoptionen festzulegen." name="Parcel Identity"> + <action description="âOrt in Suche anzeigen" ein-/ausschalten und Kategorie festlegen." longdescription="Auf der Registerkarte âOptionenâ unter âLand-Infoâ können Sie âOrt in Suche anzeigenâ ein- und ausschalten und die Parzellenkategorie festlegen." name="land find places"/> + <action description="Parzellenname, Beschreibung und Einstellung fÃŒr âOrt in Suche anzeigen" Àndern" longdescription="Parzellenname, Beschreibung und Einstellung fÃŒr âOrt in Suche anzeigen" Àndern Diese Einstellungen finden Sie unter âLand-Infoâ > Registerkarte âOptionenâ." name="land change identity"/> + <action description="Landepunkt und Teleport-Route festlegen" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer gruppeneigenen Parzelle einen Landepunkt fÃŒr ankommende Teleports und Teleport-Routen festlegen. Diese Einstellungen finden Sie unter âLand-Infoâ > âOptionenâ." name="land set landing point"/> </action_set> - <action_set - description="Diese FÀhigkeiten ermöglichen es, Parzellenoptionen wie âObjekte erstellenâ, âTerrain bearbeitenâ sowie Musik- und Medieneinstellungen zu Àndern." - name="Parcel Settings"> - <action description="Musik- und Medieneinstellungen Àndern" - longdescription="Die Einstellungen fÃŒr Streaming-Musik und Filme finden Sie unter âLand-Infoâ > âMedienâ." - name="land change media" /> - <action description="âTerrain bearbeitenâ ein/aus" - longdescription="âTerrain bearbeitenâ ein/aus. *WARNUNG* âLand-Infoâ > âOptionenâ > âTerrain bearbeitenâ ermöglicht jedem das Terraformen Ihres GrundstÃŒcks und das Setzen und Verschieben von Linden-Pflanzen. Ãberlegen Sie sich, wem Sie diese FÀhigkeit verleihen. Diese Einstellung finden Sie unter âLand-Infoâ > âOptionenâ." - name="land edit" /> - <action description="âLand-Infoâ-Optionen einstellen" - longdescription="Auf der Registerkarte âOptionenâ unter âLand-Infoâ können Sie âSicher (kein Schaden)â und âFliegenâ ein- und ausschalten und Einwohnern folgende Aktionen auf gruppeneigenem Land erlauben: âObjekte erstellenâ, âTerrain bearbeitenâ, âLandmarken erstellenâ und âSkripts ausfÃŒhrenâ." - name="land options" /> + <action_set description="Diese FÀhigkeiten ermöglichen es, Parzellenoptionen wie âObjekte erstellenâ, âTerrain bearbeitenâ sowie Musik- und Medieneinstellungen zu Àndern." name="Parcel Settings"> + <action description="Musik- und Medieneinstellungen Àndern" longdescription="Die Einstellungen fÃŒr Streaming-Musik und Filme finden Sie unter âLand-Infoâ > âMedienâ." name="land change media"/> + <action description="âTerrain bearbeitenâ ein/aus" longdescription="âTerrain bearbeitenâ ein/aus. *WARNUNG* âLand-Infoâ > âOptionenâ > âTerrain bearbeitenâ ermöglicht jedem das Terraformen Ihres GrundstÃŒcks und das Setzen und Verschieben von Linden-Pflanzen. Ãberlegen Sie sich, wem Sie diese FÀhigkeit verleihen. Diese Einstellung finden Sie unter âLand-Infoâ > âOptionenâ." name="land edit"/> + <action description="âLand-Infoâ-Optionen einstellen" longdescription="âSicher (kein Schaden)â und âFliegenâ ein- und ausschalten und Einwohnern folgende Aktionen erlauben: âTerrain bearbeitenâ, âBauenâ, âLandmarken erstellenâ und âSkripts ausfÃŒhrenâ auf gruppeneigenem Land in âLand-Infoâ > Registerkarte âOptionenâ." name="land options"/> </action_set> - <action_set - description="Diese FÀhigkeiten ermöglichen es, Mitgliedern das Umgehen von Restriktionen auf gruppeneigenen Parzellen zu erlauben." - name="Parcel Powers"> - <action description="âTerrain bearbeitenâ zulassen" - longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer gruppeneigenen Parzelle das Terrain bearbeiten, selbst wenn diese Option unter âLand-Infoâ > âOptionenâ deaktiviert ist." - name="land allow edit land" /> - <action description="âFliegenâ zulassen" - longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer gruppeneigenen Parzelle fliegen, selbst wenn diese Option unter âLand-Infoâ > âOptionenâ deaktiviert ist." - name="land allow fly" /> - <action description="âObjekte erstellenâ zulassen" - longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer gruppeneigenen Parzelle Objekte erstellen, selbst wenn diese Option unter âLand-Infoâ > âOptionenâ deaktiviert ist." - name="land allow create" /> - <action description="âLandmarke erstellenâ zulassen" - longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können fÃŒr eine gruppeneigene Parzelle eine Landmarke erstellen, selbst wenn diese Option unter âLand-Infoâ > âOptionenâ deaktiviert ist." - name="land allow landmark" /> - <action description="âHier als Zuhause wÀhlenâ auf Gruppenland zulassen" - longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer an diese Gruppe ÃŒbertragenen Parzelle die Funktion âWeltâ > âHier als Zuhause wÀhlenâ verwenden." - name="land allow set home" /> + <action_set description="Diese FÀhigkeiten ermöglichen es, Mitgliedern das Umgehen von Restriktionen auf gruppeneigenen Parzellen zu erlauben." name="Parcel Powers"> + <action description="âTerrain bearbeitenâ zulassen" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer gruppeneigenen Parzelle das Terrain bearbeiten, selbst wenn diese Option unter âLand-Infoâ > âOptionenâ deaktiviert ist." name="land allow edit land"/> + <action description="âFliegenâ zulassen" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer gruppeneigenen Parzelle fliegen, selbst wenn diese Option unter âLand-Infoâ > âOptionenâ deaktiviert ist." name="land allow fly"/> + <action description="âObjekte erstellenâ zulassen" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer gruppeneigenen Parzelle Objekte erstellen, selbst wenn diese Option unter âLand-Infoâ > âOptionenâ deaktiviert ist." name="land allow create"/> + <action description="âLandmarke erstellenâ zulassen" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können fÃŒr eine gruppeneigene Parzelle eine Landmarke erstellen, selbst wenn diese Option unter âLand-Infoâ > âOptionenâ deaktiviert ist." name="land allow landmark"/> + <action description="âHier als Zuhause wÀhlenâ auf Gruppenland zulassen" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer an diese Gruppe ÃŒbertragenen Parzelle die Funktion âWeltâ > âLandmarkenâ > âHier als Zuhause wÀhlenâ verwenden." name="land allow set home"/> </action_set> - <action_set - description="Diese FÀhigkeiten ermöglichen es, den Zugang auf gruppeneigenen Parzellen zu steuern. Dazu gehört das Einfrieren und AusschlieÃen von Einwohnern." - name="Parcel Access"> - <action description="Parzellen-Zugangslisten verwalten" - longdescription="Parzellen-Zugangslisten bearbeiten Sie unter âLand-Infoâ > âZugangâ." - name="land manage allowed" /> - <action description="Parzellen-Bannlisten verwalten" - longdescription="Parzellen-Bannlisten bearbeiten Sie unter âLand-Infoâ > âVerbannenâ." - name="land manage banned" /> - <action - description="Parzelleneinstellungen fÃŒr âPÀsse verkaufen...â Àndern" - longdescription="Die Parzellen-Einstellungen fÃŒr âPÀsse verkaufen...â Àndern Sie unter âLand-Infoâ > âZugangâ." - name="land manage passes" /> - <action description="Einwohner aus Parzellen werfen und einfrieren" - longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können gegen unerwÃŒnschte Personen auf einer gruppeneigenen Parzelle MaÃnahmen ergreifen. Klicken Sie die Person mit rechts an und wÀhlen Sie âMehrâ >, dann âAusschlieÃen...â oder âEinfrieren...â." - name="land admin" /> + <action_set description="Diese FÀhigkeiten ermöglichen es, den Zugang auf gruppeneigenen Parzellen zu steuern. Dazu gehört das Einfrieren und AusschlieÃen von Einwohnern." name="Parcel Access"> + <action description="Parzellen-Zugangslisten verwalten" longdescription="Parzellen-Zugangslisten bearbeiten Sie unter âLand-Infoâ > âZugangâ." name="land manage allowed"/> + <action description="Parzellen-Bannlisten verwalten" longdescription="Bannlisten fÃŒr Parzellen bearbeiten Sie unter âLand-Infoâ > Registerkarte âZugangâ." name="land manage banned"/> + <action description="Parzelleneinstellungen fÃŒr âPÀsse verkaufenâ Àndern" longdescription="Die Parzellen-Einstellungen fÃŒr âPÀsse verkaufenâ Àndern Sie unter âLand-Infoâ > Registerkarte âZugangâ." name="land manage passes"/> + <action description="Einwohner aus Parzellen werfen und einfrieren" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können gegen unerwÃŒnschte Einwohner auf einer gruppeneigenen Parzelle MaÃnahmen ergreifen. Klicken Sie den Einwohner mit rechts an und wÀhlen Sie âHinauswerfenâ oder âEinfrierenâ." name="land admin"/> </action_set> - <action_set - description="Diese FÀhigkeiten ermöglichen es, Mitgliedern das ZurÃŒckgeben von Objekten sowie das Platzieren und Verschieben von Linden-Pflanzen zu erlauben. Mitglieder können das GrundstÃŒck aufrÀumen und an der Landschaftsgestaltung mitwirken. Aber Vorsicht: ZurÃŒckgegebene Objekte können nicht mehr zurÃŒckgeholt werden." - name="Parcel Content"> - <action description="Gruppeneigene Objekte zurÃŒckgeben" - longdescription="Gruppeneigene Objekte auf gruppeneigenen Parzellen können Sie unter âLand-Infoâ > âObjekteâ zurÃŒckgeben." - name="land return group owned" /> - <action description="Gruppenobjekte zurÃŒckgeben" - longdescription="Gruppenobjekte auf gruppeneigenen Parzellen können Sie unter âLand-Infoâ > âObjekteâ zurÃŒckgeben." - name="land return group set" /> - <action description="Gruppenfremde Objekte zurÃŒckgeben" - longdescription="Objekte von gruppenfremden Personen auf gruppeneigenen Parzellen können Sie unter âLand-Infoâ > âObjekteâ zurÃŒckgeben." - name="land return non group" /> - <action description="Landschaftsgestaltung mit Linden-Pflanzen" - longdescription="Die FÀhigkeit zur Landschaftsgestaltung ermöglicht das Platzieren und Verschieben von Linden-BÀumen, -Pflanzen und -GrÀsern. Diese Objekte finden Sie im Bibliotheksordner des Inventars unter âObjekteâ. Sie lassen sich auch mit der SchaltflÀche âErstellenâ erzeugen." - name="land gardening" /> + <action_set description="Diese FÀhigkeiten ermöglichen es, Mitgliedern das ZurÃŒckgeben von Objekten sowie das Platzieren und Verschieben von Linden-Pflanzen zu erlauben. Mitglieder können das GrundstÃŒck aufrÀumen und an der Landschaftsgestaltung mitwirken. Aber Vorsicht: ZurÃŒckgegebene Objekte können nicht mehr zurÃŒckgeholt werden." name="Parcel Content"> + <action description="Gruppeneigene Objekte zurÃŒckgeben" longdescription="Gruppeneigene Objekte auf gruppeneigenen Parzellen können Sie unter âLand-Infoâ > âObjekteâ zurÃŒckgeben." name="land return group owned"/> + <action description="Gruppenobjekte zurÃŒckgeben" longdescription="Gruppenobjekte auf gruppeneigenen Parzellen können Sie unter âLand-Infoâ > âObjekteâ zurÃŒckgeben." name="land return group set"/> + <action description="Gruppenfremde Objekte zurÃŒckgeben" longdescription="Objekte von gruppenfremden Personen auf gruppeneigenen Parzellen können Sie unter âLand-Infoâ > âObjekteâ zurÃŒckgeben." name="land return non group"/> + <action description="Landschaftsgestaltung mit Linden-Pflanzen" longdescription="Die FÀhigkeit zur Landschaftsgestaltung ermöglicht das Platzieren und Verschieben von Linden-BÀumen, -Pflanzen und -GrÀsern. Diese Objekte finden Sie im Bibliotheksordner des Inventars unter Objekte. Sie lassen sich auch mit der MenÃŒ Erstellen erzeugen." name="land gardening"/> </action_set> - <action_set - description="Diese FÀhigkeiten ermöglichen es, gruppeneigene Objekte zu ÃŒbertragen, zu bearbeiten und zu verkaufen. Ãnderungen werden unter âAuswahl-Toolâ > âBearbeitenâ auf der Registerkarte âAllgemeinâ vorgenommen. Klicken Sie mit rechts auf ein Objekt und wÀhlen Sie âBearbeitenâ, um seine Einstellungen anzuzeigen." - name="Object Management"> - <action description="Objekte an Gruppe ÃŒbertragen" - longdescription="Objekte an eine Gruppe ÃŒbertragen können Sie unter âAuswahl-Toolâ > âBearbeitenâ auf der Registerkarte âAllgemeinâ." - name="object deed" /> - <action - description="Gruppeneigene Objekte manipulieren (verschieben, kopieren, bearbeiten)" - longdescription="Gruppeneigene Objekte lassen sich unter âAuswahl-Toolâ > âBearbeitenâ auf der Registerkarte âAllgemeinâ manipulieren (verschieben, kopieren, bearbeiten)." - name="object manipulate" /> - <action description="Gruppeneigene Objekte zum Verkauf freigeben" - longdescription="Gruppeneigene Objekte zum Verkauf freigeben können Sie unter âAuswahl-Toolâ > âBearbeitenâ auf der Registerkarte âAllgemeinâ." - name="object set sale" /> + <action_set description="Diese FÀhigkeiten ermöglichen es, gruppeneigene Objekte zu ÃŒbertragen, zu bearbeiten und zu verkaufen. Ãnderungen werden im Werkzeug Bearbeiten auf der Registerkarte Allgemein vorgenommen. Klicken Sie mit rechts auf ein Objekt und wÀhlen Sie 'Bearbeiten ', um seine Einstellungen anzuzeigen." name="Object Management"> + <action description="Objekte an Gruppe ÃŒbertragen" longdescription="Objekte an eine Gruppe ÃŒbertragen können Sie im Werkzeug âBearbeitenâ auf der Registerkarte âAllgemeinâ." name="object deed"/> + <action description="Gruppeneigene Objekte manipulieren (verschieben, kopieren, bearbeiten)" longdescription="Gruppeneigene Objekte lassen sich im Werkzeug âBearbeitenâ auf der Registerkarte âAllgemeinâ manipulieren (verschieben, kopieren, bearbeiten)." name="object manipulate"/> + <action description="Gruppeneigene Objekte zum Verkauf freigeben" longdescription="Gruppeneigene Objekte zum Verkauf freigeben, können Sie im Werkzeug âBearbeitenâ auf der Registerkarte âAllgemeinâ." name="object set sale"/> </action_set> - <action_set - description="Diese FÀhigkeiten ermöglichen es, Gruppenschulden und Gruppendividenden zu aktivieren und den Zugriff auf das Gruppenkonto zu beschrÀnken." - name="Accounting"> - <action description="Gruppenschulden zahlen und Gruppendividende erhalten" - longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit zahlen automatisch Gruppenschulden und erhalten Gruppendividenden. D. h. sie erhalten einen Anteil an VerkÀufen von gruppeneigenem Land, der tÀglich verrechnet wird. AuÃerdem zahlen Sie automatisch fÃŒr anfallende Kosten wie Parzellenlisten-GebÃŒhren." - name="accounting accountable" /> + <action_set description="Diese FÀhigkeiten ermöglichen es, Gruppenschulden und Gruppendividenden zu aktivieren und den Zugriff auf das Gruppenkonto zu beschrÀnken." name="Accounting"> + <action description="Gruppenschulden zahlen und Gruppendividende erhalten" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit zahlen automatisch Gruppenschulden und erhalten Gruppendividenden. D. h. sie erhalten einen Anteil an VerkÀufen von gruppeneigenem Land, der tÀglich verrechnet wird. AuÃerdem zahlen Sie automatisch fÃŒr anfallende Kosten wie Parzellenlisten-GebÃŒhren." name="accounting accountable"/> </action_set> - <action_set - description="Diese FÀhigkeiten ermöglichen es, Mitgliedern das Senden, Empfangen und Anzeigen von Gruppennachrichten zu erlauben." - name="Notices"> - <action description="Mitteilungen senden" - longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können in der Gruppeninfo unter âMitteilungenâ Mitteilungen senden." - name="notices send" /> - <action description="Mitteilungen erhalten und Àltere Mitteilungen anzeigen" - longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können Mitteilungen erhalten und in der Gruppeninfo unter âMitteilungenâ Àltere Mitteilungen einsehen." - name="notices receive" /> + <action_set description="Diese FÀhigkeiten ermöglichen es, Mitgliedern das Senden, Empfangen und Anzeigen von Gruppennachrichten zu erlauben." name="Notices"> + <action description="Mitteilungen senden" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können Mitteilungen im Abschnitt Gruppe > Mitteilungen senden." name="notices send"/> + <action description="Mitteilungen erhalten und Àltere Mitteilungen anzeigen" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können Mitteilungen erhalten und im Abschnitt Gruppe > Mitteilungen Àltere Mitteilungen anzeigen." name="notices receive"/> </action_set> - <action_set - description="Diese FÀhigkeiten ermöglichen es, Mitgliedern das Erstellen von Anfragen, das Abstimmen ÃŒber Anfragen und das Anzeigen des Abstimmprotokolls zu erlauben." - name="Proposals"> - <action description="Neue Anfragen" - longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können Anfragen stellen, ÃŒber die auf der Registerkarte âAnfragenâ in der Gruppeninfo abgestimmt werden kann." - name="proposal start" /> - <action description="Ãber Anfragen abstimmen" - longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können in der Gruppeninfo unter âAnfragenâ ÃŒber Anfragen abstimmen." - name="proposal vote" /> + <action_set description="Diese FÀhigkeiten ermöglichen es, Mitgliedern das Erstellen von Anfragen, das Abstimmen ÃŒber Anfragen und das Anzeigen des Abstimmprotokolls zu erlauben." name="Proposals"> + <action description="Neue Anfragen" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können Anfragen stellen, ÃŒber die auf der Registerkarte âAnfragenâ in der Gruppeninfo abgestimmt werden kann." name="proposal start"/> + <action description="Ãber Anfragen abstimmen" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können in der Gruppeninfo unter âAnfragenâ ÃŒber Anfragen abstimmen." name="proposal vote"/> </action_set> - <action_set - description="Diese FÀhigkeiten ermöglichen es, den Zugang zu Gruppen-Chat und Gruppen-Voice-Chat zu steuern." - name="Chat"> - <action description="Gruppen-Chat beitreten" - longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können Gruppen-Chat und Gruppen-Voice-Chat beitreten." - name="join group chat" /> - <action description="Gruppen-Voice-Chat beitreten" - longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können Gruppen-Voice-Chat beitreten. HINWEIS: Sie benötigen die FÀhigkeit âGruppen-Chat beitretenâ, um Zugang zu dieser Voice-Chat-Sitzung zu erhalten." - name="join voice chat" /> - <action description="Gruppen-Chat moderieren" - longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können den Zugang zu und die Teilnahme an Gruppen-Chat- und Voice-Chat-Sitzungen steuern." - name="moderate group chat" /> + <action_set description="Diese FÀhigkeiten ermöglichen es, den Zugang zu Gruppen-Chat und Gruppen-Voice-Chat zu steuern." name="Chat"> + <action description="Gruppen-Chat beitreten" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können Gruppen-Chat und Gruppen-Voice-Chat beitreten." name="join group chat"/> + <action description="Gruppen-Voice-Chat beitreten" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können Gruppen-Voice-Chat beitreten. HINWEIS: Sie benötigen die FÀhigkeit âGruppen-Chat beitretenâ, um Zugang zu dieser Voice-Chat-Sitzung zu erhalten." name="join voice chat"/> + <action description="Gruppen-Chat moderieren" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können den Zugang zu und die Teilnahme an Gruppen-Chat- und Voice-Chat-Sitzungen steuern." name="moderate group chat"/> </action_set> </role_actions> diff --git a/indra/newview/skins/default/xui/de/sidepanel_appearance.xml b/indra/newview/skins/default/xui/de/sidepanel_appearance.xml index 07d35f30e4..7a280bd7ff 100644 --- a/indra/newview/skins/default/xui/de/sidepanel_appearance.xml +++ b/indra/newview/skins/default/xui/de/sidepanel_appearance.xml @@ -1,16 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="Aussehen" name="appearance panel"> +<panel label="Outfits" name="appearance panel"> <string name="No Outfit" value="Kein Outfit"/> <panel name="panel_currentlook"> <button label="Bearbeiten" name="editappearance_btn"/> <text name="currentlook_title"> - Aktuelles Outfit: + (nicht gespeichert) </text> <text name="currentlook_name"> - Mein Outfit + MyOutfit With a really Long Name like MOOSE </text> </panel> - <filter_editor label="Filter" name="Filter"/> + <filter_editor label="Outfits filtern" name="Filter"/> <button label="Anziehen" name="wear_btn"/> <button label="Neues Outfit" name="newlook_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/de/sidepanel_inventory.xml b/indra/newview/skins/default/xui/de/sidepanel_inventory.xml index d40e2f3398..f6cf911bb3 100644 --- a/indra/newview/skins/default/xui/de/sidepanel_inventory.xml +++ b/indra/newview/skins/default/xui/de/sidepanel_inventory.xml @@ -2,7 +2,7 @@ <panel label="Sonstiges" name="objects panel"> <panel label="" name="sidepanel__inventory_panel"> <panel name="button_panel"> - <button label="Info" name="info_btn"/> + <button label="Profil" name="info_btn"/> <button label="Anziehen" name="wear_btn"/> <button label="Wiedergeben" name="play_btn"/> <button label="Teleportieren" name="teleport_btn"/> diff --git a/indra/newview/skins/default/xui/de/sidepanel_item_info.xml b/indra/newview/skins/default/xui/de/sidepanel_item_info.xml index 947ffbf186..09935019ab 100644 --- a/indra/newview/skins/default/xui/de/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/de/sidepanel_item_info.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="item properties" title="Inventarobjekt-Eigenschaften"> +<panel name="item properties" title="Objektprofil"> <panel.string name="unknown"> (unbekannt) </panel.string> @@ -15,6 +15,8 @@ <panel.string name="acquiredDate"> [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local] </panel.string> + <text name="title" value="Objektprofil"/> + <text name="where" value="(Inventar)"/> <panel label=""> <text name="LabelItemNameTitle"> Name: @@ -28,53 +30,50 @@ <text name="LabelCreatorName"> Nicole Linden </text> - <button label="Profil..." name="BtnCreator"/> + <button label="Profil" name="BtnCreator"/> <text name="LabelOwnerTitle"> EigentÃŒmer: </text> <text name="LabelOwnerName"> Thrax Linden </text> - <button label="Profil..." name="BtnOwner"/> + <button label="Profil" name="BtnOwner"/> <text name="LabelAcquiredTitle"> Erworben: </text> <text name="LabelAcquiredDate"> Mittwoch, 24. Mai 2006, 12:50:46 </text> - <text name="OwnerLabel"> - Sie: - </text> - <check_box label="Bearbeiten" name="CheckOwnerModify"/> - <check_box label="Kopieren" name="CheckOwnerCopy"/> - <check_box label="Wiederverkaufen" name="CheckOwnerTransfer"/> - <text name="AnyoneLabel"> - Jeder: - </text> - <check_box label="Kopieren" name="CheckEveryoneCopy"/> - <text name="GroupLabel"> - Gruppe: - </text> - <check_box label="Teilen" name="CheckShareWithGroup"/> - <text name="NextOwnerLabel"> - NÀchster EigentÃŒmer: - </text> - <check_box label="Bearbeiten" name="CheckNextOwnerModify"/> - <check_box label="Kopieren" name="CheckNextOwnerCopy"/> - <check_box label="Wiederverkaufen" name="CheckNextOwnerTransfer"/> + <panel name="perms_inv"> + <text name="perm_modify"> + Sie können: + </text> + <check_box label="Bearbeiten" name="CheckOwnerModify"/> + <check_box label="Kopieren" name="CheckOwnerCopy"/> + <check_box label="Transferieren" name="CheckOwnerTransfer"/> + <text name="AnyoneLabel"> + Jeder: + </text> + <check_box label="Kopieren" name="CheckEveryoneCopy"/> + <text name="GroupLabel"> + Gruppe: + </text> + <check_box label="Teilen" name="CheckShareWithGroup" tool_tip="Mit allen Mitgliedern der zugeordneten Gruppe, Ihre Berechtigungen dieses Objekt zu Àndern teilen. Sie mÃŒssen Ãbereignen, um RollenbeschrÀnkungen zu aktivieren."/> + <text name="NextOwnerLabel"> + NÀchster EigentÃŒmer: + </text> + <check_box label="Bearbeiten" name="CheckNextOwnerModify"/> + <check_box label="Kopieren" name="CheckNextOwnerCopy"/> + <check_box label="Transferieren" name="CheckNextOwnerTransfer" tool_tip="NÀchster EigentÃŒmer kann dieses Objekt weitergeben oder -verkaufen"/> + </panel> <check_box label="Zum Verkauf" name="CheckPurchase"/> <combo_box name="combobox sale copy"> <combo_box.item label="Kopieren" name="Copy"/> <combo_box.item label="Original" name="Original"/> </combo_box> - <spinner label="Preis:" name="Edit Cost"/> - <text name="CurrencySymbol"> - L$ - </text> + <spinner label="Preis: L$" name="Edit Cost"/> </panel> <panel name="button_panel"> - <button label="Bearbeiten" name="edit_btn"/> <button label="Abbrechen" name="cancel_btn"/> - <button label="Speichern" name="save_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/sidepanel_task_info.xml b/indra/newview/skins/default/xui/de/sidepanel_task_info.xml index b0ce47e3ae..9f8fdc085a 100644 --- a/indra/newview/skins/default/xui/de/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/de/sidepanel_task_info.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="object properties" title="Objekteigenschaften"> +<panel name="object properties" title="Objektprofil"> <panel.string name="text deed continued"> Ãbertragung </panel.string> @@ -36,6 +36,8 @@ <panel.string name="Sale Mixed"> Mischverkauf </panel.string> + <text name="title" value="Objektprofil"/> + <text name="where" value="(Inworld)"/> <panel label=""> <text name="Name:"> Name: @@ -43,11 +45,11 @@ <text name="Description:"> Beschreibung: </text> - <text name="Creator:"> + <text name="CreatorNameLabel"> Ersteller: </text> <text name="Creator Name"> - Esbee Linden + Erica Linden </text> <text name="Owner:"> EigentÃŒmer: @@ -55,13 +57,12 @@ <text name="Owner Name"> Erica Linden </text> - <text name="Group:"> + <text name="Group_label"> Gruppe: </text> <button name="button set group" tool_tip="Eine Gruppe auswÀhlen, um die Berechtigungen des Objekts zu teilen."/> <name_box initial_value="Wird geladen..." name="Group Name Proxy"/> <button label="Ãbertragung" label_selected="Ãbertragung" name="button deed" tool_tip="Eine Ãbertragung bedeutet, dass das Objekt mit den Berechtigungen âNÀchster EigentÃŒmerâ weitergegeben wird. Mit der Gruppe geteilte Objekte können von einem Gruppen-Officer ÃŒbertragen werden."/> - <check_box label="Teilen" name="checkbox share with group" tool_tip="Mit allen Mitgliedern der zugeordneten Gruppe, Ihre Berechtigungen dieses Objekt zu Àndern teilen. Sie mÃŒssen Ãbereignen, um RollenbeschrÀnkungen zu aktivieren."/> <text name="label click action"> Bei Linksklick: </text> @@ -72,55 +73,56 @@ <combo_box.item label="Objekt bezahlen" name="Payobject"/> <combo_box.item label="Ãffnen" name="Open"/> </combo_box> - <check_box label="Zum Verkauf:" name="checkbox for sale"/> - <combo_box name="sale type"> - <combo_box.item label="Kopieren" name="Copy"/> - <combo_box.item label="Inhalte" name="Contents"/> - <combo_box.item label="Original" name="Original"/> - </combo_box> - <spinner label="Preis: L$" name="Edit Cost"/> - <check_box label="In Suche anzeigen" name="search_check" tool_tip="Dieses Objekt in Suchergebnissen anzeigen"/> - <panel name="perms_build"> + <panel name="perms_inv"> <text name="perm_modify"> Sie können dieses Objekt bearbeiten. </text> <text name="Anyone can:"> Jeder: </text> - <check_box label="Bewegen" name="checkbox allow everyone move"/> <check_box label="Kopieren" name="checkbox allow everyone copy"/> - <text name="Next owner can:"> + <check_box label="Bewegen" name="checkbox allow everyone move"/> + <text name="GroupLabel"> + Gruppe: + </text> + <check_box label="Teilen" name="checkbox share with group" tool_tip="Mit allen Mitgliedern der zugeordneten Gruppe, Ihre Berechtigungen dieses Objekt zu Àndern teilen. Sie mÃŒssen Ãbereignen, um RollenbeschrÀnkungen zu aktivieren."/> + <text name="NextOwnerLabel"> NÀchster EigentÃŒmer: </text> <check_box label="Bearbeiten" name="checkbox next owner can modify"/> <check_box label="Kopieren" name="checkbox next owner can copy"/> <check_box label="Transferieren" name="checkbox next owner can transfer" tool_tip="NÀchster EigentÃŒmer kann dieses Objekt weitergeben oder -verkaufen"/> - <text name="B:"> - B: - </text> - <text name="O:"> - O: - </text> - <text name="G:"> - G: - </text> - <text name="E:"> - E: - </text> - <text name="N:"> - N: - </text> - <text name="F:"> - F: - </text> </panel> + <check_box label="Zum Verkauf" name="checkbox for sale"/> + <combo_box name="sale type"> + <combo_box.item label="Kopieren" name="Copy"/> + <combo_box.item label="Inhalte" name="Contents"/> + <combo_box.item label="Original" name="Original"/> + </combo_box> + <spinner label="Preis: L$" name="Edit Cost"/> + <check_box label="In Suche anzeigen" name="search_check" tool_tip="Dieses Objekt in Suchergebnissen anzeigen"/> + <text name="B:"> + B: + </text> + <text name="O:"> + O: + </text> + <text name="G:"> + G: + </text> + <text name="E:"> + E: + </text> + <text name="N:"> + N: + </text> + <text name="F:"> + F: + </text> </panel> <panel name="button_panel"> - <button label="Bearbeiten" name="edit_btn"/> <button label="Ãffnen" name="open_btn"/> <button label="Zahlen" name="pay_btn"/> <button label="Kaufen" name="buy_btn"/> - <button label="Abbrechen" name="cancel_btn"/> - <button label="Speichern" name="save_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml index 1488f615a3..8fd1c59ca0 100644 --- a/indra/newview/skins/default/xui/de/strings.xml +++ b/indra/newview/skins/default/xui/de/strings.xml @@ -10,6 +10,9 @@ <string name="APP_NAME"> Second Life </string> + <string name="CAPITALIZED_APP_NAME"> + SECOND LIFE + </string> <string name="SECOND_LIFE_GRID"> Second Life-Grid: </string> @@ -49,6 +52,9 @@ <string name="LoginInitializingMultimedia"> Multimedia wird initialisiert... </string> + <string name="LoginInitializingFonts"> + Schriftarten werden geladen... + </string> <string name="LoginVerifyingCache"> Cache-Dateien werden ÃŒberprÃŒft (dauert 60-90 Sekunden)... </string> @@ -79,6 +85,9 @@ <string name="LoginDownloadingClothing"> Kleidung wird geladen... </string> + <string name="LoginFailedNoNetwork"> + Netzwerk Fehler: Eine Verbindung konnte nicht hergestellt werden. Bitte ÃŒberprÃŒfen Sie Ihre Netzwerkverbindung. + </string> <string name="Quit"> Beenden </string> @@ -174,7 +183,7 @@ Karte anzeigen fÃŒr </string> <string name="BUTTON_CLOSE_DARWIN"> - SchlieÃen (⌘W) + SchlieÃen (âW) </string> <string name="BUTTON_CLOSE_WIN"> SchlieÃen (Strg+W) @@ -191,9 +200,6 @@ <string name="BUTTON_DOCK"> Andocken </string> - <string name="BUTTON_UNDOCK"> - Abkoppeln - </string> <string name="BUTTON_HELP"> Hilfe anzeigen </string> @@ -626,11 +632,14 @@ <string name="ControlYourCamera"> Kamerasteuerung </string> + <string name="NotConnected"> + Nicht verbunden + </string> <string name="SIM_ACCESS_PG"> - PG + Allgemein </string> <string name="SIM_ACCESS_MATURE"> - Mature + Moderat </string> <string name="SIM_ACCESS_ADULT"> Adult @@ -816,7 +825,10 @@ ESC drÃŒcken, um zur Normalansicht zurÃŒckzukehren </string> <string name="InventoryNoMatchingItems"> - Im Inventar wurden keine passenden Artikel gefunden. + Im Inventar wurden keine passenden Objekte gefunden. + </string> + <string name="FavoritesNoMatchingItems"> + Hier eine Landmarke hin ziehen, um diese zu Ihrem Favoriten hinzuzufÃŒgen. </string> <string name="InventoryNoTexture"> Sie haben keine Kopie dieser Textur in Ihrem Inventar. @@ -1288,6 +1300,156 @@ <string name="RegionInfoAllowedGroups"> ZulÀssige Gruppen: ([ALLOWEDGROUPS], max [MAXACCESS]) </string> + <string name="ScriptLimitsParcelScriptMemory"> + Parzellenskript-Speicher + </string> + <string name="ScriptLimitsParcelsOwned"> + AufgefÃŒhrte Parzellen: [PARCELS] + </string> + <string name="ScriptLimitsMemoryUsed"> + Verwendeter Speicher: [COUNT] KB von [MAX] KB; [AVAILABLE] KB verfÃŒgbar + </string> + <string name="ScriptLimitsMemoryUsedSimple"> + Verwendeter Speicher: [COUNT] KB + </string> + <string name="ScriptLimitsParcelScriptURLs"> + Parzelleskript-URLs + </string> + <string name="ScriptLimitsURLsUsed"> + Verwendete URLs: [COUNT] von [MAX]; [AVAILABLE] verfÃŒgbar + </string> + <string name="ScriptLimitsURLsUsedSimple"> + Verwendete URLs: [COUNT] + </string> + <string name="ScriptLimitsRequestError"> + Fehler bei Informationsabruf + </string> + <string name="ScriptLimitsRequestWrongRegion"> + Fehler: Skriptinformationen sind nur fÃŒr Ihre aktuelle Region verfÃŒgbar + </string> + <string name="ScriptLimitsRequestWaiting"> + Informationen werden abgerufen... + </string> + <string name="ScriptLimitsRequestDontOwnParcel"> + Sie sind nicht berechtigt, diese Parzelle zu untersuchen. + </string> + <string name="SITTING_ON"> + sitzt auf + </string> + <string name="ATTACH_CHEST"> + Brust + </string> + <string name="ATTACH_HEAD"> + Kopf + </string> + <string name="ATTACH_LSHOULDER"> + Linke Schulter + </string> + <string name="ATTACH_RSHOULDER"> + Rechte Schulter + </string> + <string name="ATTACH_LHAND"> + Linke Hand + </string> + <string name="ATTACH_RHAND"> + Rechte Hand + </string> + <string name="ATTACH_LFOOT"> + Linker Fuà + </string> + <string name="ATTACH_RFOOT"> + Rechter Fuà + </string> + <string name="ATTACH_BACK"> + Hinten + </string> + <string name="ATTACH_PELVIS"> + Becken + </string> + <string name="ATTACH_MOUTH"> + Mund + </string> + <string name="ATTACH_CHIN"> + Kinn + </string> + <string name="ATTACH_LEAR"> + Linkes Ohr + </string> + <string name="ATTACH_REAR"> + Rechtes Ohr + </string> + <string name="ATTACH_LEYE"> + Linkes Auge + </string> + <string name="ATTACH_REYE"> + Rechtes Auge + </string> + <string name="ATTACH_NOSE"> + Nase + </string> + <string name="ATTACH_RUARM"> + Rechter Oberarm + </string> + <string name="ATTACH_RLARM"> + Rechter Unterarm + </string> + <string name="ATTACH_LUARM"> + Linker Oberarm + </string> + <string name="ATTACH_LLARM"> + Linker Unterarm + </string> + <string name="ATTACH_RHIP"> + Rechte HÃŒfte + </string> + <string name="ATTACH_RULEG"> + Rechter Oberschenkel + </string> + <string name="ATTACH_RLLEG"> + Rechter Unterschenkel + </string> + <string name="ATTACH_LHIP"> + Linke HÃŒfte + </string> + <string name="ATTACH_LULEG"> + Linker Oberschenkel + </string> + <string name="ATTACH_LLLEG"> + Linker Unterschenkel + </string> + <string name="ATTACH_BELLY"> + Bauch + </string> + <string name="ATTACH_RPEC"> + Rechts + </string> + <string name="ATTACH_LPEC"> + Linke Brust + </string> + <string name="ATTACH_HUD_CENTER_2"> + HUD Mitte 2 + </string> + <string name="ATTACH_HUD_TOP_RIGHT"> + HUD oben rechts + </string> + <string name="ATTACH_HUD_TOP_CENTER"> + HUD oben Mitte + </string> + <string name="ATTACH_HUD_TOP_LEFT"> + HUD oben links + </string> + <string name="ATTACH_HUD_CENTER_1"> + HUD Mitte 1 + </string> + <string name="ATTACH_HUD_BOTTOM_LEFT"> + HUD unten links + </string> + <string name="ATTACH_HUD_BOTTOM"> + HUD unten + </string> + <string name="ATTACH_HUD_BOTTOM_RIGHT"> + HUD unten rechts + </string> <string name="CursorPos"> Zeile [LINE], Spalte [COLUMN] </string> @@ -1338,6 +1500,12 @@ <string name="ClassifiedUpdateAfterPublish"> (wird nach Veröffentlichung aktualisiert) </string> + <string name="NoPicksClassifiedsText"> + Es wurde keine Auswahl getroffen/keine Anzeigen ausgewÀhlt + </string> + <string name="PicksClassifiedsLoadingText"> + Wird geladen... + </string> <string name="MultiPreviewTitle"> Vorschau </string> @@ -1414,23 +1582,35 @@ Unbekanntes Dateiformat .%s GÃŒltige Formate: .wav, .tga, .bmp, .jpg, .jpeg oder .bvh </string> + <string name="MuteObject2"> + Ignorieren + </string> + <string name="MuteAvatar"> + Ignorieren + </string> + <string name="UnmuteObject"> + Freischalten + </string> + <string name="UnmuteAvatar"> + Freischalten + </string> <string name="AddLandmarkNavBarMenu"> - Landmarke hinzufÃŒgen... + Zu meinen Landmarken hinzufÃŒgen... </string> <string name="EditLandmarkNavBarMenu"> - Landmarke bearbeiten... + Meine Landmarken bearbeiten... </string> <string name="accel-mac-control"> - ⌃ + â </string> <string name="accel-mac-command"> - ⌘ + â </string> <string name="accel-mac-option"> - ⌥ + ⥠</string> <string name="accel-mac-shift"> - ⇧ + ⧠</string> <string name="accel-win-control"> Strg+ @@ -1616,7 +1796,7 @@ Falls der Fehler dann weiterhin auftritt, mÃŒssen Sie [APP_NAME] von Ihrem Syste Unbehebbarer Fehler </string> <string name="MBRequiresAltiVec"> - [APP_NAME] erfordert einen Prozessor mit AltiVec (G4 oder spÀter). + [APP_NAME] erfordert einen Prozessor mit AltiVec (G4 oder spÀter). </string> <string name="MBAlreadyRunning"> [APP_NAME] lÀuft bereits. @@ -1628,7 +1808,7 @@ Falls diese Nachricht erneut angezeigt wird, starten Sie Ihren Computer bitte ne Möchten Sie einen Absturz-Bericht einschicken? </string> <string name="MBAlert"> - Alarm + Benachrichtigung </string> <string name="MBNoDirectX"> [APP_NAME] kann DirectX 9.0b oder höher nicht feststellen. @@ -1744,7 +1924,7 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_ Volumen: Oben </string> <string name="Big Head"> - GroÃer Kopf + Groà </string> <string name="Big Pectorals"> GroÃe Brustmuskeln @@ -1780,13 +1960,13 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_ Sommersprossen </string> <string name="Body Thick"> - Körper - breit + breit </string> <string name="Body Thickness"> Körperbreite </string> <string name="Body Thin"> - Körper - schmal + schmal </string> <string name="Bow Legged"> o-beinig @@ -2010,12 +2190,6 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_ <string name="Eyes Bugged"> Glubschaugen </string> - <string name="Eyes Shear Left Up"> - Augen Verzerrung links hoch - </string> - <string name="Eyes Shear Right Up"> - Augen Verzerrung rechts hoch - </string> <string name="Face Shear"> Gesichtsverzerrung </string> @@ -2149,7 +2323,7 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_ Absatzform </string> <string name="Height"> - Höhe + GröÃe </string> <string name="High"> Hoch @@ -2431,16 +2605,16 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_ Mehr </string> <string name="More Sloped"> - Mehr + Flach </string> <string name="More Square"> - Mehr + Eckiger </string> <string name="More Upper Lip"> Mehr </string> <string name="More Vertical"> - Mehr + Steil </string> <string name="More Volume"> Mehr @@ -2755,10 +2929,10 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_ Falten </string> <string name="Shoe Height"> - Höhe + Schuhart </string> <string name="Short"> - Kurz + Sandale </string> <string name="Short Arms"> Kurze Arme @@ -2839,7 +3013,7 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_ Kleine HÀnde </string> <string name="Small Head"> - Kleiner Kopf + Klein </string> <string name="Smooth"> GlÀtten @@ -2887,7 +3061,7 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_ Nach vorne </string> <string name="Tall"> - Groà + Stiefel </string> <string name="Taper Back"> Ansatzbreite hinten @@ -3018,6 +3192,27 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_ <string name="LocationCtrlComboBtnTooltip"> Mein Reiseverlauf </string> + <string name="LocationCtrlForSaleTooltip"> + Dieses Land kaufen + </string> + <string name="LocationCtrlVoiceTooltip"> + Voice hier nicht möglich + </string> + <string name="LocationCtrlFlyTooltip"> + Fliegen ist unzulÀssig + </string> + <string name="LocationCtrlPushTooltip"> + Kein StoÃen + </string> + <string name="LocationCtrlBuildTooltip"> + Bauen/Fallen lassen von Objekten ist verboten + </string> + <string name="LocationCtrlScriptsTooltip"> + Skripte sind unzulÀssig + </string> + <string name="LocationCtrlDamageTooltip"> + Gesundheit + </string> <string name="UpdaterWindowTitle"> [APP_NAME] Aktualisierung </string> @@ -3075,6 +3270,33 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_ <string name="IM_moderator_label"> (Moderator) </string> + <string name="started_call"> + haben/hat einen Anruf initiiert + </string> + <string name="joined_call"> + ist dem GesprÀch beigetreten + </string> + <string name="ringing-im"> + Verbindung wird hergestellt... + </string> + <string name="connected-im"> + Verbunden. Klicken Sie auf Anruf beenden, um die Verbindung zu trennen + </string> + <string name="hang_up-im"> + Anruf wurde beendet + </string> + <string name="answering-im"> + Wird verbunden... + </string> + <string name="conference-title"> + Ad-hoc-Konferenz + </string> + <string name="inventory_item_offered-im"> + Inventarobjekt angeboten + </string> + <string name="share_alert"> + Objekte aus dem Inventar hier her ziehen + </string> <string name="only_user_message"> Sie sind der einzige Benutzer in dieser Sitzung. </string> @@ -3084,6 +3306,12 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_ <string name="invite_message"> Klicken Sie auf [BUTTON NAME], um eine Verbindung zu diesem Voice-Chat herzustellen. </string> + <string name="muted_message"> + Sie haben diesen Einwohner ignoriert. Wenn Sie eine Nachricht senden, wird dieser freigeschaltet. + </string> + <string name="generic"> + Fehler bei Anfrage, bitte versuchen Sie es spÀter. + </string> <string name="generic_request_error"> Fehler bei Anfrage, bitte versuchen Sie es spÀter. </string> @@ -3102,19 +3330,37 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_ <string name="not_a_mod_error"> Sie sind kein Sitzungsmoderator. </string> + <string name="muted"> + Ein Gruppenmoderator hat Ihren Text-Chat deaktiviert. + </string> <string name="muted_error"> Ein Gruppenmoderator hat Ihren Text-Chat deaktiviert. </string> <string name="add_session_event"> Es konnten keine Benutzer zur Chat-Sitzung mit [RECIPIENT] hinzugefÃŒgt werden. </string> + <string name="message"> + Ihre Nachricht konnte nicht an die Chat-Sitzung mit [RECIPIENT] gesendet werden. + </string> <string name="message_session_event"> Ihre Nachricht konnte nicht an die Chat-Sitzung mit [RECIPIENT] gesendet werden. </string> + <string name="mute"> + Fehler wÀhrend Moderation. + </string> + <string name="removed"> + Sie wurden von der Gruppe ausgeschlossen. + </string> <string name="removed_from_group"> Sie wurden von der Gruppe ausgeschlossen. </string> <string name="close_on_no_ability"> Sie haben nicht mehr die Berechtigung an der Chat-Sitzung teilzunehmen. </string> + <string name="unread_chat_single"> + [SOURCES] hat etwas Neues gesagt + </string> + <string name="unread_chat_multiple"> + [SOURCES] haben etwas Neues gesagt + </string> </strings> diff --git a/indra/newview/skins/default/xui/en/floater_aaa.xml b/indra/newview/skins/default/xui/en/floater_aaa.xml index 0b48ba9321..b4d2dabc5c 100644 --- a/indra/newview/skins/default/xui/en/floater_aaa.xml +++ b/indra/newview/skins/default/xui/en/floater_aaa.xml @@ -18,7 +18,8 @@ single_instance="true" width="320"> <string name="nudge_parabuild">Nudge 1</string> - <string name="test_the_vlt">This string CHANGE is extracted.</string> + <string name="test_the_vlt">This string CHANGE2 is extracted.</string> + <string name="testing_eli">Just a test. change here. more change.</string> <chat_history allow_html="true" bg_readonly_color="ChatHistoryBgColor" diff --git a/indra/newview/skins/default/xui/en/floater_buy_currency.xml b/indra/newview/skins/default/xui/en/floater_buy_currency.xml index 8f67f564a2..703a02d995 100644 --- a/indra/newview/skins/default/xui/en/floater_buy_currency.xml +++ b/indra/newview/skins/default/xui/en/floater_buy_currency.xml @@ -114,6 +114,7 @@ </text> <line_editor type="string" + max_length="10" halign="right" font="SansSerifMedium" select_on_focus="true" diff --git a/indra/newview/skins/default/xui/en/floater_color_picker.xml b/indra/newview/skins/default/xui/en/floater_color_picker.xml index fbecebc363..0daef29bc5 100644 --- a/indra/newview/skins/default/xui/en/floater_color_picker.xml +++ b/indra/newview/skins/default/xui/en/floater_color_picker.xml @@ -181,7 +181,7 @@ image_unselected="eye_button_inactive.tga" layout="topleft" left_pad="50" - name="Pipette" + name="color_pipette" width="28" /> <button follows="right|bottom" diff --git a/indra/newview/skins/default/xui/en/floater_map.xml b/indra/newview/skins/default/xui/en/floater_map.xml index 3a5ceed5fb..3ddb7bc349 100644 --- a/indra/newview/skins/default/xui/en/floater_map.xml +++ b/indra/newview/skins/default/xui/en/floater_map.xml @@ -1,14 +1,17 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater legacy_header_height="18" - can_minimize="false" + can_minimize="true" can_resize="true" + center_horiz="true" + center_vert="true" follows="top|right" height="225" layout="topleft" min_height="60" min_width="174" name="Map" + title="Mini Map" help_topic="map" save_rect="true" save_visibility="true" diff --git a/indra/newview/skins/default/xui/en/floater_search.xml b/indra/newview/skins/default/xui/en/floater_search.xml index b0bb282abd..775e7d66f7 100644 --- a/indra/newview/skins/default/xui/en/floater_search.xml +++ b/indra/newview/skins/default/xui/en/floater_search.xml @@ -2,9 +2,9 @@ <floater legacy_header_height="13" can_resize="true" - height="646" + height="546" layout="topleft" - min_height="646" + min_height="546" min_width="670" name="floater_search" help_topic="floater_search" @@ -21,7 +21,7 @@ Done </floater.string> <layout_stack - bottom="641" + bottom="541" follows="left|right|top|bottom" layout="topleft" left="10" @@ -42,7 +42,7 @@ left="0" name="browser" top="0" - height="600" + height="500" width="650" /> <text follows="bottom|left" diff --git a/indra/newview/skins/default/xui/en/menu_attachment_other.xml b/indra/newview/skins/default/xui/en/menu_attachment_other.xml index 5b94645b60..c5b31c7f63 100644 --- a/indra/newview/skins/default/xui/en/menu_attachment_other.xml +++ b/indra/newview/skins/default/xui/en/menu_attachment_other.xml @@ -30,6 +30,8 @@ name="Call"> <menu_item_call.on_click function="Avatar.Call" /> + <menu_item_call.on_enable + function="Avatar.EnableCall" /> </menu_item_call> <menu_item_call label="Invite to Group" diff --git a/indra/newview/skins/default/xui/en/menu_avatar_other.xml b/indra/newview/skins/default/xui/en/menu_avatar_other.xml index 0ad41546d2..ac9101cfd9 100644 --- a/indra/newview/skins/default/xui/en/menu_avatar_other.xml +++ b/indra/newview/skins/default/xui/en/menu_avatar_other.xml @@ -30,6 +30,8 @@ name="Call"> <menu_item_call.on_click function="Avatar.Call" /> + <menu_item_call.on_enable + function="Avatar.EnableCall" /> </menu_item_call> <menu_item_call label="Invite to Group" diff --git a/indra/newview/skins/default/xui/en/menu_gesture_gear.xml b/indra/newview/skins/default/xui/en/menu_gesture_gear.xml index d96f3c5494..649f0edff7 100644 --- a/indra/newview/skins/default/xui/en/menu_gesture_gear.xml +++ b/indra/newview/skins/default/xui/en/menu_gesture_gear.xml @@ -62,14 +62,4 @@ function="Gesture.EnableAction" parameter="edit_gesture" /> </menu_item_call> - <menu_item_call - label="Inspect" - layout="topleft" - name="inspect"> - <on_click - function="Gesture.Action.ShowPreview" /> - <on_enable - function="Gesture.EnableAction" - parameter="inspect" /> - </menu_item_call> </menu> diff --git a/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml index dde92f23b6..85ec174829 100644 --- a/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml +++ b/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml @@ -32,6 +32,8 @@ name="call"> <menu_item_call.on_click function="InspectAvatar.Call"/> + <menu_item_call.on_enable + function="InspectAvatar.Gear.EnableCall"/> </menu_item_call> <menu_item_call label="Teleport" diff --git a/indra/newview/skins/default/xui/en/menu_login.xml b/indra/newview/skins/default/xui/en/menu_login.xml index a0dec346a4..5f38522758 100644 --- a/indra/newview/skins/default/xui/en/menu_login.xml +++ b/indra/newview/skins/default/xui/en/menu_login.xml @@ -10,6 +10,7 @@ <menu create_jump_keys="true" label="Me" + tear_off="true" name="File"> <menu_item_call label="Preferences" @@ -39,6 +40,7 @@ <menu create_jump_keys="true" label="Help" + tear_off="true" name="Help"> <menu_item_call label="[SECOND_LIFE] Help" diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 7546d86313..b16660d06e 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -3914,7 +3914,7 @@ Are you sure you want to quit? type="alertmodal"> Use this tool to report violations of the [http://secondlife.com/corporate/tos.php Terms of Service] and [http://secondlife.com/corporate/cs.php Community Standards]. -All reported abuses are investigated and resolved. You can view the resolution by reading the [http://secondlife.com/support/incidentreport.php Incident Report]. +All reported abuses are investigated and resolved. <unique/> </notification> diff --git a/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml index 39170b90ca..072ea882e6 100644 --- a/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml +++ b/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml @@ -29,7 +29,7 @@ text_color="white" top="5" width="250"> - Blocked List + Block List </text> <scroll_list follows="all" diff --git a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml index 0893c204e7..1968d96205 100644 --- a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml +++ b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml @@ -37,6 +37,7 @@ background_visible="true" top="2" width="23" /> <text + allow_html="false" follows="top|left|right" font="SansSerifHugeBold" height="26" diff --git a/indra/newview/skins/default/xui/en/panel_group_list_item.xml b/indra/newview/skins/default/xui/en/panel_group_list_item.xml index c243d08b97..b674b39d9b 100644 --- a/indra/newview/skins/default/xui/en/panel_group_list_item.xml +++ b/indra/newview/skins/default/xui/en/panel_group_list_item.xml @@ -36,6 +36,7 @@ top="2" width="20" /> <text + allow_html="false" follows="left|right" font="SansSerifSmall" height="15" diff --git a/indra/newview/skins/default/xui/en/panel_landmark_info.xml b/indra/newview/skins/default/xui/en/panel_landmark_info.xml index 67a4edbf32..396699ad6c 100644 --- a/indra/newview/skins/default/xui/en/panel_landmark_info.xml +++ b/indra/newview/skins/default/xui/en/panel_landmark_info.xml @@ -229,6 +229,7 @@ value="Title:" width="290" /> <text + allow_html="false" follows="left|top" height="22" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/panel_pick_info.xml b/indra/newview/skins/default/xui/en/panel_pick_info.xml index 65ccd10cf0..7489988722 100644 --- a/indra/newview/skins/default/xui/en/panel_pick_info.xml +++ b/indra/newview/skins/default/xui/en/panel_pick_info.xml @@ -88,6 +88,7 @@ follows="all" height="100" width="280" + allow_html="true" hide_scrollbar="false" layout="topleft" left="10" diff --git a/indra/newview/skins/default/xui/en/panel_place_profile.xml b/indra/newview/skins/default/xui/en/panel_place_profile.xml index 8fc2ae39f0..7ac771de27 100644 --- a/indra/newview/skins/default/xui/en/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_place_profile.xml @@ -246,6 +246,7 @@ </layout_panel> </layout_stack> <text + allow_html="false" follows="left|top|right" font="SansSerifLarge" height="14" @@ -258,6 +259,7 @@ value="SampleRegion" width="290" /> <text + allow_html="false" follows="left|top|right" height="14" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml index a8e24366f2..0aaeb6114e 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml @@ -78,19 +78,19 @@ top_pad="10" width="350" /> <check_box - control_name="MediaEnabled" + name="media_enabled" + control_name="AudioStreamingMedia" height="16" label="Media Enabled" layout="topleft" left="30" - name="media_enabled" top_pad="10" width="350"> <check_box.commit_callback function="Pref.MediaEnabled" /> </check_box> <check_box - enabled_control="MediaEnabled" + enabled_control="AudioStreamingMedia" control_name="ParcelMediaAutoPlayEnable" height="16" label="Allow Media to auto-play" @@ -102,7 +102,19 @@ <check_box.commit_callback function="Pref.ParcelMediaAutoPlayEnable" /> </check_box> - <text + <check_box + control_name="AudioStreamingMusic" + height="16" + label="Music Enabled" + layout="topleft" + left="30" + name="music_enabled" + top_pad="10" + width="350"> + <check_box.commit_callback + function="Pref.MusicEnabled" /> + </check_box> + <text type="string" length="1" follows="left|top" diff --git a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml index 17ababe854..8723e0a832 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml @@ -279,7 +279,7 @@ width="480" /> <radio_item height="20" - label="Use my browser (IE, Firefox)" + label="Use my browser (IE, Firefox, Safari)" layout="topleft" left_delta="0" name="external" diff --git a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml index 4f40e00815..c5f3fcc27d 100644 --- a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml +++ b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml @@ -41,6 +41,7 @@ height="20" layout="topleft" left_pad="5" + allow_html="false" use_ellipses="true" name="region" text_color="white" diff --git a/indra/newview/skins/default/xui/en/widgets/button.xml b/indra/newview/skins/default/xui/en/widgets/button.xml index 51f85e65e2..74d8478551 100644 --- a/indra/newview/skins/default/xui/en/widgets/button.xml +++ b/indra/newview/skins/default/xui/en/widgets/button.xml @@ -7,6 +7,10 @@ image_selected="PushButton_Selected" image_disabled_selected="PushButton_Selected_Disabled" image_disabled="PushButton_Disabled" + image_left_pad="0" + image_right_pad="0" + image_top_pad="0" + image_bottom_pad="0" label_color="ButtonLabelColor" label_color_selected="ButtonLabelSelectedColor" label_color_disabled="ButtonLabelDisabledColor" diff --git a/indra/newview/skins/default/xui/en/widgets/location_input.xml b/indra/newview/skins/default/xui/en/widgets/location_input.xml index 1c0a8ba7c5..70a58b8e03 100644 --- a/indra/newview/skins/default/xui/en/widgets/location_input.xml +++ b/indra/newview/skins/default/xui/en/widgets/location_input.xml @@ -96,7 +96,7 @@ name="damage_icon" width="14" height="13" - top="25" + top="21" left="2" follows="right|top" image_name="Parcel_Damage_Dark" 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 4b134526e0..71a38391cd 100644 --- a/indra/newview/skins/default/xui/ja/floater_about_land.xml +++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml @@ -36,10 +36,10 @@ (ã°ã«ãŒãææ) </panel.string> <panel.string name="profile_text"> - ãããã£ãŒã«... + ãããã£ãŒã« </panel.string> <panel.string name="info_text"> - æ
å ±... + æ
å ± </panel.string> <panel.string name="public_text"> (å
Œ
±) @@ -51,8 +51,7 @@ (賌å
¥å¯©æ»äž) </panel.string> <panel.string name="no_selection_text"> - åºç»ãéžå®ãããŠããŸããã -ãäžçãã¡ãã¥ãŒïŒãåå°æ
å ±ãã«é²ãããå¥ã®åºç»ãéžæããŠã詳现ã衚瀺ããŸãã + åºç»ãéžæãããŠããŸããã </panel.string> <text name="Name:"> ååïŒ @@ -79,13 +78,15 @@ <text name="OwnerText"> Leyla Linden </text> - <button label="ãããã£ãŒã«..." label_selected="ãããã£ãŒã«..." name="Profile..."/> <text name="Group:"> ã°ã«ãŒãïŒ </text> - <button label="èšå®..." label_selected="èšå®..." name="Set..."/> + <text name="GroupText"> + Leyla Linden + </text> + <button label="èšå®" label_selected="èšå®..." name="Set..."/> <check_box label="ã°ã«ãŒããžã®è²æž¡ãèš±å¯" name="check deed" tool_tip="ã°ã«ãŒãã®ãªãã£ãµãŒã¯ãã®åå°ãã°ã«ãŒãã«è²æž¡ã§ããŸãããããããšã°ã«ãŒãã®åå°å²ãåœãŠã«ãã£ãŠãµããŒããããŸãã"/> - <button label="è²æž¡..." label_selected="è²æž¡..." name="Deed..." tool_tip="éžæãããã°ã«ãŒãã®ãªãã£ãµãŒã§ãããšãã®ã¿ãåå°ãè²æž¡ã§ããŸãã"/> + <button label="è²æž¡" label_selected="è²æž¡..." name="Deed..." tool_tip="éžæãããã°ã«ãŒãã®ãªãã£ãµãŒã§ãããšãã®ã¿ãåå°ãè²æž¡ã§ããŸãã"/> <check_box label="ãªãŒããŒãè²æž¡ãšå
±ã«å¯ä»" name="check contrib" tool_tip="åå°ãã°ã«ãŒãã«è²æž¡ããããšããåã®ææè
ã¯è²æž¡ãæç«ãããããååãªåå°ãå¯ä»ããŸãã"/> <text name="For Sale:"> 販売ã®æç¡ïŒ @@ -96,15 +97,15 @@ <text name="For Sale: Price L$[PRICE]."> äŸ¡æ ŒïŒ L$[PRICE] ïŒL$[PRICE_PER_SQM]/å¹³æ¹ã¡ãŒãã«ïŒ </text> - <button label="åå°ã販売..." label_selected="åå°ã販売..." name="Sell Land..."/> + <button label="åå°ã売ã" label_selected="åå°ã販売..." name="Sell Land..."/> <text name="For sale to"> 販売å
ïŒ[BUYER] </text> <text name="Sell with landowners objects in parcel."> - ãªããžã§ã¯ããè²©å£²äŸ¡æ Œã«å«ãŸããŸã + ãªããžã§ã¯ããäžç·ã«è²©å£² </text> <text name="Selling with no objects in parcel."> - ãªããžã§ã¯ãã¯è²©å£²å¯Ÿè±¡å€ã§ã + ãªããžã§ã¯ãã¯è²©å£²ããªã </text> <button label="åå°è²©å£²ã®åãæ¶ã" label_selected="åå°è²©å£²ã®åãæ¶ã" name="Cancel Land Sale"/> <text name="Claimed:"> @@ -125,12 +126,13 @@ <text name="DwellText"> 誀 </text> - <button label="åå°ã賌å
¥..." label_selected="åå°ã賌å
¥..." left="130" name="Buy Land..." width="125"/> - <button label="ã°ã«ãŒãçšã«è³Œå
¥..." label_selected="ã°ã«ãŒãçšã«è³Œå
¥..." name="Buy For Group..."/> - <button label="å
¥å Žèš±å¯ã賌å
¥..." label_selected="å
¥å Žèš±å¯ã賌å
¥..." left="130" name="Buy Pass..." tool_tip="ãã®åå°ãžã®äžæçãªã¢ã¯ã»ã¹ãèš±å¯ããŸãã" width="125"/> - <button label="åå°ãæŸæ£..." label_selected="åå°ãæŸæ£..." name="Abandon Land..."/> - <button label="åå°ã®è¿éãèŠæ±..." label_selected="åå°ã®è¿éãèŠæ±..." name="Reclaim Land..."/> - <button label="Lindenã»ãŒã«..." label_selected="Lindenã»ãŒã«..." name="Linden Sale..." tool_tip="åå°ãææãããŠãããã³ã³ãã³ããèšå®ãããŠããå¿
èŠããããŸãããªãŒã¯ã·ã§ã³ã®å¯Ÿè±¡ã«ãªã£ãŠããªãããšãå¿
èŠæ¡ä»¶ã§ãã"/> + <button label="åå°ã®è³Œå
¥" label_selected="åå°ã賌å
¥..." left="130" name="Buy Land..." width="125"/> + <button label="ã¹ã¯ãªããæ
å ±" name="Scripts..."/> + <button label="ã°ã«ãŒãã«è³Œå
¥" label_selected="ã°ã«ãŒãçšã«è³Œå
¥..." name="Buy For Group..."/> + <button label="å
¥å Žèš±å¯ã賌å
¥" label_selected="å
¥å Žèš±å¯ã賌å
¥..." left="130" name="Buy Pass..." tool_tip="ãã®åå°ãžã®äžæçãªã¢ã¯ã»ã¹ãèš±å¯ããŸãã" width="125"/> + <button label="åå°ã®æŸæ£" label_selected="åå°ãæŸæ£..." name="Abandon Land..."/> + <button label="åå°ãåãæ»ã" label_selected="åå°ã®è¿éãèŠæ±..." name="Reclaim Land..."/> + <button label="ãªã³ãã³ã»ãŒã«" label_selected="Lindenã»ãŒã«..." name="Linden Sale..." tool_tip="åå°ãææãããŠãããã³ã³ãã³ããèšå®ãããŠããå¿
èŠããããŸãããªãŒã¯ã·ã§ã³ã®å¯Ÿè±¡ã«ãªã£ãŠããªãããšãå¿
èŠæ¡ä»¶ã§ãã"/> </panel> <panel label="çŽæ¬Ÿ" name="land_covenant_panel"> <panel.string name="can_resell"> @@ -149,9 +151,6 @@ <text font="SansSerifLarge" name="estate_section_lbl"> äžåç£ïŒ </text> - <text name="estate_name_lbl"> - ååïŒ - </text> <text name="estate_name_text"> ã¡ã€ã³ã©ã³ã </text> @@ -170,11 +169,8 @@ <text font="SansSerifLarge" name="region_section_lbl"> å°åïŒ </text> - <text name="region_name_lbl"> - ååïŒ - </text> <text name="region_name_text"> - Leyla + EricaVille </text> <text name="region_landtype_lbl"> çš®é¡ïŒ @@ -213,7 +209,7 @@ å°åãªããžã§ã¯ãããŒãã¹èŠå : [BONUS] </text> <text name="Simulator primitive usage:" width="500"> - å°åå
šäœã®ããªã 䜿çšç¶æ³ïŒ + ããªã 䜿çšç¶æ³ïŒ </text> <text left="200" name="objects_available"> [MAX]ã®å
[COUNT]ïŒ[AVAILABLE]å©çšå¯èœïŒ @@ -237,7 +233,7 @@ [COUNT] </text> <button label="衚瀺" label_selected="衚瀺" name="ShowOwner" right="-145"/> - <button label="è¿åŽ..." label_selected="è¿åŽ..." name="ReturnOwner..." right="-15" tool_tip="ãªããžã§ã¯ãããªãŒããŒã«è¿åŽããŸã"/> + <button label="è¿åŽ" label_selected="è¿åŽ..." name="ReturnOwner..." right="-15" tool_tip="ãªããžã§ã¯ãããªãŒããŒã«è¿åŽããŸã"/> <text name="Set to group:"> ã°ã«ãŒãã«èšå®ïŒ </text> @@ -245,7 +241,7 @@ [COUNT] </text> <button label="衚瀺" label_selected="衚瀺" name="ShowGroup" right="-145"/> - <button label="è¿åŽ..." label_selected="è¿åŽ..." name="ReturnGroup..." right="-15" tool_tip="ãªããžã§ã¯ãããªãŒããŒã«è¿åŽããŸã"/> + <button label="è¿åŽ" label_selected="è¿åŽ..." name="ReturnGroup..." right="-15" tool_tip="ãªããžã§ã¯ãããªãŒããŒã«è¿åŽããŸã"/> <text name="Owned by others:"> ä»äººã«ããææïŒ </text> @@ -253,7 +249,7 @@ [COUNT] </text> <button label="衚瀺" label_selected="衚瀺" name="ShowOther" right="-145"/> - <button label="è¿åŽ..." label_selected="è¿åŽ..." name="ReturnOther..." right="-15" tool_tip="ãªããžã§ã¯ãããªãŒããŒã«è¿åŽããŸã"/> + <button label="è¿åŽ" label_selected="è¿åŽ..." name="ReturnOther..." right="-15" tool_tip="ãªããžã§ã¯ãããªãŒããŒã«è¿åŽããŸã"/> <text name="Selected / sat upon:"> éžææžã¿ïŒæ±ºå®æžã¿ïŒ </text> @@ -261,14 +257,14 @@ [COUNT] </text> <text name="Autoreturn" width="500"> - ä»ã®äœäººã®ãªããžã§ã¯ãã®èªåè¿åŽ(åã0ã§èªåè¿åŽãªã) + ä»äººã®ãªããžã§ã¯ããèªåè¿åŽïŒååäœã0ã§èªåè¿åŽãªãïŒïŒ </text> <line_editor left_delta="5" name="clean other time" right="-80"/> <text name="Object Owners:" width="150"> ãªããžã§ã¯ãã®ãªãŒããŒïŒ </text> - <button label="ãªã¹ãæŽæ°" label_selected="ãªã¹ãæŽæ°" left="146" name="Refresh List"/> - <button label="ãªããžã§ã¯ãã®è¿åŽ..." label_selected="ãªããžã§ã¯ãã®è¿åŽ..." left="256" name="Return objects..."/> + <button label="ãªã¹ãæŽæ°" label_selected="ãªã¹ãæŽæ°" left="146" name="Refresh List" tool_tip="ãªããžã§ã¯ãã®ãªã¹ããæŽæ°"/> + <button label="ãªããžã§ã¯ããè¿åŽãã" label_selected="ãªããžã§ã¯ãã®è¿åŽ..." left="256" name="Return objects..."/> <name_list label="ã«ãŠã³ã" name="owner list"> <name_list.columns label="ã¿ã€ã" name="type"/> <name_list.columns name="online_status"/> @@ -289,13 +285,13 @@ ããªãã¯ãã®åºç»ã®èšå®ç·šéãã§ããªãããããã®ãªãã·ã§ã³ã¯ç¡å¹ã§ãã </panel.string> <panel.string name="mature_check_mature"> - Matureã³ã³ãã³ã + æ§ããã³ã³ãã³ã </panel.string> <panel.string name="mature_check_adult"> Adultã³ã³ãã³ã </panel.string> <panel.string name="mature_check_mature_tooltip"> - ããªãã®åºç»æ
å ±åã³ã³ã³ãã³ãã¯MatureãšãããŠããŸãã + ããªãã®åºç»æ
å ±åã³ã³ã³ãã³ãã¯æ§ãããšãããŠããŸãã </panel.string> <panel.string name="mature_check_adult_tooltip"> ããªãã®åºç»æ
å ±åã³ã³ã³ãã³ãã¯AdultãšãããŠããŸãã @@ -310,31 +306,31 @@ ããã·ã³ã°ãå¶é (å°ååªå
) </panel.string> <text name="allow_label"> - ä»ã®äœäººã«ä»¥äžãèš±å¯ïŒ + ä»ã®äœäººãžã®èš±å¯ïŒ </text> <check_box label="å°åœ¢ãç·šé" name="edit land check" tool_tip="ãã§ãã¯ãå
¥ãããšãä»äººãããªãã®åå°ã®å°åœ¢ç·šéãè¡ãããšãå¯èœãšãªããŸãããã®ãªãã·ã§ã³ã®ãã§ãã¯ãå€ããŠããããšãããããããŸããå€ããç¶æ
ã§ããªãã®åå°ã®å°åœ¢ç·šéãå¯èœã§ãã"/> <check_box label="é£è¡" name="check fly" tool_tip="ãã§ãã¯ãå
¥ãããšãã®åå°ã§ã®é£è¡ãå¯èœãšãªããŸãããã§ãã¯ãå€ããšåå°ã«å
¥ãéãšéãéãããšãã®ã¿é£è¡å¯èœãšãªããŸãã"/> <text left="138" name="allow_label2" width="144"> - ãªããžã§ã¯ãã®äœæïŒ + å¶äœïŒ </text> - <check_box label="ãã¹ãŠã®äœäºº" left="280" name="edit objects check"/> + <check_box label="å
šå¡" left="280" name="edit objects check"/> <check_box label="ã°ã«ãŒã" left="380" name="edit group objects check"/> <text left="138" name="allow_label3" width="144"> ãªããžã§ã¯ãã®é²å
¥ïŒ </text> - <check_box label="ãã¹ãŠã®äœäºº" left="280" name="all object entry check"/> + <check_box label="å
šå¡" left="280" name="all object entry check"/> <check_box label="ã°ã«ãŒã" left="380" name="group object entry check"/> <text left="138" name="allow_label4" width="144"> ã¹ã¯ãªããã®å®è¡ïŒ </text> - <check_box label="ãã¹ãŠã®äœäºº" left="280" name="check other scripts"/> + <check_box label="å
šå¡" left="280" name="check other scripts"/> <check_box label="ã°ã«ãŒã" left="380" name="check group scripts"/> <text name="land_options_label"> åå°ãªãã·ã§ã³ïŒ </text> <check_box label="å®å
šïŒãã¡ãŒãžãªãïŒ" name="check safe" tool_tip="ãã§ãã¯ãå
¥ãããšãã®åå°ã§ã®ãã¡ãŒãžã³ã³ããããç¡å¹ã«ãªãããå®å
šãã«èšå®ãããŸãã ãã§ãã¯ãå€ããšãã¡ãŒãžã³ã³ããããæå¹ã«ãªããŸãã"/> <check_box label="ããã·ã³ã°ãå¶é" name="PushRestrictCheck" tool_tip="ã¹ã¯ãªããã«ããããã·ã³ã°ãå¶éããŸãã ãã®ãªãã·ã§ã³ãéžæããããšã«ãããããªãã®åå°ã§ã®ç Žå£çè¡åã劚ããããšãã§ããŸãã"/> - <check_box label="æ€çŽ¢ã«è¡šç€ºïŒïŒé±L$30ïŒä»¥äžã®å Žæ" name="ShowDirectoryCheck" tool_tip="æ€çŽ¢çµæã§ãã®åºç»ã衚瀺ããã"/> + <check_box label="æ€çŽ¢ã«åºç»ã衚瀺ïŒé± L$30ïŒ" name="ShowDirectoryCheck" tool_tip="æ€çŽ¢çµæã§ãã®åºç»ã衚瀺ããã"/> <combo_box name="land category with adult"> <combo_box.item label="å
šã«ããŽãª" name="item0"/> <combo_box.item label="Lindenæåšå°" name="item1"/> @@ -364,7 +360,7 @@ <combo_box.item label="ã·ã§ããã³ã°" name="item11"/> <combo_box.item label="ãã®ä»" name="item12"/> </combo_box> - <check_box label="Matureã³ã³ãã³ã" name="MatureCheck" tool_tip=""/> + <check_box label="æ§ããã³ã³ãã³ã" name="MatureCheck" tool_tip=""/> <text name="Snapshot:"> ã¹ãããã·ã§ããïŒ </text> @@ -389,27 +385,24 @@ </text> <combo_box name="media type" tool_tip="URL ãåç»ããŠã§ãã»ããŒãžããã®ä»ã®ã¡ãã£ã¢ã®å Žåã«æå®ããŸã"/> <text name="at URL:"> - ããŒã URLïŒ + ããŒã ããŒãžïŒ </text> - <button label="èšå®..." label_selected="èšå®..." name="set_media_url"/> + <button label="èšå®" label_selected="èšå®..." name="set_media_url"/> <text name="CurrentURL:"> - çŸåšã® URLïŒ + çŸåšã®ããŒãžïŒ </text> - <button label="ãªã»ãã..." label_selected="ãªã»ãã..." name="reset_media_url"/> + <button label="ãªã»ãã..." label_selected="ãªã»ãã..." name="reset_media_url" tool_tip="URLãæŽæ°"/> <check_box label="URL ãé衚瀺" name="hide_media_url" tool_tip="ãã®ãªãã·ã§ã³ããªã³ã«ãããšãèš±å¯ãªãã§ãã®åºç»æ
å ±ã«ã¢ã¯ã»ã¹ããŠãããŠãŒã¶ãŒã«ã¯ã¡ãã£ã¢ URL ã衚瀺ãããŸããã ãã㯠HTML ã¿ã€ãã«ã¯äœ¿çšã§ããŸããã®ã§ã泚æãã ããã"/> <text name="Description:"> 説æïŒ </text> <line_editor name="url_description" tool_tip="åç/ããŒããã¿ã³ã®é£ã«è¡šç€ºãããããã¹ã"/> <text name="Media texture:"> - ãã¯ã¹ã -ã£åæ¿ïŒ + ãã¯ã¹ãã£ã®çœ®ãæãïŒ </text> <texture_picker label="" name="media texture" tool_tip="åçãã¯ãªãã¯ããŠéžæ"/> <text name="replace_texture_help" width="290"> - ãã®ãã¯ã¹ãã£ã䜿çšãããªããžã§ã¯ãã®ãã¬ã€ãã¯ãªãã¯ãããšãã ãŒããŒã Web ããŒãžã衚瀺ããŸãã - -ãã¯ã¹ãã£ãå€æŽããã«ã¯ãµã ãã€ã«ãéžæããŠãã ããã + ãã®ãã¯ã¹ãã£ã䜿çšãããªããžã§ã¯ãã®ãã¬ã€ãã¯ãªãã¯ãããšãã ãŒããŒã Web ããŒãžã衚瀺ããŸãã ãã¯ã¹ãã£ãå€æŽããã«ã¯ãµã ãã€ã«ãéžæããŠãã ããã </text> <check_box label="ã¹ã±ãŒã«ãèªåèšå®" name="media_auto_scale" tool_tip="ãã®ãªãã·ã§ã³ããã§ãã¯ãããšããã®åºç»ã®ã³ã³ãã³ãã®ã¹ã±ãŒã«ãèªåçã«èšå®ãããŸãã åäœé床ãšç»è³ªãå°ãäœäžããããšããããŸãããä»ã®ãã¯ã¹ãã£ãŒã®ã¹ã±ãŒãªã³ã°ãæŽåãå¿
èŠã«ãªãããšã¯ãããŸããã"/> <text name="media_size" tool_tip="ã¬ã³ããªã³ã°ãããŠã§ãã»ã¡ãã£ã¢ã®ãµã€ãºãããã©ã«ãã® 0 ã®ãŸãŸã«ããŸãã"> @@ -425,7 +418,7 @@ </text> <check_box label="ã«ãŒã" name="media_loop" tool_tip="ã¡ãã£ã¢ãã«ãŒãåçããŸãã ã¡ãã£ã¢ã®åçãçµãã£ãããæåããåçãçŽããŸãã"/> </panel> - <panel label="ãªãŒãã£ãª" name="land_audio_panel"> + <panel label="ãµãŠã³ã" name="land_audio_panel"> <text name="MusicURL:"> é³æ¥œ URLïŒ </text> @@ -441,18 +434,21 @@ <check_box label="ãã®åºç»ã§ã®ãã€ã¹äœ¿çšãå¶é" name="parcel_enable_voice_channel_parcel"/> </panel> <panel label="ã¢ã¯ã»ã¹" name="land_access_panel"> + <panel.string name="access_estate_defined"> + ïŒãšã¹ããŒãã«éå®ïŒ + </panel.string> <panel.string name="estate_override"> 1ã€ä»¥äžã®ãªãã·ã§ã³ããäžåç£ã¬ãã«ã§èšå®ãããŠããŸãã </panel.string> <text name="Limit access to this parcel to:"> ãã®åºç»ã«ã¢ã¯ã»ã¹ </text> - <check_box label="ãããªãã¯ã»ã¢ã¯ã»ã¹ãèš±å¯" name="public_access"/> + <check_box label="ãããªãã¯ã¢ã¯ã»ã¹ãèš±å¯ [MATURITY]" name="public_access"/> <text name="Only Allow"> - 次ã®äœäººã®ã¢ã¯ã»ã¹ããããã¯ïŒ + 次ã®äœäººã®ã¢ã¯ã»ã¹çŠæ¢ïŒ </text> - <check_box label="Linden Labã«æ¯æãæ
å ±ãç»é²ããŠããªãäœäºº" name="limit_payment" tool_tip="æ¯æãæ
å ±æªç¢ºèªã®äœäººãæé€ãã"/> - <check_box label="幎霢確èªãæžãŸããŠããªãæ人ã®äœäºº" name="limit_age_verified" tool_tip="幎霢確èªãæžãŸããŠããªãäœäººãç«å
¥çŠæ¢ã«ããŸãã 詳ããæ
å ±ã¯ [SUPPORT_SITE] ãã芧äžããã"/> + <check_box label="æ¯ææ
å ±ç»é²æž [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="æªç¢ºèªã®äœäººã®ç«å
¥ãçŠæ¢ããŸãã"/> + <check_box label="å¹Žéœ¢ç¢ºèª [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="幎霢確èªãæžãŸããŠããªãäœäººã®ç«å
¥ãçŠæ¢ããŸãã 詳ããæ
å ±ã¯ [SUPPORT_SITE] ãã芧äžããã"/> <check_box label="ã°ã«ãŒãã»ã¢ã¯ã»ã¹ãèš±å¯ïŒ[GROUP]" name="GroupCheck" tool_tip="[äžè¬]ã¿ãã§ãã°ã«ãŒããéžæããŠãã ããã"/> <check_box label="å
¥å Žèš±å¯ã販売ïŒ" name="PassCheck" tool_tip="ãã®åºç»ãžã®äžæçãªã¢ã¯ã»ã¹ãèš±å¯"/> <combo_box name="pass_combo"> @@ -461,18 +457,22 @@ </combo_box> <spinner label="äŸ¡æ ŒïŒL$ïŒïŒ" name="PriceSpin"/> <spinner label="ã¢ã¯ã»ã¹æéïŒ" name="HoursSpin"/> - <text label="åžžã«èš±å¯" name="AllowedText"> - èš±å¯ãããäœäºº - </text> - <name_list name="AccessList" tool_tip="([LISTED]ãªã¹ãå
¥ãã[MAX]æ倧)"/> - <button label="è¿œå ..." label_selected="è¿œå ..." name="add_allowed"/> - <button label="åé€" label_selected="åé€" name="remove_allowed"/> - <text label="çŠæ¢" name="BanCheck"> - çŠæ¢ãããäœäºº - </text> - <name_list name="BannedList" tool_tip="([LISTED]ãªã¹ãå
¥ãã[MAX]æ倧)"/> - <button label="è¿œå ..." label_selected="è¿œå ..." name="add_banned"/> - <button label="åé€" label_selected="åé€" name="remove_banned"/> + <panel name="Allowed_layout_panel"> + <text label="åžžã«èš±å¯" name="AllowedText"> + ç«å
¥ãèš±å¯ãããäœäºº + </text> + <name_list name="AccessList" tool_tip="(åèš[LISTED] 人ãæ倧 [MAX] 人ïŒ"/> + <button label="è¿œå " name="add_allowed"/> + <button label="åé€" label_selected="åé€" name="remove_allowed"/> + </panel> + <panel name="Banned_layout_panel"> + <text label="çŠæ¢" name="BanCheck"> + ç«å
¥çŠæ¢ãããäœäºº + </text> + <name_list name="BannedList" tool_tip="(åèš [LISTED] 人ãæ倧 [MAX] 人ïŒ"/> + <button label="è¿œå " name="add_banned"/> + <button label="åé€" label_selected="åé€" name="remove_banned"/> + </panel> </panel> </tab_container> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_animation_preview.xml b/indra/newview/skins/default/xui/ja/floater_animation_preview.xml index 9ec4bfc4e7..c355924f33 100644 --- a/indra/newview/skins/default/xui/ja/floater_animation_preview.xml +++ b/indra/newview/skins/default/xui/ja/floater_animation_preview.xml @@ -170,7 +170,8 @@ </combo_box> <spinner label="ïŸïœªïœ°ïœœïŸïœ²ïŸ(ç§)" name="ease_in_time" tool_tip="ã¢ãã¡ãŒã·ã§ã³ã®ãã¬ã³ãã€ã³æéïŒç§ïŒ"/> <spinner label="ïŸïœªïœ°ïœœïŸïœ±ïœ³ïŸ(ç§)" name="ease_out_time" tool_tip="ã¢ãã¡ãŒã·ã§ã³ã®ãã¬ã³ãã¢ãŠãæéïŒç§ïŒ"/> - <button label="" name="play_btn" tool_tip="ã¢ãã¡ãŒã·ã§ã³ã®åçã»äžæåæ¢"/> + <button label="" name="play_btn" tool_tip="ã¢ãã¡ãŒã·ã§ã³ãåçãã"/> + <button name="pause_btn" tool_tip="ã¢ãã¡ãŒã·ã§ã³ãäžæåæ¢ãã"/> <button label="" name="stop_btn" tool_tip="ã¢ãã¡ãŒã·ã§ã³ã®åçãåæ¢"/> <slider label="" name="playback_slider"/> <text name="bad_animation_text"> @@ -178,6 +179,6 @@ Poser 4ãããšã¯ã¹ããŒããããBVHãã¡ã€ã«ãæšå¥šããŸãã </text> - <button label="åãæ¶ã" name="cancel_btn"/> <button label="ïŸïŸïŸïœ°ïŸïŸL$[AMOUNT]" name="ok_btn"/> + <button label="åãæ¶ã" name="cancel_btn"/> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml b/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml index 4a20c58181..a199a10823 100644 --- a/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml +++ b/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml @@ -10,33 +10,37 @@ åæãã¯ã¹ãã£ãŒ </text> <button label="ãã¯ã¹ãã£IDäžèŠ§ãã³ã³ãœãŒã«ã«æžã蟌ã" label_selected="æšãŠã" name="Dump"/> - <texture_picker label="髪å" name="hair-baked"/> - <texture_picker label="髪" name="hair_grain"/> - <texture_picker label="髪ã®ã¢ã«ãã¡" name="hair_alpha"/> - <texture_picker label="é " name="head-baked"/> - <texture_picker label="ã¡ã€ã¯ã¢ãã" name="head_bodypaint"/> - <texture_picker label="é éšã®ã¢ã«ãã¡" name="head_alpha"/> - <texture_picker label="é éšã®ã¿ãã¥ãŒ" name="head_tattoo"/> - <texture_picker label="ç®" name="eyes-baked"/> - <texture_picker label="ç®" name="eyes_iris"/> - <texture_picker label="ç®ã®ã¢ã«ãã¡" name="eyes_alpha"/> - <texture_picker label="äžå身" name="upper-baked"/> - <texture_picker label="äžå身ã®ããã£ãã€ã³ã" name="upper_bodypaint"/> - <texture_picker label="äžçã·ã£ã" name="upper_undershirt"/> - <texture_picker label="æè¢" name="upper_gloves"/> - <texture_picker label="ã·ã£ã" name="upper_shirt"/> - <texture_picker label="äžç" name="upper_jacket"/> - <texture_picker label="ã¢ã«ãã¡ïŒäžïŒ" name="upper_alpha"/> - <texture_picker label="äžéšã®ã¿ãã¥ãŒ" name="upper_tattoo"/> - <texture_picker label="äžå身" name="lower-baked"/> - <texture_picker label="äžå身ã®ããã£ãã€ã³ã" name="lower_bodypaint"/> - <texture_picker label="äžçãã³ã" name="lower_underpants"/> - <texture_picker label="éŽäž" name="lower_socks"/> - <texture_picker label="éŽ" name="lower_shoes"/> - <texture_picker label="ãã³ã" name="lower_pants"/> - <texture_picker label="ãžã£ã±ãã" name="lower_jacket"/> - <texture_picker label="ã¢ã«ãã¡ïŒäžïŒ" name="lower_alpha"/> - <texture_picker label="äžéšã®ã¿ãã¥ãŒ" name="lower_tattoo"/> - <texture_picker label="ã¹ã«ãŒã" name="skirt-baked"/> - <texture_picker label="ã¹ã«ãŒã" name="skirt"/> + <scroll_container name="profile_scroll"> + <panel name="scroll_content_panel"> + <texture_picker label="髪" name="hair-baked"/> + <texture_picker label="髪" name="hair_grain"/> + <texture_picker label="髪ã®ã¢ã«ãã¡" name="hair_alpha"/> + <texture_picker label="é " name="head-baked"/> + <texture_picker label="ã¡ã€ã¯ã¢ãã" name="head_bodypaint"/> + <texture_picker label="é éšã®ã¢ã«ãã¡" name="head_alpha"/> + <texture_picker label="é éšã®ã¿ãã¥ãŒ" name="head_tattoo"/> + <texture_picker label="ç®" name="eyes-baked"/> + <texture_picker label="ç®" name="eyes_iris"/> + <texture_picker label="ç®ã®ã¢ã«ãã¡" name="eyes_alpha"/> + <texture_picker label="äžå身" name="upper-baked"/> + <texture_picker label="äžå身ã®ããã£ãã€ã³ã" name="upper_bodypaint"/> + <texture_picker label="äžçã·ã£ã" name="upper_undershirt"/> + <texture_picker label="æè¢" name="upper_gloves"/> + <texture_picker label="ã·ã£ã" name="upper_shirt"/> + <texture_picker label="äžç" name="upper_jacket"/> + <texture_picker label="ã¢ã«ãã¡ïŒäžïŒ" name="upper_alpha"/> + <texture_picker label="äžéšã®ã¿ãã¥ãŒ" name="upper_tattoo"/> + <texture_picker label="äžå身" name="lower-baked"/> + <texture_picker label="äžå身ã®ããã£ãã€ã³ã" name="lower_bodypaint"/> + <texture_picker label="äžçãã³ã" name="lower_underpants"/> + <texture_picker label="éŽäž" name="lower_socks"/> + <texture_picker label="éŽ" name="lower_shoes"/> + <texture_picker label="ãã³ã" name="lower_pants"/> + <texture_picker label="ãžã£ã±ãã" name="lower_jacket"/> + <texture_picker label="ã¢ã«ãã¡ïŒäžïŒ" name="lower_alpha"/> + <texture_picker label="äžéšã®ã¿ãã¥ãŒ" name="lower_tattoo"/> + <texture_picker label="ã¹ã«ãŒã" name="skirt-baked"/> + <texture_picker label="ã¹ã«ãŒã" name="skirt"/> + </panel> + </scroll_container> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml b/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml index 7afe70f4d7..fbbbd85890 100644 --- a/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml +++ b/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml @@ -49,6 +49,6 @@ <check_box label="ä¿®æ£" name="next_owner_modify"/> <check_box label="ã³ããŒ" name="next_owner_copy"/> <check_box initial_value="true" label="å販ã»ãã¬ãŒã³ã" name="next_owner_transfer" tool_tip="次ã®ææè
ã¯ãã®ãªããžã§ã¯ããä»äººã«ããããå販ããããšãã§ããŸã"/> - <button label="Ok" name="apply"/> + <button label="OK" name="apply"/> <button label="ãã£ã³ã»ã«" name="close"/> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_buy_currency.xml b/indra/newview/skins/default/xui/ja/floater_buy_currency.xml index ffdcf838d3..d202bf1b9f 100644 --- a/indra/newview/skins/default/xui/ja/floater_buy_currency.xml +++ b/indra/newview/skins/default/xui/ja/floater_buy_currency.xml @@ -1,66 +1,324 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="buy currency" title="L$ ã®è³Œå
¥"> - <floater.string name="buy_currency"> - çŽ [LOCALAMOUNT] 㧠L$ [LINDENS] ã賌å
¥ - </floater.string> - <text name="info_need_more"> - L$ ã足ããŸãã - </text> - <text name="contacting"> - LindeXãšã³ã³ã¿ã¯ãäžâŠ - </text> - <text name="info_buying"> - L$ ã®è³Œå
¥ - </text> - <text name="balance_label"> - æ®é« - </text> - <text name="balance_amount"> - L$ [AMT] - </text> - <text name="currency_action"> - 賌å
¥åžæé¡ - </text> - <text name="currency_label"> - L$ - </text> - <line_editor label="L$" name="currency_amt"> - 1234 - </line_editor> - <text name="buying_label"> - äŸ¡æ Œ - </text> - <text name="currency_est"> - çŽ [LOCALAMOUNT] - </text> - <text left_delta="3" name="getting_data"> - èŠç©ããäž... - </text> - <text name="buy_action"> - [NAME] L$ [PRICE] - </text> - <text name="total_label"> - æ°ããæ®é« - </text> - <text name="total_amount"> - L$ [AMT] - </text> - <text name="currency_links"> - [http://www.secondlife.com/my/account/payment_method_management.php?lang=ja-JP payment method] | [http://www.secondlife.com/my/account/currency.php?lang=ja-JP currency] | [http://www.secondlife.com/my/account/exchange_rates.php?lang=ja-JP exchange rate] - </text> - <text name="exchange_rate_note"> - éé¡ãåå
¥åããŠææ°æç®ã¬ãŒãã確èªããŸãã - </text> - <text name="purchase_warning_repurchase"> - ãã®ååŒã決å®ãããšãL$ ã賌å
¥ããŸãããªããžã§ã¯ãã¯è³Œå
¥ããŸããã - </text> - <text name="purchase_warning_notenough"> - 賌å
¥ããããšããŠãã L$ ãäžè¶³ããŠããŸãã éé¡ãäžããŠãã ããã - </text> - <button label="賌å
¥ãã" name="buy_btn"/> - <button label="åãæ¶ã" name="cancel_btn"/> - <text name="info_cannot_buy"> - 賌å
¥ã§ããŸãã - </text> - <button label="Web ãµã€ãã«ç§»å" name="error_web" width="140"/> +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<floater + legacy_header_height="18" + can_minimize="false" + height="275" + layout="topleft" + title="BUY L$" + name="buy currency" + help_topic="buy_linden_dollars" + single_instance="true" + width="350"> + <floater.string + name="buy_currency"> + Buy L$ [LINDENS] for approx. [LOCALAMOUNT] + </floater.string> + <icon + height="215" + image_name="Linden_Dollar_Background" + layout="topleft" + left="0" + name="normal_background" + top="17" + width="350" /> + <text + type="string" + length="1" + follows="top|left" + font="SansSerifHuge" + layout="topleft" + left="20" + height="30" + top="25" + width="300" + name="info_need_more"> + You need more L$ + </text> + <text + type="string" + length="1" + follows="top|left" + height="16" + layout="topleft" + top="246" + left="15" + width="300" + name="contacting"> + Contacting LindeX... + </text> + <text + type="string" + length="1" + follows="top|left" + font="SansSerifHuge" + layout="topleft" + left="20" + height="30" + top="25" + width="200" + name="info_buying"> + Buy L$ + </text> + <text + type="string" + length="1" + follows="top|left" + font="SansSerifMedium" + height="16" + layout="topleft" + left="20" + name="balance_label" + top="65" + width="210"> + I have + </text> + <text + type="string" + length="1" + font="SansSerifMedium" + follows="top|left" + halign="right" + height="16" + layout="topleft" + left="200" + name="balance_amount" + top_delta="0" + width="120"> + L$ [AMT] + </text> + <text + type="string" + length="1" + follows="top|left" + font="SansSerifMedium" + height="16" + top="95" + layout="topleft" + left="20" + name="currency_action" + width="210"> + I want to buy + </text> + <text + font="SansSerifMedium" + type="string" + length="1" + follows="left|top" + height="16" + layout="topleft" + top_delta="0" + left="217" + name="currency_label" + width="15"> + L$ + </text> + <line_editor + type="string" + halign="right" + font="SansSerifMedium" + select_on_focus="true" + follows="top|left" + top_delta="-7" + height="22" + label="L$" + left_pad="3" + name="currency_amt" + width="85"> + 1234 + </line_editor> + <text + type="string" + font="SansSerifMedium" + length="1" + follows="top|left" + height="16" + layout="topleft" + left="20" + top="125" + name="buying_label" + width="210"> + For the price + </text> + <text + type="string" + length="1" + font="SansSerifMedium" + text_color="EmphasisColor" + follows="top|left" + halign="right" + height="16" + top_delta="0" + layout="topleft" + left="150" + name="currency_est" + width="170"> + approx. [LOCALAMOUNT] + </text> + <text + type="string" + font="SansSerifSmall" + text_color="EmphasisColor" + length="1" + follows="top|left" + height="16" + layout="topleft" + top="125" + left="170" + width="150" + halign="right" + name="getting_data"> + Estimating... + </text> + <text + type="string" + font="SansSerifSmall" + top="145" + length="1" + follows="top|left" + height="16" + halign="right" + left="150" + width="170" + layout="topleft" + name="buy_action"> + [NAME] L$ [PRICE] + </text> + <text + type="string" + font="SansSerifMedium" + length="1" + follows="top|left" + height="16" + layout="topleft" + left="20" + name="total_label" + top="165" + width="210"> + My new balance will be + </text> + <text + type="string" + length="1" + font="SansSerifMedium" + follows="top|left" + top_delta="0" + height="16" + layout="topleft" + left="200" + halign="right" + name="total_amount" + width="120"> + L$ [AMT] + </text> + <text + type="string" + length="1" + text_color="0.7 0.7 0.7 0.5" + follows="top|left" + layout="topleft" + halign="right" + top="189" + left="20" + width="300" + height="30" + name="currency_links"> + [http://www.secondlife.com/my/account/payment_method_management.php payment method] | [http://www.secondlife.com/my/account/currency.php currency] | [http://www.secondlife.com/my/account/exchange_rates.php exchange rate] + </text> + <text + type="string" + length="1" + text_color="0.7 0.7 0.7 0.5" + follows="top|left" + layout="topleft" + halign="right" + top="202" + left="20" + width="300" + height="30" + name="exchange_rate_note"> +Re-enter amount to see the latest exchange rate. + </text> + <text + type="string" + length="1" + text_color="0.7 0.7 0.7 0.5" + follows="top|left" + layout="topleft" + halign="right" + top="213" + left="10" + width="310" + height="30" + name="purchase_warning_repurchase"> + Confirming this purchase only buys L$, not the object. + </text> + <text + type="string" + length="1" + text_color="0.7 0.7 0.7 0.5" + follows="top|left" + layout="topleft" + halign="right" + top="213" + left="20" + width="300" + height="30" + name="purchase_warning_notenough"> + You aren't buying enough L$. Please increase the amount. + </text> + + <button + follows="bottom|left" + height="20" + label="Buy Now" + layout="topleft" + left="151" + name="buy_btn" + top="242" + width="90"/> + <button + follows="bottom|right" + height="20" + label="Cancel" + layout="topleft" + left_pad="10" + name="cancel_btn" + width="90"/> + <icon + height="215" + image_name="Linden_Dollar_Alert" + layout="topleft" + left="0" + name="error_background" + top="15" + width="350"/> + <text + type="string" + font="SansSerifHuge" + left="165" + width="170" + height="25" + top="25" + name="info_cannot_buy"> + Unable to Buy + </text> + <text + type="string" + width="175" + height="125" + top="60" + left="165" + word_wrap="true" + follows="bottom|right" + name="cannot_buy_message"> + </text> + <button + follows="bottom|left" + height="20" + label="Continue to the Web" + layout="topleft" + left="170" + name="error_web" + top="200" + width="160"/> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_color_picker.xml b/indra/newview/skins/default/xui/ja/floater_color_picker.xml index f6739d59e8..a98da4b8ba 100644 --- a/indra/newview/skins/default/xui/ja/floater_color_picker.xml +++ b/indra/newview/skins/default/xui/ja/floater_color_picker.xml @@ -21,7 +21,7 @@ <check_box label="ä»ããé©çš" name="apply_immediate"/> <button label="" label_selected="" name="color_pipette"/> <button label="åãæ¶ã" label_selected="åãæ¶ã" name="cancel_btn"/> - <button label="Ok" label_selected="Ok" name="select_btn"/> + <button label="OK" label_selected="OK" name="select_btn"/> <text name="Current color:"> çŸåšã®è²ïŒ </text> diff --git a/indra/newview/skins/default/xui/ja/floater_customize.xml b/indra/newview/skins/default/xui/ja/floater_customize.xml index 61423fcf05..7d1809f1ed 100644 --- a/indra/newview/skins/default/xui/ja/floater_customize.xml +++ b/indra/newview/skins/default/xui/ja/floater_customize.xml @@ -1,7 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater customize" title="容姿"> <tab_container name="customize tab container"> - <placeholder label="身äœéšäœ" name="body_parts_placeholder"/> + <text label="身äœéšäœ" name="body_parts_placeholder"> + 身äœéšäœ + </text> <panel label="ã·ã§ã€ã" name="Shape"> <button label="æ»ã" label_selected="æ»ã" name="Revert"/> <button label="身äœ" label_selected="身äœ" name="Body"/> @@ -14,8 +16,8 @@ <button label="èŽäœ" label_selected="èŽäœ" name="Torso"/> <button label="äž¡è" label_selected="äž¡è" name="Legs"/> <radio_group name="sex radio"> - <radio_item label="女æ§" name="radio"/> - <radio_item label="ç·æ§" name="radio2"/> + <radio_item label="女æ§" name="radio" value="0"/> + <radio_item label="ç·æ§" name="radio2" value="1"/> </radio_group> <text name="title"> [DESC] @@ -33,8 +35,7 @@ [PATH] ã«æåš </text> <text name="not worn instructions"> - æ°ããã·ã§ã€ã(äœå)ãæã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠè£
çã㟠-ããããå®å
šã«æ°èŠã®ç¶æ
ããäœæããŠè£
çããããšãã§ããŸãã + æã¡ç©ããããªãã®ã¢ãã¿ãŒã«1ã€ãã©ãã°ããŠãæ°ããã·ã§ã€ããã€ããŸãã 代ããã«ãã¯ããããæ°ããäœæããŠççšããããšãã§ããŸãã </text> <text name="no modify instructions"> ããªãã¯ãã®æã®ä¿®æ£ãèš±ãããŠããŸããã @@ -67,8 +68,7 @@ [PATH] ã«æåš </text> <text name="not worn instructions"> - æ°ããã¹ãã³ãæã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠè£
çããŸãããã - å®å
šã«æ°èŠã®ç¶æ
ããäœæããŠè£
çããããšãã§ããŸãã + æã¡ç©ããããªãã®ã¢ãã¿ãŒã«1ã€ãã©ãã°ããŠãæ°ããã¹ãã³ãã€ããŸãã 代ããã«ãã¯ããããæ°ããäœæããŠççšããããšãã§ããŸãã </text> <text name="no modify instructions"> ããªãã¯ãã®æã®ä¿®æ£ãèš±ãããŠããŸããã @@ -105,8 +105,7 @@ [PATH] ã«æåš </text> <text name="not worn instructions"> - æ°ãã髪åãæã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠè£
çããŸãããã - å®å
šã«æ°èŠã®ç¶æ
ããäœæããŠè£
çããããšãã§ããŸãã + æã¡ç©ããããªãã®ã¢ãã¿ãŒã«1ã€ãã©ãã°ããŠãæ°ãã髪ãã€ããŸãã 代ããã«ãã¯ããããæ°ããäœæããŠççšããããšãã§ããŸãã </text> <text name="no modify instructions"> ããªãã¯ãã®æã®ä¿®æ£ãèš±ãããŠããŸããã @@ -137,8 +136,7 @@ [PATH] ã«æåš </text> <text name="not worn instructions"> - æ°ããçŒãæã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠè£
çããŸãããã - å®å
šã«æ°èŠã®ç¶æ
ããäœæããŠè£
çããããšãã§ããŸãã + ããªãã®æã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠãæ°ããç®ãã€ããŸãã 代ããã«ãã¯ããããæ°ããäœæããŠççšããããšãã§ããŸãã </text> <text name="no modify instructions"> ããªãã¯ãã®æã®ä¿®æ£ãèš±ãããŠããŸããã @@ -152,7 +150,9 @@ <button label="å¥åã§ä¿å..." label_selected="å¥åã§ä¿å..." name="Save As"/> <button label="æ»ã" label_selected="æ»ã" name="Revert"/> </panel> - <placeholder label="æ" name="clothes_placeholder"/> + <text label="æ" name="clothes_placeholder"> + è¡£é¡ + </text> <panel label="ã·ã£ã" name="Shirt"> <texture_picker label="çå°" name="Fabric" tool_tip="åçãã¯ãªãã¯ããŠéžæ"/> <color_swatch label="è²ïŒææ" name="Color/Tint" tool_tip="ã¯ãªãã¯ããŠã«ã©ãŒããã«ãŒãéããŸã"/> @@ -177,8 +177,7 @@ [PATH] ã«æåš </text> <text name="not worn instructions"> - æ°ããã·ã£ããæã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠè£
çããŸãããã - å®å
šã«æ°èŠã®ç¶æ
ããäœæããŠè£
çããããšãã§ããŸãã + æã¡ç©ããããªãã®ã¢ãã¿ãŒã«1ã€ãã©ãã°ããŠãæ°ããã·ã£ããçãŸãã 代ããã«ãã¯ããããæ°ããäœæããŠççšããããšãã§ããŸãã </text> <text name="no modify instructions"> ããªãã¯ãã®æã®ä¿®æ£ãèš±ãããŠããŸããã @@ -211,8 +210,7 @@ [PATH] ã«æåš </text> <text name="not worn instructions"> - æ°ãããºãã³ãæã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠè£
çããŸãããã - å®å
šã«æ°èŠã®ç¶æ
ããäœæããŠè£
çããããšãã§ããŸãã + ããªãã®æã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠãæ°ãããã³ããå±¥ããŸãã 代ããã«ãã¯ããããæ°ããäœæããŠççšããããšãã§ããŸãã </text> <text name="no modify instructions"> ããªãã¯ãã®æã®ä¿®æ£ãèš±ãããŠããŸããã @@ -238,8 +236,7 @@ [PATH] ã«æåš </text> <text name="not worn instructions"> - æ°ããéŽãæã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠè£
çããŸãããã - å®å
šã«æ°èŠã®ç¶æ
ããäœæããŠè£
çããããšãã§ããŸãã + ããªãã®æã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠãæ°ããéŽãå±¥ããŸãã 代ããã«ãã¯ããããæ°ããäœæããŠççšããããšãã§ããŸãã </text> <text name="no modify instructions"> ããªãã¯ãã®æã®ä¿®æ£ãèš±ãããŠããŸããã @@ -272,8 +269,7 @@ [PATH] ã«æåš </text> <text name="not worn instructions"> - æ°ããéŽäžãæã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠè£
çããŸãããã - å®å
šã«æ°èŠã®ç¶æ
ããäœæããŠè£
çããããšãã§ããŸãã + ããªãã®æã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠãæ°ããéŽäžãå±¥ããŸãã 代ããã«ãã¯ããããæ°ããäœæããŠççšããããšãã§ããŸãã </text> <text name="no modify instructions"> ããªãã¯ãã®æã®ä¿®æ£ãèš±ãããŠããŸããã @@ -306,8 +302,7 @@ [PATH] ã«æåš </text> <text name="not worn instructions"> - æ°ããäžçãæã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠè£
çããŸãããã - å®å
šã«æ°èŠã®ç¶æ
ããäœæããŠè£
çããããšãã§ããŸãã + æã¡ç©ããããªãã®ã¢ãã¿ãŒã«1ã€ãã©ãã°ããŠãæ°ãããžã£ã±ãããçãŸãã 代ããã«ãã¯ããããæ°ããäœæããŠççšããããšãã§ããŸãã </text> <text name="no modify instructions"> ããªãã¯ãã®æã®ä¿®æ£ãèš±ãããŠããŸããã @@ -341,8 +336,7 @@ [PATH] ã«æåš </text> <text name="not worn instructions"> - æ°ããæè¢ãæã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠè£
çããŸãããã - å®å
šã«æ°èŠã®ç¶æ
ããäœæããŠè£
çããããšãã§ããŸãã + ããªãã®æã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠãæ°ããæè¢ãã€ããŸãã 代ããã«ãã¯ããããæ°ããäœæããŠççšããããšãã§ããŸãã </text> <text name="no modify instructions"> ããªãã¯ãã®æã®ä¿®æ£ãèš±ãããŠããŸããã @@ -375,8 +369,7 @@ [PATH] ã«æåš </text> <text name="not worn instructions"> - æ°ããäžçãæã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠè£
çããŸãããã - å®å
šã«æ°èŠã®ç¶æ
ããäœæããŠè£
çããããšãã§ããŸãã + æã¡ç©ããããªãã®ã¢ãã¿ãŒã«1ã€ãã©ãã°ããŠãæ°ããäžçïŒäžïŒãçãŸãã 代ããã«ãã¯ããããæ°ããäœæããŠççšããããšãã§ããŸãã </text> <text name="no modify instructions"> ããªãã¯ãã®æã®ä¿®æ£ãèš±ãããŠããŸããã @@ -409,8 +402,7 @@ [PATH] ã«æåš </text> <text name="not worn instructions"> - æ°ãããã³ããæã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠè£
çããŸãããã - å®å
šã«æ°èŠã®ç¶æ
ããäœæããŠè£
çããããšãã§ããŸãã + ããªãã®æã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠãæ°ããäžçïŒäžïŒãå±¥ããŸãã 代ããã«ãã¯ããããæ°ããäœæããŠççšããããšãã§ããŸãã </text> <text name="no modify instructions"> ããªãã¯ãã®æã®ä¿®æ£ãèš±ãããŠããŸããã @@ -443,8 +435,7 @@ [PATH] ã«æåš </text> <text name="not worn instructions"> - æ°ããã¹ã«ãŒããæç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠè£
çããŸãããã - å®å
šã«æ°èŠã®ç¶æ
ããäœæããŠè£
çããããšãã§ããŸãã + æã¡ç©ããããªãã®ã¢ãã¿ãŒã«1ã€ãã©ãã°ããŠãæ°ããã¹ã«ãŒããå±¥ããŸãã 代ããã«ãã¯ããããæ°ããäœæããŠççšããããšãã§ããŸãã </text> <text name="no modify instructions"> ããªãã¯ãã®æã®ä¿®æ£ãèš±ãããŠããŸããã @@ -477,8 +468,7 @@ åç
§ [PATH] </text> <text name="not worn instructions"> - ããªãã®æã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠãæ°ããã¢ã«ãã¡ãã¹ã¯ãã€ããŸãã -代ããã«ãã¯ããããæ°ããäœæããŠççšã§ããŸãã + ããªãã®æã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠãæ°ããã¢ã«ãã¡ãã¹ã¯ãã€ããŸãã 代ããã«ãã¯ããããæ°ããäœæããŠççšããããšãã§ããŸãã </text> <text name="no modify instructions"> ãã®ççšç©ãä¿®æ£ããæš©éããããŸããã @@ -514,8 +504,7 @@ åç
§ [PATH] </text> <text name="not worn instructions"> - ããªãã®æã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠãæ°ããã¿ãã¥ãã€ããŸãã -代ããã«ãã¯ããããæ°ããäœæããŠççšã§ããŸãã + ããªãã®æã¡ç©ããã¢ãã¿ãŒã«ãã©ãã°ããŠãæ°ããã¿ãã¥ãã€ããŸãã 代ããã«ãã¯ããããæ°ããäœæããŠççšããããšãã§ããŸãã </text> <text name="no modify instructions"> ãã®ççšç©ãä¿®æ£ããæš©éããããŸããã @@ -533,6 +522,7 @@ <button label="å
ã«æ»ã" label_selected="å
ã«æ»ã" name="Revert"/> </panel> </tab_container> + <button label="ã¹ã¯ãªããæ
å ±" label_selected="ã¹ã¯ãªããæ
å ±" name="script_info"/> <button label="ã¢ãŠããã£ããäœæ" label_selected="ã¢ãŠããã£ããäœæ" name="make_outfit_btn"/> <button label="ãã£ã³ã»ã«" label_selected="ãã£ã³ã»ã«" name="Cancel"/> <button label="OK" label_selected="OK" name="Ok"/> diff --git a/indra/newview/skins/default/xui/ja/floater_god_tools.xml b/indra/newview/skins/default/xui/ja/floater_god_tools.xml index 25de45c094..18380bddc2 100644 --- a/indra/newview/skins/default/xui/ja/floater_god_tools.xml +++ b/indra/newview/skins/default/xui/ja/floater_god_tools.xml @@ -11,7 +11,7 @@ </text> <check_box label="æºå" name="check prelude" tool_tip="ãã®èšå®ã«ããããã®å°åã®æºåãããŸãã"/> <check_box label="倪éœåºå®" name="check fixed sun" tool_tip="倪éœäœçœ®ãåºå®ïŒ[å°åïŒäžåç£]ïŒ[å°åœ¢]ã®å Žåãšåæ§ïŒ"/> - <check_box label="ãã¬ããŒãã®ããŒã ããªã»ãã" name="check reset home" tool_tip="äœäººããã¬ããŒãã§å»ã£ããšãã圌ãã®ããŒã ãç®çå°ã«ãªã»ããããã"/> + <check_box label="ãã¬ããŒãã®ããŒã ããªã»ãã" name="check reset home" tool_tip="äœäººããã¬ããŒãã§å€ã«åºãããããŒã ãç®çå°ã«ãªã»ããããŸãã"/> <check_box label="å¯èŠ" name="check visible" tool_tip="ãã®èšå®ã«ããããã®å°åããŽããã»ã¢ãŒã以å€ã§ãå¯èŠã«ããŸãã"/> <check_box label="ãã¡ãŒãž" name="check damage" tool_tip="ãã®èšå®ã«ããããã®å°åå
ã§ãã¡ãŒãžãæå¹åããŸãã"/> <check_box label="ãã©ãã£ãã¯ã»ãã©ããã³ã°ããããã¯" name="block dwell" tool_tip="ãã®èšå®ã«ããããã®å°åå
ã®ãã©ãã£ãã¯èšç®ããªãã«ããŸãã"/> diff --git a/indra/newview/skins/default/xui/ja/floater_im_container.xml b/indra/newview/skins/default/xui/ja/floater_im_container.xml index 24cef14ee0..1d028258ec 100644 --- a/indra/newview/skins/default/xui/ja/floater_im_container.xml +++ b/indra/newview/skins/default/xui/ja/floater_im_container.xml @@ -1,2 +1,2 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<multi_floater name="floater_im_box" title="ã€ã³ã¹ã¿ã³ãã¡ãã»ãŒãž"/> +<multi_floater name="floater_im_box" title="æç®"/> diff --git a/indra/newview/skins/default/xui/ja/floater_incoming_call.xml b/indra/newview/skins/default/xui/ja/floater_incoming_call.xml index 32793faa6d..04013799ec 100644 --- a/indra/newview/skins/default/xui/ja/floater_incoming_call.xml +++ b/indra/newview/skins/default/xui/ja/floater_incoming_call.xml @@ -1,5 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="incoming call" title="äžæã®ãŠãŒã¶ãŒããã®ã³ãŒã«"> + <floater.string name="lifetime"> + 5 + </floater.string> <floater.string name="localchat"> è¿ãã®ãã€ã¹ãã£ãã </floater.string> @@ -12,6 +15,9 @@ <floater.string name="VoiceInviteAdHoc"> ãã³ã³ãã¡ã¬ã³ã¹ãã£ããã§ããã€ã¹ãã£ããã«åå ããŸããã </floater.string> + <floater.string name="VoiceInviteGroup"> + 㯠[GROUP]. ã®ãã€ã¹ãã£ããã³ãŒã«ã«åå ããŸããã + </floater.string> <text name="question"> [CURRENT_CHAT] ãéåžããŠããã®ãã€ã¹ãã£ããã«åå ããŸããïŒ </text> diff --git a/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml b/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml index 2af693be64..5773752788 100644 --- a/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml +++ b/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="script ed float" title="LSL WIKI"> +<floater name="script ed float" title="LSL ã¬ãã¡ã¬ã³ã¹"> <check_box label="ã«ãŒãœã«ãè¿œã" name="lock_check"/> <combo_box label="ããã¯" name="history_combo"/> <button label="æ»ã" name="back_btn"/> diff --git a/indra/newview/skins/default/xui/ja/floater_media_browser.xml b/indra/newview/skins/default/xui/ja/floater_media_browser.xml index 5a6f2121f8..4f67523eec 100644 --- a/indra/newview/skins/default/xui/ja/floater_media_browser.xml +++ b/indra/newview/skins/default/xui/ja/floater_media_browser.xml @@ -19,7 +19,7 @@ <button label="æ©éã" name="seek"/> </layout_panel> <layout_panel name="parcel_owner_controls"> - <button label="çŸåšã® URL ãåºç»ã«éä¿¡" name="assign"/> + <button label="çŸåšã®ããŒãžãåºç»ã«éã" name="assign"/> </layout_panel> <layout_panel name="external_controls"> <button label="å€éšãŠã§ãã»ãã©ãŠã¶ã§éã" name="open_browser"/> diff --git a/indra/newview/skins/default/xui/ja/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/ja/floater_outfit_save_as.xml new file mode 100644 index 0000000000..a869b106ce --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_outfit_save_as.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="modal container"> + <button label="ä¿å" label_selected="ä¿å" name="Save"/> + <button label="ãã£ã³ã»ã«" label_selected="ãã£ã³ã»ã«" name="Cancel"/> + <text name="Save item as:"> + ã¢ãŠããã£ãããå¥åã§ä¿åïŒ + </text> + <line_editor name="name ed"> + [DESC] + </line_editor> +</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_outgoing_call.xml b/indra/newview/skins/default/xui/ja/floater_outgoing_call.xml index 416d104586..8d67108b77 100644 --- a/indra/newview/skins/default/xui/ja/floater_outgoing_call.xml +++ b/indra/newview/skins/default/xui/ja/floater_outgoing_call.xml @@ -1,5 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="outgoing call" title="ã³ãŒã«äž"> + <floater.string name="lifetime"> + 5 + </floater.string> <floater.string name="localchat"> è¿ãã®ãã€ã¹ãã£ãã </floater.string> @@ -21,6 +24,12 @@ <text name="noanswer"> ç¹ãããŸããã§ããã ããšã§ããäžåºŠãè©Šããã ããã </text> + <text name="nearby"> + [VOICE_CHANNEL_NAME] ãžã®æ¥ç¶ãåããŸããã ãè¿ãã®ãã€ã¹ãã£ãããã«åæ¥ç¶ãããŸãã + </text> + <text name="nearby_P2P"> + [VOICE_CHANNEL_NAME] ãã³ãŒã«ãçµäºããŸããã ãè¿ãã®ãã€ã¹ãã£ãããã«åæ¥ç¶ãããŸãã + </text> <text name="leaving"> [CURRENT_CHAT] ãçµäºããŸãã </text> diff --git a/indra/newview/skins/default/xui/ja/floater_preferences.xml b/indra/newview/skins/default/xui/ja/floater_preferences.xml index 7c9a8b61bd..1493219b83 100644 --- a/indra/newview/skins/default/xui/ja/floater_preferences.xml +++ b/indra/newview/skins/default/xui/ja/floater_preferences.xml @@ -8,7 +8,7 @@ <panel label="ãã©ã€ãã·ãŒ" name="im"/> <panel label="ãµãŠã³ã" name="audio"/> <panel label="ãã£ãã" name="chat"/> - <panel label="èŠå" name="msgs"/> + <panel label="éç¥" name="msgs"/> <panel label="ã»ããã¢ãã" name="input"/> <panel label="詳现" name="advanced1"/> </tab_container> diff --git a/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml b/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml index 4b4df98348..a378700d15 100644 --- a/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml @@ -24,6 +24,9 @@ <floater.string name="Title"> ãžã§ã¹ãã£ãŒïŒ [NAME] </floater.string> + <text name="name_text"> + ååïŒ + </text> <text name="desc_label"> 説æïŒ </text> diff --git a/indra/newview/skins/default/xui/ja/floater_preview_notecard.xml b/indra/newview/skins/default/xui/ja/floater_preview_notecard.xml index 0ab1efd127..6e6e04c7d8 100644 --- a/indra/newview/skins/default/xui/ja/floater_preview_notecard.xml +++ b/indra/newview/skins/default/xui/ja/floater_preview_notecard.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="preview notecard" title="ã¡ã¢ïŒ"> +<floater name="preview notecard" title="ããŒãã«ãŒãïŒ"> <floater.string name="no_object"> - ãã®ããŒããå«ãã ãªããžã§ã¯ããèŠã€ãããŸããã + ãã®ããŒãã«ãŒããå«ãŸãããªããžã§ã¯ããèŠã€ãããŸããã </floater.string> <floater.string name="not_allowed"> ãã®ããŒããèŠãæš©éããããŸããã diff --git a/indra/newview/skins/default/xui/ja/floater_preview_texture.xml b/indra/newview/skins/default/xui/ja/floater_preview_texture.xml index 3313ae84b9..c322538127 100644 --- a/indra/newview/skins/default/xui/ja/floater_preview_texture.xml +++ b/indra/newview/skins/default/xui/ja/floater_preview_texture.xml @@ -9,8 +9,6 @@ <text name="desc txt"> 説æïŒ </text> - <button label="OK" name="Keep"/> - <button label="ãã£ã³ã»ã«" name="Discard"/> <text name="dimensions"> [WIDTH]px x [HEIGHT]px </text> @@ -43,4 +41,7 @@ 2:1 </combo_item> </combo_box> + <button label="OK" name="Keep"/> + <button label="ãã£ã³ã»ã«" name="Discard"/> + <button label="å¥åã§ä¿å" name="save_tex_btn"/> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_report_abuse.xml b/indra/newview/skins/default/xui/ja/floater_report_abuse.xml index 599cd5d98d..ca6faf59c2 100644 --- a/indra/newview/skins/default/xui/ja/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/ja/floater_report_abuse.xml @@ -41,8 +41,8 @@ <combo_box name="category_combo" tool_tip="ã«ããŽãªãŒ -- ãã®å ±åã«æãé©ããã«ããŽãªãŒãéžæããŠãã ãã"> <combo_box.item label="ã«ããŽãªãŒãéžæ" name="Select_category"/> <combo_box.item label="幎霢ïŒå¹Žéœ¢åœèšŒ" name="Age__Age_play"/> - <combo_box.item label="幎霢ïŒæ人ã®äœäººãTeen Second Lifeäžã«ãã" name="Age__Adult_resident_on_Teen_Second_Life"/> - <combo_box.item label="幎霢ïŒæªæ幎ãªäœäººãTeen Second Lifeã®å€ã«ãã" name="Age__Underage_resident_outside_of_Teen_Second_Life"/> + <combo_box.item label="幎霢 > æ人ã®äœäººã Teen Second Life ã«ãã" name="Age__Adult_resident_on_Teen_Second_Life"/> + <combo_box.item label="幎霢 > æªæ幎ã®äœäººãTeen Second Life ã®å€ã«ãã" name="Age__Underage_resident_outside_of_Teen_Second_Life"/> <combo_box.item label="æ»æïŒã³ã³ãããã»ãµã³ãããã¯ã¹/å±éºãªãšãªã¢" name="Assault__Combat_sandbox___unsafe_area"/> <combo_box.item label="æ»æïŒå®å
šãªãšãªã¢" name="Assault__Safe_area"/> <combo_box.item label="æ»æïŒæŠåšãã¹ãçšãµã³ãããã¯ã¹" name="Assault__Weapons_testing_sandbox"/> @@ -68,7 +68,7 @@ <combo_box.item label="ãããã€ïŒèããäžå¿«ã§ãããšèŠãªãããã³ã³ãã³ããŸãã¯è¡çº" name="Indecency__Broadly_offensive_content_or_conduct"/> <combo_box.item label="ãããã€ïŒäžé©åãªã¢ãã¿ãŒå" name="Indecency__Inappropriate_avatar_name"/> <combo_box.item label="ãããã€ïŒPGå°åã§ã®äžé©åãªã³ã³ãã³ããŸãã¯è¡çº" name="Indecency__Mature_content_in_PG_region"/> - <combo_box.item label="ãããã€ïŒMatureå°åã§ã®äžé©åãªã³ã³ãã³ããŸãã¯è¡çº" name="Indecency__Inappropriate_content_in_Mature_region"/> + <combo_box.item label="ããã〠> æ§ããæå®ã®å°åã§ã®äžé©åãªã³ã³ãã³ããŸãã¯è¡çº" name="Indecency__Inappropriate_content_in_Mature_region"/> <combo_box.item label="ç¥ç財ç£ã®äŸµå®³ïŒã³ã³ãã³ãã®æ€å»" name="Intellectual_property_infringement_Content_Removal"/> <combo_box.item label="ç¥ç財ç£ã®äŸµå®³ïŒã³ããŒBotåã³æš©éã®æªçš" name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit"/> <combo_box.item label="äžå¯å®¹" name="Intolerance"/> diff --git a/indra/newview/skins/default/xui/ja/floater_script_limits.xml b/indra/newview/skins/default/xui/ja/floater_script_limits.xml new file mode 100644 index 0000000000..7ccd858af7 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_script_limits.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="scriptlimits" title="ã¹ã¯ãªããæ
å ±"/> diff --git a/indra/newview/skins/default/xui/ja/floater_search.xml b/indra/newview/skins/default/xui/ja/floater_search.xml index 9d65e84072..289098a343 100644 --- a/indra/newview/skins/default/xui/ja/floater_search.xml +++ b/indra/newview/skins/default/xui/ja/floater_search.xml @@ -6,4 +6,11 @@ <floater.string name="done_text"> å®äº </floater.string> + <layout_stack name="stack1"> + <layout_panel name="browser_layout"> + <text name="refresh_search"> + çŸåšã®ãŽããã¬ãã«ã«åæ ãããããæ€çŽ¢ãããçŽããŠãã ãã + </text> + </layout_panel> + </layout_stack> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_select_key.xml b/indra/newview/skins/default/xui/ja/floater_select_key.xml index 09c98add47..d41be86873 100644 --- a/indra/newview/skins/default/xui/ja/floater_select_key.xml +++ b/indra/newview/skins/default/xui/ja/floater_select_key.xml @@ -1,7 +1,7 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="modal container"> - <button label="ãã£ã³ã»ã«" label_selected="ãã£ã³ã»ã«" name="Cancel" /> + <button label="ãã£ã³ã»ã«" label_selected="ãã£ã³ã»ã«" name="Cancel"/> <text name="Save item as:"> - ããŒãæŒããŠéžæ + ããŒãæŒããŠã¹ããŒã«ãŒãã¿ã³ã®ããªã¬ãŒãèšå®ããŸãã </text> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_sell_land.xml b/indra/newview/skins/default/xui/ja/floater_sell_land.xml index 951499d0e3..b06b16bbb3 100644 --- a/indra/newview/skins/default/xui/ja/floater_sell_land.xml +++ b/indra/newview/skins/default/xui/ja/floater_sell_land.xml @@ -39,7 +39,7 @@ 販売å
ã®æå®ãªãããç¹å®ã®äººã«è²©å£²ãããéžæããŠãã ããã </text> <combo_box name="sell_to"> - <combo_box.item label="-- 1ã€éžæ --" name="--selectone--"/> + <combo_box.item label="- 1ã€éžæ -" name="--selectone--"/> <combo_box.item label="æå®ãªãã»èª°ã«ã§ã販売" name="Anyone"/> <combo_box.item label="ç¹å®ã®äººïŒ" name="Specificuser:"/> </combo_box> diff --git a/indra/newview/skins/default/xui/ja/floater_snapshot.xml b/indra/newview/skins/default/xui/ja/floater_snapshot.xml index 22f21b0b16..6c84de9b19 100644 --- a/indra/newview/skins/default/xui/ja/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/ja/floater_snapshot.xml @@ -4,12 +4,12 @@ ã¹ãããã·ã§ããã®éãå
</text> <radio_group label="ã¹ãããã·ã§ããã»ã¿ã€ã" name="snapshot_type_radio"> - <radio_item label="Eã¡ãŒã«ã§éä¿¡" name="postcard"/> - <radio_item label="æã¡ç©ã«ä¿åïŒL$[AMOUNT]ïŒ" name="texture"/> - <radio_item label="ããŒããã£ã¹ã¯ã«ä¿å" name="local"/> + <radio_item label="ã¡ãŒã«" name="postcard"/> + <radio_item label="ç§ã®æã¡ç©ïŒL$[AMOUNT]ïŒ" name="texture"/> + <radio_item label="ã³ã³ãã¥ãŒã¿ãŒã«ä¿å" name="local"/> </radio_group> <text name="file_size_label"> - ãã¡ã€ã«ã»ãµã€ãºïŒ [SIZE] KB + [SIZE] KB </text> <button label="ã¹ãããã·ã§ãããæŽæ°" name="new_snapshot_btn"/> <button label="éä¿¡" name="send_btn"/> @@ -19,8 +19,8 @@ <flyout_button.item label="ååãä»ããŠä¿å" name="saveas_item"/> </flyout_button> <button label="ãã£ã³ã»ã«" name="discard_btn"/> - <button label="å
šè¡šç€º >>" name="more_btn" tool_tip="詳ããèšå®"/> - <button label="<< ç°¡æ" name="less_btn" tool_tip="詳ããèšå®"/> + <button label="å
šè¡šç€º" name="more_btn" tool_tip="詳ããèšå®"/> + <button label="ç°¡æ" name="less_btn" tool_tip="詳ããèšå®"/> <text name="type_label2"> ãµã€ãº </text> @@ -68,10 +68,10 @@ <combo_box.item label="æ·±ã" name="Depth"/> <combo_box.item label="ãªã°ãžã§ã¯ãã®ã€ãæ¶ã" name="ObjectMattes"/> </combo_box> - <check_box label="ã€ã³ã¿ãã§ãŒã¹ã衚瀺" name="ui_check"/> - <check_box label="HUD ãªããžã§ã¯ãã衚瀺" name="hud_check"/> + <check_box label="ã€ã³ã¿ãŒãã§ãŒã¹" name="ui_check"/> + <check_box label="HUD" name="hud_check"/> <check_box label="ä¿ååŸãéããç¶æ
ãä¿æ" name="keep_open_check"/> - <check_box label="ç»é¢å
šäœãéæ¢ããã" name="freeze_frame_check"/> + <check_box label="ç»é¢å
šäœãéæ¢" name="freeze_frame_check"/> <check_box label="èªåæŽæ°" name="auto_snapshot_check"/> <string name="unknown"> æªç¥ diff --git a/indra/newview/skins/default/xui/ja/floater_sys_well.xml b/indra/newview/skins/default/xui/ja/floater_sys_well.xml index 91e29fd595..a7c0a2b391 100644 --- a/indra/newview/skins/default/xui/ja/floater_sys_well.xml +++ b/indra/newview/skins/default/xui/ja/floater_sys_well.xml @@ -1,2 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="notification_chiclet" title="éç¥"/> +<floater name="notification_chiclet" title="éç¥"> + <string name="title_im_well_window"> + IMã»ãã·ã§ã³ + </string> + <string name="title_notification_well_window"> + éç¥ + </string> +</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_telehub.xml b/indra/newview/skins/default/xui/ja/floater_telehub.xml index fea497b622..bdb92c8e30 100644 --- a/indra/newview/skins/default/xui/ja/floater_telehub.xml +++ b/indra/newview/skins/default/xui/ja/floater_telehub.xml @@ -20,9 +20,9 @@ <button label="åºçŸäœçœ®ãè¿œå " name="add_spawn_point_btn"/> <button label="åºçŸå°ç¹ãåé€" name="remove_spawn_point_btn"/> <text name="spawn_point_help"> - ç©äœãéžæããè¿œå ããã¯ãªãã¯ãäœçœ®ãæå®ã -ç©äœã移åãŸãã¯åé€ã§ããã -äœçœ®ã¯ãã¬ããã»ã»ã³ã¿ãŒãåºæºã®çžå¯Ÿäœçœ®ã -ãªã¹ãå
åç®ãéžæãã¯ãŒã«ãå
äœçœ®ã瀺ãã + ãªããžã§ã¯ããéžã³ããåºçŸå°ç¹ãè¿œå ããã¯ãªãã¯ããŠäœçœ®ãæå®ããŸãã +ãããããšãã®ãªããžã§ã¯ãã移åããããåé€ã§ããŸãã +äœçœ®ã¯ãã¬ããã»ã³ã¿ãŒã«é¢é£ããŸãã +ãªã¹ãã®ã¢ã€ãã ãéžæããŠã€ã³ã¯ãŒã«ãã§ãã€ã©ã€ããããŸãã </text> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml index c93f315628..1500808e60 100644 --- a/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml +++ b/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml @@ -17,7 +17,7 @@ <check_box label="ä»ããé©çš" name="apply_immediate_check"/> <button label="" label_selected="" name="Pipette"/> <button label="åãæ¶ã" label_selected="åãæ¶ã" name="Cancel"/> - <button label="Ok" label_selected="Ok" name="Select"/> + <button label="OK" label_selected="OK" name="Select"/> <text name="pick title"> ããã¯: </text> diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml b/indra/newview/skins/default/xui/ja/floater_tools.xml index cbb062dea3..52d3537d9a 100644 --- a/indra/newview/skins/default/xui/ja/floater_tools.xml +++ b/indra/newview/skins/default/xui/ja/floater_tools.xml @@ -451,12 +451,12 @@ <spinner label="åçŽïŒVïŒ" name="TexOffsetV"/> <panel name="Add_Media"> <text name="media_tex"> - ã¡ãã£ã¢ URL + ã¡ãã£ã¢ </text> <button name="add_media" tool_tip="ã¡ãã£ã¢ãè¿œå "/> <button name="delete_media" tool_tip="ãã®ã¡ãã£ã¢ãã¯ã¹ãã£ãåé€"/> <button name="edit_media" tool_tip="ãã®ã¡ãã£ã¢ãç·šé"/> - <button label="æãã" label_selected="ã¡ãã£ã¢ãäžåã«æãã" name="button align"/> + <button label="æãã" label_selected="ã¡ãã£ã¢ãäžåã«æãã" name="button align" tool_tip="ã¡ãã£ã¢ãã¯ã¹ãã£ãäžåã«æããïŒæåã«èªã¿èŸŒãå¿
èŠããããŸãïŒ"/> </panel> </panel> <panel label="äžèº«" name="Contents"> @@ -475,14 +475,7 @@ é¢ç©ïŒ [AREA] å¹³æ¹ã¡ãŒãã« </text> <button label="åå°æ
å ±" label_selected="åå°æ
å ±" name="button about land"/> - <check_box label="ãªãŒããŒã衚瀺" name="checkbox show owners" tool_tip="ææè
ã®çš®é¡å¥ã«åºç»ãè²ã¥ãïŒ - -ç· = ããªãã®åå° -ã¢ã¯ã¢ = ããªãã®ã°ã«ãŒãææå° -èµ€ = ä»äººãææããåå° -é»è² = 売ãåºãäž -玫 = ãªãŒã¯ã·ã§ã³ -ã°ã¬ãŒ = ãããªãã¯"/> + <check_box label="ãªãŒããŒã衚瀺" name="checkbox show owners" tool_tip="ææè
ã®çš®é¡å¥ã«åºç»ãè²ã¥ãïŒ ç· = ããªãã®åå° ã¢ã¯ã¢ = ããªãã®ã°ã«ãŒãææå° èµ€ = ä»äººãææããåå° é»è² = 売ãåºãäž çŽ« = ãªãŒã¯ã·ã§ã³ ã°ã¬ãŒ = ãããªãã¯"/> <text name="label_parcel_modify"> åºç»ã®ç·šé </text> diff --git a/indra/newview/skins/default/xui/ja/floater_top_objects.xml b/indra/newview/skins/default/xui/ja/floater_top_objects.xml index e5d1fc5f03..bfc93e5624 100644 --- a/indra/newview/skins/default/xui/ja/floater_top_objects.xml +++ b/indra/newview/skins/default/xui/ja/floater_top_objects.xml @@ -1,55 +1,56 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="top_objects" title="ããŒãã£ã³ã°..."> +<floater name="top_objects" title="ããããªããžã§ã¯ã"> + <floater.string name="top_scripts_title"> + ãããã»ã¹ã¯ãªãã + </floater.string> + <floater.string name="top_scripts_text"> + [COUNT]ã¹ã¯ãªããå
šäœã®å®è¡æéã¯[TIME]ããªç§ã + </floater.string> + <floater.string name="scripts_score_label"> + æé + </floater.string> + <floater.string name="scripts_mono_time_label"> + Monoã¿ã€ã + </floater.string> + <floater.string name="top_colliders_title"> + äžéšã³ã©ã€ã㌠+ </floater.string> + <floater.string name="top_colliders_text"> + äžäœ[COUNT]åã®ç©äœã¯å€ãã®è¡çªå¯èœæ§ããããŸãã + </floater.string> + <floater.string name="colliders_score_label"> + æ° + </floater.string> + <floater.string name="none_descriptor"> + äœãèŠã€ãããŸããã§ããã + </floater.string> <text name="title_text"> ããŒãäžïŒïŒïŒ </text> <scroll_list name="objects_list"> - <column label="æ°" name="score"/> - <column label="åå" name="name"/> - <column label="ææè
" name="owner"/> - <column label="ãã±ãŒã·ã§ã³" name="location"/> - <column label="æé" name="time"/> - <column label="Monoã¿ã€ã " name="mono_time"/> + <scroll_list.columns label="æ°" name="score"/> + <scroll_list.columns label="åå" name="name"/> + <scroll_list.columns label="ææè
" name="owner"/> + <scroll_list.columns label="ãã±ãŒã·ã§ã³" name="location"/> + <scroll_list.columns label="æé" name="time"/> + <scroll_list.columns label="Monoã¿ã€ã " name="mono_time"/> + <scroll_list.columns label="URL" name="URLs"/> </scroll_list> <text name="id_text"> ç©äœIDïŒ </text> <button label="æšèã衚瀺" name="show_beacon_btn"/> <text name="obj_name_text"> - ç©äœåïŒ + ãªããžã§ã¯ãåïŒ </text> <button label="ãã£ã«ã¿" name="filter_object_btn"/> <text name="owner_name_text"> - ææè
åïŒ + ææè
ïŒ </text> <button label="ãã£ã«ã¿" name="filter_owner_btn"/> + <button label="æŽæ°" name="refresh_btn"/> <button label="éžæå
容ãè¿åŽ" name="return_selected_btn"/> <button label="ãã¹ãŠè¿åŽ" name="return_all_btn"/> <button label="éžæå
容ãç¡å¹å" name="disable_selected_btn"/> <button label="ãã¹ãŠç¡å¹å" name="disable_all_btn"/> - <button label="æŽæ°" name="refresh_btn"/> - <string name="top_scripts_title"> - ãããã»ã¹ã¯ãªãã - </string> - <string name="top_scripts_text"> - [COUNT]ã¹ã¯ãªããå
šäœã®å®è¡æéã¯[TIME]ããªç§ã - </string> - <string name="scripts_score_label"> - æé - </string> - <string name="scripts_mono_time_label"> - Monoã¿ã€ã - </string> - <string name="top_colliders_title"> - äžéšã³ã©ã€ã㌠- </string> - <string name="top_colliders_text"> - äžäœ[COUNT]åã®ç©äœã¯å€ãã®è¡çªå¯èœæ§ããããŸãã - </string> - <string name="colliders_score_label"> - æ° - </string> - <string name="none_descriptor"> - äœãèŠã€ãããŸããã§ããã - </string> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_voice_controls.xml b/indra/newview/skins/default/xui/ja/floater_voice_controls.xml index 5d52144265..5a0694e5c5 100644 --- a/indra/newview/skins/default/xui/ja/floater_voice_controls.xml +++ b/indra/newview/skins/default/xui/ja/floater_voice_controls.xml @@ -1,13 +1,23 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="floater_voice_controls" title="ãã€ã¹ã³ã³ãããŒã«"> - <panel name="control_panel"> - <panel name="my_panel"> - <text name="user_text" value="Mya Avatar:"/> - </panel> - <layout_stack> - <layout_panel> - <slider_bar name="volume_slider_bar" tool_tip="é³é"/> - </layout_panel> - </layout_stack> - </panel> + <string name="title_nearby"> + è¿ãã®ãã€ã¹ + </string> + <string name="title_group"> + [GROUP] ãšã°ã«ãŒãã³ãŒã« + </string> + <string name="title_adhoc"> + ã³ã³ãã¡ã¬ã³ã¹ã³ãŒã« + </string> + <string name="title_peer_2_peer"> + [NAME] ã§ã³ãŒã« + </string> + <string name="no_one_near"> + è¿ãã«ãã€ã¹ãæå¹ã«ããŠãã人ã¯ããŸããã + </string> + <layout_stack name="my_call_stack"> + <layout_panel name="leave_call_btn_panel"> + <button label="ã³ãŒã«çµäº" name="leave_call_btn"/> + </layout_panel> + </layout_stack> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_whitelist_entry.xml b/indra/newview/skins/default/xui/ja/floater_whitelist_entry.xml index b518d87477..34aba9d485 100644 --- a/indra/newview/skins/default/xui/ja/floater_whitelist_entry.xml +++ b/indra/newview/skins/default/xui/ja/floater_whitelist_entry.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="whitelist_entry"> +<floater name="whitelist_entry" title="ãã¯ã€ããªã¹ãã®å
¥å"> <text name="media_label"> URL ã URL ãã¿ãŒã³ãå
¥åããŠãèš±å¯ãããã¡ã€ã³ããªã¹ãã«è¿œå ããŸãã </text> diff --git a/indra/newview/skins/default/xui/ja/floater_window_size.xml b/indra/newview/skins/default/xui/ja/floater_window_size.xml new file mode 100644 index 0000000000..a31336c0f8 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/floater_window_size.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<floater name="window_size" title="ãŠã£ã³ããŠãµã€ãº"> + <string name="resolution_format"> + [RES_X] x [RES_Y] + </string> + <text name="windowsize_text"> + ãŠã£ã³ããŠã®ãµã€ãºã®èšå®ïŒ + </text> + <combo_box name="window_size_combo" tool_tip="暪å¹
x é«ã"> + <combo_box.item label="1000 x 700 ïŒæšæºïŒ" name="item0"/> + <combo_box.item label="1024 x 768" name="item1"/> + <combo_box.item label="1280 x 720 ïŒ720pïŒ" name="item2"/> + <combo_box.item label="1920 x 1080 ïŒ1080pïŒ" name="item3"/> + </combo_box> + <button label="èšå®" name="set_btn"/> + <button label="ãã£ã³ã»ã«" name="cancel_btn"/> +</floater> diff --git a/indra/newview/skins/default/xui/ja/floater_world_map.xml b/indra/newview/skins/default/xui/ja/floater_world_map.xml index 370c95530a..a0f2d98adf 100644 --- a/indra/newview/skins/default/xui/ja/floater_world_map.xml +++ b/indra/newview/skins/default/xui/ja/floater_world_map.xml @@ -1,54 +1,81 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="worldmap" title="äžçå°å³"> - <text name="you_label"> - ããªã - </text> - <text name="home_label"> - ããŒã - </text> - <text name="auction_label"> - ãªãŒã¯ã·ã§ã³ - </text> - <icon left="1123" name="square"/> - <text left_delta="20" name="land_for_sale_label"> - 売åºãäžã®åå° - </text> - <button label="ããŒã ãž" label_selected="ããŒã ãž" name="Go Home" tool_tip="èªåã®ããŒã ã«ãã¬ããŒã"/> - <check_box label="äœäºº" name="people_chk"/> - <check_box label="ã€ã³ãã©ãã" name="infohub_chk"/> - <check_box label="ãã¬ãã" name="telehub_chk"/> - <check_box label="売ãå°" name="land_for_sale_chk"/> - <text name="events_label"> - ã€ãã³ãïŒ - </text> - <check_box label="PG" name="event_chk"/> - <check_box initial_value="true" label="Mature" name="event_mature_chk"/> - <check_box label="Adult" name="event_adult_chk"/> - <combo_box label="ãªã³ã©ã€ã³ã®ãã¬ã³ã" name="friend combo" tool_tip="å°å³ã«è¡šç€ºãããã¬ã³ã"> - <combo_box.item label="ãªã³ã©ã€ã³ã®ãã¬ã³ã" name="item1"/> - </combo_box> - <combo_box label="ã©ã³ãããŒã¯" name="landmark combo" tool_tip="å°å³ã«è¡šç€ºããã©ã³ãããŒã¯"> - <combo_box.item label="ã©ã³ãããŒã¯" name="item1"/> - </combo_box> - <line_editor label="å°ååã§æ€çŽ¢" name="location" tool_tip="å°ååãå
¥åããŠãã ããã"/> - <button label="æ€çŽ¢" name="DoSearch" tool_tip="å°åæ€çŽ¢"/> - <text name="search_label"> - æ€çŽ¢çµæïŒ - </text> - <scroll_list name="search_results"> - <scroll_list.columns label="" name="icon"/> - <scroll_list.columns label="" name="sim_name"/> - </scroll_list> - <text name="location_label"> - äœçœ®ïŒ - </text> - <spinner name="spin x" tool_tip="å°å³äžã«è¡šç€ºãããäœçœ®ã®X座æš"/> - <spinner name="spin y" tool_tip="å°å³äžã«è¡šç€ºãããäœçœ®ã®Y座æš"/> - <spinner name="spin z" tool_tip="å°å³äžã«è¡šç€ºãããäœçœ®ã®Z座æš"/> - <button label="ãã¬ããŒã" label_selected="ãã¬ããŒã" name="Teleport" tool_tip="éžæããããã±ãŒã·ã§ã³ã«ãã¬ããŒã"/> - <button label="ç®çå°ã衚瀺" label_selected="ç®çå°ã衚瀺" name="Show Destination" tool_tip="éžæãããã±ãŒã·ã§ã³ãå°å³ã®äžå¿ã«ãã"/> - <button label="ã¯ãªã¢" label_selected="ã¯ãªã¢" name="Clear" tool_tip="ãã©ããã³ã°ãåæ¢"/> - <button label="çŸåšå°ã衚瀺" label_selected="çŸåšå°ã衚瀺" name="Show My Location" tool_tip="ããªãã®ã¢ãã¿ãŒã®ãã±ãŒã·ã§ã³ãå°å³ã®äžå¿ã«ãã"/> - <button label="SLurl ãã¯ãªããããŒãã«ã³ããŒ" name="copy_slurl" tool_tip="çŸåšå°ã SLurl ãšããŠã³ããŒããŠãWebã§äœ¿çšããŸãã"/> - <slider label="ãºãŒã " name="zoom slider"/> + <panel name="layout_panel_1"> + <text name="events_label"> + ã¬ãžã§ã³ã + </text> + </panel> + <panel> + <button label="çŸåšå°ã衚瀺" label_selected="çŸåšå°ã衚瀺" name="Show My Location" tool_tip="ããããäžå€®ã«è¡šç€ºãã"/> + <text name="me_label"> + ã㌠+ </text> + <check_box label="äœäºº" name="people_chk"/> + <text name="person_label"> + äœäºº + </text> + <check_box label="ã€ã³ãã©ãã" name="infohub_chk"/> + <text name="infohub_label"> + ã€ã³ãã©ãã + </text> + <check_box label="売ãå°" name="land_for_sale_chk"/> + <text name="land_sale_label"> + åå°è²©å£² + </text> + <text name="by_owner_label"> + by owner + </text> + <text name="auction_label"> + åå°ãªãŒã¯ã·ã§ã³ + </text> + <button label="ããŒã ãž" label_selected="ããŒã ãž" name="Go Home" tool_tip="ãããŒã ãã«ãã¬ããŒã"/> + <text name="Home_label"> + ããŒã + </text> + <text name="events_label"> + ã€ãã³ãïŒ + </text> + <check_box label="PG" name="event_chk"/> + <text name="pg_label"> + äžè¬ + </text> + <check_box initial_value="true" label="Mature" name="event_mature_chk"/> + <text name="mature_label"> + æ§ãã + </text> + <check_box label="Adult" name="event_adult_chk"/> + <text name="adult_label"> + ã¢ãã«ã + </text> + </panel> + <panel> + <text name="find_on_map_label"> + å°å³ã§æ¢ã + </text> + </panel> + <panel> + <combo_box label="ãªã³ã©ã€ã³ã®ãã¬ã³ã" name="friend combo" tool_tip="ãã¬ã³ããå°å³ã«è¡šç€º"> + <combo_box.item label="ãªã³ã©ã€ã³ã®ãã¬ã³ã" name="item1"/> + </combo_box> + <combo_box label="ã〠ã©ã³ãããŒã¯" name="landmark combo" tool_tip="å°å³ã«è¡šç€ºããã©ã³ãããŒã¯"> + <combo_box.item label="ã〠ã©ã³ãããŒã¯" name="item1"/> + </combo_box> + <search_editor label="ãªãŒãžã§ã³å" name="location" tool_tip="å°ååãå
¥åããŠãã ããã"/> + <button label="æ€çŽ¢" name="DoSearch" tool_tip="å°åæ€çŽ¢"/> + <scroll_list name="search_results"> + <scroll_list.columns label="" name="icon"/> + <scroll_list.columns label="" name="sim_name"/> + </scroll_list> + <button label="ãã¬ããŒã" label_selected="ãã¬ããŒã" name="Teleport" tool_tip="éžæããããã±ãŒã·ã§ã³ã«ãã¬ããŒã"/> + <button label="SLurl ãã³ããŒ" name="copy_slurl" tool_tip="çŸåšå°ã SLurl ãšããŠã³ããŒããŠãWebã§äœ¿çšããŸãã"/> + <button label="éžæãããªãŒãžã§ã³ã衚瀺ãã" label_selected="ç®çå°ã衚瀺" name="Show Destination" tool_tip="éžæãããã±ãŒã·ã§ã³ãå°å³ã®äžå¿ã«ãã"/> + </panel> + <panel> + <text name="zoom_label"> + ãºãŒã + </text> + </panel> + <panel> + <slider label="ãºãŒã " name="zoom slider"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/ja/inspect_avatar.xml b/indra/newview/skins/default/xui/ja/inspect_avatar.xml index df3f6d0cd0..9371b80af5 100644 --- a/indra/newview/skins/default/xui/ja/inspect_avatar.xml +++ b/indra/newview/skins/default/xui/ja/inspect_avatar.xml @@ -10,19 +10,17 @@ <string name="Details"> [SL_PROFILE] </string> - <string name="Partner"> - ããŒãããŒïŒ [PARTNER] - </string> <text name="user_name" value="Grumpity ProductEngine"/> <text name="user_subtitle" value="11 Months, 3 days old"/> <text name="user_details"> This is my second life description and I really think it is great. </text> - <text name="user_partner"> - Erica Linden - </text> <slider name="volume_slider" tool_tip="ãã€ã¹é³é" value="0.5"/> <button label="ãã¬ã³ãç»é²" name="add_friend_btn"/> <button label="IM" name="im_btn"/> <button label="詳现" name="view_profile_btn"/> + <panel name="moderator_panel"> + <button label="ãã€ã¹ãç¡å¹ã«ãã" name="disable_voice"/> + <button label="ãã€ã¹ãæå¹ã«ãã" name="enable_voice"/> + </panel> </floater> diff --git a/indra/newview/skins/default/xui/ja/inspect_group.xml b/indra/newview/skins/default/xui/ja/inspect_group.xml index b292d4b525..b461b93f65 100644 --- a/indra/newview/skins/default/xui/ja/inspect_group.xml +++ b/indra/newview/skins/default/xui/ja/inspect_group.xml @@ -31,4 +31,5 @@ Fear the moose! Fear it! And the mongoose too! </text> <button label="åå " name="join_btn"/> <button label="è±é" name="leave_btn"/> + <button label="ãããã£ãŒã«ã®è¡šç€º" name="view_profile_btn"/> </floater> diff --git a/indra/newview/skins/default/xui/ja/menu_attachment_other.xml b/indra/newview/skins/default/xui/ja/menu_attachment_other.xml new file mode 100644 index 0000000000..f163c2cf4f --- /dev/null +++ b/indra/newview/skins/default/xui/ja/menu_attachment_other.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<!-- *NOTE: See also menu_avatar_other.xml --> +<context_menu name="Avatar Pie"> + <menu_item_call label="ãããã£ãŒã«ã®è¡šç€º" name="Profile..."/> + <menu_item_call label="ãã¬ã³ãç»é²" name="Add Friend"/> + <menu_item_call label="IM" name="Send IM..."/> + <menu_item_call label="ã³ãŒã«" name="Call"/> + <menu_item_call label="ã°ã«ãŒãã«æåŸ
" name="Invite..."/> + <menu_item_call label="ãããã¯" name="Avatar Mute"/> + <menu_item_call label="å ±å" name="abuse"/> + <menu_item_call label="ããªãŒãº" name="Freeze..."/> + <menu_item_call label="è¿œæŸ" name="Eject..."/> + <menu_item_call label="ãããã°" name="Debug..."/> + <menu_item_call label="ãºãŒã ã€ã³" name="Zoom In"/> + <menu_item_call label="æ¯æã" name="Pay..."/> + <menu_item_call label="ãªããžã§ã¯ãã®ãããã£ãŒã«" name="Object Inspect"/> +</context_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_attachment_self.xml b/indra/newview/skins/default/xui/ja/menu_attachment_self.xml new file mode 100644 index 0000000000..209edd80ba --- /dev/null +++ b/indra/newview/skins/default/xui/ja/menu_attachment_self.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<context_menu name="Attachment Pie"> + <menu_item_call label="觊ã" name="Attachment Object Touch"/> + <menu_item_call label="ç·šé" name="Edit..."/> + <menu_item_call label="åãå€ã" name="Detach"/> + <menu_item_call label="äžã«èœãšã" name="Drop"/> + <menu_item_call label="ç«ã¡äžãã" name="Stand Up"/> + <menu_item_call label="容姿" name="Appearance..."/> + <menu_item_call label="ãã¬ã³ã" name="Friends..."/> + <menu_item_call label="ã°ã«ãŒã" name="Groups..."/> + <menu_item_call label="ãããã£ãŒã«" name="Profile..."/> +</context_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml b/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml index ef63f3f4e0..b04f602134 100644 --- a/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml +++ b/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="Avatar Icon Menu"> - <menu_item_call label="ãããã£ãŒã«ã衚瀺..." name="Show Profile"/> + <menu_item_call label="ãããã£ãŒã«ã®è¡šç€º" name="Show Profile"/> <menu_item_call label="IMãéä¿¡..." name="Send IM"/> <menu_item_call label="ãã¬ã³ããè¿œå ..." name="Add Friend"/> <menu_item_call label="ãã¬ã³ããåé€..." name="Remove Friend"/> diff --git a/indra/newview/skins/default/xui/ja/menu_avatar_other.xml b/indra/newview/skins/default/xui/ja/menu_avatar_other.xml new file mode 100644 index 0000000000..74d877cdda --- /dev/null +++ b/indra/newview/skins/default/xui/ja/menu_avatar_other.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<!-- *NOTE: See also menu_attachment_other.xml --> +<context_menu name="Avatar Pie"> + <menu_item_call label="ãããã£ãŒã«ã®è¡šç€º" name="Profile..."/> + <menu_item_call label="ãã¬ã³ãç»é²" name="Add Friend"/> + <menu_item_call label="IM" name="Send IM..."/> + <menu_item_call label="ã³ãŒã«" name="Call"/> + <menu_item_call label="ã°ã«ãŒãã«æåŸ
" name="Invite..."/> + <menu_item_call label="ãããã¯" name="Avatar Mute"/> + <menu_item_call label="å ±å" name="abuse"/> + <menu_item_call label="ããªãŒãº" name="Freeze..."/> + <menu_item_call label="è¿œæŸ" name="Eject..."/> + <menu_item_call label="ãããã°" name="Debug..."/> + <menu_item_call label="ãºãŒã ã€ã³" name="Zoom In"/> + <menu_item_call label="æ¯æã" name="Pay..."/> +</context_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_avatar_self.xml b/indra/newview/skins/default/xui/ja/menu_avatar_self.xml new file mode 100644 index 0000000000..1bfadf8d45 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/menu_avatar_self.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<context_menu name="Self Pie"> + <menu_item_call label="ç«ã¡äžãã" name="Stand Up"/> + <context_menu label="è±ãïŒ" name="Take Off >"> + <context_menu label="è¡£é¡ >" name="Clothes >"> + <menu_item_call label="ã·ã£ã" name="Shirt"/> + <menu_item_call label="ãã³ã" name="Pants"/> + <menu_item_call label="ã¹ã«ãŒã" name="Skirt"/> + <menu_item_call label="éŽ" name="Shoes"/> + <menu_item_call label="éŽäž" name="Socks"/> + <menu_item_call label="ãžã£ã±ãã" name="Jacket"/> + <menu_item_call label="æè¢" name="Gloves"/> + <menu_item_call label="äžçã·ã£ã" name="Self Undershirt"/> + <menu_item_call label="äžçãã³ã" name="Self Underpants"/> + <menu_item_call label="ã¿ãã¥" name="Self Tattoo"/> + <menu_item_call label="ã¢ã«ãã¡" name="Self Alpha"/> + <menu_item_call label="ãã¹ãŠã®è¡£é¡" name="All Clothes"/> + </context_menu> + <context_menu label="HUD >" name="Object Detach HUD"/> + <context_menu label="åãå€ã >" name="Object Detach"/> + <menu_item_call label="ãã¹ãŠåãå€ã" name="Detach All"/> + </context_menu> + <menu_item_call label="容姿" name="Appearance..."/> + <menu_item_call label="ãã¬ã³ã" name="Friends..."/> + <menu_item_call label="ã°ã«ãŒã" name="Groups..."/> + <menu_item_call label="ã〠ãããã£ãŒã«" name="Profile..."/> +</context_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_bottomtray.xml b/indra/newview/skins/default/xui/ja/menu_bottomtray.xml index 3ca2de247e..ea7ba1b741 100644 --- a/indra/newview/skins/default/xui/ja/menu_bottomtray.xml +++ b/indra/newview/skins/default/xui/ja/menu_bottomtray.xml @@ -4,4 +4,9 @@ <menu_item_check label="移åãã¿ã³" name="ShowMoveButton"/> <menu_item_check label="èŠçãã¿ã³" name="ShowCameraButton"/> <menu_item_check label="ã¹ãããã·ã§ãããã¿ã³" name="ShowSnapshotButton"/> + <menu_item_call label="åãåã" name="NearbyChatBar_Cut"/> + <menu_item_call label="ã³ããŒ" name="NearbyChatBar_Copy"/> + <menu_item_call label="貌ãä»ã" name="NearbyChatBar_Paste"/> + <menu_item_call label="åé€" name="NearbyChatBar_Delete"/> + <menu_item_call label="ãã¹ãŠéžæ" name="NearbyChatBar_Select_All"/> </menu> diff --git a/indra/newview/skins/default/xui/ja/menu_im_well_button.xml b/indra/newview/skins/default/xui/ja/menu_im_well_button.xml new file mode 100644 index 0000000000..3397004bd7 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/menu_im_well_button.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<context_menu name="IM Well Button Context Menu"> + <menu_item_call label="ãã¹ãŠéãã" name="Close All"/> +</context_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_imchiclet_adhoc.xml b/indra/newview/skins/default/xui/ja/menu_imchiclet_adhoc.xml new file mode 100644 index 0000000000..8cd6fa4a27 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/menu_imchiclet_adhoc.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<menu name="IMChiclet AdHoc Menu"> + <menu_item_call label="ã»ãã·ã§ã³çµäº" name="End Session"/> +</menu> diff --git a/indra/newview/skins/default/xui/ja/menu_imchiclet_p2p.xml b/indra/newview/skins/default/xui/ja/menu_imchiclet_p2p.xml index 0887001992..5453f998fa 100644 --- a/indra/newview/skins/default/xui/ja/menu_imchiclet_p2p.xml +++ b/indra/newview/skins/default/xui/ja/menu_imchiclet_p2p.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="IMChiclet P2P Menu"> - <menu_item_call label="ãããã£ãŒã«ã衚瀺" name="Show Profile"/> + <menu_item_call label="ãããã£ãŒã«ã®è¡šç€º" name="Show Profile"/> <menu_item_call label="ãã¬ã³ãç»é²" name="Add Friend"/> <menu_item_call label="ã»ãã·ã§ã³ã衚瀺" name="Send IM"/> <menu_item_call label="ã»ãã·ã§ã³çµäº" name="End Session"/> diff --git a/indra/newview/skins/default/xui/ja/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/ja/menu_inspect_avatar_gear.xml index 64e1505440..3d5086c52a 100644 --- a/indra/newview/skins/default/xui/ja/menu_inspect_avatar_gear.xml +++ b/indra/newview/skins/default/xui/ja/menu_inspect_avatar_gear.xml @@ -7,6 +7,7 @@ <menu_item_call label="ãã¬ããŒã" name="teleport"/> <menu_item_call label="ã°ã«ãŒãã«æåŸ
" name="invite_to_group"/> <menu_item_call label="ãããã¯" name="block"/> + <menu_item_call label="ãããã¯è§£é€" name="unblock"/> <menu_item_call label="å ±å" name="report"/> <menu_item_call label="ããªãŒãº" name="freeze"/> <menu_item_call label="è¿œæŸ" name="eject"/> diff --git a/indra/newview/skins/default/xui/ja/menu_inventory.xml b/indra/newview/skins/default/xui/ja/menu_inventory.xml index 623a0cdb06..78c0dd0a78 100644 --- a/indra/newview/skins/default/xui/ja/menu_inventory.xml +++ b/indra/newview/skins/default/xui/ja/menu_inventory.xml @@ -10,7 +10,7 @@ <menu_item_call label="éºå€±ç©ãã©ã«ãã空ã«ãã" name="Empty Lost And Found"/> <menu_item_call label="æ°ãããã©ã«ã" name="New Folder"/> <menu_item_call label="æ°ããã¹ã¯ãªãã" name="New Script"/> - <menu_item_call label="æ°ããããŒã" name="New Note"/> + <menu_item_call label="æ°ããããŒãã«ãŒã" name="New Note"/> <menu_item_call label="æ°ãããžã§ã¹ãã£ãŒ" name="New Gesture"/> <menu label="æ°ããè¡£é¡" name="New Clothes"> <menu_item_call label="æ°ããã·ã£ã" name="New Shirt"/> @@ -46,6 +46,9 @@ <menu_item_call label="ãã¬ããŒã" name="Landmark Open"/> <menu_item_call label="éã" name="Animation Open"/> <menu_item_call label="éã" name="Sound Open"/> + <menu_item_call label="ççšäžã®ã¢ãŠããã£ãããå
¥ãæ¿ãã" name="Replace Outfit"/> + <menu_item_call label="ççšäžã®ã¢ãŠããã£ããã«è¿œå ãã" name="Add To Outfit"/> + <menu_item_call label="ççšäžã®ã¢ãŠããã£ããããåãé€ã" name="Remove From Outfit"/> <menu_item_call label="ã¢ã€ãã ãé€å€" name="Purge Item"/> <menu_item_call label="ã¢ã€ãã ã埩å
" name="Restore Item"/> <menu_item_call label="ãªãªãžãã«ãæ¢ã" name="Find Original"/> @@ -56,10 +59,9 @@ <menu_item_call label="ã³ããŒ" name="Copy"/> <menu_item_call label="貌ãä»ã" name="Paste"/> <menu_item_call label="ãªã³ã¯ã®è²Œãä»ã" name="Paste As Link"/> + <menu_item_call label="ãªã³ã¯ãå€ã" name="Remove Link"/> <menu_item_call label="åé€" name="Delete"/> - <menu_item_call label="ã¢ãŠããã£ããããåãé€ã" name="Remove From Outfit"/> - <menu_item_call label="æè£
ã«è¿œå " name="Add To Outfit"/> - <menu_item_call label="æè£
ã眮æ" name="Replace Outfit"/> + <menu_item_call label="ã·ã¹ãã ãã©ã«ããåé€ãã" name="Delete System Folder"/> <menu_item_call label="äŒè°ãã£ããéå§" name="Conference Chat Folder"/> <menu_item_call label="åç" name="Sound Play"/> <menu_item_call label="ã©ã³ãããŒã¯ã®æ
å ±" name="About Landmark"/> diff --git a/indra/newview/skins/default/xui/ja/menu_inventory_add.xml b/indra/newview/skins/default/xui/ja/menu_inventory_add.xml index 8b18f6bfe8..14ad7900e1 100644 --- a/indra/newview/skins/default/xui/ja/menu_inventory_add.xml +++ b/indra/newview/skins/default/xui/ja/menu_inventory_add.xml @@ -8,7 +8,7 @@ </menu> <menu_item_call label="æ°èŠãã©ã«ã" name="New Folder"/> <menu_item_call label="æ°èŠã¹ã¯ãªãã" name="New Script"/> - <menu_item_call label="æ°èŠããŒã" name="New Note"/> + <menu_item_call label="æ°ããããŒãã«ãŒã" name="New Note"/> <menu_item_call label="æ°èŠãžã§ã¹ãã£ãŒ" name="New Gesture"/> <menu label="æ°ããè¡£é¡" name="New Clothes"> <menu_item_call label="æ°ããã·ã£ã" name="New Shirt"/> diff --git a/indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml index 2bac5ebaa6..e3114327a0 100644 --- a/indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml +++ b/indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml @@ -9,4 +9,6 @@ <menu_item_call label="ãã¿ç®±ã空ã«ãã" name="empty_trash"/> <menu_item_call label="çŽå€±ç©ã空ã«ãã" name="empty_lostnfound"/> <menu_item_call label="å¥åã§ãã¯ã¹ãã£ãä¿å" name="Save Texture As"/> + <menu_item_call label="ãªãªãžãã«ã衚瀺" name="Find Original"/> + <menu_item_call label="ãã¹ãŠã®ãªã³ã¯ã衚瀺" name="Find All Links"/> </menu> diff --git a/indra/newview/skins/default/xui/ja/menu_land.xml b/indra/newview/skins/default/xui/ja/menu_land.xml new file mode 100644 index 0000000000..89c122f14f --- /dev/null +++ b/indra/newview/skins/default/xui/ja/menu_land.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<context_menu name="Land Pie"> + <menu_item_call label="åå°æ
å ±" name="Place Information..."/> + <menu_item_call label="ããã«åº§ã" name="Sit Here"/> + <menu_item_call label="ãã®åå°ã賌å
¥" name="Land Buy"/> + <menu_item_call label="å
¥å Žèš±å¯ã賌å
¥" name="Land Buy Pass"/> + <menu_item_call label="å¶äœ" name="Create"/> + <menu_item_call label="å°åœ¢ãç·šé" name="Edit Terrain"/> +</context_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_login.xml b/indra/newview/skins/default/xui/ja/menu_login.xml index 5db56ae76b..42a95ac3d3 100644 --- a/indra/newview/skins/default/xui/ja/menu_login.xml +++ b/indra/newview/skins/default/xui/ja/menu_login.xml @@ -23,10 +23,8 @@ <menu_item_call label="ãããã°èšå®ã衚瀺" name="Debug Settings"/> <menu_item_call label="UI/è²ã®èšå®" name="UI/Color Settings"/> <menu_item_call label="XUI ãã¬ãã¥ãŒããŒã«" name="UI Preview Tool"/> - <menu_item_call label="ãµã€ããã¬ã€ã衚瀺" name="Show Side Tray"/> - <menu_item_call label="ãŠã£ãžã§ãããã¹ã" name="Widget Test"/> - <menu_item_call label="ã€ã³ã¹ãã¯ã¿ãŒãã¹ã" name="Inspectors Test"/> - <menu_item_check label="Reg In Client Test (restart)" name="Reg In Client Test (restart)"/> + <menu label="UI ãã¹ã" name="UI Tests"/> + <menu_item_call label="ãŠã£ã³ããŠã®ãµã€ãºã®èšå®..." name="Set Window Size..."/> <menu_item_call label="å©çšèŠçŽã衚瀺" name="TOS"/> <menu_item_call label="ã¯ãªãã£ã«ã«ã¡ãã»ãŒãžã衚瀺" name="Critical"/> <menu_item_call label="Web ãã©ãŠã¶ã®ãã¹ã" name="Web Browser Test"/> diff --git a/indra/newview/skins/default/xui/ja/menu_notification_well_button.xml b/indra/newview/skins/default/xui/ja/menu_notification_well_button.xml new file mode 100644 index 0000000000..913bae8958 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/menu_notification_well_button.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<context_menu name="Notification Well Button Context Menu"> + <menu_item_call label="ãã¹ãŠéãã" name="Close All"/> +</context_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_object.xml b/indra/newview/skins/default/xui/ja/menu_object.xml new file mode 100644 index 0000000000..a161c01514 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/menu_object.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<context_menu name="Object Pie"> + <menu_item_call label="觊ã" name="Object Touch"/> + <menu_item_call label="ç·šé" name="Edit..."/> + <menu_item_call label="å¶äœ" name="Build"/> + <menu_item_call label="éã" name="Open"/> + <menu_item_call label="ããã«åº§ã" name="Object Sit"/> + <menu_item_call label="ãªããžã§ã¯ãã®ãããã£ãŒã«" name="Object Inspect"/> + <menu_item_call label="ãºãŒã ã€ã³" name="Zoom In"/> + <context_menu label="è£
ç >" name="Put On"> + <menu_item_call label="è£
ç" name="Wear"/> + <context_menu label="åãä»ã >" name="Object Attach"/> + <context_menu label="HUD ãåãä»ã >" name="Object Attach HUD"/> + </context_menu> + <context_menu label="åé€ >" name="Remove"> + <menu_item_call label="åã" name="Pie Object Take"/> + <menu_item_call label="å«ãããã®å ±å" name="Report Abuse..."/> + <menu_item_call label="ãããã¯" name="Object Mute"/> + <menu_item_call label="è¿åŽ" name="Return..."/> + <menu_item_call label="åé€" name="Delete"/> + </context_menu> + <menu_item_call label="ã³ããŒãåã" name="Take Copy"/> + <menu_item_call label="æ¯æã" name="Pay..."/> + <menu_item_call label="è²·ã" name="Buy..."/> +</context_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_participant_list.xml b/indra/newview/skins/default/xui/ja/menu_participant_list.xml index 0bc51ecde1..398a78bb61 100644 --- a/indra/newview/skins/default/xui/ja/menu_participant_list.xml +++ b/indra/newview/skins/default/xui/ja/menu_participant_list.xml @@ -1,5 +1,20 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <context_menu name="Participant List Context Menu"> - <menu_item_check label="æåããã¥ãŒã" name="MuteText"/> - <menu_item_check label="æåãã£ãããèš±å¯" name="AllowTextChat"/> + <menu_item_check label="ååã§äžŠã¹æ¿ã" name="SortByName"/> + <menu_item_check label="æè¿ã®çºèšè
ã§äžŠã¹æ¿ã" name="SortByRecentSpeakers"/> + <menu_item_call label="ãããã£ãŒã«ã®è¡šç€º" name="View Profile"/> + <menu_item_call label="ãã¬ã³ãç»é²" name="Add Friend"/> + <menu_item_call label="IM" name="IM"/> + <menu_item_call label="ã³ãŒã«" name="Call"/> + <menu_item_call label="å
±æ" name="Share"/> + <menu_item_call label="æ¯æã" name="Pay"/> + <menu_item_check label="ãã€ã¹ããããã¯" name="Block/Unblock"/> + <menu_item_check label="æåããããã¯ãã" name="MuteText"/> + <context_menu label="ã¢ãã¬ãŒã¿ãŒã®ãªãã·ã§ã³ >" name="Moderator Options"> + <menu_item_check label="æåãã£ãããèš±å¯" name="AllowTextChat"/> + <menu_item_call label="ãã®åå è
ããã¥ãŒããã" name="ModerateVoiceMuteSelected"/> + <menu_item_call label="ä»ã®äººå
šå¡ããã¥ãŒããã" name="ModerateVoiceMuteOthers"/> + <menu_item_call label="ãã®åå è
ã®ãã¥ãŒãã解é€ãã" name="ModerateVoiceUnMuteSelected"/> + <menu_item_call label="ä»ã®äººå
šå¡ã®ãã¥ãŒãã解é€ãã" name="ModerateVoiceUnMuteOthers"/> + </context_menu> </context_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_people_groups.xml b/indra/newview/skins/default/xui/ja/menu_people_groups.xml new file mode 100644 index 0000000000..4e5dc60a3d --- /dev/null +++ b/indra/newview/skins/default/xui/ja/menu_people_groups.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<menu name="menu_group_plus"> + <menu_item_call label="æ
å ±ã衚瀺" name="View Info"/> + <menu_item_call label="ãã£ãã" name="Chat"/> + <menu_item_call label="ã³ãŒã«" name="Call"/> + <menu_item_call label="æå¹å" name="Activate"/> + <menu_item_call label="è±é" name="Leave"/> +</menu> diff --git a/indra/newview/skins/default/xui/ja/menu_people_nearby.xml b/indra/newview/skins/default/xui/ja/menu_people_nearby.xml index a577523754..2c8a346d1a 100644 --- a/indra/newview/skins/default/xui/ja/menu_people_nearby.xml +++ b/indra/newview/skins/default/xui/ja/menu_people_nearby.xml @@ -7,4 +7,5 @@ <menu_item_call label="å
±æ" name="Share"/> <menu_item_call label="æ¯æã" name="Pay"/> <menu_item_check label="ãããã¯ã»ãããã¯è§£é€" name="Block/Unblock"/> + <menu_item_call label="ãã¬ããŒããéã" name="teleport"/> </context_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_profile_overflow.xml b/indra/newview/skins/default/xui/ja/menu_profile_overflow.xml index a34086bdbf..bb93990efe 100644 --- a/indra/newview/skins/default/xui/ja/menu_profile_overflow.xml +++ b/indra/newview/skins/default/xui/ja/menu_profile_overflow.xml @@ -2,4 +2,8 @@ <toggleable_menu name="profile_overflow_menu"> <menu_item_call label="æ¯æã" name="pay"/> <menu_item_call label="å
±æ" name="share"/> + <menu_item_call label="è¿œæŸ" name="kick"/> + <menu_item_call label="ããªãŒãº" name="freeze"/> + <menu_item_call label="ããªãŒãºè§£é€" name="unfreeze"/> + <menu_item_call label="CSR" name="csr"/> </toggleable_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml index fc0a5592dd..db8583ca15 100644 --- a/indra/newview/skins/default/xui/ja/menu_viewer.xml +++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml @@ -9,7 +9,7 @@ <menu_item_call label="ã〠ãããã£ãŒã«" name="Profile"/> <menu_item_call label="ã〠容姿" name="Appearance"/> <menu_item_check label="ã〠æã¡ç©" name="Inventory"/> - <menu_item_call label="ãµã€ããã¬ã€ã§æã¡ç©ã衚瀺" name="ShowSidetrayInventory"/> + <menu_item_call label="æã¡ç©ããµã€ããã¬ã€ã«è¡šç€º" name="ShowSidetrayInventory"/> <menu_item_call label="ã〠ãžã§ã¹ãã£ãŒ" name="Gestures"/> <menu label="ã〠ãã°ã€ã³ç¶æ
" name="Status"> <menu_item_call label="äžæéåžäž" name="Set Away"/> @@ -25,36 +25,30 @@ <menu_item_check label="è¿ãã®ãã£ãã" name="Nearby Chat"/> <menu_item_call label="è¿ãã«ãã人" name="Active Speakers"/> <menu_item_check label="è¿ãã®ã¡ãã£ã¢" name="Nearby Media"/> - <menu_item_check label="ïŒã¬ã¬ã·ãŒïŒ ã³ãã¥ãã±ãŒã·ã§ã³" name="Instant Message"/> - <menu_item_call label="ïŒäžæïŒã¡ãã£ã¢ãªã¢ã³ã³" name="Preferences"/> </menu> <menu label="äžç" name="World"> - <menu_item_check label="移å" name="Movement Controls"/> - <menu_item_check label="èŠç" name="Camera Controls"/> - <menu_item_call label="åå°ã«ã€ããŠ" name="About Land"/> - <menu_item_call label="å°å / äžåç£" name="Region/Estate"/> - <menu_item_call label="åå°ã®è³Œå
¥" name="Buy Land"/> - <menu_item_call label="èªåã®åå°" name="My Land"/> - <menu label="衚瀺" name="Land"> - <menu_item_check label="ç«å
¥çŠæ¢ã©ã€ã³" name="Ban Lines"/> - <menu_item_check label="ããŒã³ã³ïŒæšèïŒ" name="beacons"/> - <menu_item_check label="æ·å°å¢çç·" name="Property Lines"/> - <menu_item_check label="åå°ææè
" name="Land Owners"/> - </menu> - <menu label="ã©ã³ãããŒã¯" name="Landmarks"> - <menu_item_call label="ããã®ã©ã³ãããŒã¯ãäœæ" name="Create Landmark Here"/> - <menu_item_call label="çŸåšå°ãããŒã ã«èšå®" name="Set Home to Here"/> - </menu> - <menu_item_call label="ããŒã " name="Teleport Home"/> <menu_item_check label="ããããã" name="Mini-Map"/> <menu_item_check label="äžçå°å³" name="World Map"/> <menu_item_call label="ã¹ãããã·ã§ãã" name="Take Snapshot"/> + <menu_item_call label="çŸåšå°ãã©ã³ãããŒã¯" name="Create Landmark Here"/> + <menu label="å Žæã®ãããã£ãŒã«" name="Land"> + <menu_item_call label="åå°æ
å ±" name="About Land"/> + <menu_item_call label="å°å / äžåç£" name="Region/Estate"/> + </menu> + <menu_item_call label="ãã®åå°ã賌å
¥" name="Buy Land"/> + <menu_item_call label="èªåã®åå°" name="My Land"/> + <menu label="衚瀺" name="LandShow"> + <menu_item_check label="移åã³ã³ãããŒã«" name="Movement Controls"/> + <menu_item_check label="ã³ã³ãããŒã«ã衚瀺" name="Camera Controls"/> + </menu> + <menu_item_call label="ããŒã ã«ãã¬ããŒã" name="Teleport Home"/> + <menu_item_call label="çŸåšå°ãããŒã ã«èšå®" name="Set Home to Here"/> <menu label="倪éœ" name="Environment Settings"> <menu_item_call label="æ¥ã®åº" name="Sunrise"/> <menu_item_call label="æ£å" name="Noon"/> <menu_item_call label="æ¥æ²¡" name="Sunset"/> <menu_item_call label="æ·±å€" name="Midnight"/> - <menu_item_call label="ãšã¹ããŒãã¿ã€ã ã䜿çš" name="Revert to Region Default"/> + <menu_item_call label="ãšã¹ããŒãã¿ã€ã " name="Revert to Region Default"/> <menu_item_call label="ç°å¢ç·šé" name="Environment Editor"/> </menu> </menu> @@ -125,21 +119,20 @@ </menu> <menu label="ãã«ã" name="Help"> <menu_item_call label="[SECOND_LIFE] ãã«ã" name="Second Life Help"/> - <menu_item_call label="ãã¥ãŒããªã¢ã«" name="Tutorial"/> <menu_item_call label="å«ããããå ±å" name="Report Abuse"/> + <menu_item_call label="ãã°å ±å" name="Report Bug"/> <menu_item_call label="[APP_NAME] ã«ã€ããŠ" name="About Second Life"/> </menu> <menu label="ã¢ããã³ã¹" name="Advanced"> - <menu_item_check label="30åçµé㧠AFK ã«èšå®" name="Go Away/AFK When Idle"/> <menu_item_call label="ç§ã®ã¢ãã¡ãŒã·ã§ã³ãåæ¢ãã" name="Stop Animating My Avatar"/> <menu_item_call label="ãã¯ã¹ãã£ã®ãªããŒã¯" name="Rebake Texture"/> <menu_item_call label="UI ã®ãµã€ãºãããã©ã«ãã«èšå®ãã" name="Set UI Size to Default"/> + <menu_item_call label="ãŠã£ã³ããŠã®ãµã€ãºã®èšå®ïŒ" name="Set Window Size..."/> <menu_item_check label="é ãã®ãªããžã§ã¯ããéžæããªã" name="Limit Select Distance"/> <menu_item_check label="ã«ã¡ã©ã®è·é¢ç§»åãå¶éããªã" name="Disable Camera Distance"/> <menu_item_check label="é«è§£å床ã¹ãããã·ã§ãã" name="HighResSnapshot"/> <menu_item_check label="ã·ã£ãã¿ãŒé³ãšã¢ãã¡ãŒã·ã§ã³ãªãã§ã¹ãããã·ã§ããããã£ã¹ã¯ã«ä¿å" name="QuietSnapshotsToDisk"/> <menu_item_check label="å§çž®ããŠã¹ãããã·ã§ããããã£ã¹ã¯ã«ä¿åãã" name="CompressSnapshotsToDisk"/> - <menu_item_call label="å¥åã§ãã¯ã¹ãã£ãä¿å" name="Save Texture As"/> <menu label="ããã©ãŒãã³ã¹ããŒã«" name="Performance Tools"> <menu_item_call label="ã©ã°èšæž¬åš" name="Lag Meter"/> <menu_item_check label="çµ±èšããŒ" name="Statistics Bar"/> @@ -333,7 +326,6 @@ <menu_item_call label="XML ã§ä¿å" name="Save to XML"/> <menu_item_check label="XUI ããŒã ã衚瀺" name="Show XUI Names"/> <menu_item_call label="ãã¹ãçš IM ãéä¿¡" name="Send Test IMs"/> - <menu_item_call label="ã€ã³ã¹ãã¯ã¿ãŒãã¹ã" name="Test Inspectors"/> </menu> <menu label="ã¢ãã¿ãŒ" name="Character"> <menu label="ããŒã¯ããã¯ã¹ãã£ãååŸ" name="Grab Baked Texture"> @@ -366,6 +358,7 @@ <menu_item_call label="ã¢ãã¿ãŒãã¯ã¹ãã£ããããã°" name="Debug Avatar Textures"/> <menu_item_call label="ããŒã«ã«ãã¯ã¹ãã£ããã³ã" name="Dump Local Textures"/> </menu> + <menu_item_check label="HTTP Texture" name="HTTP Textures"/> <menu_item_call label="å§çž®ç»å" name="Compress Images"/> <menu_item_check label="Output Debug Minidump" name="Output Debug Minidump"/> <menu_item_check label="次åã®èµ·åæã«ã³ã³ãœãŒã«ãŠã£ã³ããŠã衚瀺" name="Console Window"/> @@ -410,7 +403,6 @@ <menu_item_call label="ã¿ãã¥" name="Tattoo"/> <menu_item_call label="ãã¹ãŠã®è¡£é¡" name="All Clothes"/> </menu> - <menu_item_check label="ããŒã«ããŒã衚瀺" name="Show Toolbar"/> <menu label="ãã«ã" name="Help"> <menu_item_call label="ãªã³ãã³å
¬åŒããã°" name="Official Linden Blog"/> <menu_item_call label="ã¹ã¯ãªããããŒã¿ã«" name="Scripting Portal"/> diff --git a/indra/newview/skins/default/xui/ja/mime_types_linux.xml b/indra/newview/skins/default/xui/ja/mime_types_linux.xml new file mode 100644 index 0000000000..0ec1030113 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/mime_types_linux.xml @@ -0,0 +1,217 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<mimetypes name="default"> + <widgetset name="web"> + <label name="web_label"> + Web ã³ã³ãã³ã + </label> + <tooltip name="web_tooltip"> + ãã®ãã±ãŒã·ã§ã³ã«ã¯ Web ã³ã³ãã³ããå«ãŸããŠããŸã + </tooltip> + <playtip name="web_playtip"> + Web ã³ã³ãã³ãã衚瀺ãã + </playtip> + </widgetset> + <widgetset name="movie"> + <label name="movie_label"> + ã ãŒã㌠+ </label> + <tooltip name="movie_tooltip"> + ããã«ã¯ã ãŒããŒããããŸã + </tooltip> + <playtip name="movie_playtip"> + ã ãŒããŒãåçãã + </playtip> + </widgetset> + <widgetset name="image"> + <label name="image_label"> + ç»å + </label> + <tooltip name="image_tooltip"> + ãã®ãã±ãŒã·ã§ã³ã«ã¯ç»åããããŸã + </tooltip> + <playtip name="image_playtip"> + ãã®ãã±ãŒã·ã§ã³ã®ç»åã衚瀺ãã + </playtip> + </widgetset> + <widgetset name="audio"> + <label name="audio_label"> + ãªãŒãã£ãª + </label> + <tooltip name="audio_tooltip"> + ãã®ãã±ãŒã·ã§ã³ã«ã¯ãªãŒãã£ãªããããŸã + </tooltip> + <playtip name="audio_playtip"> + ãã®ãã±ãŒã·ã§ã³ã®ãªãŒãã£ãªãåçãã + </playtip> + </widgetset> + <scheme name="rtsp"> + <label name="rtsp_label"> + ãªã¢ã«ã¿ã€ã ã»ã¹ããªãŒãã³ã° + </label> + </scheme> + <mimetype name="blank"> + <label name="blank_label"> + - ãªã - + </label> + </mimetype> + <mimetype name="none/none"> + <label name="none/none_label"> + - ãªã - + </label> + </mimetype> + <mimetype name="audio/*"> + <label name="audio2_label"> + ãªãŒãã£ãª + </label> + </mimetype> + <mimetype name="video/*"> + <label name="video2_label"> + ãã㪠+ </label> + </mimetype> + <mimetype name="image/*"> + <label name="image2_label"> + ç»å + </label> + </mimetype> + <mimetype name="video/vnd.secondlife.qt.legacy"> + <label name="vnd.secondlife.qt.legacy_label"> + ã ãŒããŒïŒQuickTimeïŒ + </label> + </mimetype> + <mimetype name="application/javascript"> + <label name="application/javascript_label"> + Javascript + </label> + </mimetype> + <mimetype name="application/ogg"> + <label name="application/ogg_label"> + Ogg ãªãŒãã£ãªã»ãã㪠+ </label> + </mimetype> + <mimetype name="application/pdf"> + <label name="application/pdf_label"> + PDF ããã¥ã¡ã³ã + </label> + </mimetype> + <mimetype name="application/postscript"> + <label name="application/postscript_label"> + Postscript ããã¥ã¡ã³ã + </label> + </mimetype> + <mimetype name="application/rtf"> + <label name="application/rtf_label"> + ãªããããã¹ãïŒRTFïŒ + </label> + </mimetype> + <mimetype name="application/smil"> + <label name="application/smil_label"> + Synchronized Multimedia Integration Language ïŒSMILïŒ + </label> + </mimetype> + <mimetype name="application/xhtml+xml"> + <label name="application/xhtml+xml_label"> + Web ããŒãžïŒXHTMLïŒ + </label> + </mimetype> + <mimetype name="application/x-director"> + <label name="application/x-director_label"> + ãã¯ãã¡ãã£ã¢ãã£ã¬ã¯ã¿ãŒ + </label> + </mimetype> + <mimetype name="audio/mid"> + <label name="audio/mid_label"> + ãªãŒãã£ãªïŒMIDIïŒ + </label> + </mimetype> + <mimetype name="audio/mpeg"> + <label name="audio/mpeg_label"> + ãªãŒãã£ãªïŒMP3ïŒ + </label> + </mimetype> + <mimetype name="audio/x-aiff"> + <label name="audio/x-aiff_label"> + ãªãŒãã£ãªïŒAIFFïŒ + </label> + </mimetype> + <mimetype name="audio/x-wav"> + <label name="audio/x-wav_label"> + ãªãŒãã£ãªïŒWAVïŒ + </label> + </mimetype> + <mimetype name="image/bmp"> + <label name="image/bmp_label"> + ç»åïŒBMPïŒ + </label> + </mimetype> + <mimetype name="image/gif"> + <label name="image/gif_label"> + ç»åïŒGIFïŒ + </label> + </mimetype> + <mimetype name="image/jpeg"> + <label name="image/jpeg_label"> + ç»åïŒJPEGïŒ + </label> + </mimetype> + <mimetype name="image/png"> + <label name="image/png_label"> + ç»åïŒPNGïŒ + </label> + </mimetype> + <mimetype name="image/svg+xml"> + <label name="image/svg+xml_label"> + ç»åïŒSVGïŒ + </label> + </mimetype> + <mimetype name="image/tiff"> + <label name="image/tiff_label"> + ç»åïŒTIFFïŒ + </label> + </mimetype> + <mimetype name="text/html"> + <label name="text/html_label"> + Web ããŒãž + </label> + </mimetype> + <mimetype name="text/plain"> + <label name="text/plain_label"> + ããã¹ã + </label> + </mimetype> + <mimetype name="text/xml"> + <label name="text/xml_label"> + XML + </label> + </mimetype> + <mimetype name="video/mpeg"> + <label name="video/mpeg_label"> + ã ãŒããŒïŒMPEGïŒ + </label> + </mimetype> + <mimetype name="video/mp4"> + <label name="video/mp4_label"> + ã ãŒããŒïŒMP4ïŒ + </label> + </mimetype> + <mimetype name="video/quicktime"> + <label name="video/quicktime_label"> + ã ãŒããŒïŒQuickTimeïŒ + </label> + </mimetype> + <mimetype name="video/x-ms-asf"> + <label name="video/x-ms-asf_label"> + ã ãŒããŒïŒWindows Media ASF) + </label> + </mimetype> + <mimetype name="video/x-ms-wmv"> + <label name="video/x-ms-wmv_label"> + ã ãŒããŒïŒWindows Media WMV) + </label> + </mimetype> + <mimetype name="video/x-msvideo"> + <label name="video/x-msvideo_label"> + ã ãŒããŒïŒAVIïŒ + </label> + </mimetype> +</mimetypes> diff --git a/indra/newview/skins/default/xui/ja/mime_types_mac.xml b/indra/newview/skins/default/xui/ja/mime_types_mac.xml new file mode 100644 index 0000000000..0ec1030113 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/mime_types_mac.xml @@ -0,0 +1,217 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<mimetypes name="default"> + <widgetset name="web"> + <label name="web_label"> + Web ã³ã³ãã³ã + </label> + <tooltip name="web_tooltip"> + ãã®ãã±ãŒã·ã§ã³ã«ã¯ Web ã³ã³ãã³ããå«ãŸããŠããŸã + </tooltip> + <playtip name="web_playtip"> + Web ã³ã³ãã³ãã衚瀺ãã + </playtip> + </widgetset> + <widgetset name="movie"> + <label name="movie_label"> + ã ãŒã㌠+ </label> + <tooltip name="movie_tooltip"> + ããã«ã¯ã ãŒããŒããããŸã + </tooltip> + <playtip name="movie_playtip"> + ã ãŒããŒãåçãã + </playtip> + </widgetset> + <widgetset name="image"> + <label name="image_label"> + ç»å + </label> + <tooltip name="image_tooltip"> + ãã®ãã±ãŒã·ã§ã³ã«ã¯ç»åããããŸã + </tooltip> + <playtip name="image_playtip"> + ãã®ãã±ãŒã·ã§ã³ã®ç»åã衚瀺ãã + </playtip> + </widgetset> + <widgetset name="audio"> + <label name="audio_label"> + ãªãŒãã£ãª + </label> + <tooltip name="audio_tooltip"> + ãã®ãã±ãŒã·ã§ã³ã«ã¯ãªãŒãã£ãªããããŸã + </tooltip> + <playtip name="audio_playtip"> + ãã®ãã±ãŒã·ã§ã³ã®ãªãŒãã£ãªãåçãã + </playtip> + </widgetset> + <scheme name="rtsp"> + <label name="rtsp_label"> + ãªã¢ã«ã¿ã€ã ã»ã¹ããªãŒãã³ã° + </label> + </scheme> + <mimetype name="blank"> + <label name="blank_label"> + - ãªã - + </label> + </mimetype> + <mimetype name="none/none"> + <label name="none/none_label"> + - ãªã - + </label> + </mimetype> + <mimetype name="audio/*"> + <label name="audio2_label"> + ãªãŒãã£ãª + </label> + </mimetype> + <mimetype name="video/*"> + <label name="video2_label"> + ãã㪠+ </label> + </mimetype> + <mimetype name="image/*"> + <label name="image2_label"> + ç»å + </label> + </mimetype> + <mimetype name="video/vnd.secondlife.qt.legacy"> + <label name="vnd.secondlife.qt.legacy_label"> + ã ãŒããŒïŒQuickTimeïŒ + </label> + </mimetype> + <mimetype name="application/javascript"> + <label name="application/javascript_label"> + Javascript + </label> + </mimetype> + <mimetype name="application/ogg"> + <label name="application/ogg_label"> + Ogg ãªãŒãã£ãªã»ãã㪠+ </label> + </mimetype> + <mimetype name="application/pdf"> + <label name="application/pdf_label"> + PDF ããã¥ã¡ã³ã + </label> + </mimetype> + <mimetype name="application/postscript"> + <label name="application/postscript_label"> + Postscript ããã¥ã¡ã³ã + </label> + </mimetype> + <mimetype name="application/rtf"> + <label name="application/rtf_label"> + ãªããããã¹ãïŒRTFïŒ + </label> + </mimetype> + <mimetype name="application/smil"> + <label name="application/smil_label"> + Synchronized Multimedia Integration Language ïŒSMILïŒ + </label> + </mimetype> + <mimetype name="application/xhtml+xml"> + <label name="application/xhtml+xml_label"> + Web ããŒãžïŒXHTMLïŒ + </label> + </mimetype> + <mimetype name="application/x-director"> + <label name="application/x-director_label"> + ãã¯ãã¡ãã£ã¢ãã£ã¬ã¯ã¿ãŒ + </label> + </mimetype> + <mimetype name="audio/mid"> + <label name="audio/mid_label"> + ãªãŒãã£ãªïŒMIDIïŒ + </label> + </mimetype> + <mimetype name="audio/mpeg"> + <label name="audio/mpeg_label"> + ãªãŒãã£ãªïŒMP3ïŒ + </label> + </mimetype> + <mimetype name="audio/x-aiff"> + <label name="audio/x-aiff_label"> + ãªãŒãã£ãªïŒAIFFïŒ + </label> + </mimetype> + <mimetype name="audio/x-wav"> + <label name="audio/x-wav_label"> + ãªãŒãã£ãªïŒWAVïŒ + </label> + </mimetype> + <mimetype name="image/bmp"> + <label name="image/bmp_label"> + ç»åïŒBMPïŒ + </label> + </mimetype> + <mimetype name="image/gif"> + <label name="image/gif_label"> + ç»åïŒGIFïŒ + </label> + </mimetype> + <mimetype name="image/jpeg"> + <label name="image/jpeg_label"> + ç»åïŒJPEGïŒ + </label> + </mimetype> + <mimetype name="image/png"> + <label name="image/png_label"> + ç»åïŒPNGïŒ + </label> + </mimetype> + <mimetype name="image/svg+xml"> + <label name="image/svg+xml_label"> + ç»åïŒSVGïŒ + </label> + </mimetype> + <mimetype name="image/tiff"> + <label name="image/tiff_label"> + ç»åïŒTIFFïŒ + </label> + </mimetype> + <mimetype name="text/html"> + <label name="text/html_label"> + Web ããŒãž + </label> + </mimetype> + <mimetype name="text/plain"> + <label name="text/plain_label"> + ããã¹ã + </label> + </mimetype> + <mimetype name="text/xml"> + <label name="text/xml_label"> + XML + </label> + </mimetype> + <mimetype name="video/mpeg"> + <label name="video/mpeg_label"> + ã ãŒããŒïŒMPEGïŒ + </label> + </mimetype> + <mimetype name="video/mp4"> + <label name="video/mp4_label"> + ã ãŒããŒïŒMP4ïŒ + </label> + </mimetype> + <mimetype name="video/quicktime"> + <label name="video/quicktime_label"> + ã ãŒããŒïŒQuickTimeïŒ + </label> + </mimetype> + <mimetype name="video/x-ms-asf"> + <label name="video/x-ms-asf_label"> + ã ãŒããŒïŒWindows Media ASF) + </label> + </mimetype> + <mimetype name="video/x-ms-wmv"> + <label name="video/x-ms-wmv_label"> + ã ãŒããŒïŒWindows Media WMV) + </label> + </mimetype> + <mimetype name="video/x-msvideo"> + <label name="video/x-msvideo_label"> + ã ãŒããŒïŒAVIïŒ + </label> + </mimetype> +</mimetypes> diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml index 33ccc579a7..b502fb2e6e 100644 --- a/indra/newview/skins/default/xui/ja/notifications.xml +++ b/indra/newview/skins/default/xui/ja/notifications.xml @@ -32,10 +32,10 @@ <button name="No" text="$notext"/> </form> </template> - <notification functor="GenericAcknowledge" label="äžæãªèŠåã¡ãã»ãŒãž" name="MissingAlert"> - ããªãã® [APP_NAME] ã®ããŒãžã§ã³ã§ã¯ä»åãåã£ãèŠåã¡ãã»ãŒãžã衚瀺ããããšãã§ããŸããã ææ°ãã¥ãŒã¯ãã€ã³ã¹ããŒã«ãããŠãããã確èªãã ããã + <notification functor="GenericAcknowledge" label="äžæã®éç¥ã¡ãã»ãŒãž" name="MissingAlert"> + ããªãã® [APP_NAME] ã®ããŒãžã§ã³ã§ã¯ä»åãåã£ãéç¥ã¡ãã»ãŒãžã衚瀺ããããšãã§ããŸããã ææ°ãã¥ãŒã¯ãã€ã³ã¹ããŒã«ãããŠãããã確èªãã ããã -ãšã©ãŒè©³çŽ°ïŒ ã[_NAME]ããšããèŠå㯠notifications.xml ã«ãããŸããã§ããã +ãšã©ãŒè©³çŽ°ïŒ ã[_NAME]ããšããéç¥ã¯ notifications.xml ã«ãããŸããã§ããã <usetemplate name="okbutton" yestext="OK"/> </notification> <notification name="FloaterNotFound"> @@ -93,15 +93,13 @@ <usetemplate canceltext="åãæ¶ã" name="yesnocancelbuttons" notext="ä¿åããªã" yestext="ãã¹ãŠä¿å"/> </notification> <notification name="GrantModifyRights"> - ä»ã®äœäººã«å€æŽæš©éãäžãããšããã®äººã¯ããªããææããŠãã -ãã¹ãŠã®ãªããžã§ã¯ããå€æŽãåé€ããŸãã¯ååŸããããšãã§ããããã«ãªããŸãããã®èš±å¯ãäžãããšãã¯çŽ°å¿ã®æ³šæãæã£ãŠãã ããã -[FIRST_NAME] [LAST_NAME]ã«å¯ŸããŠå€æŽæš©éãäžããŸããïŒ + ä»äººã«ä¿®æ£æš©éãäžãããšãæš©éãäžãããã人ã¯ããªããææããã€ã³ã¯ãŒã«ãã®ãªããžã§ã¯ããå€æŽãåé€ãæã¡åž°ãããšãã§ããŸãã ãã®æš©éãäžããéã«ã¯ååã«æ³šæããŠãã ããã +[FIRST_NAME] [LAST_NAME] ã«ä¿®æ£æš©éãäžããŸããïŒ <usetemplate name="okcancelbuttons" notext="ããã" yestext="ã¯ã"/> </notification> <notification name="GrantModifyRightsMultiple"> - å€æŽæš©éãäžãããšããã®äººã¯ããªããäœæããå
šãŠã®ãªããžã§ã¯ããå€æŽããããšãã§ããŸãã -ãã®èš±å¯ãäžãããšãã«ã¯çŽ°å¿ã®æ³šæãæã£ãŠãã ããã -éžæããäœäººã«å€æŽæš©éãäžããŸããïŒ + ä»äººã«ä¿®æ£æš©éãäžãããšãæš©éãäžãããã人ã¯ããªããææããã€ã³ã¯ãŒã«ãã®ãªããžã§ã¯ããå€æŽããããšãã§ããŸãã ãã®æš©éãäžããéã«ã¯ååã«æ³šæããŠãã ããã +éžæããäœäººã«ä¿®æ£æš©éãäžããŸããïŒ <usetemplate name="okcancelbuttons" notext="ããã" yestext="ã¯ã"/> </notification> <notification name="RevokeModifyRights"> @@ -159,6 +157,11 @@ ãã®èœåã[ROLE_NAME]ã«å²ãåœãŠãŸããïŒ <usetemplate name="okcancelbuttons" notext="ããã" yestext="ã¯ã"/> </notification> + <notification name="AttachmentDrop"> + ã¢ã¿ããã¡ã³ããäžã«çœ®ãããšããŠããŸãã +ç¶ããŸããïŒ + <usetemplate ignoretext="ã¢ã¿ããã¡ã³ããäžã«èœãšãåã«ç¢ºèªãã" name="okcancelignore" notext="ããã" yestext="ã¯ã"/> + </notification> <notification name="ClickUnimplemented"> ç³ãèš³ãããŸãããããŸã æªå®è£
ã§ãã </notification> @@ -267,16 +270,10 @@ L$ãäžè¶³ããŠããã®ã§ãã®ã°ã«ãŒãã«åå ããããšãã§ã㟠</notification> <notification name="MultipleFacesSelected"> çŸåšè€æ°ã®é¢ãéžæãããŠããŸãã -ãã®ãŸãŸç¶ããå Žåãã¡ãã£ã¢ã®å¥ã
ã®æ®µéããªããžã§ã¯ãã®è€æ°ã®é¢ã«èšå®ãããŸãã -ã¡ãã£ã¢ã 1 ã€ã®é¢ã ãã«åãä»ããã«ã¯ãããã¯ã¹ãã£ãéžæããéžã³ããªããžã§ã¯ãã®åžæããé¢ãã¯ãªãã¯ããããããè¿œå ããã¯ãªãã¯ããŠãã ããã +ãã®ãŸãŸç¶ããå Žåãã¡ãã£ã¢ã®å¥ã
ã®ã€ã³ã¹ã¿ã³ã¹ããªããžã§ã¯ãã®è€æ°ã®é¢ã«èšå®ãããŸãã +ã¡ãã£ã¢ã 1 ã€ã®é¢ã ãã«åãä»ããã«ã¯ããé¢ãéžæããéžãã§ãªããžã§ã¯ãã®åžæããé¢ãã¯ãªãã¯ããããããè¿œå ããã¯ãªãã¯ããŠãã ããã <usetemplate ignoretext="ã¡ãã£ã¢ã¯éžæããè€æ°ã®é¢ã«ã»ãããããŸãã" name="okcancelignore" notext="ãã£ã³ã»ã«" yestext="OK"/> </notification> - <notification name="WhiteListInvalidatesHomeUrl"> - ãã®å
¥åããã¯ã€ããªã¹ãã«è¿œå ãããšããã®ã¡ãã£ã¢åãã«ç¹å®ãã -ããŒã URL ãç¡å¹ãšããŸãã ããªãã«ã¯ãããå®è¡ããèš±å¯ããªãã®ã§ã -å
¥åã¯ãã¯ã€ããªã¹ãã«ã¯è¿œå ãããŸããã - <usetemplate name="okbutton" yestext="Ok"/> - </notification> <notification name="MustBeInParcel"> çå°ç¹ãèšå®ããã«ã¯ããã®åºç»ã®å
åŽã« ç«ã£ãŠãã ããã @@ -368,14 +365,6 @@ L$ãäžè¶³ããŠããã®ã§ãã®ã°ã«ãŒãã«åå ããããšãã§ã㟠<notification name="SelectHistoryItemToView"> 衚瀺ããå±¥æŽã¢ã€ãã ãéžæããŠãã ããã </notification> - <notification name="ResetShowNextTimeDialogs"> - ãããã®ãããã¢ããå
šãŠãå床æå¹åããŸããïŒïŒä»¥åãä»åŸã¯è¡šç€ºããªãããšæå®ããŠããŸãïŒ - <usetemplate name="okcancelbuttons" notext="åãæ¶ã" yestext="OK"/> - </notification> - <notification name="SkipShowNextTimeDialogs"> - ã¹ãããå¯èœãªãããã¢ããå
šãŠãç¡å¹åããŸããïŒ - <usetemplate name="okcancelbuttons" notext="ãã£ã³ã»ã«" yestext="OK"/> - </notification> <notification name="CacheWillClear"> [APP_NAME] ãåèµ·ååŸã«ãã£ãã·ã¥ãã¯ãªã¢ãããŸãã </notification> @@ -648,6 +637,10 @@ L$ãäžè¶³ããŠããã®ã§ãã®ã°ã«ãŒãã«åå ããããšãã§ã㟠<notification name="LandmarkCreated"> ã [LANDMARK_NAME] ããã [FOLDER_NAME] ããã©ã«ãã«è¿œå ããŸããã </notification> + <notification name="LandmarkAlreadyExists"> + ãã®äœçœ®ã®ã©ã³ãããŒã¯ãæ¢ã«æã£ãŠããŸãã + <usetemplate name="okbutton" yestext="OK"/> + </notification> <notification name="CannotCreateLandmarkNotOwner"> åå°ã®ææè
ãèš±å¯ããŠããªãããã ã©ã³ãããŒã¯ãäœæããããšã¯ã§ããŸããã @@ -753,10 +746,8 @@ L$ãäžè¶³ããŠããã®ã§ãã®ã°ã«ãŒãã«åå ããããšãã§ã㟠éžæããé¢ç©ãå°ããããŠãããäžåºŠè©ŠããŠãã ããã </notification> <notification name="ForceOwnerAuctionWarning"> - ãã®åºç»ã¯ãªãŒã¯ã·ã§ã³ã«åºåãããŠããŸãã -åºç»ã®æææš©ãååŸãããšãªãŒã¯ã·ã§ã³ãç¡å¹ã«ãªãã -å
¥æãéå§ããŠãããäžæºã«æãäœäººãåºãŠãããããããŸããã -æææš©ãååŸããŸããïŒ + ãã®åºç»ã¯ãªãŒã¯ã·ã§ã³ã«åºãããŠããŸãã æææš©ãå€æŽãããšãªãŒã¯ã·ã§ã³ã¯ãã£ã³ã»ã«ãšãªããæ¢ã«ãªãŒã¯ã·ã§ã³ã«åå ããŠããäœäººãããã°ãã®äººã«è¿·æããããŠããŸããŸãã +æææš©ãå€æŽããŸããïŒ <usetemplate name="okcancelbuttons" notext="åãæ¶ã" yestext="OK"/> </notification> <notification name="CannotContentifyNothingSelected"> @@ -805,11 +796,11 @@ L$ãäžè¶³ããŠããã®ã§ãã®ã°ã«ãŒãã«åå ããããšãã§ã㟠ãããã1ã€ã®åºç»ãéžæããŠãã ããã </notification> <notification name="ParcelCanPlayMedia"> - ããã§ã¯ã¹ããªãŒãã³ã°ã»ã¡ãã£ã¢åçãå¯èœã§ãã -ã¡ãã£ã¢ã®ã¹ããªãŒãã³ã°ã«ã¯ãé«éãªã€ã³ã¿ãŒãããæ¥ç¶ç°å¢ãå¿
èŠã§ãã + ãã®å Žæã§ã¯ãã¹ããªãŒãã³ã°ã¡ãã£ã¢ã®åçãå¯èœã§ãã +ã¹ããªãŒãã³ã°ã¡ãã£ã¢ã«ã¯ãé«éã€ã³ã¿ãŒãããæ¥ç¶ãèŠããŸãã -å©çšå¯èœã«ãªã£ããåçããŸããïŒ -ïŒãã®ãªãã·ã§ã³ã¯ããç°å¢èšå®ãïŒãé³å£°ãšãããªãã§åŸããã§ãå€æŽã§ããŸãïŒ +å©çšå¯èœãªãšãã«ã¹ããªãŒãã³ã°ã¡ãã£ã¢ãåçããŸããïŒ +ïŒãã®ãªãã·ã§ã³ã¯ããç°å¢èšå®ã > ããã©ã€ãã·ãŒãã§ããšããã§ãå€æŽã§ããŸããïŒ <usetemplate name="okcancelbuttons" notext="ç¡å¹å" yestext="ã¡ãã£ã¢ãåç"/> </notification> <notification name="CannotDeedLandWaitingForServer"> @@ -1394,6 +1385,10 @@ F1ããŒãæŒããŠãã ããã [INVITE] <usetemplate name="okcancelbuttons" notext="èŸé" yestext="åå "/> </notification> + <notification name="JoinedTooManyGroups"> + å å
¥ã§ããã°ã«ãŒãã®æ倧éã«éããŸããã æ°ããã°ã«ãŒãã«åå ããŸãã¯äœæããåã«ãã©ããã°ã«ãŒãããæããŠãã ããã + <usetemplate name="okbutton" yestext="OK"/> + </notification> <notification name="KickUser"> ã©ããªã¡ãã»ãŒãžã衚瀺ããŠããã®ãŠãŒã¶ãŒãè¿œãåºããŸããïŒ <form name="form"> @@ -1641,11 +1636,11 @@ L$[AMOUNT]ã§ããã®ã¯ã©ã·ãã¡ã€ãåºåãä»ããå
¬éããŸããï <usetemplate name="okcancelbuttons" notext="åãæ¶ã" yestext="OK"/> </notification> <notification name="SetClassifiedMature"> - ãã®åºåã«Matureã³ã³ãã³ãã¯å«ãŸããŠããŸããïŒ + ãã®åºåã«ãæ§ãããã³ã³ãã³ãã¯å«ãŸããŠããŸããïŒ <usetemplate canceltext="ãã£ã³ã»ã«" name="yesnocancelbuttons" notext="ããã" yestext="ã¯ã"/> </notification> <notification name="SetGroupMature"> - ãã®åºåã«Matureã³ã³ãã³ãã¯å«ãŸããŠããŸããïŒ + ãã®ã°ã«ãŒãã«ãæ§ãããã³ã³ãã³ããå«ãŸããŠããŸããïŒ <usetemplate canceltext="ãã£ã³ã»ã«" name="yesnocancelbuttons" notext="ããã" yestext="ã¯ã"/> </notification> <notification label="åèµ·åã確èª" name="ConfirmRestart"> @@ -1663,8 +1658,10 @@ L$[AMOUNT]ã§ããã®ã¯ã©ã·ãã¡ã€ãåºåãä»ããå
¬éããŸããï </form> </notification> <notification label="å°åã®ã¬ãŒãã£ã³ã°åºåæå®å€æŽæžã¿" name="RegionMaturityChange"> - ãã®å°åã®ã¬ãŒãã£ã³ã°åºåæå®ãã¢ããããŒããããŸããã -ãã®å€æŽãå°å³ã«åæ ããããŸã§ã«ã¯ãã°ããæéãããããŸãã + ãã®ãªãŒãžã§ã³ã®ã¬ãŒãã£ã³ã°åºåãã¢ããããŒããããŸããã +å°å³ã«å€æŽãåæ ããããŸã§æ°åãããããšããããŸãã + +ã¢ãã«ãå°çšãªãŒãžã§ã³ã«å
¥ãã«ã¯ãäœäººã®ã¢ã«ãŠã³ãã幎霢確èªãæ¯ææ¹æ³ã®ããããã§ã確èªæžã¿ãã§ãªããã°ãªããŸããã </notification> <notification label="ãã€ã¹ããŒãžã§ã³ã®äžäžèŽ" name="VoiceVersionMismatch"> [APP_NAME] ã®ãã®ããŒãžã§ã³ã¯ããã®ãªãŒãžã§ã³ã«ããããã€ã¹ãã£ããã®äºææ§ããããŸããã ãã€ã¹ãã£ãããæ£åžžã«è¡ãããã«ã¯ã[APP_NAME] ã®ã¢ããããŒããå¿
èŠã§ãã @@ -1785,16 +1782,6 @@ L$[AMOUNT]ã§ããã®ã¯ã©ã·ãã¡ã€ãåºåãä»ããå
¬éããŸããï å ±åãããå«ãããã¯ãã¹ãŠèª¿æ»ã»è§£æ±ºãããŸãã 解決ããããã®ã¯ [http://secondlife.com/support/incidentreport.php Incident Report] ã§èŠãããšãã§ããŸãã </notification> - <notification name="HelpReportAbuseEmailEO"> - éèŠïŒ ãã®å ±å㯠Linden Lab ã«ã¯éä¿¡ããããçŸåšããªãããããªãŒãžã§ã³ã®ææè
ã«éä¿¡ãããŸãã - -äœäººã蚪åè
ãžã®ãµãŒãã¹ã®äžç°ãšããŠãçŸåšãããªãŒãžã§ã³ã®ææè
ã¯ããã®ãªãŒãžã§ã³å
ã®ãã¹ãŠã®å ±åãèªãåãåãã解決ããããèšå®ããŠããŸãã Linden Lab ã¯ããããéä¿¡ãããå ±åã®èª¿æ»ãè¡ããŸããã - -ãªãŒãžã§ã³ã®ææè
ã¯ããã®ãªãŒãžã§ã³ã®äžåç£çŽæ¬Ÿã«èšèŒãããããŒã«ã«ã«ãŒã«ã«åã£ãŠå ±åã«å¯Ÿå¿ããŸãã -ïŒãäžçãã¡ãã¥ãŒã®ãåå°æ
å ±ãã§çŽæ¬Ÿã確èªã§ããŸããïŒ - -ãã®å ±åãžã®è§£æ±ºçã¯ããã®ãªãŒãžã§ã³ã§ã®ã¿é©çšãããŸãã [SECOND_LIFE] ã®ãã®ä»ã®ãšãªã¢ã«ã¢ã¯ã»ã¹ããäœäººã«ã¯ããã®å ±åã®çµæã«ã¯åœ±é¿ããããŸããã [SECOND_LIFE] ãžã®ã¢ã¯ã»ã¹ãå¶éã§ããã®ã¯ãLinden Lab ã ãã§ãã - </notification> <notification name="HelpReportAbuseSelectCategory"> å«ãããå ±åã®ã«ããŽãªãéžæããŠãã ããã ã«ããŽãªãéžæããããšã«ãããå«ãããå ±åã®åŠçãä¿ç®¡ã«å€§å€åœ¹ç«ã¡ãŸãã @@ -2034,8 +2021,7 @@ WebããŒãžã«ããããªã³ã¯ãããšãä»äººããã®å Žæã«ç°¡åã«ã ãžã§ã¹ãã£ãŒã® [NAME] ãããŒã¿ããŒã¹ã«èŠã€ãããŸããã </notification> <notification name="UnableToLoadGesture"> - ãžã§ã¹ãã£ãŒ[NAME] ãèªã¿èŸŒãããšãã§ããŸããã -å床ãè©Šã¿ãŠãã ããã + [NAME] ãšãããžã§ã¹ãã£ãŒãèªã¿èŸŒãããšãã§ããŸããã§ããã </notification> <notification name="LandmarkMissing"> ããŒã¿ããŒã¹ã«ã©ã³ãããŒã¯ããããŸããã @@ -2139,7 +2125,7 @@ WebããŒãžã«ããããªã³ã¯ãããšãä»äººããã®å Žæã«ç°¡åã«ã ã³ãã¥ããã£ã¹ã¿ã³ããŒãã«æèšãããŠããã³ã³ãã³ãå¶éã«ãããããªãã®æ€çŽ¢èªã®äžéšãé€å€ãããŸããã </notification> <notification name="NoContentToSearch"> - å°ãªããšãã©ããäžã€ã³ã³ãã³ãã®çš®é¡ãéžæããŠæ€çŽ¢ãè¡ã£ãŠãã ãããïŒPG, Mature, AdultïŒ + å°ãªããšãã©ããäžã€ã³ã³ãã³ãã®çš®é¡ãéžæããŠæ€çŽ¢ãè¡ã£ãŠãã ãããïŒäžè¬ãæ§ãããã¢ãã«ãïŒ </notification> <notification name="GroupVote"> [NAME] ã¯æ祚ã®ç³è«ãããŠããŸãïŒ @@ -2152,6 +2138,9 @@ WebããŒãžã«ããããªã³ã¯ãããšãä»äººããã®å Žæã«ç°¡åã«ã <notification name="SystemMessage"> [MESSAGE] </notification> + <notification name="PaymentRecived"> + [MESSAGE] + </notification> <notification name="EventNotification"> ã€ãã³ãéç¥ïŒ @@ -2201,8 +2190,7 @@ WebããŒãžã«ããããªã³ã¯ãããšãä»äººããã®å Žæã«ç°¡åã«ã ãææãããªããžã§ã¯ãã¯ããªãŒããŒã®æã¡ç©ã«è¿åŽãããŸããã </notification> <notification name="OtherObjectsReturned2"> - éžæãããåå°ã®åºç»äžã«ããã -äœäººã®[NAME]ã®ææã ã£ããªããžã§ã¯ãã¯ãªãŒããŒã«è¿åŽãããŸããã + ã[NAME]ããšããååã®äœäººãææãããéžæããåºç»ã«ãããªããžã§ã¯ãã¯ãææè
ã«è¿åŽãããŸããã </notification> <notification name="GroupObjectsReturned"> éžæãããŠããåºç»äžã«ããã[GROUPNAME] ãšããã°ã«ãŒããšå
±æã ã£ããªããžã§ã¯ãã¯ããªãŒããŒã®æã¡ç©ã«è¿åŽãããŸããã @@ -2215,7 +2203,6 @@ WebããŒãžã«ããããªã³ã¯ãããšãä»äººããã®å Žæã«ç°¡åã«ã <notification name="ServerObjectMessage"> [NAME] ããã®ã¡ãã»ãŒãžïŒ [MSG] - <usetemplate name="okcancelbuttons" notext="OK" yestext="調ã¹ã"/> </notification> <notification name="NotSafe"> ãã®åå°ã§ã¯ãã¡ãŒãžãæå¹ã§ãã @@ -2327,8 +2314,8 @@ WebããŒãžã«ããããªã³ã¯ãããšãä»äººããã®å Žæã«ç°¡åã«ã æå¹ãªåºç»ãèŠã€ãããŸããã§ããã </notification> <notification name="ObjectGiveItem"> - [NAME_SLURL] ãææãã [OBJECTFROMNAME] ããããªãã« [OBJECTTYPE] ïŒ -[ITEM_SLURL] ãæž¡ããŸãã + [NAME_SLURL] ãææãã [OBJECTFROMNAME] ãšããååã®ãªããžã§ã¯ãããããªãã«ãã® [OBJECTTYPE] ãæž¡ããŸããïŒ +[ITEM_SLURL] <form name="form"> <button name="Keep" text="åãåã"/> <button name="Discard" text="ç Žæ£"/> @@ -2336,8 +2323,8 @@ WebããŒãžã«ããããªã³ã¯ãããšãä»äººããã®å Žæã«ç°¡åã«ã </form> </notification> <notification name="ObjectGiveItemUnknownUser"> - ïŒäžæã®äœäººïŒãææãã [OBJECTFROMNAME] ããããªãã« [OBJECTTYPE] ïŒ -[ITEM_SLURL] ãæž¡ããŸãã + ïŒäžæã®äœäººïŒãææãã [OBJECTFROMNAME] ãšããååã®ãªããžã§ã¯ãããããªãã«ãã® [OBJECTTYPE] ãæž¡ããŸããïŒ +[ITEM_SLURL] <form name="form"> <button name="Keep" text="åãåã"/> <button name="Discard" text="ç Žæ£"/> @@ -2345,12 +2332,12 @@ WebããŒãžã«ããããªã³ã¯ãããšãä»äººããã®å Žæã«ç°¡åã«ã </form> </notification> <notification name="UserGiveItem"> - [NAME_SLURL] ãããªãã« [OBJECTTYPE]ïŒ -[ITEM_SLURL] ãæž¡ããŸãã + [NAME_SLURL] ãããªãã«ãã® [OBJECTTYPE] ãæž¡ããŸããïŒ +[ITEM_SLURL] <form name="form"> - <button name="Keep" text="åãåã"/> <button name="Show" text="衚瀺"/> <button name="Discard" text="ç Žæ£"/> + <button name="Mute" text="ãããã¯"/> </form> </notification> <notification name="GodMessage"> @@ -2375,6 +2362,9 @@ WebããŒãžã«ããããªã³ã¯ãããšãä»äººããã®å Žæã«ç°¡åã«ã <button name="Cancel" text="åãæ¶ã"/> </form> </notification> + <notification name="TeleportOfferSent"> + [TO_NAME] ã«ãã¬ããŒããéããŸããã + </notification> <notification name="GotoURL"> [MESSAGE] [URL] @@ -2393,8 +2383,12 @@ WebããŒãžã«ããããªã³ã¯ãããšãä»äººããã®å Žæã«ç°¡åã«ã <form name="form"> <button name="Accept" text="åãå
¥ãã"/> <button name="Decline" text="èŸé"/> + <button name="Send IM" text="IMãéä¿¡"/> </form> </notification> + <notification name="FriendshipOffered"> + [TO_NAME] ã«ãã¬ã³ãç»é²ãç³ãåºãŸããã + </notification> <notification name="OfferFriendshipNoMessage"> [NAME]ã¯ã ãã¬ã³ãç»é²ãç³ã蟌ãã§ããŸãã @@ -2412,9 +2406,8 @@ WebããŒãžã«ããããªã³ã¯ãããšãä»äººããã®å Žæã«ç°¡åã«ã [NAME]ã¯ããã¬ã³ã ç»é²ãæããŸããã </notification> <notification name="OfferCallingCard"> - [FIRST] [LAST]ã -ããªãã«ã³ãŒãªã³ã°ã«ãŒããéã£ãŠããŸããã -ããã«ãããããªãã®æã¡ç©ã«ããã¯ããŒã¯ãè¿œå ããããã®äœäººã«ãã°ããIMããããšãã§ããŸãã + [FIRST] [LAST] ãã³ãŒãªã³ã°ã«ãŒããæž¡ãããšããŠããŸãã +ããªãã®æã¡ç©ã«ããã¯ããŒã¯ãè¿œå ããããã®äœäººã«çŽ æ©ã IM ãéãããšãã§ããŸãã <form name="form"> <button name="Accept" text="åãå
¥ãã"/> <button name="Decline" text="èŸé"/> @@ -2494,14 +2487,6 @@ WebããŒãžã«ããããªã³ã¯ãããšãä»äººããã®å Žæã«ç°¡åã«ã <button name="Block" text="ãããã¯"/> </form> </notification> - <notification name="FirstBalanceIncrease"> - L$ [AMOUNT] ãåãåããŸããã -ããªãã® L$ æ®é«ã¯ç»é¢å³äžã«è¡šç€ºãããŠããŸãã - </notification> - <notification name="FirstBalanceDecrease"> - L$ [AMOUNT] ãæ¯æããŸããã -ããªãã® L$ æ®é«ã¯ç»é¢å³äžã«è¡šç€ºãããŠããŸãã - </notification> <notification name="BuyLindenDollarSuccess"> ãæ¯æããããšãããããŸãã @@ -2509,58 +2494,17 @@ WebããŒãžã«ããããªã³ã¯ãããšãä»äººããã®å Žæã«ç°¡åã«ã [http://secondlife.com/account/ ãã€ã¢ã«ãŠã³ã] ã®ååŒå±¥æŽããŒãžã§ãæ¯æç¶æ³ã確èªã§ããŸãã </notification> - <notification name="FirstSit"> - çåžäžã§ãã -åšå²ãèŠãã«ã¯ç¢å°ããŒã AWSD ããŒã䜿ã£ãŠãã ããã -ç«ã€ãšãã«ã¯ãç«ã¡äžããããã¿ã³ãã¯ãªãã¯ããŠãã ããã - </notification> - <notification name="FirstMap"> - å°å³ãã¯ãªãã¯ã»ãã©ãã°ããŠåšå²ãèŠãŠãã ããã -ããã«ã¯ãªãã¯ãããšãã¬ããŒãããŸãã -å³åŽã®ã³ã³ãããŒã«ã§å Žæãæ¢ãããèæ¯ãå€æŽããŠãã ããã - </notification> - <notification name="FirstBuild"> - å¶äœããŒã«ãéããŸããã èŠããã®ãã¹ãŠããã®ããŒã«ã§äœæããããã®ã§ãã - </notification> - <notification name="FirstTeleport"> - ãã®ãªãŒãžã§ã³ã§ã¯ç¹å®ã®ãšãªã¢ã«ã®ã¿ãã¬ããŒãã§ããŸãã ç¢å°ãç®çå°ãæããŠããŸãã ç¢å°ãã¯ãªãã¯ãããšæ¶ããŸãã - </notification> <notification name="FirstOverrideKeys"> ããªãã®ç§»åããŒããªããžã§ã¯ããæäœããŠããŸãã ç¢å°ãAWSDã®ããŒã§åäœã確èªããŠãã ããã éãªã©ã®ãªããžã§ã¯ãã ãšãäžäººç§°èŠç¹ïŒããŠã¹ã«ãã¯ïŒã«å€æŽããå¿
èŠããããŸãã MããŒãæŒããŠå€æŽããŸãã </notification> - <notification name="FirstAppearance"> - 容姿ãç·šéäžã§ãã -åšå²ãèŠãã«ã¯ç¢å°ããŒã䜿ã£ãŠãã ããã -çµãã£ããããã¹ãŠä¿åããæŒããŠãã ããã - </notification> - <notification name="FirstInventory"> - ããã¯ããªãã®æã¡ç©ã§ããææããŠããã¢ã€ãã ãå
¥ã£ãŠããŸãã - -* ã¢ã€ãã ãèªåã«ãã©ãã°ããŠè£
çããŠãã ããã -* ã¢ã€ãã ãå°é¢ã«ãã©ãã°ã㊠Rez ããŠãã ããã -* ããŒãã«ãŒããããã«ã¯ãªãã¯ããŠéããŠãã ããã - </notification> <notification name="FirstSandbox"> ããã¯ãµã³ãããã¯ã¹ãšãªã¢ã§ããäœäººãå¶äœãåŠã¶ããšãã§ããŸãã ããã§å¶äœããããã®ã¯æéãçµã€ãšåé€ãããŸããå¶äœããã¢ã€ãã ãå³ã¯ãªãã¯ããŠãåãããéžã³ãæã¡ç©ã«å
¥ããŠãæã¡åž°ãããã®ããå¿ããªãã </notification> - <notification name="FirstFlexible"> - ãã®ãªããžã§ã¯ãã¯ãã¬ãã·ãã«ã§ãã ãã¬ãã·ã¹ã¯ããç©çãã§ã¯ãªãããã¡ã³ãã ãã§ãªããã°ãªããŸããã - </notification> - <notification name="FirstDebugMenus"> - ã¢ããã³ã¹ã¡ãã¥ãŒãéããŸããã - -ãã®ã¡ãã¥ãŒã®æå¹ã»ç¡å¹èšå® - WindowsïŒ Ctrl+Alt+D - MacïŒ ⌥⌘D - </notification> - <notification name="FirstSculptedPrim"> - ã¹ã«ã«ããããªã ãç·šéäžã§ãã ã¹ã«ã«ããã«ã¯åœ¢ç¶ã®èŒªéãæå®ããããã®ç¹å¥ãªãã¯ã¹ãã£ãå¿
èŠã§ãã - </notification> <notification name="MaxListSelectMessage"> ãã®ãªã¹ããã[MAX_SELECT]åãŸã§ã®ã¢ã€ãã ãéžæã§ããŸãã </notification> @@ -2654,12 +2598,23 @@ MããŒãæŒããŠå€æŽããŸãã <notification name="UnsupportedCommandSLURL"> ã¯ãªãã¯ãã SLurl ã¯ãµããŒããããŠããŸããã </notification> + <notification name="BlockedSLURL"> + ä¿¡çšã§ããªããã©ãŠã¶ãã SLurl ãéãããŠããã®ã§ãã»ãã¥ãªãã£ã®ãããããã¯ãããŸããã + </notification> + <notification name="ThrottledSLURL"> + çæéã®ããã ã«ãä¿¡çšã§ããªããã©ãŠã¶ããè€æ°ã® SLurls ãéãããŠããŸããã +å®å
šã®ããã«æ°ç§éãããã¯ãããŸãã + </notification> <notification name="IMToast"> [MESSAGE] <form name="form"> <button name="respondbutton" text="è¿ç"/> </form> </notification> + <notification name="ConfirmCloseAll"> + ãã¹ãŠã® IM ãéããŸããïŒ + <usetemplate name="okcancelignore" notext="ãã£ã³ã»ã«" yestext="OK"/> + </notification> <notification name="AttachmentSaved"> ã¢ã¿ããã¡ã³ããä¿åãããŸããã </notification> @@ -2671,6 +2626,14 @@ MããŒãæŒããŠå€æŽããŸãã ã[ERROR]ã <usetemplate name="okbutton" yestext="OK"/> </notification> + <notification name="TextChatIsMutedByModerator"> + ã¢ãã¬ãŒã¿ãŒãããªãã®æåãã£ããããã¥ãŒãããŸããã + <usetemplate name="okbutton" yestext="OK"/> + </notification> + <notification name="VoiceIsMutedByModerator"> + ã¢ãã¬ãŒã¿ãŒãããªãã®ãã€ã¹ããã¥ãŒãããŸããã + <usetemplate name="okbutton" yestext="OK"/> + </notification> <notification name="ConfirmClearTeleportHistory"> ãã¬ããŒãå±¥æŽãåé€ããŸããïŒ <usetemplate name="okcancelbuttons" notext="ãã£ã³ã»ã«" yestext="OK"/> diff --git a/indra/newview/skins/default/xui/ja/panel_active_object_row.xml b/indra/newview/skins/default/xui/ja/panel_active_object_row.xml new file mode 100644 index 0000000000..90491e84c5 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/panel_active_object_row.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel name="panel_activeim_row"> + <string name="unknown_obj"> + äžæã®ãªããžã§ã¯ã + </string> + <text name="object_name"> + ååã®ãªããªããžã§ã¯ã + </text> +</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/ja/panel_adhoc_control_panel.xml index 364ba76763..17e1283d24 100644 --- a/indra/newview/skins/default/xui/ja/panel_adhoc_control_panel.xml +++ b/indra/newview/skins/default/xui/ja/panel_adhoc_control_panel.xml @@ -1,8 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="panel_im_control_panel"> - <panel name="panel_call_buttons"> - <button label="ã³ãŒã«" name="call_btn"/> - <button label="ã³ãŒã«çµäº" name="end_call_btn"/> - <button label="ãã€ã¹ã³ã³ãããŒã«" name="voice_ctrls_btn"/> - </panel> + <layout_stack name="vertical_stack"> + <layout_panel name="call_btn_panel"> + <button label="ã³ãŒã«" name="call_btn"/> + </layout_panel> + <layout_panel name="end_call_btn_panel"> + <button label="ã³ãŒã«çµäº" name="end_call_btn"/> + </layout_panel> + <layout_panel name="voice_ctrls_btn_panel"> + <button label="ãã€ã¹ã³ã³ãããŒã«" name="voice_ctrls_btn"/> + </layout_panel> + </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/ja/panel_avatar_list_item.xml index 2efcb9f723..03eaf33d92 100644 --- a/indra/newview/skins/default/xui/ja/panel_avatar_list_item.xml +++ b/indra/newview/skins/default/xui/ja/panel_avatar_list_item.xml @@ -23,4 +23,5 @@ </string> <text name="avatar_name" value="äžæ"/> <text name="last_interaction" value="0 ç§"/> + <button name="profile_btn" tool_tip="ãããã£ãŒã«ã®è¡šç€º"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/ja/panel_block_list_sidetray.xml index 58ef8c3107..5d6a6065ae 100644 --- a/indra/newview/skins/default/xui/ja/panel_block_list_sidetray.xml +++ b/indra/newview/skins/default/xui/ja/panel_block_list_sidetray.xml @@ -4,7 +4,7 @@ ãããã¯ãªã¹ã </text> <scroll_list name="blocked" tool_tip="çŸåšãããã¯ãããŠããäœäººäžèŠ§"/> - <button label="äœäººããããã¯..." label_selected="äœäººããããã¯..." name="Block resident..." tool_tip="ãããã¯ãããäœäººãéžãã§ãã ãã"/> + <button label="ã¢ãã¿ãŒããããã¯" label_selected="äœäººããããã¯..." name="Block resident..." tool_tip="ãããã¯ãããäœäººãéžãã§ãã ãã"/> <button label="ååã§ãªããžã§ã¯ãããããã¯..." label_selected="ååã§ãªããžã§ã¯ãããããã¯..." name="Block object by name..." tool_tip="ååã§ãããã¯ããããªããžã§ã¯ããéžãã§ãã ãã"/> <button label="ãããã¯è§£é€" label_selected="ãããã¯è§£é€" name="Unblock" tool_tip="ãããã¯ãªã¹ãããäœäººã»ãªããžã§ã¯ããåé€"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_bottomtray.xml b/indra/newview/skins/default/xui/ja/panel_bottomtray.xml index 5edc1b651d..414413a980 100644 --- a/indra/newview/skins/default/xui/ja/panel_bottomtray.xml +++ b/indra/newview/skins/default/xui/ja/panel_bottomtray.xml @@ -8,7 +8,7 @@ </string> <layout_stack name="toolbar_stack"> <layout_panel name="gesture_panel"> - <gesture_combo_box label="ãžã§ã¹ãã£ãŒ" name="Gesture" tool_tip="ãžã§ã¹ãã£ãŒã®è¡šç€ºã»é衚瀺"/> + <gesture_combo_list label="ãžã§ã¹ãã£ãŒ" name="Gesture" tool_tip="ãžã§ã¹ãã£ãŒã®è¡šç€ºã»é衚瀺"/> </layout_panel> <layout_panel name="movement_panel"> <button label="移å" name="movement_btn" tool_tip="移åã³ã³ãããŒã«ã®è¡šç€ºã»é衚瀺"/> @@ -19,5 +19,15 @@ <layout_panel name="snapshot_panel"> <button label="" name="snapshots" tool_tip="ã¹ãããã·ã§ãããæ®ã"/> </layout_panel> + <layout_panel name="im_well_panel"> + <chiclet_im_well name="im_well"> + <button name="Unread IM messages" tool_tip="Conversations"/> + </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_classified_info.xml b/indra/newview/skins/default/xui/ja/panel_classified_info.xml index 1a5933a4e9..7fc4e6f674 100644 --- a/indra/newview/skins/default/xui/ja/panel_classified_info.xml +++ b/indra/newview/skins/default/xui/ja/panel_classified_info.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="panel_classified_info"> <panel.string name="type_mature"> - Mature + æ§ãã </panel.string> <panel.string name="type_pg"> - PG ã³ã³ãã³ã + äžè¬ã³ã³ãã³ã </panel.string> <text name="title" value="ã¯ã©ã·ãã¡ã€ãåºåæ
å ±"/> <scroll_container name="profile_scroll"> diff --git a/indra/newview/skins/default/xui/ja/panel_edit_classified.xml b/indra/newview/skins/default/xui/ja/panel_edit_classified.xml index ca065113d3..4cb5884f28 100644 --- a/indra/newview/skins/default/xui/ja/panel_edit_classified.xml +++ b/indra/newview/skins/default/xui/ja/panel_edit_classified.xml @@ -24,10 +24,10 @@ <button label="çŸåšå°ã«èšå®" name="set_to_curr_location_btn"/> <combo_box name="content_type"> <combo_item name="mature_ci"> - Matureã³ã³ãã³ã + æ§ããã³ã³ãã³ã </combo_item> <combo_item name="pg_ci"> - PGã³ã³ãã³ã + äžè¬ã³ã³ãã³ã </combo_item> </combo_box> <spinner label="L$" name="price_for_listing" tool_tip="æ²èŒäŸ¡æ Œ" value="50"/> diff --git a/indra/newview/skins/default/xui/ja/panel_edit_profile.xml b/indra/newview/skins/default/xui/ja/panel_edit_profile.xml index b232a8db61..2a850ab29c 100644 --- a/indra/newview/skins/default/xui/ja/panel_edit_profile.xml +++ b/indra/newview/skins/default/xui/ja/panel_edit_profile.xml @@ -19,6 +19,9 @@ <string name="partner_edit_link_url"> http://www.secondlife.com/account/partners.php?lang=ja </string> + <string name="my_account_link_url"> + http://jp.secondlife.com/my + </string> <string name="no_partner_text" value="ãªã"/> <scroll_container name="profile_scroll"> <panel name="scroll_content_panel"> @@ -44,7 +47,7 @@ <text name="title_partner_text" value="ãã€ããŒãããŒïŒ"/> <text name="partner_edit_link" value="[[URL] ç·šé]"/> <panel name="partner_data_panel"> - <text name="partner_text" value="[FIRST] [LAST]"/> + <name_box name="partner_text" value="[FIRST] [LAST]"/> </panel> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_friends.xml b/indra/newview/skins/default/xui/ja/panel_friends.xml index d4cf678d70..80a68f8258 100644 --- a/indra/newview/skins/default/xui/ja/panel_friends.xml +++ b/indra/newview/skins/default/xui/ja/panel_friends.xml @@ -1,53 +1,32 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="friends"> <string name="Multiple"> - è€æ°ã®ãã¬ã³ã... + è€æ°ã®ãã¬ã³ã </string> - <scroll_list name="friend_list" - tool_tip="è€æ°ã®ãã¬ã³ããéžæããã«ã¯ãShiftããŒãŸãã¯CtrlããŒãæŒããªããååãã¯ãªãã¯ããŸãã"> - <column name="icon_online_status" tool_tip="ãªã³ã©ã€ã³ã»ã¹ããŒã¿ã¹" /> - <column label="åå" name="friend_name" tool_tip="åå" /> - <column name="icon_visible_online" - tool_tip="ãã¬ã³ãã¯ãããªãããªã³ã©ã€ã³ãã©ãã確èªããããšãã§ããŸãã" /> - <column name="icon_visible_map" - tool_tip="ãã¬ã³ãã¯ãå°å³ã§ããªãã®å±
å ŽæãèŠã€ããããšãã§ããŸãã" /> - <column name="icon_edit_mine" - tool_tip="ãã¬ã³ãã¯ããªããžã§ã¯ããç·šéãåé€ããŸãã¯ååŸããããšãã§ããŸãã" /> - <column name="icon_edit_theirs" - tool_tip="ããªãã¯ããã®ãã¬ã³ãã®ãªããžã§ã¯ããç·šéããããšãã§ããŸãã" /> + <scroll_list name="friend_list" tool_tip="è€æ°ã®ãã¬ã³ããéžæããã«ã¯ãShiftããŒãŸãã¯CtrlããŒãæŒããªããååãã¯ãªãã¯ããŸãã"> + <column name="icon_online_status" tool_tip="ãªã³ã©ã€ã³ã»ã¹ããŒã¿ã¹"/> + <column label="åå" name="friend_name" tool_tip="åå"/> + <column name="icon_visible_online" tool_tip="ãã¬ã³ãã¯ãããªãããªã³ã©ã€ã³ãã©ãã確èªããããšãã§ããŸãã"/> + <column name="icon_visible_map" tool_tip="ãã¬ã³ãã¯ãå°å³ã§ããªãã®å±
å ŽæãèŠã€ããããšãã§ããŸãã"/> + <column name="icon_edit_mine" tool_tip="ãã¬ã³ãã¯ããªããžã§ã¯ããç·šéãåé€ããŸãã¯ååŸããããšãã§ããŸãã"/> + <column name="icon_edit_theirs" tool_tip="ããªãã¯ããã®ãã¬ã³ãã®ãªããžã§ã¯ããç·šéããããšãã§ããŸãã"/> </scroll_list> <panel name="rights_container"> <text name="friend_name_label" right="-10"> ãã¬ã³ããéžæããŠæš©å©ãå€æŽ... </text> - <check_box label="ãªã³ã©ã€ã³ã»ã¹ããŒã¿ã¹ã®ç¢ºèªãèš±å¯ãã" - name="online_status_cb" - tool_tip="ã³ãŒãªã³ã°ã«ãŒããããã¯ãã¬ã³ããªã¹ãã§ãã®ãã¬ã³ãããªã³ã©ã€ã³ç¶æ
ã確èªã§ããããèšå®" /> - <check_box label="äžçå°å³äžã§ããªãã®å±
å Žæãæ€çŽ¢å¯èœã«ãã" - name="map_status_cb" - tool_tip="ãã®ãã¬ã³ããå°å³ã§ç§ã®äœçœ®ãçºèŠã§ããããã«èšå®" /> - <check_box label="ãªããžã§ã¯ãã®ä¿®æ£ãèš±å¯ãã" name="modify_status_cb" - tool_tip="ãã®ãã¬ã³ãããªããžã§ã¯ããæ¹é ã§ããèš±å¯ãäžãã" /> + <check_box label="ãªã³ã©ã€ã³ã»ã¹ããŒã¿ã¹ã®ç¢ºèªãèš±å¯ãã" name="online_status_cb" tool_tip="ã³ãŒãªã³ã°ã«ãŒããããã¯ãã¬ã³ããªã¹ãã§ãã®ãã¬ã³ãããªã³ã©ã€ã³ç¶æ
ã確èªã§ããããèšå®"/> + <check_box label="äžçå°å³äžã§ããªãã®å±
å Žæãæ€çŽ¢å¯èœã«ãã" name="map_status_cb" tool_tip="ãã®ãã¬ã³ããå°å³ã§ç§ã®äœçœ®ãçºèŠã§ããããã«èšå®"/> + <check_box label="ãªããžã§ã¯ãã®ä¿®æ£ãèš±å¯ãã" name="modify_status_cb" tool_tip="ãã®ãã¬ã³ãããªããžã§ã¯ããæ¹é ã§ããèš±å¯ãäžãã"/> <text name="process_rights_label"> æš©å©å€æŽãããã»ã¹äž... </text> </panel> - <pad left="-95" /> - <button label="IM/ã³ãŒã«" name="im_btn" - tool_tip="ã€ã³ã¹ã¿ã³ãã¡ãã»ãŒãžã»ã»ãã·ã§ã³ãéã" - width="90" /> - <button label="ãããã£ãŒã«" name="profile_btn" - tool_tip="åçãã°ã«ãŒããããã³ãã®ä»ã®æ
å ±ã衚瀺ããŸãã" - width="90" /> - <button label="ãã¬ããŒã..." name="offer_teleport_btn" - tool_tip="ãã®ãã¬ã³ãã«ãããªãã®çŸåšã®ãã±ãŒã·ã§ã³ãŸã§ã®ãã¬ããŒããç³ãåºãŸãã" - width="90" /> - <button label="æ¯æã..." name="pay_btn" - tool_tip="ãªã³ãã³ãã« (L$) ããã®ãã¬ã³ãã«ããã" - width="90" /> - <button label="åé€..." name="remove_btn" - tool_tip="ãã®äººç©ããã¬ã³ããªã¹ãããå€ããŸãã" - width="90" /> - <button label="è¿œå ..." name="add_btn" - tool_tip="äœäººã«ãã¬ã³ãã·ãããç³è«ããŸãã" width="90" /> + <pad left="-95"/> + <button label="IM/ã³ãŒã«" name="im_btn" tool_tip="ã€ã³ã¹ã¿ã³ãã¡ãã»ãŒãžã»ã»ãã·ã§ã³ãéã" width="90"/> + <button label="ãããã£ãŒã«" name="profile_btn" tool_tip="åçãã°ã«ãŒããããã³ãã®ä»ã®æ
å ±ã衚瀺ããŸãã" width="90"/> + <button label="ãã¬ããŒã" name="offer_teleport_btn" tool_tip="ãã®ãã¬ã³ãã«ãããªãã®çŸåšã®ãã±ãŒã·ã§ã³ãŸã§ã®ãã¬ããŒããç³ãåºãŸãã" width="90"/> + <button label="æ¯æã" name="pay_btn" tool_tip="ãªã³ãã³ãã« (L$) ããã®ãã¬ã³ãã«ããã" width="90"/> + <button label="åé€" name="remove_btn" tool_tip="ãã®äººç©ããã¬ã³ããªã¹ãããå€ããŸãã" width="90"/> + <button label="è¿œå " name="add_btn" tool_tip="ãã¬ã³ãç»é²ãç³ãåºã" width="90"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml b/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml index 5369daed03..1c89675c1e 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml @@ -1,9 +1,17 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="panel_im_control_panel"> - <button label="ã°ã«ãŒãæ
å ±" name="group_info_btn"/> - <panel name="panel_call_buttons"> - <button label="ã°ã«ãŒãã«ã³ãŒã«" name="call_btn"/> - <button label="ã³ãŒã«çµäº" name="end_call_btn"/> - <button label="ãã€ã¹ã³ã³ãããŒã«ãéã" name="voice_ctrls_btn"/> - </panel> + <layout_stack name="vertical_stack"> + <layout_panel name="group_info_btn_panel"> + <button label="ã°ã«ãŒãæ
å ±" name="group_info_btn"/> + </layout_panel> + <layout_panel name="call_btn_panel"> + <button label="ã°ã«ãŒãã«ã³ãŒã«" name="call_btn"/> + </layout_panel> + <layout_panel name="end_call_btn_panel"> + <button label="ã³ãŒã«çµäº" name="end_call_btn"/> + </layout_panel> + <layout_panel name="voice_ctrls_btn_panel"> + <button label="ãã€ã¹ã³ã³ãããŒã«ãéã" name="voice_ctrls_btn"/> + </layout_panel> + </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_group_general.xml b/indra/newview/skins/default/xui/ja/panel_group_general.xml index 98b118f58f..538f3800bd 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_general.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_general.xml @@ -22,16 +22,16 @@ ç§ã®ã¿ã€ãã« </text> <combo_box name="active_title" tool_tip="ãã®ã°ã«ãŒããã¢ã¯ãã£ãã«ãããšãã«ãã¢ãã¿ãŒåã®äžã«è¡šç€ºãããã¿ã€ãã«ãèšå®ããŸãã"/> - <check_box label="éç¥ãåä¿¡" name="receive_notices" tool_tip="ãã®ã°ã«ãŒãããã®éç¥ãåä¿¡ãããã©ããã®èšå®ãè¡ããŸãã ã°ã«ãŒãããã¹ãã ãéãããŠããå Žåã¯ãã®ããã¯ã¹ã®ãã§ãã¯ãå€ããŠãã ããã"/> + <check_box label="ã°ã«ãŒãéç¥ãåä¿¡" name="receive_notices" tool_tip="ãã®ã°ã«ãŒãããã®éç¥ãåä¿¡ãããã©ããã®èšå®ãè¡ããŸãã ã°ã«ãŒãããã¹ãã ãéãããŠããå Žåã¯ãã®ããã¯ã¹ã®ãã§ãã¯ãå€ããŠãã ããã"/> <check_box label="ãããã£ãŒã«ã«è¡šç€º" name="list_groups_in_profile" tool_tip="ããªãã®ãããã£ãŒã«ã«ãã®ã°ã«ãŒãã衚瀺ãããã©ããã®èšå®ãè¡ããŸãã"/> <panel name="preferences_container"> <check_box label="äŒå¡åé" name="open_enrollement" tool_tip="æåŸ
ãããªããŠãæ°èŠã¡ã³ããŒãå å
¥ã§ãããã©ãããèšå®ããŸãã"/> <check_box label="å
¥äŒè²»" name="check_enrollment_fee" tool_tip="å
¥äŒè²»ãå¿
èŠãã©ãããèšå®ããŸãã"/> <spinner label="L$" name="spin_enrollment_fee" tool_tip="ãå
¥äŒè²»ãã«ãã§ãã¯ãå
¥ã£ãŠããå Žåãæ°èŠã¡ã³ããŒã¯æå®ãããå
¥äŒè²»ãæ¯æããªããã°ã°ã«ãŒãã«å
¥ããŸããã"/> <check_box initial_value="true" label="æ€çŽ¢ã«è¡šç€º" name="show_in_group_list" tool_tip="ãã®ã°ã«ãŒããæ€çŽ¢çµæã«è¡šç€ºãããŸã"/> - <combo_box name="group_mature_check" tool_tip="ã°ã«ãŒãæ
å ±ã Mature åããã©ããã®èšå®ãããŸãã"> - <combo_box.item label="PGã³ã³ãã³ã" name="pg"/> - <combo_box.item label="Matureã³ã³ãã³ã" name="mature"/> + <combo_box name="group_mature_check" tool_tip="ããªãã®ã°ã«ãŒãã«ãæ§ãããã«ã¬ãŒãèšå®ãããæ
å ±ããããã©ãããèšå®ããŸã"> + <combo_box.item label="äžè¬ã³ã³ãã³ã" name="pg"/> + <combo_box.item label="æ§ããã³ã³ãã³ã" name="mature"/> </combo_box> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml index 7c8cb85990..0af1ce2ef2 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml @@ -31,6 +31,8 @@ </accordion> <panel name="button_row"> <button label="äœæ" label_selected="æ°ããã°ã«ãŒã" name="btn_create"/> + <button label="ã°ã«ãŒããã£ãã" name="btn_chat"/> + <button label="ã°ã«ãŒãã³ãŒã«" name="btn_call"/> <button label="ä¿å" label_selected="ä¿å" name="btn_apply"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_group_invite.xml b/indra/newview/skins/default/xui/ja/panel_group_invite.xml index eddb0c3612..dc58359133 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_invite.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_invite.xml @@ -7,13 +7,10 @@ (ããŒãã£ã³ã°ïŒïŒïŒ) </panel.string> <panel.string name="already_in_group"> - äœäººãã®ã¢ãã¿ãŒã¯æ¢ã«ã°ã«ãŒãå å
¥æžã¿ã®ãããæåŸ
ãããŸããã§ããã + éžæããäœäººã®ãªãã«ãæ¢ã«ã°ã«ãŒãã«æå±ããŠãã人ããããããæåŸ
ãéãããšãã§ããŸããã§ããã </panel.string> <text bottom_delta="-96" font="SansSerifSmall" height="72" name="help_text"> - ããªãã®ã°ã«ãŒãã«äžåºŠã«è€æ°ã® -äœäººãæåŸ
ããããšãã§ããŸãã -ããªã¹ãããäœäººãéžæã -ãã¯ãªãã¯ããŠãã ããã + ã°ã«ãŒãã«ã¯äžåºŠã«è€æ°ã®äœäººãæåŸ
ããããšãã§ããŸãã ããªã¹ãããäœäººãéžæããã¯ãªãã¯ããŠãã ããã </text> <button bottom_delta="-10" label="ãªã¹ãããäœäººãéžæ" name="add_button" tool_tip=""/> <name_list bottom_delta="-160" height="156" name="invitee_list" tool_tip="Ctrl ããŒãæŒããªããè€æ°ã®äœäººãã¯ãªãã¯ã§ããŸã"/> diff --git a/indra/newview/skins/default/xui/ja/panel_group_list_item.xml b/indra/newview/skins/default/xui/ja/panel_group_list_item.xml index a652e3bf11..4b548049c8 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_list_item.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_list_item.xml @@ -1,4 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="group_list_item"> <text name="group_name" value="äžæ"/> + <button name="profile_btn" tool_tip="ãããã£ãŒã«ã®è¡šç€º"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_group_notices.xml b/indra/newview/skins/default/xui/ja/panel_group_notices.xml index 684e22a4da..c5168c4d7c 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_notices.xml @@ -1,11 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="éç¥" name="notices_tab"> <panel.string name="help_text"> - éç¥ã§ã¡ãã»ãŒãžãš -ã¢ã€ãã ãæ·»ä»ããŠéãããšãã§ããŸãã éç¥ãåãåãæš©éã®ãã圹å²ã® -ã°ã«ãŒãã¡ã³ããŒã -åãåãããšãã§ããŸãã éç¥ãåãåããããªãå Žå㯠-äžè¬ã¿ãããèšå®ããŠãã ããã + éç¥ã§ã¡ãã»ãŒãžãéãããšãã§ããéç¥ã«ã¢ã€ãã ãæ·»ä»ããããšãã§ããŸãã +éç¥ãåãåãããšãã§ããã圹å²ãã«ããã¡ã³ããŒã ãã«éä¿¡ãããŸãã +ãäžè¬ãã¿ãã§éç¥ã®åä¿¡ããªãã«ããããšãã§ããŸãã </panel.string> <panel.string name="no_notices_text"> éå»ã®éç¥ã¯ãããŸãã @@ -24,7 +22,7 @@ èŠã€ãããŸããã§ãã </text> <button label="æ°ããéç¥ãäœæ" label_selected="æ°ããéç¥ãäœæ" name="create_new_notice" tool_tip="æ°ããéç¥ãäœæ"/> - <button label="æŽæ°" label_selected="ãªã¹ãæŽæ°" name="refresh_notices"/> + <button label="æŽæ°" label_selected="ãªã¹ãæŽæ°" name="refresh_notices" tool_tip="éç¥ãªã¹ããæŽæ°"/> <panel label="æ°ããéç¥ãäœæ" name="panel_create_new_notice"> <text name="lbl"> éç¥ãäœæ @@ -39,11 +37,11 @@ æ·»ä»ïŒ </text> <text name="string"> - æ·»ä»ããã¢ã€ãã ãããã«ãã©ãã° -- > + ããã«ã¢ã€ãã ããã©ãã°ïŒããããããŠæ·»ä»ããŠãã ããïŒ </text> <button label="åãå€ã" label_selected="æ·»ä»ç©ãåé€" name="remove_attachment"/> <button label="éä¿¡" label_selected="éä¿¡" name="send_notice"/> - <group_drop_target name="drop_target" tool_tip="æã¡ç©ããã¢ã€ãã ãã¡ãã»ãŒãžæ¬ã«ãã©ãã°ããŠãã ãããéç¥ãšäžç·ã«éä¿¡ãããŸããéä¿¡ããã«ã¯ã³ããŒãè²æž¡ãå¯èœãªãªããžã§ã¯ãã§ããå¿
èŠããããŸãã"/> + <group_drop_target name="drop_target" tool_tip="æã¡ç©ã®ã¢ã€ãã ããã®ããã¯ã¹ã«ãã©ãã°ããŠãéç¥ãšäžç·ã«éããŸãã æ·»ä»ããã«ã¯ããã®ã¢ã€ãã ã®ã³ããŒãšå販ã»ãã¬ãŒã³ãã®æš©éãããªãã«ããå¿
èŠããããŸãã"/> </panel> <panel label="éå»ã®éç¥ã衚瀺" name="panel_view_past_notice"> <text name="lbl"> diff --git a/indra/newview/skins/default/xui/ja/panel_group_notify.xml b/indra/newview/skins/default/xui/ja/panel_group_notify.xml index 2edd054180..7135ae780d 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_notify.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_notify.xml @@ -8,5 +8,5 @@ </panel> <text_editor name="message" value="message"/> <text name="attachment" value="æ·»ä»ã¢ã€ãã "/> - <button label="Ok" name="btn_ok"/> + <button label="OK" name="btn_ok"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_im_control_panel.xml b/indra/newview/skins/default/xui/ja/panel_im_control_panel.xml index 138a9c6360..bfadcb13d3 100644 --- a/indra/newview/skins/default/xui/ja/panel_im_control_panel.xml +++ b/indra/newview/skins/default/xui/ja/panel_im_control_panel.xml @@ -1,13 +1,27 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="panel_im_control_panel"> <text name="avatar_name" value="äžæ"/> - <button label="ãããã£ãŒã«" name="view_profile_btn"/> - <button label="ãã¬ã³ãç»é²" name="add_friend_btn"/> - <button label="ãã¬ããŒã" name="teleport_btn"/> - <button label="å
±æ" name="share_btn"/> - <panel name="panel_call_buttons"> - <button label="ã³ãŒã«" name="call_btn"/> - <button label="ã³ãŒã«çµäº" name="end_call_btn"/> - <button label="ãã€ã¹ã³ã³ãããŒã«" name="voice_ctrls_btn"/> - </panel> + <layout_stack name="button_stack"> + <layout_panel name="view_profile_btn_panel"> + <button label="ãããã£ãŒã«" name="view_profile_btn"/> + </layout_panel> + <layout_panel name="add_friend_btn_panel"> + <button label="ãã¬ã³ãç»é²" name="add_friend_btn"/> + </layout_panel> + <layout_panel name="teleport_btn_panel"> + <button label="ãã¬ããŒã" name="teleport_btn"/> + </layout_panel> + <layout_panel name="share_btn_panel"> + <button label="å
±æ" name="share_btn"/> + </layout_panel> + <layout_panel name="call_btn_panel"> + <button label="ã³ãŒã«" name="call_btn"/> + </layout_panel> + <layout_panel name="end_call_btn_panel"> + <button label="ã³ãŒã«çµäº" name="end_call_btn"/> + </layout_panel> + <layout_panel name="voice_ctrls_btn_panel"> + <button label="ãã€ã¹ã³ã³ãããŒã«" name="voice_ctrls_btn"/> + </layout_panel> + </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_landmark_info.xml b/indra/newview/skins/default/xui/ja/panel_landmark_info.xml index 0f1e9b4962..9129c66a45 100644 --- a/indra/newview/skins/default/xui/ja/panel_landmark_info.xml +++ b/indra/newview/skins/default/xui/ja/panel_landmark_info.xml @@ -21,6 +21,7 @@ <string name="icon_PG" value="parcel_drk_PG"/> <string name="icon_M" value="parcel_drk_M"/> <string name="icon_R" value="parcel_drk_R"/> + <button name="back_btn" tool_tip="æ»ã"/> <text name="title" value="å Žæã®ãããã£ãŒã«"/> <scroll_container name="place_scroll"> <panel name="scrolling_panel"> diff --git a/indra/newview/skins/default/xui/ja/panel_login.xml b/indra/newview/skins/default/xui/ja/panel_login.xml index 0c1505255e..82c52abf38 100644 --- a/indra/newview/skins/default/xui/ja/panel_login.xml +++ b/indra/newview/skins/default/xui/ja/panel_login.xml @@ -6,36 +6,40 @@ <panel.string name="forgot_password_url"> http://secondlife.com/account/request.php?lang=ja </panel.string> - <panel name="login_widgets"> - <text name="first_name_text"> - ãã¡ãŒã¹ãããŒã ïŒ - </text> - <line_editor name="first_name_edit" tool_tip="[SECOND_LIFE] ãã¡ãŒã¹ãããŒã "/> - <text name="last_name_text"> - ã©ã¹ãããŒã ïŒ - </text> - <line_editor name="last_name_edit" tool_tip="[SECOND_LIFE] ã©ã¹ãããŒã "/> - <text name="password_text"> - ãã¹ã¯ãŒãïŒ - </text> - <button label="ãã°ã€ã³" label_selected="ãã°ã€ã³" name="connect_btn"/> - <text name="start_location_text"> - ãã°ã€ã³äœçœ®ïŒ - </text> - <combo_box name="start_location_combo"> - <combo_box.item label="æåŸã«ãã°ã¢ãŠãããå Žæ" name="MyLastLocation"/> - <combo_box.item label="èªå®
ïŒããŒã ïŒ" name="MyHome"/> - <combo_box.item label="ïŒå°ååãå
¥åïŒ" name="Typeregionname"/> - </combo_box> - <check_box label="ãã¹ã¯ãŒããèšæ¶" name="remember_check"/> - <text name="create_new_account_text"> - æ°èŠã¢ã«ãŠã³ããäœæ - </text> - <text name="forgot_password_text"> - ååãŸãã¯ãã¹ã¯ãŒãããå¿ãã§ããïŒ - </text> - <text name="channel_text"> - [VERSION] - </text> - </panel> + <layout_stack name="login_widgets"> + <layout_panel name="login"> + <text name="first_name_text"> + ãã¡ãŒã¹ãããŒã ïŒ + </text> + <line_editor label="æå" name="first_name_edit" tool_tip="[SECOND_LIFE] ãã¡ãŒã¹ãããŒã "/> + <text name="last_name_text"> + ã©ã¹ãããŒã ïŒ + </text> + <line_editor label="æåŸ" name="last_name_edit" tool_tip="[SECOND_LIFE] ã©ã¹ãããŒã "/> + <text name="password_text"> + ãã¹ã¯ãŒãïŒ + </text> + <check_box label="èšæ¶ãã" name="remember_check"/> + <text name="start_location_text"> + éå§å°ç¹ïŒ + </text> + <combo_box name="start_location_combo"> + <combo_box.item label="æåŸã«ãã°ã¢ãŠãããå Žæ" name="MyLastLocation"/> + <combo_box.item label="ããŒã " name="MyHome"/> + <combo_box.item label="ïŒå°ååãå
¥åïŒ" name="Typeregionname"/> + </combo_box> + <button label="ãã°ã€ã³" name="connect_btn"/> + </layout_panel> + <layout_panel name="links"> + <text name="create_new_account_text"> + ãç³ã蟌㿠+ </text> + <text name="forgot_password_text"> + ååãŸãã¯ãã¹ã¯ãŒãããå¿ãã§ããïŒ + </text> + <text name="login_help"> + ãã°ã€ã³ã®æ¹æ³ + </text> + </layout_panel> + </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_main_inventory.xml b/indra/newview/skins/default/xui/ja/panel_main_inventory.xml index 8f8e113e64..d533ce5e0d 100644 --- a/indra/newview/skins/default/xui/ja/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/ja/panel_main_inventory.xml @@ -3,10 +3,10 @@ <panel.string name="Title"> ãã® </panel.string> - <filter_editor label="ãã£ã«ã¿ãŒ" name="inventory search editor"/> + <filter_editor label="æã¡ç©ããã£ã«ã¿ãŒ" name="inventory search editor"/> <tab_container name="inventory filter tabs"> - <inventory_panel label="ãã¹ãŠ" name="All Items"/> - <inventory_panel label="æè¿ã®å
¥æã¢ã€ãã " name="Recent Items"/> + <inventory_panel label="æã¡ç©" name="All Items"/> + <inventory_panel label="ææ°" name="Recent Items"/> </tab_container> <panel name="bottom_panel"> <button name="options_gear_btn" tool_tip="ãã®ä»ã®ãªãã·ã§ã³ã衚瀺"/> @@ -32,7 +32,7 @@ <menu label="æ°èŠäœæ" name="Create"> <menu_item_call label="ãã©ã«ã" name="New Folder"/> <menu_item_call label="ã¹ã¯ãªãã" name="New Script"/> - <menu_item_call label="ããŒã" name="New Note"/> + <menu_item_call label="æ°ããããŒãã«ãŒã" name="New Note"/> <menu_item_call label="ãžã§ã¹ãã£ãŒ" name="New Gesture"/> <menu label="è¡£é¡" name="New Clothes"> <menu_item_call label="ã·ã£ã" name="New Shirt"/> diff --git a/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml b/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml index 18c270e43d..74e414c381 100644 --- a/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml +++ b/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml @@ -1,28 +1,20 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="äžè¬" name="Media Settings General"> <text name="home_label"> - ããŒã URLïŒ + ããŒã ããŒãžïŒ </text> - <line_editor name="home_url" tool_tip="ãã®ã¡ãã£ã¢ãœãŒã¹ã® URL"/> + <text name="home_fails_whitelist_label"> + ïŒãã®ããŒãžã¯æå®ãããã¯ã€ããªã¹ãããã¹ããŸããïŒ + </text> + <line_editor name="home_url" tool_tip="ãã®ã¡ãã£ã¢ãœãŒã¹ã®ããŒã ããŒãž"/> <text name="preview_label"> ãã¬ãã¥ãŒ </text> <text name="current_url_label"> - çŸåšã® URLïŒ + çŸåšã®ããŒãžïŒ </text> - <line_editor name="current_url" tool_tip="çŸåšã®ã¡ãã£ã¢ãœãŒã¹ã® URL" value=""/> + <text name="current_url" tool_tip="ã¡ãã£ã¢ãœãŒã¹ã®çŸåšã®ããŒãž" value=""/> <button label="ãªã»ãã" name="current_url_reset_btn"/> - <text name="controls_label"> - ã³ã³ãããŒã«ïŒ - </text> - <combo_box name="controls"> - <combo_item name="Standard"> - æšæº - </combo_item> - <combo_item name="Mini"> - ãã - </combo_item> - </combo_box> <check_box initial_value="false" label="èªåã«ãŒã" name="auto_loop"/> <check_box initial_value="false" label="æåã®ã¯ãªãã¯" name="first_click_interact"/> <check_box initial_value="false" label="èªåãºãŒã " name="auto_zoom"/> diff --git a/indra/newview/skins/default/xui/ja/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/ja/panel_media_settings_permissions.xml index 357cbe372a..223bd3e28c 100644 --- a/indra/newview/skins/default/xui/ja/panel_media_settings_permissions.xml +++ b/indra/newview/skins/default/xui/ja/panel_media_settings_permissions.xml @@ -1,9 +1,20 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="ã³ã³ãããŒã«" name="Media settings for controls"> - <check_box initial_value="false" label="ããã²ãŒã·ã§ã³ãšçžäºäœçšåãç¡å¹ã«ãã" name="perms_owner_interact"/> - <check_box initial_value="false" label="ã³ã³ãããŒã«ããŒãé衚瀺ã«ãã" name="perms_owner_control"/> - <check_box initial_value="false" label="ããã²ãŒã·ã§ã³ãšçžäºäœçšåãç¡å¹ã«ãã" name="perms_group_interact"/> - <check_box initial_value="false" label="ã³ã³ãããŒã«ããŒãé衚瀺ã«ãã" name="perms_group_control"/> - <check_box initial_value="false" label="ããã²ãŒã·ã§ã³ãšçžäºäœçšåãç¡å¹ã«ãã" name="perms_anyone_interact"/> - <check_box initial_value="false" label="ã³ã³ãããŒã«ããŒãé衚瀺ã«ãã" name="perms_anyone_control"/> +<panel label="ã«ã¹ã¿ãã€ãº" name="Media settings for controls"> + <text name="controls_label"> + ã³ã³ãããŒã«ïŒ + </text> + <combo_box name="controls"> + <combo_item name="Standard"> + æšæº + </combo_item> + <combo_item name="Mini"> + ãã + </combo_item> + </combo_box> + <check_box initial_value="false" label="ããã²ãŒã·ã§ã³ãšçžäºäœçšåãæå¹ã«ãã" name="perms_owner_interact"/> + <check_box initial_value="false" label="ã³ã³ãããŒã«ããŒã衚瀺ãã" name="perms_owner_control"/> + <check_box initial_value="false" label="ããã²ãŒã·ã§ã³ãšçžäºäœçšåãæå¹ã«ãã" name="perms_group_interact"/> + <check_box initial_value="false" label="ã³ã³ãããŒã«ããŒã衚瀺ãã" name="perms_group_control"/> + <check_box initial_value="false" label="ããã²ãŒã·ã§ã³ãšçžäºäœçšåãæå¹ã«ãã" name="perms_anyone_interact"/> + <check_box initial_value="false" label="ã³ã³ãããŒã«ããŒã衚瀺ãã" name="perms_anyone_control"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml b/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml index ed0ac0d417..7822123a30 100644 --- a/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml +++ b/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml @@ -1,6 +1,12 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="ã»ãã¥ãªãã£" name="Media Settings Security"> - <check_box initial_value="false" label="æå®ãã URL ã«ã®ã¿ã¢ã¯ã»ã¹ãèš±å¯ïŒæ¥é èŸïŒ" name="whitelist_enable"/> + <check_box initial_value="false" label="æå®ããURLãã¿ãŒã³ã«ã®ã¿ã¢ã¯ã»ã¹ãèš±å¯ãã" name="whitelist_enable"/> + <text name="home_url_fails_some_items_in_whitelist"> + ããŒã ããŒãžã«å€±æãããšã³ããªãŒãããŒã¯ãããŸããïŒ + </text> <button label="è¿œå " name="whitelist_add"/> <button label="åé€" name="whitelist_del"/> + <text name="home_url_fails_whitelist"> + èŠåïŒ ãäžè¬ãã¿ãã§æå®ãããããŒã ããŒãžã¯ããã®ãã¯ã€ããªã¹ãããã¹ã§ããŸããã§ããã æå¹ãªãšã³ããªãŒãè¿œå ããããŸã§ã¯ãç¡å¹ã«ãªããŸãã + </text> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_my_profile.xml b/indra/newview/skins/default/xui/ja/panel_my_profile.xml index 5f773a1378..4cce3798cf 100644 --- a/indra/newview/skins/default/xui/ja/panel_my_profile.xml +++ b/indra/newview/skins/default/xui/ja/panel_my_profile.xml @@ -4,52 +4,44 @@ [ACCTTYPE] [PAYMENTINFO] [AGEVERIFICATION] </string> + <string name="payment_update_link_url"> + http://www.secondlife.com/account/billing.php?lang=ja + </string> + <string name="partner_edit_link_url"> + http://www.secondlife.com/account/billing.php?lang=ja + </string> + <string name="my_account_link_url" value="http://secondlife.com/account"/> <string name="no_partner_text" value="ãªã"/> + <string name="no_group_text" value="ãªã"/> <string name="RegisterDateFormat"> [REG_DATE] ([AGE]) </string> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="second_life_image_panel"> - <icon label="" name="2nd_life_edit_icon" tool_tip="äžã®ããããã£ãŒã«ã®ç·šéããã¿ã³ãæŒããŠç»åãå€æŽããŸã"/> - <text name="title_sl_descr_text" value="[SECOND_LIFE]ïŒ"/> - <expandable_text name="sl_description_edit"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. - </expandable_text> - </panel> - <panel name="first_life_image_panel"> - <icon label="" name="real_world_edit_icon" tool_tip="äžã®ããããã£ãŒã«ã®ç·šéããã¿ã³ãæŒããŠç»åãå€æŽããŸã"/> - <text name="title_rw_descr_text" value="çŸå®äžçïŒ"/> - <expandable_text name="fl_description_edit"> - Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. - </expandable_text> - </panel> - <text name="me_homepage_text"> - Web ãµã€ãïŒ - </text> - <text name="title_member_text" value="ã¡ã³ããŒç»é²ïŒ"/> - <text name="register_date" value="05/31/1976"/> - <text name="title_acc_status_text" value="ã¢ã«ãŠã³ãã®ç¶æ
ïŒ"/> - <text name="acc_status_text" value="äœäººã æ¯ææ
å ±æªç»é²ã"/> - <text name="title_partner_text" value="ããŒãããŒïŒ"/> - <panel name="partner_data_panel"> - <text name="partner_text" value="[FIRST] [LAST]"/> - </panel> - <text name="title_groups_text" value="ã°ã«ãŒãïŒ"/> - <expandable_text name="sl_groups"> - Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. - </expandable_text> - </panel> - </scroll_container> - <panel name="profile_buttons_panel"> - <button label="ãã¬ã³ãç»é²" name="add_friend"/> - <button label="IM" name="im"/> - <button label="ã³ãŒã«" name="call"/> - <button label="å°å³" name="show_on_map_btn"/> - <button label="ãã¬ããŒã" name="teleport"/> - </panel> - <panel name="profile_me_buttons_panel"> - <button label="ãããã£ãŒã«ã®ç·šé" name="edit_profile_btn"/> - <button label="容姿ã®ç·šé" name="edit_appearance_btn"/> - </panel> + <layout_stack name="layout"> + <layout_panel name="profile_stack"> + <scroll_container name="profile_scroll"> + <panel name="scroll_content_panel"> + <panel name="second_life_image_panel"> + <icon label="" name="2nd_life_edit_icon" tool_tip="äžã®ããããã£ãŒã«ã®ç·šéããã¿ã³ãæŒããŠç»åãå€æŽããŸã"/> + <text name="title_sl_descr_text" value="[SECOND_LIFE]ïŒ"/> + </panel> + <panel name="first_life_image_panel"> + <icon label="" name="real_world_edit_icon" tool_tip="äžã®ããããã£ãŒã«ã®ç·šéããã¿ã³ãæŒããŠç»åãå€æŽããŸã"/> + <text name="title_rw_descr_text" value="çŸå®äžçïŒ"/> + </panel> + <text name="title_member_text" value="äœäººãšãªã£ãæ¥ïŒ"/> + <text name="title_acc_status_text" value="ã¢ã«ãŠã³ãã®ç¶æ
ïŒ"/> + <text name="acc_status_text"> + äœäººã æ¯ææ
å ±æªç»é²ã + ãªã³ãã³ã + </text> + <text name="title_partner_text" value="ããŒãããŒïŒ"/> + <text name="title_groups_text" value="ã°ã«ãŒãïŒ"/> + </panel> + </scroll_container> + </layout_panel> + <layout_panel name="profile_me_buttons_panel"> + <button label="ãããã£ãŒã«ã®ç·šé" name="edit_profile_btn" tool_tip="å人çãªæ
å ±ãç·šéããŸã"/> + <button label="容姿ã®ç·šé" name="edit_appearance_btn" tool_tip="èŠãç®ãäœæã»ç·šéããŸãïŒ ïŒèº«äœçããŒã¿ãè¡£é¡ãªã©ïŒ"/> + </layout_panel> + </layout_stack> </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 ecfde1bfc6..a154442095 100644 --- a/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml +++ b/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml @@ -9,4 +9,7 @@ <combo_editor label="[SECOND_LIFE] ãæ€çŽ¢ïŒ" name="search_combo_editor"/> </search_combo_box> </panel> + <favorites_bar name="favorite"> + <chevron_button name=">>" tool_tip="ãæ°ã«å
¥ãããã£ãšè¡šç€º"/> + </favorites_bar> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_notes.xml b/indra/newview/skins/default/xui/ja/panel_notes.xml index 5feee6e280..1948c54359 100644 --- a/indra/newview/skins/default/xui/ja/panel_notes.xml +++ b/indra/newview/skins/default/xui/ja/panel_notes.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="ã¡ã¢ãšãã©ã€ãã·ãŒ" name="panel_notes"> <layout_stack name="layout"> - <panel name="notes_stack"> + <layout_panel name="notes_stack"> <scroll_container name="profile_scroll"> <panel name="profile_scroll_panel"> <text name="status_message" value="å人çã¡ã¢ïŒ"/> @@ -11,13 +11,13 @@ <check_box label="ç§ã®ãªããžã§ã¯ãã®ç·šéã»åé€ã»ååŸ" name="objects_check"/> </panel> </scroll_container> - </panel> - <panel name="notes_buttons_panel"> - <button label="è¿œå " name="add_friend"/> - <button label="IM" name="im"/> - <button label="ã³ãŒã«" name="call"/> - <button label="å°å³" name="show_on_map_btn"/> - <button label="ãã¬ããŒã" name="teleport"/> - </panel> + </layout_panel> + <layout_panel name="notes_buttons_panel"> + <button label="ãã¬ã³ãç»é²" name="add_friend" tool_tip="ãã¬ã³ãç»é²ãç³ãåºãŸã"/> + <button label="IM" name="im" tool_tip="ã€ã³ã¹ã¿ã³ãã¡ãã»ãŒãžãéããŸã"/> + <button label="ã³ãŒã«" name="call" tool_tip="ãã®äœäººã«ã³ãŒã«ãã"/> + <button label="å°å³" name="show_on_map_btn" tool_tip="äœäººãå°å³äžã§è¡šç€ºãã"/> + <button label="ãã¬ããŒã" name="teleport" tool_tip="ãã¬ããŒããéã"/> + </layout_panel> </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml index 9ce0156bd4..a109b1ab51 100644 --- a/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml +++ b/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml @@ -1,13 +1,14 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="Outfits"> - <accordion name="outfits_accordion"> - <accordion_tab name="tab_outfits" title="ã¢ãŠããã£ããããŒ"/> - <accordion_tab name="tab_cof" title="çŸåšã®ã¢ãŠããã£ããããŒ"/> - </accordion> - <button label=">" name="selector" tool_tip="ã¢ãŠããã£ããã®ããããã£ã衚瀺"/> +<panel label="ãã®" name="Outfits"> + <tab_container name="appearance_tabs"> + <inventory_panel label="ã〠ã¢ãŠããã£ãã" name="outfitslist_tab"/> + <inventory_panel label="ççšäž" name="cof_accordionpanel"/> + </tab_container> <panel name="bottom_panel"> <button name="options_gear_btn" tool_tip="ãã®ä»ã®ãªãã·ã§ã³ã衚瀺"/> - <button name="add_btn" tool_tip="æ°ããã¢ã€ãã ã®è¿œå "/> <dnd_button name="trash_btn" tool_tip="éžæããã¢ã€ãã ãåé€"/> + <button label="ã¢ãŠããã£ãããä¿åãã" name="make_outfit_btn" tool_tip="容姿ãã¢ãŠããã£ããã«ä¿åãã"/> + <button label="è£
ç" name="wear_btn" tool_tip="éžæããã¢ãŠããã£ãããççšãã"/> + <button label="M" name="look_edit_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_outfits_inventory_gear_default.xml b/indra/newview/skins/default/xui/ja/panel_outfits_inventory_gear_default.xml index dfcd9d0932..e8caab0696 100644 --- a/indra/newview/skins/default/xui/ja/panel_outfits_inventory_gear_default.xml +++ b/indra/newview/skins/default/xui/ja/panel_outfits_inventory_gear_default.xml @@ -1,6 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="menu_gear_default"> - <menu_item_call label="æ°ããã¢ãŠããã£ãã" name="new"/> - <menu_item_call label="ã¢ãŠããã£ãããçã" name="wear"/> + <menu_item_call label="ççšäžã®ã¢ãŠããã£ãããå
¥ãæ¿ãã" name="wear"/> + <menu_item_call label="ççšäžã®ã¢ãŠããã£ããããåãé€ã" name="remove"/> + <menu_item_call label="ååã®å€æŽ" name="rename"/> + <menu_item_call label="ãªã³ã¯ãå€ã" name="remove_link"/> <menu_item_call label="ã¢ãŠããã£ãããåé€ãã" name="delete"/> </menu> diff --git a/indra/newview/skins/default/xui/ja/panel_people.xml b/indra/newview/skins/default/xui/ja/panel_people.xml index 5dffbb33ea..c955cf6e48 100644 --- a/indra/newview/skins/default/xui/ja/panel_people.xml +++ b/indra/newview/skins/default/xui/ja/panel_people.xml @@ -49,5 +49,6 @@ <button label="ãã¬ããŒã" name="teleport_btn" tool_tip="ãã¬ããŒããéã"/> <button label="ã°ã«ãŒãæ
å ±" name="group_info_btn" tool_tip="ã°ã«ãŒãæ
å ±ã衚瀺"/> <button label="ã°ã«ãŒããã£ãã" name="chat_btn" tool_tip="ãã£ãããéå§"/> + <button label="ã°ã«ãŒãã«ã³ãŒã«ãã" name="group_call_btn" tool_tip="ãã®ã°ã«ãŒãã«ã³ãŒã«ãã"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_picks.xml b/indra/newview/skins/default/xui/ja/panel_picks.xml index 3d3b8bb3dc..f74bf7a073 100644 --- a/indra/newview/skins/default/xui/ja/panel_picks.xml +++ b/indra/newview/skins/default/xui/ja/panel_picks.xml @@ -2,20 +2,16 @@ <panel label="ããã¯" name="panel_picks"> <string name="no_picks" value="ããã¯ãªã"/> <string name="no_classifieds" value="ã¯ã©ã·ãã¡ã€ãåºåãªã"/> - <text name="empty_picks_panel_text"> - ããã«ã¯ããã¯ã»ã¯ã©ã·ãã¡ã€ãåºåã¯ãããŸããã - </text> <accordion name="accordion"> <accordion_tab name="tab_picks" title="ããã¯"/> <accordion_tab name="tab_classifieds" title="ã¯ã©ã·ãã¡ã€ãåºå"/> </accordion> <panel label="bottom_panel" name="edit_panel"> - <button name="new_btn" tool_tip="çŸåšå°ã®ããã¯ãæ°èŠäœæ"/> + <button name="new_btn" tool_tip="çŸåšå°ã®æ°ããããã¯ããŸãã¯ã¯ã©ã·ãã¡ã€ãåºåãäœæããŸã"/> </panel> <panel name="buttons_cucks"> - <button label="æ
å ±" name="info_btn"/> - <button label="ãã¬ããŒã" name="teleport_btn"/> - <button label="å°å³" name="show_on_map_btn"/> - <button label="âŒ" name="overflow_btn"/> + <button label="æ
å ±" name="info_btn" tool_tip="ããã¯ã®æ
å ±ã衚瀺"/> + <button label="ãã¬ããŒã" name="teleport_btn" tool_tip="該åœãããšãªã¢ã«ãã¬ããŒã"/> + <button label="å°å³" name="show_on_map_btn" tool_tip="äžçå°å³ã«è©²åœãããšãªã¢ã衚瀺"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_place_profile.xml b/indra/newview/skins/default/xui/ja/panel_place_profile.xml index 3ec5a3a294..ef4b71c4aa 100644 --- a/indra/newview/skins/default/xui/ja/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/ja/panel_place_profile.xml @@ -56,6 +56,7 @@ <string name="icon_ScriptsNo" value="parcel_drk_ScriptsNo"/> <string name="icon_Damage" value="parcel_drk_Damage"/> <string name="icon_DamageNo" value="parcel_drk_DamageNo"/> + <button name="back_btn" tool_tip="æ»ã"/> <text name="title" value="å Žæã®ãããã£ãŒã«"/> <scroll_container name="place_scroll"> <panel name="scrolling_panel"> @@ -92,7 +93,7 @@ <text name="region_type_label" value="çš®é¡ïŒ"/> <text name="region_type" value="Moose"/> <text name="region_rating_label" value="ã¬ãŒãã£ã³ã°åºåïŒ"/> - <text name="region_rating" value="Explicit"/> + <text name="region_rating" value="ã¢ãã«ã"/> <text name="region_owner_label" value="ææè
ïŒ"/> <text name="region_owner" value="moose Van Moose"/> <text name="region_group_label" value="ã°ã«ãŒãïŒ"/> diff --git a/indra/newview/skins/default/xui/ja/panel_places.xml b/indra/newview/skins/default/xui/ja/panel_places.xml index f74b1e52e8..b1c7a3308f 100644 --- a/indra/newview/skins/default/xui/ja/panel_places.xml +++ b/indra/newview/skins/default/xui/ja/panel_places.xml @@ -2,11 +2,12 @@ <panel label="å Žæ" name="places panel"> <string name="landmarks_tab_title" value="ã〠ã©ã³ãããŒã¯"/> <string name="teleport_history_tab_title" value="ãã¬ããŒãã®å±¥æŽ"/> - <filter_editor label="ãã£ã«ã¿ãŒ" name="Filter"/> + <filter_editor label="å Žæããã£ã«ã¿ãŒ" name="Filter"/> <panel name="button_panel"> - <button label="ãã¬ããŒã" name="teleport_btn"/> + <button label="ãã¬ããŒã" name="teleport_btn" tool_tip="該åœãããšãªã¢ã«ãã¬ããŒãããŸã"/> <button label="å°å³" name="map_btn"/> - <button label="ç·šé" name="edit_btn"/> + <button label="ç·šé" name="edit_btn" tool_tip="ã©ã³ãããŒã¯ã®æ
å ±ãç·šéããŸã"/> + <button name="overflow_btn" tool_tip="ãã®ä»ã®ãªãã·ã§ã³ã衚瀺"/> <button label="éãã" name="close_btn"/> <button label="ãã£ã³ã»ã«" name="cancel_btn"/> <button label="ä¿å" name="save_btn"/> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml index 3cd13948d2..16af659326 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml @@ -6,9 +6,9 @@ <check_box label="ãªã³ãã³ãã«ã䜿çšã»åãåããšã" name="notify_money_change_checkbox"/> <check_box label="ãã¬ã³ãããã°ã¢ãŠãã»ãã°ã€ã³ãããšã" name="friends_online_notify_checkbox"/> <text name="show_label" width="300"> - åžžã«è¡šç€ºããèŠåã¡ãã»ãŒãžïŒ + åžžã«è¡šç€ºããéç¥ïŒ </text> <text name="dont_show_label"> - 衚瀺ããªãèŠåã¡ãã»ãŒãžïŒ + 衚瀺ããªãéç¥ïŒ </text> </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 7abeb36168..ece18a75ca 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="ãã£ãã" name="chat"> <radio_group name="chat_font_size"> - <radio_item label="å°" name="radio"/> - <radio_item label="äž" name="radio2"/> - <radio_item label="倧" name="radio3"/> + <radio_item label="å°" name="radio" value="0"/> + <radio_item label="äž" name="radio2" value="1"/> + <radio_item label="倧" name="radio3" value="2"/> </radio_group> <color_swatch label="èªå" name="user"/> <text name="text_box1"> @@ -40,4 +40,8 @@ <check_box initial_value="true" label="ãã£ããäžã¯ã¿ã€ãã³ã°åäœã®ã¢ãã¡ãŒã·ã§ã³ãåç" name="play_typing_animation"/> <check_box label="ãªãã©ã€ã³æã«åãåã£ã IM ãã¡ãŒã«ã§éä¿¡" name="send_im_to_email"/> <check_box label="æåãã£ããã®å±¥æŽãæå¹ã«ãã" name="plain_text_chat_history"/> + <radio_group name="chat_window" tool_tip="ã€ã³ã¹ã¿ã³ãã¡ãã»ãŒãžãå¥ãŠã£ã³ããŠããŸãã¯1ã€ã®ãŠã£ã³ããŠã«è€æ°ã¿ãã§è¡šç€ºïŒèŠåèµ·åïŒ"> + <radio_item label="è€æ°ãŠã£ã³ããŠ" name="radio" value="0"/> + <radio_item label="1ã€ã®ãŠã£ã³ããŠ" name="radio2" value="1"/> + </radio_group> </panel> 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 387558af73..765662b96a 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml @@ -15,7 +15,6 @@ <combo_box.item label="Polski ïŒããŒã©ã³ãèªïŒ - ããŒã¿" name="Polish"/> <combo_box.item label="Português ïŒãã«ãã¬ã«èªïŒ â ããŒã¿" name="Portugese"/> <combo_box.item label="æ¥æ¬èª â ããŒã¿" name="(Japanese)"/> - <combo_box.item label="ãã¹ãèšèª" name="TestLanguage"/> </combo_box> <text name="language_textbox2"> ïŒåèµ·ååŸã«åæ ïŒ @@ -25,9 +24,9 @@ </text> <text name="maturity_desired_textbox"/> <combo_box name="maturity_desired_combobox"> - <combo_box.item label="PGãMatureãAdult" name="Desired_Adult"/> - <combo_box.item label="PGãšMature" name="Desired_Mature"/> - <combo_box.item label="PG" name="Desired_PG"/> + <combo_box.item label="äžè¬ãæ§ãããã¢ãã«ã" name="Desired_Adult"/> + <combo_box.item label="äžè¬ãšæ§ãã" name="Desired_Mature"/> + <combo_box.item label="äžè¬" name="Desired_PG"/> </combo_box> <text name="start_location_textbox"> ãã°ã€ã³äœçœ®ïŒ @@ -41,9 +40,9 @@ ååã®è¡šç€ºïŒ </text> <radio_group name="Name_Tag_Preference"> - <radio_item label="ãªã" name="radio"/> - <radio_item label="ãªã³" name="radio2"/> - <radio_item label="äžæçã«è¡šç€º" name="radio3"/> + <radio_item label="ãªã" name="radio" value="0"/> + <radio_item label="ãªã³" name="radio2" value="1"/> + <radio_item label="äžæçã«è¡šç€º" name="radio3" value="2"/> </radio_group> <check_box label="ç§ã®ååã衚瀺" name="show_my_name_checkbox1"/> <check_box initial_value="true" label="å°ããã¢ãã¿ãŒå" name="small_avatar_names_checkbox"/> @@ -51,14 +50,17 @@ <text name="effects_color_textbox"> ç§ã®ããŒã ã®è²ïŒ </text> - <color_swatch label="" name="effect_color_swatch" tool_tip="ã«ã©ãŒã»ããã«ãŒãã¯ãªãã¯ããŠéã"/> <text name="title_afk_text"> äžæéåžãŸã§ã®æéïŒ </text> - <spinner label="" name="afk_timeout_spinner"/> - <text name="seconds_textbox"> - ç§ - </text> + <color_swatch label="" name="effect_color_swatch" tool_tip="ã«ã©ãŒã»ããã«ãŒãã¯ãªãã¯ããŠéã"/> + <combo_box label="äžæéåžãŸã§ã®æéïŒ" name="afk"> + <combo_box.item label="2å" name="item0"/> + <combo_box.item label="5å" name="item1"/> + <combo_box.item label="10å" name="item2"/> + <combo_box.item label="30å" name="item3"/> + <combo_box.item label="äžæéåžèšå®ãªã" name="item4"/> + </combo_box> <text name="text_box3"> åã蟌ã¿äžã¢ãŒãæã®è¿äºïŒ </text> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml index 80c0c85420..7a7cb8b96b 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml @@ -11,8 +11,8 @@ <check_box label="ãã¬ã³ããšã°ã«ãŒã以å€ããã¯ã³ãŒã«ãšIMãåä¿¡ããªã" name="voice_call_friends_only_check"/> <check_box label="ã³ãŒã«ãçµäºããããã€ã¯ã®ã¹ã€ãããåã" name="auto_disengage_mic_check"/> <check_box label="Cookieãåãå
¥ãã" name="cookies_enabled"/> - <check_box label="ã¡ãã£ã¢ã®èªååçãèš±å¯ãã" name="autoplay_enabled"/> - <check_box label="èªåçã«åºç»ã¡ãã£ã¢ãåçãã" name="parcel_autoplay_enabled"/> + <check_box label="ã¡ãã£ã¢ãæå¹ã§ã" name="media_enabled"/> + <check_box label="ã¡ãã£ã¢ãèªååçãã" name="autoplay_enabled"/> <text name="Logs:"> ãã°ïŒ </text> @@ -20,7 +20,7 @@ <check_box label="ã³ã³ãã¥ãŒã¿ãŒã« IM ãã°ãä¿åãã" name="log_instant_messages"/> <check_box label="ã¿ã€ã ã¹ã¿ã³ããè¿œå ãã" name="show_timestamps_check_im"/> <text name="log_path_desc"> - ãã°ã®ä¿åå Žæ + ãã°ã®ä¿åå ŽæïŒ </text> <button label="åç
§" label_selected="åç
§" name="log_path_button"/> <button label="ãããã¯ãªã¹ã" name="block_list"/> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_setup.xml b/indra/newview/skins/default/xui/ja/panel_preferences_setup.xml index 5911727c67..12e21709ae 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_setup.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="æäœãšã«ã¡ã©" name="Input panel"> +<panel label="ã»ããã¢ãã" name="Input panel"> <button label="ãã®ä»ã®ãã£ãã€ã¹" name="joystick_setup_button"/> <text name="Mouselook:"> äžäººç§°èŠç¹ïŒ @@ -26,9 +26,9 @@ MB </text> <button label="åç
§" label_selected="åç
§" name="set_cache"/> - <button label="ãªã»ãã" label_selected="èšå®" name="reset_cache"/> + <button label="ãªã»ãã" label_selected="ãªã»ãã" name="reset_cache"/> <text name="Cache location"> - ãã£ãã·ã¥ã®ä¿åå Žæ + ãã£ãã·ã¥ã®ä¿åå ŽæïŒ </text> <text name="Web:"> WebïŒ @@ -41,6 +41,6 @@ <line_editor name="web_proxy_editor" tool_tip="䜿çšãããããã·åãŸãã¯IPã¢ãã¬ã¹"/> <button label="åç
§" label_selected="åç
§" name="set_proxy"/> <text name="Proxy location"> - ãããã· + ãããã·ïŒ </text> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_sound.xml b/indra/newview/skins/default/xui/ja/panel_preferences_sound.xml index 9c8bda4c76..9fb0dd0b46 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_sound.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_sound.xml @@ -7,7 +7,7 @@ <slider label="ã¡ãã£ã¢" name="Media Volume"/> <slider label="å¹æé³" name="SFX Volume"/> <slider label="ã¹ããªãŒãã³ã°é³æ¥œ" name="Music Volume"/> - <check_box label="ãã€ã¹" name="enable_voice_check"/> + <check_box label="ãã€ã¹ãæå¹ã«ãã" name="enable_voice_check"/> <slider label="ãã€ã¹" name="Voice Volume"/> <text name="Listen from"> æ¹åïŒ diff --git a/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml index 629070a18a..0e1e2851e3 100644 --- a/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml +++ b/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml @@ -6,7 +6,36 @@ <string name="skip_step"> 0.2 </string> + <layout_stack name="progress_indicator_area"> + <panel name="media_progress_indicator"> + <progress_bar name="media_progress_bar" tool_tip="ããŒãã£ã³ã°"/> + </panel> + </layout_stack> <layout_stack name="media_controls"> + <layout_panel name="back"> + <button name="back_btn" tool_tip="Navigate back"/> + </layout_panel> + <layout_panel name="fwd"> + <button name="fwd_btn" tool_tip="Navigate forward"/> + </layout_panel> + <layout_panel name="home"> + <button name="home_btn" tool_tip="ããŒã ããŒãž"/> + </layout_panel> + <layout_panel name="media_stop"> + <button name="media_stop_btn" tool_tip="ã¡ãã£ã¢ãåæ¢"/> + </layout_panel> + <layout_panel name="reload"> + <button name="reload_btn" tool_tip="æŽæ°"/> + </layout_panel> + <layout_panel name="stop"> + <button name="stop_btn" tool_tip="èªã¿èŸŒã¿åæ¢"/> + </layout_panel> + <layout_panel name="play"> + <button name="play_btn" tool_tip="ã¡ãã£ã¢ãåç"/> + </layout_panel> + <layout_panel name="pause"> + <button name="pause_btn" tool_tip="ã¡ãã£ã¢ãäžæåæ¢"/> + </layout_panel> <layout_panel name="media_address"> <line_editor name="media_address_url" tool_tip="ã¡ãã£ã¢ URL"/> <layout_stack name="media_address_url_icons"> @@ -21,13 +50,24 @@ <layout_panel name="media_play_position"> <slider_bar initial_value="0.5" name="media_play_slider" tool_tip="ã ãŒããŒåçé²è¡"/> </layout_panel> + <layout_panel name="skip_back"> + <button name="skip_back_btn" tool_tip="Step back"/> + </layout_panel> + <layout_panel name="skip_forward"> + <button name="skip_forward_btn" tool_tip="Step forward"/> + </layout_panel> <layout_panel name="media_volume"> - <button name="media_volume_button" tool_tip="ãã¥ãŒã"/> + <button name="media_mute_button" tool_tip="ãã¥ãŒã"/> + <slider name="volume_slider" tool_tip="ã¡ãã£ã¢ã®é³é"/> + </layout_panel> + <layout_panel name="zoom_frame"> + <button name="zoom_frame_btn" tool_tip="ã¡ãã£ã¢ã«ãºãŒã ã€ã³"/> + </layout_panel> + <layout_panel name="close"> + <button name="close_btn" tool_tip="Zoom Back"/> + </layout_panel> + <layout_panel name="new_window"> + <button name="new_window_btn" tool_tip="URLããã©ãŠã¶ã§éã"/> </layout_panel> - </layout_stack> - <layout_stack> - <panel name="media_progress_indicator"> - <progress_bar name="media_progress_bar" tool_tip="ããŒãã£ã³ã°"/> - </panel> </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_profile.xml b/indra/newview/skins/default/xui/ja/panel_profile.xml index 767e26af4c..98969f5ab3 100644 --- a/indra/newview/skins/default/xui/ja/panel_profile.xml +++ b/indra/newview/skins/default/xui/ja/panel_profile.xml @@ -12,50 +12,41 @@ </string> <string name="my_account_link_url" value="http://secondlife.com/my/account/index.php?lang=ja-JP"/> <string name="no_partner_text" value="ãªã"/> + <string name="no_group_text" value="ãªã"/> <string name="RegisterDateFormat"> [REG_DATE] ([AGE]) </string> - <scroll_container name="profile_scroll"> - <panel name="scroll_content_panel"> - <panel name="second_life_image_panel"> - <text name="title_sl_descr_text" value="[SECOND_LIFE]ïŒ"/> - <expandable_text name="sl_description_edit"> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. - </expandable_text> - </panel> - <panel name="first_life_image_panel"> - <text name="title_rw_descr_text" value="çŸå®äžçïŒ"/> - <expandable_text name="fl_description_edit"> - Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. - </expandable_text> - </panel> - <text name="me_homepage_text"> - Web ãµã€ãïŒ - </text> - <text name="title_member_text" value="ã¡ã³ããŒç»é²ïŒ"/> - <text name="register_date" value="05/31/1976"/> - <text name="title_acc_status_text" value="ã¢ã«ãŠã³ãã®ç¶æ
ïŒ"/> - <text name="acc_status_text" value="äœäººã æ¯ææ
å ±æªç»é²"/> - <text name="title_partner_text" value="ããŒãããŒïŒ"/> - <panel name="partner_data_panel"> - <text name="partner_text" value="[FIRST] [LAST]"/> - </panel> - <text name="title_groups_text" value="ã°ã«ãŒãïŒ"/> - <expandable_text name="sl_groups"> - Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. - </expandable_text> - </panel> - </scroll_container> - <panel name="profile_buttons_panel"> - <button label="ãã¬ã³ãç»é²" name="add_friend"/> - <button label="IM" name="im"/> - <button label="ã³ãŒã«" name="call"/> - <button label="å°å³" name="show_on_map_btn"/> - <button label="ãã¬ããŒã" name="teleport"/> - <button label="âŒ" name="overflow_btn"/> - </panel> - <panel name="profile_me_buttons_panel"> - <button label="ãããã£ãŒã«ã®ç·šé" name="edit_profile_btn"/> - <button label="容姿ã®ç·šé" name="edit_appearance_btn"/> - </panel> + <layout_stack name="layout"> + <layout_panel name="profile_stack"> + <scroll_container name="profile_scroll"> + <panel name="profile_scroll_panel"> + <panel name="second_life_image_panel"> + <text name="title_sl_descr_text" value="[SECOND_LIFE]ïŒ"/> + </panel> + <panel name="first_life_image_panel"> + <text name="title_rw_descr_text" value="çŸå®äžçïŒ"/> + </panel> + <text name="title_member_text" value="äœäººãšãªã£ãæ¥ïŒ"/> + <text name="title_acc_status_text" value="ã¢ã«ãŠã³ãã®ç¶æ
ïŒ"/> + <text name="acc_status_text"> + äœäººã æ¯ææ
å ±æªç»é²ã + ãªã³ãã³ã + </text> + <text name="title_partner_text" value="ããŒãããŒïŒ"/> + <text name="title_groups_text" value="ã°ã«ãŒãïŒ"/> + </panel> + </scroll_container> + </layout_panel> + <layout_panel name="profile_buttons_panel"> + <button label="ãã¬ã³ãç»é²" name="add_friend" tool_tip="ãã¬ã³ãç»é²ãç³ãåºãŸã"/> + <button label="IM" name="im" tool_tip="ã€ã³ã¹ã¿ã³ãã¡ãã»ãŒãžãéããŸã"/> + <button label="ã³ãŒã«" name="call" tool_tip="ãã®äœäººã«ã³ãŒã«ãã"/> + <button label="å°å³" name="show_on_map_btn" tool_tip="äœäººãå°å³äžã§è¡šç€ºãã"/> + <button label="ãã¬ããŒã" name="teleport" tool_tip="ãã¬ããŒããéã"/> + </layout_panel> + <layout_panel name="profile_me_buttons_panel"> + <button label="ãããã£ãŒã«ã®ç·šé" name="edit_profile_btn" tool_tip="å人çãªæ
å ±ãç·šéããŸã"/> + <button label="容姿ã®ç·šé" name="edit_appearance_btn" tool_tip="èŠãç®ãäœæã»ç·šéããŸãïŒ ïŒèº«äœçããŒã¿ãè¡£é¡ãªã©ïŒ"/> + </layout_panel> + </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_region_estate.xml b/indra/newview/skins/default/xui/ja/panel_region_estate.xml index 348878a35e..976cfacb3f 100644 --- a/indra/newview/skins/default/xui/ja/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/ja/panel_region_estate.xml @@ -1,8 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="äžåç£" name="Estate"> <text name="estate_help_text"> - ãã®ã¿ãã®èšå®ãå€æŽãããšãã®äžåç£å
-ã®å
šãŠã®å°åã«åœ±é¿ãäžããŸãã + ãã®ã¿ãã®èšå®ãžã®å€æŽã¯ããšã¹ããŒãå
ã®ãã¹ãŠã®ãªãŒãžã§ã³ã«åœ±é¿ãããŸãã </text> <text name="estate_text"> äžåç£ïŒ @@ -17,10 +16,10 @@ ïŒäžæïŒ </text> <text name="Only Allow"> - 次ãžã®ã¢ã¯ã»ã¹ãå¶éïŒ + 次ã®ã¢ã«ãŠã³ãã®ã¢ã¯ã»ã¹çŠæ¢ïŒ </text> - <check_box label="æ¯æãæ
å ±ç»é²æžã¿ã®äœäºº" name="limit_payment" tool_tip="æªç¢ºèªã®äœäººã®ç«å
¥ãçŠæ¢ããŸã"/> - <check_box label="幎霢確èªæžã¿ã®æ人" name="limit_age_verified" tool_tip="幎霢確èªãæžãŸããŠããªãäœäººãç«å
¥çŠæ¢ã«ããŸãã 詳ããæ
å ±ã¯ [SUPPORT_SITE] ãã芧äžããã"/> + <check_box label="æ¯ææ
å ±ç»é²æž" name="limit_payment" tool_tip="æªç¢ºèªã®äœäººã®ç«å
¥ãçŠæ¢ããŸã"/> + <check_box label="幎霢確èª" name="limit_age_verified" tool_tip="幎霢確èªãæžãŸããŠããªãäœäººã®ç«å
¥ãçŠæ¢ããŸãã 詳ããæ
å ±ã¯ [SUPPORT_SITE] ãã芧äžããã"/> <check_box label="ãã€ã¹ãã£ãããèš±å¯" name="voice_chat_check"/> <button label="?" name="voice_chat_help"/> <text name="abuse_email_text"> diff --git a/indra/newview/skins/default/xui/ja/panel_region_general.xml b/indra/newview/skins/default/xui/ja/panel_region_general.xml index 690cf3f33d..00be5b6b03 100644 --- a/indra/newview/skins/default/xui/ja/panel_region_general.xml +++ b/indra/newview/skins/default/xui/ja/panel_region_general.xml @@ -39,10 +39,10 @@ <text label="æ人æå®" name="access_text"> åºåïŒ </text> - <combo_box label="Mature" name="access_combo"> + <combo_box label="æ§ãã" name="access_combo"> <combo_box.item label="Adult" name="Adult"/> - <combo_box.item label="Mature" name="Mature"/> - <combo_box.item label="PG" name="PG"/> + <combo_box.item label="æ§ãã" name="Mature"/> + <combo_box.item label="äžè¬" name="PG"/> </combo_box> <button label="?" name="access_help"/> <button label="é©çš" name="apply_btn"/> diff --git a/indra/newview/skins/default/xui/ja/panel_region_general_layout.xml b/indra/newview/skins/default/xui/ja/panel_region_general_layout.xml new file mode 100644 index 0000000000..9673953d06 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/panel_region_general_layout.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel label="ãªãŒãžã§ã³ïŒå°åïŒ" name="General"> + <text name="region_text_lbl"> + ãªãŒãžã§ã³: + </text> + <text name="region_text"> + äžæ + </text> + <text name="version_channel_text_lbl"> + ããŒãžã§ã³ïŒ + </text> + <text name="version_channel_text"> + äžæ + </text> + <text name="region_type_lbl"> + çš®é¡ïŒ + </text> + <text name="region_type"> + äžæ + </text> + <check_box label="å°åœ¢ç·šéããããã¯" name="block_terraform_check"/> + <check_box label="é£è¡ããããã¯" name="block_fly_check"/> + <check_box label="ãã¡ãŒãžãèš±å¯" name="allow_damage_check"/> + <check_box label="ããã·ã¥ãå¶é" name="restrict_pushobject"/> + <check_box label="åå°ã®å販ãèš±å¯" name="allow_land_resell_check"/> + <check_box label="åå°ã®çµ±åã»åå²ãèš±å¯" name="allow_parcel_changes_check"/> + <check_box label="åå°ã®æ€çŽ¢æ瀺ããããã¯" name="block_parcel_search_check" tool_tip="ãã®ãªãŒãžã§ã³ãšãªãŒãžã§ã³å
ã®åºç»ãæ€çŽ¢çµæã«è¡šç€ºãã"/> + <spinner label="ã¢ãã¿ãŒæ°äžé" name="agent_limit_spin"/> + <spinner label="ãªããžã§ã¯ãããŒãã¹" name="object_bonus_spin"/> + <text label="ã¬ãŒãã£ã³ã°åºå" name="access_text"> + ã¬ãŒãã£ã³ã°åºåïŒ + </text> + <combo_box label="æ§ãã" name="access_combo"> + <combo_box.item label="ã¢ãã«ã" name="Adult"/> + <combo_box.item label="æ§ãã" name="Mature"/> + <combo_box.item label="äžè¬" name="PG"/> + </combo_box> + <button label="é©çš" name="apply_btn"/> + <button label="ãŠãŒã¶ãŒ1åãããŒã ã«ãã¬ããŒã..." name="kick_btn"/> + <button label="ãŠãŒã¶ãŒå
šå¡ãããŒã ã«ãã¬ããŒã..." name="kick_all_btn"/> + <button label="ãªãŒãžã§ã³ã«ã¡ãã»ãŒãžãéä¿¡..." name="im_btn"/> + <button label="ãã¬ããã®ç®¡ç..." name="manage_telehub_btn"/> +</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_region_texture.xml b/indra/newview/skins/default/xui/ja/panel_region_texture.xml index d32d8f9e5d..ea784df127 100644 --- a/indra/newview/skins/default/xui/ja/panel_region_texture.xml +++ b/indra/newview/skins/default/xui/ja/panel_region_texture.xml @@ -45,11 +45,10 @@ <spinner label="é«" name="height_range_spin_2"/> <spinner label="é«" name="height_range_spin_3"/> <text name="height_text_lbl10"> - æ°å€ã¯äžã®ãã¯ã¹ãã£ã®ãã¬ã³ãç¯å²ã瀺ããŸã + æ°å€ã¯äžã®ãã¯ã¹ãã£ã®ãã¬ã³ãç¯å²ã瀺ããŸãã </text> <text name="height_text_lbl11"> - èšæž¬åäœã¯ã¡ãŒãã«ã§ããäœãã®å€ã¯ 1 çªã®ãã¯ã¹ãã£ã®é«ãã®æ倧å€ã§ãã -ãé«ãã®å€ã¯ã4 çªã®ãã¯ã¹ãã£ã®é«ãã®æäœå€ã§ãã + èšæž¬åäœã¯ã¡ãŒãã«ã§ããäœãã®å€ã¯ã1çªã®ãã¯ã¹ãã£ã®é«ãã®ãæ倧å€ãã§ãããé«ãã®å€ã¯ã4çªã®ãã¯ã¹ãã£ã®é«ãã®ãæäœå€ãã§ãã </text> <text name="height_text_lbl12"> ãããŠãé«ãã®å€ã¯ãã¯ã¹ãã£ãŒ#4ã®é«ãã®äžéãšãªããŸãã diff --git a/indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml new file mode 100644 index 0000000000..e8b5be63ae --- /dev/null +++ b/indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel label="ã〠ã¢ãã¿ãŒ" name="script_limits_my_avatar_panel"> + <text name="loading_text"> + ããŒãã£ã³ã°... + </text> + <scroll_list name="scripts_list"> + <scroll_list.columns label="ãµã€ãº ïŒkbïŒ" name="size"/> + <scroll_list.columns label="URL" name="urls"/> + <scroll_list.columns label="ãªããžã§ã¯ãå" name="name"/> + <scroll_list.columns label="å Žæ" name="location"/> + </scroll_list> + <button label="ãªã¹ãæŽæ°" name="refresh_list_btn"/> +</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml new file mode 100644 index 0000000000..fe0b44d8f4 --- /dev/null +++ b/indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<panel label="ãªãŒãžã§ã³ã¡ã¢ãª" name="script_limits_region_memory_panel"> + <text name="script_memory"> + åºç»ã¹ã¯ãªããã¡ã¢ãª + </text> + <text name="parcels_listed"> + åºç»ææè
ïŒ + </text> + <text name="memory_used"> + 䜿çšãããã¡ã¢ãªïŒ + </text> + <text name="loading_text"> + ããŒãã£ã³ã°... + </text> + <scroll_list name="scripts_list"> + <scroll_list.columns label="ãµã€ãº ïŒkbïŒ" name="size"/> + <scroll_list.columns label="ãªããžã§ã¯ãå" name="name"/> + <scroll_list.columns label="ãªããžã§ã¯ãã®ææè
" name="owner"/> + <scroll_list.columns label="åºç»ã»äœçœ®" name="location"/> + </scroll_list> + <button label="ãªã¹ãæŽæ°" name="refresh_list_btn"/> + <button label="ãã€ã©ã€ã" name="highlight_btn"/> + <button label="è¿åŽ" name="return_btn"/> +</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_side_tray.xml b/indra/newview/skins/default/xui/ja/panel_side_tray.xml index 6ec6b3422e..ce5f0b940c 100644 --- a/indra/newview/skins/default/xui/ja/panel_side_tray.xml +++ b/indra/newview/skins/default/xui/ja/panel_side_tray.xml @@ -2,9 +2,13 @@ <!-- Side tray cannot show background because it is always partially on screen to hold tab buttons. --> <side_tray name="sidebar"> + <sidetray_tab description="ãµã€ãããŒã衚瀺ã»é衚瀺" name="sidebar_openclose"/> <sidetray_tab description="ããŒã ã" name="sidebar_home"> <panel label="ããŒã " name="panel_home"/> </sidetray_tab> + <sidetray_tab description="ããªãã®å
¬éãããã£ãŒã«ãšããã¯ãç·šéããŠãã ããã" name="sidebar_me"> + <panel label="ããŒ" name="panel_me"/> + </sidetray_tab> <sidetray_tab description="ãã¬ã³ããé£çµ¡å
ãè¿ãã®äººãæ¢ããŠãã ããã" name="sidebar_people"> <panel_container name="panel_container"> <panel label="ã°ã«ãŒãæ
å ±" name="panel_group_info_sidetray"/> @@ -14,13 +18,10 @@ <sidetray_tab description="è¡ãããå Žæãè¡ã£ãããšã®ããå Žæãæ¢ããŠãã ããã" label="å Žæ" name="sidebar_places"> <panel label="å Žæ" name="panel_places"/> </sidetray_tab> - <sidetray_tab description="ããªãã®å
¬éãããã£ãŒã«ãšããã¯ãç·šéããŠãã ããã" name="sidebar_me"> - <panel label="ããŒ" name="panel_me"/> + <sidetray_tab description="ããªãã®æã¡ç©ãçºããŠãã ããã" name="sidebar_inventory"> + <panel label="æã¡ç©ãç·šé" name="sidepanel_inventory"/> </sidetray_tab> <sidetray_tab description="ããªãã®å®¹å§¿ãçŸåšã®èŠãç®ãå€æŽããŠãã ããã" name="sidebar_appearance"> <panel label="容姿ã®ç·šé" name="sidepanel_appearance"/> </sidetray_tab> - <sidetray_tab description="ããªãã®æã¡ç©ãçºããŠãã ããã" name="sidebar_inventory"> - <panel label="æã¡ç©ãç·šé" name="sidepanel_inventory"/> - </sidetray_tab> </side_tray> 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 5d122cb8cd..063e584762 100644 --- a/indra/newview/skins/default/xui/ja/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/ja/panel_status_bar.xml @@ -21,7 +21,8 @@ <panel.string name="buycurrencylabel"> L$ [AMT] </panel.string> - <button label="" label_selected="" name="buycurrency" tool_tip="ç§ã®æ®é«ïŒ ã¯ãªãã¯ã㊠L$ ã賌å
¥ããŸã"/> + <button label="" label_selected="" name="buycurrency" tool_tip="ç§ã®æ®é«"/> + <button label="L$ ã®è³Œå
¥" name="buyL" tool_tip="ã¯ãªãã¯ã㊠L$ ã賌å
¥ããŸã"/> <text name="TimeText" tool_tip="çŸåšæå»ïŒå€ªå¹³æŽïŒ"> 12ïŒ00 AM </text> diff --git a/indra/newview/skins/default/xui/ja/panel_teleport_history.xml b/indra/newview/skins/default/xui/ja/panel_teleport_history.xml index 70969f7ac0..2264ae965b 100644 --- a/indra/newview/skins/default/xui/ja/panel_teleport_history.xml +++ b/indra/newview/skins/default/xui/ja/panel_teleport_history.xml @@ -11,5 +11,7 @@ <accordion_tab name="1_month_and_older" title="1ã¶æ以äžå"/> <accordion_tab name="6_months_and_older" title="å幎以äžå"/> </accordion> - <panel label="bottom_panel" name="bottom_panel"/> + <panel label="bottom_panel" name="bottom_panel"> + <button name="gear_btn" tool_tip="ãã®ä»ã®ãªãã·ã§ã³ã衚瀺"/> + </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/ja/panel_teleport_history_item.xml index 9d18c52442..c570cd5696 100644 --- a/indra/newview/skins/default/xui/ja/panel_teleport_history_item.xml +++ b/indra/newview/skins/default/xui/ja/panel_teleport_history_item.xml @@ -1,4 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="teleport_history_item"> <text name="region" value="..."/> + <button name="profile_btn" tool_tip="ã¢ã€ãã æ
å ±ã衚瀺"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/role_actions.xml b/indra/newview/skins/default/xui/ja/role_actions.xml index 9a58f753e5..59fceca2db 100644 --- a/indra/newview/skins/default/xui/ja/role_actions.xml +++ b/indra/newview/skins/default/xui/ja/role_actions.xml @@ -1,205 +1,76 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> <role_actions> - <action_set - description="ãããã®èœåã«ã¯ãã°ã«ãŒãã»ã¡ã³ããŒãè¿œå ãæé€ããæåŸ
ç¶ãªãã«æ°ã¡ã³ããŒã®åå ãèªããæš©éãå«ãŸããŸãã" - name="Membership"> - <action description="ãã®ã°ã«ãŒãã«äººãæåŸ
" - longdescription="ã°ã«ãŒãã«äººãæåŸ
ããã«ã¯ããã¡ã³ããŒãšåœ¹å²ãã¿ãïŒãã¡ã³ããŒããµãã¿ãã®ãæ°ãã人ãæåŸ
...ããã¿ã³ã䜿ããŸãã" - name="member invite" value="1" /> - <action description="ã¡ã³ããŒããã®ã°ã«ãŒãããè¿œæŸ" - longdescription="ã¡ã³ããŒããã®ã°ã«ãŒãããè¿œæŸããã«ã¯ããã¡ã³ããŒãšåœ¹å²ãã¿ã ïŒ ã圹å²ããµãã¿ãã®ãã°ã«ãŒãããè¿œæŸãã䜿ããŸãã ãªãŒããŒã¯ãä»ã®ãªãŒããŒä»¥å€ã®ä»»æã®ã¡ã³ããŒãè¿œæŸã§ããŸãã ãªãŒããŒã§ãªããŠãŒã¶ãŒãã°ã«ãŒãããã¡ã³ããŒãè¿œæŸã§ããã®ã¯ããã®ã¡ã³ããŒããå
šå¡ãã®åœ¹å²ã«ã®ã¿æå±ããŠãããä»ã®åœ¹å²ã«æå±ããŠããªãå Žåã ãã§ãã 圹å²ããã¡ã³ããŒãé€å€ããã«ã¯ãã圹å²ããã¡ã³ããŒãé€å€ãèœåãæããŠããå¿
èŠããããŸãã" - name="member eject" value="2" /> - <action description="ãäŒå¡åéãã«åãæ¿ãããå
¥äŒè²»ããå€æŽã" - longdescription="æåŸ
ç¶ãªãã«æ°ã¡ã³ããŒãå å
¥ã§ããããã«ãäŒå¡åéãã«åãæ¿ãããäžè¬ãã¿ãã®ãã°ã«ãŒãç°å¢èšå®ãã»ã¯ã·ã§ã³ãããå
¥äŒè²»ããå€æŽããŸãã" - name="member options" value="3" /> + <action_set description="ãããã®èœåã«ã¯ãã°ã«ãŒãã»ã¡ã³ããŒãè¿œå ãæé€ããæåŸ
ç¶ãªãã«æ°ã¡ã³ããŒã®åå ãèªããæš©éãå«ãŸããŸãã" name="Membership"> + <action description="ãã®ã°ã«ãŒãã«äººãæåŸ
" longdescription="ã圹å²ãã»ã¯ã·ã§ã³ã®ãã¡ã³ããŒãã¿ãå
ã«ãããæåŸ
ããã¿ã³ãæŒããŠããã®ã°ã«ãŒãã«ã¡ã³ããŒãæåŸ
ããŸãã" name="member invite" value="1"/> + <action description="ã¡ã³ããŒããã®ã°ã«ãŒãããè¿œæŸ" longdescription="ã圹å²ãã»ã¯ã·ã§ã³ã®ãã¡ã³ããŒãã¿ãå
ã«ãããè¿œæŸããã¿ã³ãæŒããŠããã®ã°ã«ãŒãããã¡ã³ããŒãè¿œæŸããŸãã ããªãŒããŒãã¯ãä»ã®ããªãŒããŒã以å€ã¯èª°ã§ãè¿œæŸã§ããŸãã ããªãŒããŒãã§ã¯ãªã人ããå
šå¡ïŒEveryoneïŒãã«ãã圹å²ããªãå Žåãã¡ã³ããŒã¯ã°ã«ãŒãããè¿œæŸãããããšããããŸãã ã圹å²ãããã¡ã³ããŒãåé€ããã«ã¯ãã圹å²ããã¡ã³ããŒãåé€ãã®èœåãäžããããŠããå¿
èŠããããŸãã" name="member eject" value="2"/> + <action description="ãèªç±åå ããšãå
¥äŒè²»ãã®åãæ¿ã" longdescription="ãèªç±åå ãã«åãæ¿ãããšãæåŸ
ãããªããŠãæ°ããã¡ã³ããŒãå
¥äŒã§ããŸãããå
¥äŒè²»ãã¯ãäžè¬ãã»ã¯ã·ã§ã³ã§å€æŽããŸãã" name="member options" value="3"/> </action_set> - <action_set - description="ãããã®èœåã«ã¯ãã°ã«ãŒãå
ã®åœ¹å²ãè¿œå ãåé€ãå€æŽãã圹å²ã«ã¡ã³ããŒãè¿œå ãåé€ããããã«åœ¹å²ãžèœåãå²ãåœãŠãæš©éãå«ãŸããŸãã" - name="Roles"> - <action description="æ°ãã圹å²ãäœæ" - longdescription="ãã¡ã³ããŒãšåœ¹å²ãã¿ã ïŒ ã圹å²ããµãã¿ãã§æ°ãã圹å²ãäœæ" - name="role create" value="4" /> - <action description="圹å²ãåé€" - longdescription="圹å²ãåé€ããã«ã¯ããã¡ã³ããŒãšåœ¹å²ãã¿ã ïŒ ã圹å²ããµãã¿ãã䜿ããŸãã" - name="role delete" value="5" /> - <action description="圹å²åãã¿ã€ãã«ã説æãå€æŽ" - longdescription="圹å²åãã¿ã€ãã«ã説æãå€æŽããã«ã¯ã圹å²ãéžæããåŸããã¡ã³ããŒãšåœ¹å²ãã¿ã ïŒ ã圹å²ããµãã¿ãã®äžéšåã䜿ããŸãã" - name="role properties" value="6" /> - <action description="ã¡ã³ããŒãå²ãåœãŠäººã®åœ¹å²ã«å²ãåœãŠã" - longdescription="ã¡ã³ããŒãå²ãåœãŠäººã®åœ¹å²ã«å²ãåœãŠãã«ã¯ããã¡ã³ããŒãšåœ¹å²ãã¿ãïŒã圹å²ããµãã¿ãã®å²ãåœãŠããã圹å²ã»ã¯ã·ã§ã³ã䜿ããŸãã ãã®èœåãæã€ã¡ã³ããŒã¯ãå²ãåœãŠäººãçŸåšæå±ããŠãã圹å²ã«å¯ŸããŠã®ã¿ã¡ã³ããŒãè¿œå ã§ããŸãã" - name="role assign member limited" value="7" /> - <action description="ã¡ã³ããŒãä»»æã®åœ¹å²ã«å²ãåœãŠã" - longdescription="ã¡ã³ããŒãä»»æã®åœ¹å²ã«å²ãåœãŠãã«ã¯ããã¡ã³ããŒãšåœ¹å²ãã¿ãïŒã圹å²ããµãã¿ãã®å²ãåœãŠããã圹å²ã»ã¯ã·ã§ã³ã䜿ããŸãã *èŠå* ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãèªåèªèº«ãä»ã®ã¡ã³ããŒãçŸåšã®åœ¹å²ããã匷åãªåœ¹å²ã«å²ãåœãŠãããšãã§ããŸãããã®ããããªãŒããŒä»¥å€ã®ã¡ã³ããŒã«å¯ŸããŠããªãŒããŒã«è¿ããã¯ãŒãäžããããšãå¯èœã§ãã ãã®èœåã®å²ãåœãŠã¯ããã®ããšãç解ããäžã§è¡ã£ãŠãã ããã" - name="role assign member" value="8" /> - <action description="圹å²ããã¡ã³ããŒã解é€" - longdescription="ã¡ã³ããŒã圹å²ãã解é€ããã«ã¯ããã¡ã³ããŒãšåœ¹å²ãã¿ãïŒãã¡ã³ããŒããµãã¿ãã®ãå²ãåœãŠããã圹å²ãã»ã¯ã·ã§ã³ã䜿ããŸãã ãªãŒããŒã¯è§£é€ã§ããŸããã" - name="role remove member" value="9" /> - <action description="圹å²ã®èœåã®å²ãåœãŠãšè§£é€" - longdescription="圹å²ã®èœåã®å²ãåœãŠãšè§£é€ã¯ããã¡ã³ããŒãšåœ¹å²ãã¿ãïŒã圹å²ããµãã¿ãã®èš±å¯ãããèœåã»ã¯ã·ã§ã³ã§è¡ããŸãã *èŠå* ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ããã¹ãŠã®èœåãèªåèªèº«ãä»ã®ã¡ã³ããŒã«å²ãåœãŠãããšãã§ããŸãããã®ããããªãŒããŒä»¥å€ã®ã¡ã³ããŒã«å¯ŸããŠããªãŒããŒã«è¿ããã¯ãŒãæãããããšãå¯èœã§ãã ãã®èœåã®å²ãåœãŠã¯ããã®ããšãç解ããäžã§è¡ã£ãŠãã ããã" - name="role change actions" value="10" /> + <action_set description="ãããã®èœåã«ã¯ãã°ã«ãŒãå
ã®åœ¹å²ãè¿œå ãåé€ãå€æŽãã圹å²ã«ã¡ã³ããŒãè¿œå ãåé€ããããã«åœ¹å²ãžèœåãå²ãåœãŠãæš©éãå«ãŸããŸãã" name="Roles"> + <action description="æ°ãã圹å²ãäœæ" longdescription="æ°ããã圹å²ãã¯ãã圹å²ãã»ã¯ã·ã§ã³ > ã圹å²ãã¿ãã§äœæããŸãã" name="role create" value="4"/> + <action description="圹å²ãåé€" longdescription="ã圹å²ãã¯ãã圹å²ãã»ã¯ã·ã§ã³ > ã圹å²ãã¿ãã§åé€ã§ããŸãã" name="role delete" value="5"/> + <action description="ã圹å²ãã®ååãè©æžãã説æãã¡ã³ããŒå
¬éã®æç¡ãå€æŽ" longdescription="ã圹å²ãã®ååãè©æžãã説æãã¡ã³ããŒå
¬éã®æç¡ãå€æŽããŸãã ã圹å²ããéžæåŸã«ãã圹å²ãã»ã¯ã·ã§ã³ > ã圹å²ãã¿ã ã®äžã§èšå®ã§ããŸãã" name="role properties" value="6"/> + <action description="ã¡ã³ããŒãå²ãåœãŠäººã®åœ¹å²ã«å²ãåœãŠã" longdescription="ãå²ãåœãŠããã圹å²ãïŒã圹å²ãã»ã¯ã·ã§ã³ > ãã¡ã³ããŒãã¿ãïŒã®ãªã¹ãã§ãã¡ã³ããŒãã圹å²ãã«å²ãåœãŠãŸãã ãã®èœåãããã¡ã³ããŒã¯ãå²ãåœãŠã人ãæ¢ã«æå±ããã圹å²ãã«ã®ã¿ã¡ã³ããŒãè¿œå ã§ããŸãã" name="role assign member limited" value="7"/> + <action description="ã¡ã³ããŒãä»»æã®åœ¹å²ã«å²ãåœãŠã" longdescription="ãå²ãåœãŠããã圹å²ãïŒã圹å²ãã»ã¯ã·ã§ã³ > ãã¡ã³ããŒãã¿ãïŒã®ãªã¹ãã§ãã¡ã³ããŒãã©ã®ã圹å²ãã«ãå²ãåœãŠãããšãã§ããŸãã *èŠå* ãã®ãèœåããããã圹å²ããæã€ã¡ã³ããŒãªã誰ã§ãèªåèªèº«ãšãä»ã®ããªãŒããŒã以å€ã®ã¡ã³ããŒãçŸåšä»¥äžã®æš©éã®ããã圹å²ãã«å²ãåœãŠãããšãã§ããŸããã€ãŸããããªãŒããŒã以å€ã®äººãããªãŒããŒãã«è¿ãåãæã€ããèšå®ã§ããããšã«ãªããŸãã ãã®ãèœåããå²ãåœãŠãåã«ãèªåãããããšããŠããããšãããææ¡ããŠãã ããã" name="role assign member" value="8"/> + <action description="圹å²ããã¡ã³ããŒã解é€" longdescription="ãå²ãåœãŠããã圹å²ãïŒã圹å²ãã»ã¯ã·ã§ã³ > ãã¡ã³ããŒãã¿ãïŒã®ãªã¹ãã§ãã¡ã³ããŒãã圹å²ãããåé€ããŸãã ããªãŒããŒãã¯åé€ã§ããŸããã" name="role remove member" value="9"/> + <action description="圹å²ã®èœåã®å²ãåœãŠãšè§£é€" longdescription="ãèš±å¯ãããèœåãïŒã圹å²ãã»ã¯ã·ã§ã³ > ã圹å²ãã¿ãïŒã®ãªã¹ãã«ãããåã圹å²ãã®ãèœåããå²ãåœãŠãããåé€ããŸãã *èŠå* ãã®ãèœåããããã圹å²ããæã€ã¡ã³ããŒãªã誰ã§ãèªåèªèº«ãšãä»ã®ããªãŒããŒã以å€ã®ã¡ã³ããŒããã¹ãŠã®ãèœåããã«å²ãåœãŠãããšãã§ããŸããã€ãŸããããªãŒããŒã以å€ã®äººãããªãŒããŒãã«è¿ãæš©éãæã€ããèšå®ã§ããããšã«ãªããŸãã ãã®ãèœåããå²ãåœãŠãåã«ãèªåãããããšããŠããããšãããææ¡ããŠãã ããã" name="role change actions" value="10"/> </action_set> - <action_set - description="ãããã®èœåã«ã¯ãã°ã«ãŒãã®å
¬éæ§ãç念ãèšç« ã®å€æŽãšãã£ããã°ã«ãŒãã®ã¢ã€ãã³ãã£ãã£ãä¿®æ£ããæš©éãå«ãŸããŸãã" - name="Group Identity"> - <action - description="ç念ãèšç« ããWebäžã§å
¬éããããã³ã°ã«ãŒãæ
å ±å
ã§å
¬éã®ã¡ã³ããŒãå€æŽã" - longdescription="ç念ãèšç« ããWebäžã§å
¬éããããã³ã°ã«ãŒãæ
å ±å
ã§å
¬éã®ã¡ã³ããŒãå€æŽããŸãã ãã®æäœã«ã¯ãäžè¬ã¿ãã䜿çšããŸãã" - name="group change identity" value="11" /> + <action_set description="ãããã®èœåã«ã¯ãã°ã«ãŒãã®å
¬éæ§ãç念ãèšç« ã®å€æŽãšãã£ããã°ã«ãŒãã®ã¢ã€ãã³ãã£ãã£ãä¿®æ£ããæš©éãå«ãŸããŸãã" name="Group Identity"> + <action description="ç念ãèšç« ããWebäžã§å
¬éããããã³ã°ã«ãŒãæ
å ±å
ã§å
¬éã®ã¡ã³ããŒãå€æŽã" longdescription="ç念ãèšç« ããæ€çŽ¢ã«è¡šç€ºãã®å€æŽãããŸãã ãäžè¬ãã»ã¯ã·ã§ã³ã§è¡ããŸãã" name="group change identity" value="11"/> </action_set> - <action_set - description="ãããã®èœåã«ã¯ãã°ã«ãŒãææã®åå°ãè²æž¡ãä¿®æ£ã販売ããæš©éãå«ãŸããŸãã ãåå°æ
å ±ãã®ãŠã£ã³ããŠãéãã«ã¯ãå°é¢ãå³ã¯ãªãã¯ããŠãåå°æ
å ±ããéžæããããã¡ãã¥ãŒããŒã®ãåºç»æ
å ±ããã¯ãªãã¯ããŸãã" - name="Parcel Management"> - <action description="ã°ã«ãŒãçšã®åå°ã®è²æž¡ãšè³Œå
¥" - longdescription="ã°ã«ãŒãçšã®åå°ã®è²æž¡ãšè³Œå
¥ãè¡ããŸãã ãã®æäœã«ã¯ãåå°æ
å ±ç»é¢ ïŒ äžè¬ã¿ãã䜿ããŸãã" - name="land deed" value="12" /> - <action description="Lindenç·ç£ã«åå°ãæãæž¡ã" - longdescription="Lindenç·ç£ã«åå°ãæãæž¡ããŸãã *èŠå* ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ããåå°æ
å ±ãïŒãäžè¬ãã§ã°ã«ãŒãææã®åå°ãæŸæ£ããŠã売ãäžããªãã§Lindenç·ç£ã«æãæž¡ãããšãã§ããŸãã ãã®èœåã®å²ãåœãŠã¯ããã®ããšãç解ããäžã§è¡ã£ãŠãã ããã" - name="land release" value="13" /> - <action description="売ãå°æ
å ±ã®èšå®" - longdescription="売ãå°æ
å ±ãèšå®ããŸãã *èŠå* ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ããåå°æ
å ±ãïŒãäžè¬ãã¿ãã§ã°ã«ãŒãææã®åå°ãèªåã®æãã©ããã«è²©å£²ããããšãã§ããŸãã ãã®èœåã®å²ãåœãŠã¯ããã®ããšãç解ããäžã§è¡ã£ãŠãã ããã" - name="land set sale info" value="14" /> - <action description="åºç»ã®ååå²ãšçµ±å" - longdescription="åºç»ãååå²ããã³çµ±åããŸãã ãã®æäœãå®è¡ããã«ã¯ãå°é¢ãå³ã¯ãªãã¯ããŠãå°åœ¢ãç·šéããéžæããåå°ã®äžã§ããŠã¹ããã©ãã°ããŠç¯å²ãéžæããŸãã ååå²ããã«ã¯ãåå²å¯Ÿè±¡ãéžæããåŸããååå²...ããã¯ãªãã¯ããŸãã çµ±åããã«ã¯ãè€æ°ã®é£æ¥ããåºç»ãéžæããåŸããçµ±å...ããã¯ãªãã¯ããŸãã" - name="land divide join" value="15" /> + <action_set description="ãããã®ãèœåãã«ã¯ããã®ã°ã«ãŒãã®ææå°ã®è²æž¡ãä¿®æ£ã販売ãããæš©éããããŸãã ãåå°æ
å ±ããŠã£ã³ããŠãèŠãã«ã¯ãå°é¢ãå³ã¯ãªãã¯ããŠãåå°æ
å ±ããéžã¶ããããã²ãŒã·ã§ã³ããŒã®ãiãã¢ã€ã³ã³ãã¯ãªãã¯ããŸãã" name="Parcel Management"> + <action description="ã°ã«ãŒãçšã®åå°ã®è²æž¡ãšè³Œå
¥" longdescription="ã°ã«ãŒãçšã®åå°ã®è²æž¡ãšè³Œå
¥ãè¡ããŸãã ãã®æäœã«ã¯ãåå°æ
å ±ç»é¢ ïŒ äžè¬ã¿ãã䜿ããŸãã" name="land deed" value="12"/> + <action description="Lindenç·ç£ã«åå°ãæãæž¡ã" longdescription="Lindenç·ç£ã«åå°ãæãæž¡ããŸãã *èŠå* ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ããåå°æ
å ±ãïŒãäžè¬ãã§ã°ã«ãŒãææã®åå°ãæŸæ£ããŠã売ãäžããªãã§Lindenç·ç£ã«æãæž¡ãããšãã§ããŸãã ãã®èœåã®å²ãåœãŠã¯ããã®ããšãç解ããäžã§è¡ã£ãŠãã ããã" name="land release" value="13"/> + <action description="売ãå°æ
å ±ã®èšå®" longdescription="売ãå°æ
å ±ãèšå®ããŸãã *èŠå* ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ããåå°æ
å ±ãïŒãäžè¬ãã¿ãã§ã°ã«ãŒãææã®åå°ãèªåã®æãã©ããã«è²©å£²ããããšãã§ããŸãã ãã®èœåã®å²ãåœãŠã¯ããã®ããšãç解ããäžã§è¡ã£ãŠãã ããã" name="land set sale info" value="14"/> + <action description="åºç»ã®ååå²ãšçµ±å" longdescription="åºç»ãååå²ãçµ±åããŸãã å°é¢ãå³ã¯ãªãã¯ããŠãå°åœ¢ãç·šéããéžã³ãããŠã¹ãåå°ã®äžã§ãã©ãã°ããŠç¯å²ãéžæããŸãã ååå²ããã«ã¯ãåå²å¯Ÿè±¡ãéžãã§ãååå²ããã¯ãªãã¯ããŸãã çµ±åããã«ã¯ã2ã€ä»¥äžã®é£æ¥ããåºç»ãéžãã§ãçµ±åããã¯ãªãã¯ããŸãã" name="land divide join" value="15"/> </action_set> - <action_set - description="ãããã®èœåã«ã¯ãåºç»åãå
¬éèšå®ãæ€çŽ¢ãã£ã¬ã¯ããªãžã®ç»é²ãçå°ç¹ãªãã³ã«TPã«ãŒãã®ãªãã·ã§ã³ãå€æŽããæš©éãå«ãŸããŸãã" - name="Parcel Identity"> - <action description="ãå Žææ€çŽ¢ã«è¡šç€ºãã«åãæ¿ããã«ããŽãªãŒãèšå®" - longdescription="ãå Žææ€çŽ¢ã«è¡šç€ºãã«åãæ¿ãããåå°æ
å ±ãïŒããªãã·ã§ã³ãã¿ãã§ã«ããŽãªãŒãèšå®" - name="land find places" value="17" /> - <action description="åºç»åã説æããWebäžã§å
¬éãã®èšå®ãå€æŽ" - longdescription="åºç»åã説æããWebäžã§å
¬éãã®èšå®ãå€æŽã ãã®æäœã«ã¯ããåå°æ
å ±ã ïŒ ããªãã·ã§ã³ãã¿ãã䜿ããŸãã" - name="land change identity" value="18" /> - <action description="çå°ç¹ããã³ãã¬ããŒãã»ã«ãŒããèšå®" - longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãã°ã«ãŒãææã®åºç»äžã§çå°ç¹ãèšå®ããããšã«ããå€éšããã®ãã¬ããŒãã®å°çäœçœ®ãæå®ã§ãããšå
±ã«ããã¬ããŒãã»ã«ãŒããèšå®ããŠçŽ°ããå¶åŸ¡ããããšãã§ããŸãã ãã®æäœã¯ããåå°æ
å ±ãïŒããªãã·ã§ã³ãã¿ãã§è¡ããŸãã" - name="land set landing point" value="19" /> + <action_set description="ãããã®èœåã«ã¯ãåºç»åãå
¬éèšå®ãæ€çŽ¢ãã£ã¬ã¯ããªãžã®ç»é²ãçå°ç¹ãªãã³ã«TPã«ãŒãã®ãªãã·ã§ã³ãå€æŽããæš©éãå«ãŸããŸãã" name="Parcel Identity"> + <action description="ãå Žææ€çŽ¢ã«è¡šç€ºããåãæ¿ãã«ããŽãªãèšå®" longdescription="ãå Žææ€çŽ¢ã«è¡šç€ºãã«åãæ¿ãããåå°æ
å ±ã > ããªãã·ã§ã³ãã¿ãã§åºç»ã®ã«ããŽãªãèšå®ããŸãã" name="land find places" value="17"/> + <action description="åºç»åã説æããå Žææ€çŽ¢ã«è¡šç€ºãã®èšå®ãå€æŽ" longdescription="åºç»åã説æããå Žææ€çŽ¢ã«è¡šç€ºãã®èšå®ãå€æŽããŸãã ãåå°æ
å ±ã > ããªãã·ã§ã³ãã¿ãã§è¡ããŸãã" name="land change identity" value="18"/> + <action description="çå°ç¹ããã³ãã¬ããŒãã»ã«ãŒããèšå®" longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãã°ã«ãŒãææã®åºç»äžã§çå°ç¹ãèšå®ããããšã«ããå€éšããã®ãã¬ããŒãã®å°çäœçœ®ãæå®ã§ãããšå
±ã«ããã¬ããŒãã»ã«ãŒããèšå®ããŠçŽ°ããå¶åŸ¡ããããšãã§ããŸãã ãã®æäœã¯ããåå°æ
å ±ãïŒããªãã·ã§ã³ãã¿ãã§è¡ããŸãã" name="land set landing point" value="19"/> </action_set> - <action_set - description="ãããã®èœåã«ã¯ãããªããžã§ã¯ããäœæãããå°åœ¢ãç·šéããé³æ¥œãšã¡ãã£ã¢ã®èšå®ãªã©ãåºç»ã®ãªãã·ã§ã³ã«é¢é£ããæš©éãå«ãŸããŸãã" - name="Parcel Settings"> - <action description="é³æ¥œãšã¡ãã£ã¢ã®èšå®ãå€æŽ" - longdescription="ã¹ããªãŒãã³ã°ã»ãã¥ãŒãžãã¯ãšåç»ã®èšå®ãå€æŽããã«ã¯ããåå°æ
å ±ã ïŒ ãã¡ãã£ã¢ãã¿ãã䜿ããŸãã" - name="land change media" value="20" /> - <action description="ãå°åœ¢ãç·šéãã«åãæ¿ã" - longdescription="ãå°åœ¢ãç·šéãã«åãæ¿ããŸãã *èŠå* ãåå°æ
å ±ãïŒããªãã·ã§ã³ãïŒãå°åœ¢ãç·šéãã®é ã§é²ããšã誰ã§ãããªãã®åå°ã®åœ¢ã®æŽåãããªã³ãã³ãã©ã³ãã®èšçœ®ã移åãã§ããŸãã ãã®èœåãå²ãæ¯ãåã«ããã®ããšãããç解ããŠãããŠãã ããã ãåå°æ
å ±ãïŒããªãã·ã§ã³ãã¿ããããå°åœ¢ãç·šéãã«åãæ¿ããããŸãã" - name="land edit" value="21" /> - <action - description="ãåå°æ
å ±ãïŒããªãã·ã§ã³ãã¿ãå
ã®ããŸããŸãªèšå®ãåãæ¿ã" - longdescription="ãå®å
šïŒãã¡ãŒãžãªãïŒãããé£ã¶ãã«åãæ¿ãããåå°æ
å ±ãïŒããªãã·ã§ã³ãã¿ãããã ä»ã®äœäººãã°ã«ãŒãææã®åå°ã§ããªããžã§ã¯ããäœæãããå°åœ¢ãç·šéãããã©ã³ãããŒã¯ãäœæãããã¹ã¯ãªãããå®è¡ãã§ããããã«ããŸãã" - name="land options" value="22" /> + <action_set description="ãããã®èœåã«ã¯ãããªããžã§ã¯ããäœæãããå°åœ¢ãç·šéããé³æ¥œãšã¡ãã£ã¢ã®èšå®ãªã©ãåºç»ã®ãªãã·ã§ã³ã«é¢é£ããæš©éãå«ãŸããŸãã" name="Parcel Settings"> + <action description="é³æ¥œãšã¡ãã£ã¢ã®èšå®ãå€æŽ" longdescription="ã¹ããªãŒãã³ã°ã»ãã¥ãŒãžãã¯ãšåç»ã®èšå®ãå€æŽããã«ã¯ããåå°æ
å ±ã ïŒ ãã¡ãã£ã¢ãã¿ãã䜿ããŸãã" name="land change media" value="20"/> + <action description="ãå°åœ¢ãç·šéãã«åãæ¿ã" longdescription="ãå°åœ¢ãç·šéãã«åãæ¿ããŸãã *èŠå* ãåå°æ
å ±ãïŒããªãã·ã§ã³ãïŒãå°åœ¢ãç·šéãã®é ã§é²ããšã誰ã§ãããªãã®åå°ã®åœ¢ã®æŽåãããªã³ãã³ãã©ã³ãã®èšçœ®ã移åãã§ããŸãã ãã®èœåãå²ãæ¯ãåã«ããã®ããšãããç解ããŠãããŠãã ããã ãåå°æ
å ±ãïŒããªãã·ã§ã³ãã¿ããããå°åœ¢ãç·šéãã«åãæ¿ããããŸãã" name="land edit" value="21"/> + <action description="ãåå°æ
å ±ãïŒããªãã·ã§ã³ãã¿ãå
ã®ããŸããŸãªèšå®ãåãæ¿ã" longdescription="ãå®å
šïŒãã¡ãŒãžãªãïŒãããé£è¡ããåãæ¿ããäœäººã«ä»¥äžãèš±å¯ããŸãïŒ ã°ã«ãŒãææå°ã®ãåå°æ
å ±ã > ããªãã·ã§ã³ãã¿ãå
ã®ããå°åœ¢ãç·šéãããå¶äœãããã©ã³ãããŒã¯ã®äœæãããã¹ã¯ãªããã®å®è¡ãã" name="land options" value="22"/> </action_set> - <action_set - description="ãããã®èœåã«ã¯ãã°ã«ãŒãææã®åºç»ã«é¢ããèŠå¶ãè¿åããããšããã¡ã³ããŒã«èš±å¯ããæš©éãå«ãŸããŸãã" - name="Parcel Powers"> - <action description="åžžã«ãå°åœ¢ãç·šéããèš±å¯" - longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãã°ã«ãŒãææã®åºç»äžã§å°åœ¢ãç·šéããããšãã§ããŸãããã®åºç»ããåå°æ
å ±ãïŒããªãã·ã§ã³ãã¿ãã§ãªãã«ãªã£ãŠããŠããå°åœ¢ã®ç·šéãå¯èœã§ãã" - name="land allow edit land" value="23" /> - <action description="åžžã«ãé£è¡ããèš±å¯" - longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãã°ã«ãŒãææã®åºç»äžãé£è¡ããããšãã§ããŸãããã®åºç»ããåå°æ
å ±ãïŒããªãã·ã§ã³ãã¿ãã§ãªãã«ãªã£ãŠããŠããé£è¡ãå¯èœã§ãã" - name="land allow fly" value="24" /> - <action description="åžžã«ããªããžã§ã¯ãäœæããèš±å¯" - longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãã°ã«ãŒãææã®åºç»äžã«ãªããžã§ã¯ããäœæããããšãã§ããŸãããã®åºç»ããåå°æ
å ±ãïŒããªãã·ã§ã³ãã¿ãã§ãªãã«ãªã£ãŠããŠãããªããžã§ã¯ãã®äœæãå¯èœã§ãã" - name="land allow create" value="25" /> - <action description="åžžã«ãã©ã³ãããŒã¯ãäœæããèš±å¯" - longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãã°ã«ãŒãææã®åºç»äžã«ã©ã³ãããŒã¯ãäœæããããšãã§ããŸãããã®åºç»ããåå°æ
å ±ãïŒããªãã·ã§ã³ãã¿ãã§ãªãã«ãªã£ãŠããŠããã©ã³ãããŒã¯ã®äœæãå¯èœã§ãã" - name="land allow landmark" value="26" /> - <action description="ã°ã«ãŒãã®åå°ãžã®ãããŒã èšå®ããèš±å¯" - longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ããäžçãã¡ãã¥ãŒïŒãããŒã ãããã«èšå®ãã䜿çšããŠããã®ã°ã«ãŒãã«è²æž¡ãããåºç»ãããŒã ã«èšå®ããããšãã§ããŸãã" - name="land allow set home" value="28" /> + <action_set description="ãããã®èœåã«ã¯ãã°ã«ãŒãææã®åºç»ã«é¢ããèŠå¶ãè¿åããããšããã¡ã³ããŒã«èš±å¯ããæš©éãå«ãŸããŸãã" name="Parcel Powers"> + <action description="åžžã«ãå°åœ¢ãç·šéããèš±å¯" longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãã°ã«ãŒãææã®åºç»äžã§å°åœ¢ãç·šéããããšãã§ããŸãããã®åºç»ããåå°æ
å ±ãïŒããªãã·ã§ã³ãã¿ãã§ãªãã«ãªã£ãŠããŠããå°åœ¢ã®ç·šéãå¯èœã§ãã" name="land allow edit land" value="23"/> + <action description="åžžã«ãé£è¡ããèš±å¯" longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãã°ã«ãŒãææã®åºç»äžãé£è¡ããããšãã§ããŸãããã®åºç»ããåå°æ
å ±ãïŒããªãã·ã§ã³ãã¿ãã§ãªãã«ãªã£ãŠããŠããé£è¡ãå¯èœã§ãã" name="land allow fly" value="24"/> + <action description="åžžã«ããªããžã§ã¯ãäœæããèš±å¯" longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãã°ã«ãŒãææã®åºç»äžã«ãªããžã§ã¯ããäœæããããšãã§ããŸãããã®åºç»ããåå°æ
å ±ãïŒããªãã·ã§ã³ãã¿ãã§ãªãã«ãªã£ãŠããŠãããªããžã§ã¯ãã®äœæãå¯èœã§ãã" name="land allow create" value="25"/> + <action description="åžžã«ãã©ã³ãããŒã¯ãäœæããèš±å¯" longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãã°ã«ãŒãææã®åºç»äžã«ã©ã³ãããŒã¯ãäœæããããšãã§ããŸãããã®åºç»ããåå°æ
å ±ãïŒããªãã·ã§ã³ãã¿ãã§ãªãã«ãªã£ãŠããŠããã©ã³ãããŒã¯ã®äœæãå¯èœã§ãã" name="land allow landmark" value="26"/> + <action description="ã°ã«ãŒãã®åå°ãžã®ãããŒã èšå®ããèš±å¯" longdescription="ãã®ã圹å²ããæã€ã¡ã³ããŒã¯ããã®ã°ã«ãŒãã«è²æž¡ãããåºç»äžã§ãäžçãã¡ãã¥ãŒ > ã©ã³ãããŒã¯ > çŸåšå°ãããŒã ã«èšå® ã䜿çšããŠãããŒã ã®èšå®ãè¡ãããšãã§ããŸãã" name="land allow set home" value="28"/> </action_set> - <action_set - description="ãããã®èœåã«ã¯ãäœäººã®åçµãè¿œæŸãå«ããã°ã«ãŒãææã®åºç»ãžã®ã¢ã¯ã»ã¹ãèš±å¯ãå¶éããæš©éãå«ãŸããŸãã" - name="Parcel Access"> - <action description="åºç»ã¢ã¯ã»ã¹ã»ãªã¹ãã®ç®¡ç" - longdescription="åºç»ã¢ã¯ã»ã¹ã»ãªã¹ãã®ç®¡çã¯ããåå°æ
å ±ãïŒãã¢ã¯ã»ã¹ãã¿ãã§è¡ããŸãã" - name="land manage allowed" value="29" /> - <action description="åºç»çŠæ¢ãªã¹ãã®ç®¡ç" - longdescription="åºç»çŠæ¢ãªã¹ãã®ç®¡çã¯ããåå°æ
å ±ãïŒãçŠæ¢ãã¿ãã§è¡ããŸãã" - name="land manage banned" value="30" /> - <action description="åºç»ã®ãå
¥å Žèš±å¯ã販売ãã®èšå®ãå€æŽ" - longdescription="åºç»ã®ãå
¥å Žèš±å¯ã販売ãã®èšå®ãå€æŽããã«ã¯ããåå°æ
å ±ã ïŒ ãã¢ã¯ã»ã¹ãã¿ãã䜿ããŸãã" - name="land manage passes" value="31" /> - <action description="åºç»äžã®äœäººã®è¿œæŸãšåçµ" - longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãã°ã«ãŒãææã®åºç»ã«åé¡ã®ããäœäººãããå Žåã«ãå³ã¯ãªãã¯ã»ã¡ãã¥ãŒããã詳现ããéžæãããè¿œæŸ...ããŸãã¯ãããªãŒãº...ããéžæããããšã«ããããã®äœäººãåŠçããããšãã§ããŸãã" - name="land admin" value="32" /> + <action_set description="ãããã®èœåã«ã¯ãäœäººã®åçµãè¿œæŸãå«ããã°ã«ãŒãææã®åºç»ãžã®ã¢ã¯ã»ã¹ãèš±å¯ãå¶éããæš©éãå«ãŸããŸãã" name="Parcel Access"> + <action description="åºç»ã¢ã¯ã»ã¹ã»ãªã¹ãã®ç®¡ç" longdescription="åºç»ã¢ã¯ã»ã¹ã»ãªã¹ãã®ç®¡çã¯ããåå°æ
å ±ãïŒãã¢ã¯ã»ã¹ãã¿ãã§è¡ããŸãã" name="land manage allowed" value="29"/> + <action description="åºç»çŠæ¢ãªã¹ãã®ç®¡ç" longdescription="ãåå°æ
å ±ã > ãã¢ã¯ã»ã¹ãã¿ãã®ãåºç»ã®çŠæ¢ãªã¹ãã®ç®¡çãã§ããŸãã" name="land manage banned" value="30"/> + <action description="ãå
¥å Žèš±å¯ã販売ãã®èšå®ãå€æŽ" longdescription="ãåå°æ
å ±ã > ãã¢ã¯ã»ã¹ãã¿ãã§ãåºç»ã®ãå
¥å Žèš±å¯ã販売ãã®èšå®ãå€æŽããŸãã" name="land manage passes" value="31"/> + <action description="åºç»äžã®äœäººã®è¿œæŸãšåçµ" longdescription="ãã®ãèœåããæã€ã圹å²ãã®ã¡ã³ããŒã¯ãã°ã«ãŒãææå°ã«ããŠæ¬²ãããªãäœäººãå³ã¯ãªãã¯ãããè¿œæŸãããããªãŒãºããéžãã§å¯Ÿå¿ã§ããŸãã" name="land admin" value="32"/> </action_set> - <action_set - description="ãããã®èœåã«ã¯ããªããžã§ã¯ãã®è¿åŽããªã³ãã³ãã©ã³ãã®èšçœ®ã移åããã¡ã³ããŒã«èš±å¯ããæš©éãå«ãŸããŸãã ããã¯ã¡ã³ããŒããŽãåŠçãæ¯èŠ³äœæãããéã«äŸ¿å©ã§ãããè¿åŽãããªããžã§ã¯ãã¯å
ã«æ»ããªãã®ã§ã泚æããŠè¡ããŸãããã" - name="Parcel Content"> - <action description="ã°ã«ãŒãææãªããžã§ã¯ãã®è¿åŽ" - longdescription="ã°ã«ãŒãææã®åºç»äžã®ãªããžã§ã¯ãã®ãã¡ãã°ã«ãŒãææã®ãªããžã§ã¯ããè¿åŽããã«ã¯ããåå°æ
å ±ãïŒããªããžã§ã¯ããã¿ãã䜿ããŸãã" - name="land return group owned" value="48" /> - <action description="ã°ã«ãŒãã«èšå®ãããŠãããªããžã§ã¯ããè¿åŽ" - longdescription="ã°ã«ãŒãææã®åºç»äžã®ãªããžã§ã¯ãã®ãã¡ãã°ã«ãŒãã«èšå®ãããŠãããªããžã§ã¯ããè¿åŽããã«ã¯ããåå°æ
å ±ãïŒããªããžã§ã¯ããã¿ãã䜿ããŸãã" - name="land return group set" value="33" /> - <action description="éã°ã«ãŒãã»ãªããžã§ã¯ãã®è¿åŽ" - longdescription="ã°ã«ãŒãææã®åºç»äžã®ãªããžã§ã¯ãã®ãã¡ãã°ã«ãŒã以å€ã®ãªããžã§ã¯ããè¿åŽããã«ã¯ããåå°æ
å ±ãïŒããªããžã§ã¯ããã¿ãã䜿ããŸãã" - name="land return non group" value="34" /> - <action description="Linden補ã®æ€ç©ã䜿çšããŠæ¯èŠ³äœæ" - longdescription="æ¯èŠ³äœæèœåã«ããããªã³ãã³è£œã®æš¹æšãæ€ç©ãèãé
眮ããã³ç§»åããããšãã§ããŸãã ãããã®ã¢ã€ãã ã¯ãèªåã®æã¡ç©ã®ã©ã€ãã©ãªïŒãªããžã§ã¯ãã»ãã©ã«ãããæ€çŽ¢ã§ããã»ãããäœæããã¿ã³ã§äœæããããšãã§ããŸãã" - name="land gardening" value="35" /> + <action_set description="ãããã®èœåã«ã¯ããªããžã§ã¯ãã®è¿åŽããªã³ãã³ãã©ã³ãã®èšçœ®ã移åããã¡ã³ããŒã«èš±å¯ããæš©éãå«ãŸããŸãã ããã¯ã¡ã³ããŒããŽãåŠçãæ¯èŠ³äœæãããéã«äŸ¿å©ã§ãããè¿åŽãããªããžã§ã¯ãã¯å
ã«æ»ããªãã®ã§ã泚æããŠè¡ããŸãããã" name="Parcel Content"> + <action description="ã°ã«ãŒãææãªããžã§ã¯ãã®è¿åŽ" longdescription="ã°ã«ãŒãææã®åºç»äžã®ãªããžã§ã¯ãã®ãã¡ãã°ã«ãŒãææã®ãªããžã§ã¯ããè¿åŽããã«ã¯ããåå°æ
å ±ãïŒããªããžã§ã¯ããã¿ãã䜿ããŸãã" name="land return group owned" value="48"/> + <action description="ã°ã«ãŒãã«èšå®ãããŠãããªããžã§ã¯ããè¿åŽ" longdescription="ã°ã«ãŒãææã®åºç»äžã®ãªããžã§ã¯ãã®ãã¡ãã°ã«ãŒãã«èšå®ãããŠãããªããžã§ã¯ããè¿åŽããã«ã¯ããåå°æ
å ±ãïŒããªããžã§ã¯ããã¿ãã䜿ããŸãã" name="land return group set" value="33"/> + <action description="éã°ã«ãŒãã»ãªããžã§ã¯ãã®è¿åŽ" longdescription="ã°ã«ãŒãææã®åºç»äžã®ãªããžã§ã¯ãã®ãã¡ãã°ã«ãŒã以å€ã®ãªããžã§ã¯ããè¿åŽããã«ã¯ããåå°æ
å ±ãïŒããªããžã§ã¯ããã¿ãã䜿ããŸãã" name="land return non group" value="34"/> + <action description="Linden補ã®æ€ç©ã䜿çšããŠæ¯èŠ³äœæ" longdescription="ãªã³ãã³è£œã®æš¹æšãæ€ç©ãèãæ€ãããæ¯èŠ³ã¥ããã®èœåã§ãã ãããã®æ€ç©ã¯ããªãã®æã¡ç©å
ã®ãã©ã€ãã©ãªã > ããªããžã§ã¯ãããã©ã«ãã«ãããŸãããå¶äœãã¡ãã¥ãŒã§äœæããããšãã§ããŸãã" name="land gardening" value="35"/> </action_set> - <action_set - description="ãããã®èœåã«ã¯ãã°ã«ãŒãææã®ãªããžã§ã¯ããè²æž¡ãä¿®æ£ã販売ããæš©éãå«ãŸããŸãã ããããå€æŽã¯ããç·šéããŒã«ãïŒãäžè¬ãã¿ãã§è¡ãããŸãã ãªããžã§ã¯ããå³ã¯ãªãã¯ããŠãç·šéããéããšãèšå®å
容ã衚瀺ã§ããŸãã" - name="Object Management"> - <action description="ã°ã«ãŒãã«ãªããžã§ã¯ããè²æž¡" - longdescription="ã°ã«ãŒãã«ãªããžã§ã¯ããè²æž¡ããã«ã¯ããç·šéããŒã«ãïŒãäžè¬ãã¿ãã䜿ããŸãã" - name="object deed" value="36" /> - <action - description="ã°ã«ãŒãææãªããžã§ã¯ãã®æäœïŒç§»åãã³ããŒãä¿®æ£ïŒ" - longdescription="ã°ã«ãŒãææãªããžã§ã¯ãã®æäœïŒç§»åãã³ããŒãä¿®æ£ïŒã¯ããç·šéããŒã«ãïŒãäžè¬ãã¿ãã§è¡ããŸãã" - name="object manipulate" value="38" /> - <action description="ã°ã«ãŒãææãªããžã§ã¯ãã販売å¯èœã«èšå®" - longdescription="ã°ã«ãŒãææãªããžã§ã¯ãã販売å¯èœã«èšå®ã«ããã«ã¯ããç·šéããŒã«ãïŒãäžè¬ãã¿ãã䜿ããŸãã" - name="object set sale" value="39" /> + <action_set description="ãããã®ãèœåãã«ã¯ãã°ã«ãŒãææã®ãªããžã§ã¯ããè²æž¡ãä¿®æ£ã販売ããæš©éãå«ãŸããŸãã å€æŽã¯ãå¶äœããŒã«ã > ãäžè¬ãã¿ãã§è¡ããŸãã ãªããžã§ã¯ããå³ã¯ãªãã¯ããŠãç·šéããéããšèšå®å
容ã確èªã§ããŸãã" name="Object Management"> + <action description="ã°ã«ãŒãã«ãªããžã§ã¯ããè²æž¡" longdescription="ãå¶äœããŒã«ã > ãäžè¬ãã¿ãã§ããªããžã§ã¯ããã°ã«ãŒãã«è²æž¡ããŸãã" name="object deed" value="36"/> + <action description="ã°ã«ãŒãææãªããžã§ã¯ãã®æäœïŒç§»åãã³ããŒãä¿®æ£ïŒ" longdescription="ãå¶äœããŒã«ã > ãäžè¬ãã¿ãã§ãã°ã«ãŒãææã®ãªããžã§ã¯ããæäœïŒç§»åãã³ããŒãä¿®æ£ïŒããŸãã" name="object manipulate" value="38"/> + <action description="ã°ã«ãŒãææãªããžã§ã¯ãã販売å¯èœã«èšå®" longdescription="ãå¶äœããŒã«ã > ãäžè¬ãã¿ãã§ãã°ã«ãŒãææã®ãªããžã§ã¯ãã販売察象ã«èšå®ããŸãã" name="object set sale" value="39"/> </action_set> - <action_set - description="ãããã®èœåã«ã¯ãã¡ã³ããŒã«ãã°ã«ãŒãã®è² åµã®æ¯æããšå©ååãåããèŠæ±ããæš©éãã°ã«ãŒãå£åº§å±¥æŽãžã®ã¢ã¯ã»ã¹ãå¶éããæš©éãå«ãŸããŸãã" - name="Accounting"> - <action description="ã°ã«ãŒãè² åµã®è¿æžãšã°ã«ãŒãé
åœã®åé " - longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã«ã€ããŠã¯ãã°ã«ãŒãè² åµã®æ¯æããšã°ã«ãŒãé
åœã®åãåããèªåçã«è¡ãããŸãã ã€ãŸãããããã®ã¡ã³ããŒã¯ãæ¯æ¥é
åœãããã°ã«ãŒãææã®åå°ã®å£²ãäžãéã®äžéšãåãåããšå
±ã«ãåºç»ã®åºåè²»ãªã©ãè² æ
ããããšã«ãªããŸãã" - name="accounting accountable" value="40" /> + <action_set description="ãããã®èœåã«ã¯ãã¡ã³ããŒã«ãã°ã«ãŒãã®è² åµã®æ¯æããšå©ååãåããèŠæ±ããæš©éãã°ã«ãŒãå£åº§å±¥æŽãžã®ã¢ã¯ã»ã¹ãå¶éããæš©éãå«ãŸããŸãã" name="Accounting"> + <action description="ã°ã«ãŒãè² åµã®è¿æžãšã°ã«ãŒãé
åœã®åé " longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã«ã€ããŠã¯ãã°ã«ãŒãè² åµã®æ¯æããšã°ã«ãŒãé
åœã®åãåããèªåçã«è¡ãããŸãã ã€ãŸãããããã®ã¡ã³ããŒã¯ãæ¯æ¥é
åœãããã°ã«ãŒãææã®åå°ã®å£²ãäžãéã®äžéšãåãåããšå
±ã«ãåºç»ã®åºåè²»ãªã©ãè² æ
ããããšã«ãªããŸãã" name="accounting accountable" value="40"/> </action_set> - <action_set - description="ãããã®èœåã«ã¯ãã°ã«ãŒãéç¥ã®éä¿¡ãåä¿¡ã衚瀺ãã¡ã³ããŒã«èš±å¯ããæš©éãå«ãŸããŸãã" - name="Notices"> - <action description="éç¥ãéä¿¡" - longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ããã°ã«ãŒãæ
å ±ãïŒãéç¥ãã¿ãã§éç¥ãéä¿¡ããããšãã§ããŸãã" - name="notices send" value="42" /> - <action description="éç¥ã®åä¿¡ãšéå»ã®éç¥ã®é²èŠ§" - longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãéç¥ãåãåãããšãã§ãããã°ã«ãŒãæ
å ±ãïŒãéç¥ãã¿ãã§éå»ã®éç¥ãé²èŠ§ããããšãã§ããŸãã" - name="notices receive" value="43" /> + <action_set description="ãããã®èœåã«ã¯ãã°ã«ãŒãéç¥ã®éä¿¡ãåä¿¡ã衚瀺ãã¡ã³ããŒã«èš±å¯ããæš©éãå«ãŸããŸãã" name="Notices"> + <action description="éç¥ãéä¿¡" longdescription="ãã®ãèœåããæã€ã圹å²ãã®ã¡ã³ããŒã¯ããã°ã«ãŒãã > ãéç¥ãã»ã¯ã·ã§ã³ããéç¥ãéä¿¡ã§ããŸãã" name="notices send" value="42"/> + <action description="éç¥ã®åä¿¡ãšéå»ã®éç¥ã®é²èŠ§" longdescription="ãã®ãèœåããæã€ã圹å²ãã®ã¡ã³ããŒã¯ããã°ã«ãŒãã > ãéç¥ãã»ã¯ã·ã§ã³ã§éç¥ãåä¿¡ãããéå»ã®éç¥ãèŠãããšãã§ããŸãã" name="notices receive" value="43"/> </action_set> - <action_set - description="ãããã®èœåã«ã¯ãææ¡ã®äœæãšæ祚ãæ祚履æŽã®è¡šç€ºãã¡ã³ããŒã«èš±å¯ããæš©éãå«ãŸããŸãã" - name="Proposals"> - <action description="ææ¡ãäœæ" - longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãæ祚ã®å¯Ÿè±¡ãšãªãåé¡æèµ·ããã°ã«ãŒãæ
å ±ãïŒãåé¡æèµ·ãã¿ãäžã§äœæããããšãã§ããŸãã" - name="proposal start" value="44" /> - <action description="åé¡æèµ·ã«æ祚ãã" - longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãã°ã«ãŒãæ
å ±ïŒææ¡ã¿ãã§ææ¡ã«æ祚ããããšãã§ããŸãã" - name="proposal vote" value="45" /> + <action_set description="ãããã®èœåã«ã¯ãææ¡ã®äœæãšæ祚ãæ祚履æŽã®è¡šç€ºãã¡ã³ããŒã«èš±å¯ããæš©éãå«ãŸããŸãã" name="Proposals"> + <action description="ææ¡ãäœæ" longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãæ祚ã®å¯Ÿè±¡ãšãªãåé¡æèµ·ããã°ã«ãŒãæ
å ±ãïŒãåé¡æèµ·ãã¿ãäžã§äœæããããšãã§ããŸãã" name="proposal start" value="44"/> + <action description="åé¡æèµ·ã«æ祚ãã" longdescription="ãã®èœåãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãã°ã«ãŒãæ
å ±ïŒææ¡ã¿ãã§ææ¡ã«æ祚ããããšãã§ããŸãã" name="proposal vote" value="45"/> </action_set> - <action_set - description=" -ãããã®ã¢ããªãã£ã«ã¯ãã°ã«ãŒãã»ãã£ããã»ã»ãã·ã§ã³ãã°ã«ãŒãã»ãã€ã¹ã»ãã£ãããžã®ã¢ã¯ã»ã¹ã®èš±å¯ãå¶éã®æš©éãå«ãŸããŸãã -" - name="Chat"> - <action description="ã°ã«ãŒãã»ãã£ããã«åå ãã" - longdescription=" -ãã®ã¢ããªãã£ãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãã°ã«ãŒãã»ãã£ããã»ã»ãã·ã§ã³ã«ããã¹ãããã³ãã€ã¹ã§åå ã§ããŸãã -" - name="join group chat" /> - <action description="ã°ã«ãŒãã»ãã€ã¹ã»ãã£ããã«åå ãã" - longdescription=" -ãã®ã¢ããªãã£ãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãã°ã«ãŒãã»ãã€ã¹ã»ãã£ããã»ã»ãã·ã§ã³ã«åå ã§ããŸãã æ³šïŒ ãã€ã¹ã»ãã£ããã»ã»ãã·ã§ã³ã«ã¢ã¯ã»ã¹ããã«ã¯ãã°ã«ãŒãã»ãã£ããã«åå ããã¢ããªãã£ãå¿
èŠã§ãã -" - name="join voice chat" /> - <action description="ã°ã«ãŒãã»ãã£ããã管çãã" - longdescription=" -ãã®ã¢ããªãã£ãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãã°ã«ãŒãã»ãã€ã¹ã»ãã£ããã»ã»ãã·ã§ã³ããã³ã°ã«ãŒãã»ããã¹ãã»ãã£ããã»ã»ãã·ã§ã³ãžã®ã¢ã¯ã»ã¹ãåå ãã³ã³ãããŒã«ããããšãã§ããŸãã -" - name="moderate group chat" /> + <action_set description=" ãããã®ã¢ããªãã£ã«ã¯ãã°ã«ãŒãã»ãã£ããã»ã»ãã·ã§ã³ãã°ã«ãŒãã»ãã€ã¹ã»ãã£ãããžã®ã¢ã¯ã»ã¹ã®èš±å¯ãå¶éã®æš©éãå«ãŸããŸãã " name="Chat"> + <action description="ã°ã«ãŒãã»ãã£ããã«åå ãã" longdescription=" ãã®ã¢ããªãã£ãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãã°ã«ãŒãã»ãã£ããã»ã»ãã·ã§ã³ã«ããã¹ãããã³ãã€ã¹ã§åå ã§ããŸãã " name="join group chat"/> + <action description="ã°ã«ãŒãã»ãã€ã¹ã»ãã£ããã«åå ãã" longdescription=" ãã®ã¢ããªãã£ãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãã°ã«ãŒãã»ãã€ã¹ã»ãã£ããã»ã»ãã·ã§ã³ã«åå ã§ããŸãã æ³šïŒ ãã€ã¹ã»ãã£ããã»ã»ãã·ã§ã³ã«ã¢ã¯ã»ã¹ããã«ã¯ãã°ã«ãŒãã»ãã£ããã«åå ããã¢ããªãã£ãå¿
èŠã§ãã " name="join voice chat"/> + <action description="ã°ã«ãŒãã»ãã£ããã管çãã" longdescription=" ãã®ã¢ããªãã£ãæã€åœ¹å²ã®ã¡ã³ããŒã¯ãã°ã«ãŒãã»ãã€ã¹ã»ãã£ããã»ã»ãã·ã§ã³ããã³ã°ã«ãŒãã»ããã¹ãã»ãã£ããã»ã»ãã·ã§ã³ãžã®ã¢ã¯ã»ã¹ãåå ãã³ã³ãããŒã«ããããšãã§ããŸãã " name="moderate group chat"/> </action_set> </role_actions> diff --git a/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml b/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml index ac41d7ce2b..4fba4b1567 100644 --- a/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml +++ b/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml @@ -1,16 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel label="容姿" name="appearance panel"> +<panel label="ã¢ãŠããã£ãã" name="appearance panel"> <string name="No Outfit" value="ã¢ãŠããã£ãããªã"/> <panel name="panel_currentlook"> <button label="ç·šé" name="editappearance_btn"/> <text name="currentlook_title"> - ççšäžã®ã¢ãŠããã£ããïŒ + ïŒä¿åãããŠããŸããïŒ </text> <text name="currentlook_name"> - ã〠ã¢ãŠããã£ãã + MyOutfit With a really Long Name like MOOSE </text> </panel> - <filter_editor label="ãã£ã«ã¿ãŒ" name="Filter"/> + <filter_editor label="ã¢ãŠããã£ããã®ãã£ã«ã¿ãŒ" name="Filter"/> <button label="è£
ç" name="wear_btn"/> <button label="æ°ããã¢ãŠããã£ãã" name="newlook_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml b/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml index c2a61f738f..0c97fed901 100644 --- a/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml +++ b/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml @@ -2,7 +2,7 @@ <panel label="ãã®" name="objects panel"> <panel label="" name="sidepanel__inventory_panel"> <panel name="button_panel"> - <button label="æ
å ±" name="info_btn"/> + <button label="ãããã£ãŒã«" name="info_btn"/> <button label="è£
ç" name="wear_btn"/> <button label="ãã¬ã€" name="play_btn"/> <button label="ãã¬ããŒã" name="teleport_btn"/> diff --git a/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml b/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml index 9544e7756c..c6a13fa212 100644 --- a/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="item properties" title="æã¡ç©ã¢ã€ãã ã®ããããã£"> +<panel name="item properties" title="ãªããžã§ã¯ãã®ãããã£ãŒã«"> <panel.string name="unknown"> ïŒäžæïŒ </panel.string> @@ -15,6 +15,8 @@ <panel.string name="acquiredDate"> [year,datetime,local] [mth,datetime,local] [day,datetime,local] [wkday,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] </panel.string> + <text name="title" value="ãªããžã§ã¯ãã®ãããã£ãŒã«"/> + <text name="where" value="ïŒæã¡ç©ïŒ"/> <panel label=""> <text name="LabelItemNameTitle"> ååïŒ @@ -28,53 +30,50 @@ <text name="LabelCreatorName"> Nicole Linden </text> - <button label="ãããã£ãŒã«..." name="BtnCreator"/> + <button label="ãããã£ãŒã«" name="BtnCreator"/> <text name="LabelOwnerTitle"> ææè
ïŒ </text> <text name="LabelOwnerName"> Thrax Linden </text> - <button label="ãããã£ãŒã«..." name="BtnOwner"/> + <button label="ãããã£ãŒã«" name="BtnOwner"/> <text name="LabelAcquiredTitle"> ååŸïŒ </text> <text name="LabelAcquiredDate"> Wed May 24 12:50:46 2006 </text> - <text name="OwnerLabel"> - ããªãïŒ - </text> - <check_box label="ç·šé" name="CheckOwnerModify"/> - <check_box label="ã³ããŒ" name="CheckOwnerCopy"/> - <check_box label="å販ã»ãã¬ãŒã³ã" name="CheckOwnerTransfer"/> - <text name="AnyoneLabel"> - å
šå¡ïŒ - </text> - <check_box label="ã³ããŒ" name="CheckEveryoneCopy"/> - <text name="GroupLabel"> - ã°ã«ãŒãïŒ - </text> - <check_box label="å
±æ" name="CheckShareWithGroup"/> - <text name="NextOwnerLabel"> - 次ã®ææè
ïŒ - </text> - <check_box label="ç·šé" name="CheckNextOwnerModify"/> - <check_box label="ã³ããŒ" name="CheckNextOwnerCopy"/> - <check_box label="å販ã»ãã¬ãŒã³ã" name="CheckNextOwnerTransfer"/> + <panel name="perms_inv"> + <text name="perm_modify"> + ããªããã§ããããšïŒ + </text> + <check_box label="ä¿®æ£" name="CheckOwnerModify"/> + <check_box label="ã³ããŒ" name="CheckOwnerCopy"/> + <check_box label="å販ã»ãã¬ãŒã³ã" name="CheckOwnerTransfer"/> + <text name="AnyoneLabel"> + å
šå¡ïŒ + </text> + <check_box label="ã³ããŒ" name="CheckEveryoneCopy"/> + <text name="GroupLabel"> + ã°ã«ãŒãïŒ + </text> + <check_box label="å
±æ" name="CheckShareWithGroup" tool_tip="èšå®ããã°ã«ãŒãã®ã¡ã³ããŒå
šå¡ã«ãã®ãªããžã§ã¯ãã®ä¿®æ£æš©éãäžããŸãã è²æž¡ããªãéãã圹å²å¶éãæå¹ã«ã¯ã§ããŸããã"/> + <text name="NextOwnerLabel"> + 次ã®ææè
ïŒ + </text> + <check_box label="ä¿®æ£" name="CheckNextOwnerModify"/> + <check_box label="ã³ããŒ" name="CheckNextOwnerCopy"/> + <check_box label="å販ã»ãã¬ãŒã³ã" name="CheckNextOwnerTransfer" tool_tip="次ã®ææè
ã¯ãã®ãªããžã§ã¯ããä»äººã«ããããå販ããããšãã§ããŸã"/> + </panel> <check_box label="販売ãã" name="CheckPurchase"/> <combo_box name="combobox sale copy"> <combo_box.item label="ã³ããŒ" name="Copy"/> <combo_box.item label="ãªãªãžãã«" name="Original"/> </combo_box> - <spinner label="äŸ¡æ ŒïŒ" name="Edit Cost"/> - <text name="CurrencySymbol"> - L$ - </text> + <spinner label="äŸ¡æ ŒïŒ L$" name="Edit Cost"/> </panel> <panel name="button_panel"> - <button label="ç·šé" name="edit_btn"/> <button label="ãã£ã³ã»ã«" name="cancel_btn"/> - <button label="ä¿å" name="save_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml b/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml index 5bf37954c5..c2d2af5346 100644 --- a/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="object properties" title="ãªããžã§ã¯ãã®ããããã£"> +<panel name="object properties" title="ãªããžã§ã¯ãã®ãããã£ãŒã«"> <panel.string name="text deed continued"> è²æž¡ </panel.string> @@ -36,6 +36,8 @@ <panel.string name="Sale Mixed"> Mixed Sale </panel.string> + <text name="title" value="ãªããžã§ã¯ãã®ãããã£ãŒã«"/> + <text name="where" value="ïŒã¯ãŒã«ãå
ïŒ"/> <panel label=""> <text name="Name:"> ååïŒ @@ -43,11 +45,11 @@ <text name="Description:"> 説æïŒ </text> - <text name="Creator:"> + <text name="CreatorNameLabel"> å¶äœè
ïŒ </text> <text name="Creator Name"> - Esbee Linden + Erica Linden </text> <text name="Owner:"> ææè
ïŒ @@ -55,13 +57,12 @@ <text name="Owner Name"> Erica Linden </text> - <text name="Group:"> + <text name="Group_label"> ã°ã«ãŒãïŒ </text> <button name="button set group" tool_tip="ãã®ãªããžã§ã¯ãæš©éãå
±æããã°ã«ãŒããéžæ"/> <name_box initial_value="ããŒãã£ã³ã°..." name="Group Name Proxy"/> <button label="è²æž¡" label_selected="è²æž¡" name="button deed" tool_tip="ãã®ã¢ã€ãã ãè²æž¡ãããšã次ã®ææè
ãã®æš©éãé©çšãããŸãã ã°ã«ãŒãå
±æãªããžã§ã¯ãã¯ãã°ã«ãŒãã®ãªãã£ãµãŒãè²æž¡ã§ããŸãã"/> - <check_box label="å
±æ" name="checkbox share with group" tool_tip="èšå®ããã°ã«ãŒãã®ã¡ã³ããŒå
šå¡ã«ãã®ãªããžã§ã¯ãã®ä¿®æ£æš©éãäžããŸãã è²æž¡ããªãéãã圹å²å¶éãæå¹ã«ã¯ã§ããŸããã"/> <text name="label click action"> ã¯ãªãã¯ã§ïŒ </text> @@ -72,55 +73,56 @@ <combo_box.item label="ãªããžã§ã¯ãã«æ¯æã" name="Payobject"/> <combo_box.item label="éã" name="Open"/> </combo_box> - <check_box label="販売察象ïŒ" name="checkbox for sale"/> - <combo_box name="sale type"> - <combo_box.item label="ã³ããŒ" name="Copy"/> - <combo_box.item label="äžèº«" name="Contents"/> - <combo_box.item label="ãªãªãžãã«" name="Original"/> - </combo_box> - <spinner label="äŸ¡æ ŒïŒ L$" name="Edit Cost"/> - <check_box label="æ€çŽ¢ã«è¡šç€º" name="search_check" tool_tip="ãã®ãªããžã§ã¯ããæ€çŽ¢çµæã«è¡šç€ºããŸã"/> - <panel name="perms_build"> + <panel name="perms_inv"> <text name="perm_modify"> - ããªãã¯ãã®ãªããžã§ã¯ããä¿®æ£ã§ããŸã + ãã®ãªããžã§ã¯ããä¿®æ£ã§ããŸã </text> <text name="Anyone can:"> å
šå¡ïŒ </text> - <check_box label="移å" name="checkbox allow everyone move"/> <check_box label="ã³ããŒ" name="checkbox allow everyone copy"/> - <text name="Next owner can:"> + <check_box label="移å" name="checkbox allow everyone move"/> + <text name="GroupLabel"> + ã°ã«ãŒãïŒ + </text> + <check_box label="å
±æ" name="checkbox share with group" tool_tip="èšå®ããã°ã«ãŒãã®ã¡ã³ããŒå
šå¡ã«ãã®ãªããžã§ã¯ãã®ä¿®æ£æš©éãäžããŸãã è²æž¡ããªãéãã圹å²å¶éãæå¹ã«ã¯ã§ããŸããã"/> + <text name="NextOwnerLabel"> 次ã®ææè
ïŒ </text> <check_box label="ä¿®æ£" name="checkbox next owner can modify"/> <check_box label="ã³ããŒ" name="checkbox next owner can copy"/> <check_box label="å販ã»ãã¬ãŒã³ã" name="checkbox next owner can transfer" tool_tip="次ã®ææè
ã¯ãã®ãªããžã§ã¯ããä»äººã«ããããå販ããããšãã§ããŸã"/> - <text name="B:"> - B. - </text> - <text name="O:"> - O: - </text> - <text name="G:"> - G: - </text> - <text name="E:"> - E: - </text> - <text name="N:"> - N: - </text> - <text name="F:"> - F: - </text> </panel> + <check_box label="販売äž" name="checkbox for sale"/> + <combo_box name="sale type"> + <combo_box.item label="ã³ããŒ" name="Copy"/> + <combo_box.item label="äžèº«" name="Contents"/> + <combo_box.item label="ãªãªãžãã«" name="Original"/> + </combo_box> + <spinner label="äŸ¡æ ŒïŒ L$" name="Edit Cost"/> + <check_box label="æ€çŽ¢ã«è¡šç€º" name="search_check" tool_tip="ãã®ãªããžã§ã¯ããæ€çŽ¢çµæã«è¡šç€ºããŸã"/> + <text name="B:"> + B. + </text> + <text name="O:"> + O: + </text> + <text name="G:"> + G: + </text> + <text name="E:"> + E: + </text> + <text name="N:"> + N: + </text> + <text name="F:"> + F: + </text> </panel> <panel name="button_panel"> - <button label="ç·šé" name="edit_btn"/> <button label="éã" name="open_btn"/> <button label="æ¯æã" name="pay_btn"/> <button label="è²·ã" name="buy_btn"/> - <button label="ãã£ã³ã»ã«" name="cancel_btn"/> - <button label="ä¿å" name="save_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml index 2006d1cbdc..d2a1977fc9 100644 --- a/indra/newview/skins/default/xui/ja/strings.xml +++ b/indra/newview/skins/default/xui/ja/strings.xml @@ -10,6 +10,9 @@ <string name="APP_NAME"> Second Life </string> + <string name="CAPITALIZED_APP_NAME"> + SECOND LIFE + </string> <string name="SECOND_LIFE_GRID"> Second Life Grid </string> @@ -49,6 +52,9 @@ <string name="LoginInitializingMultimedia"> ãã«ãã¡ãã£ã¢ãåæåããŠããŸã... </string> + <string name="LoginInitializingFonts"> + ãã©ã³ããããŒãã£ã³ã°äž... + </string> <string name="LoginVerifyingCache"> ãã£ãã·ã¥ã»ãã¡ã€ã«ãæ€èšŒããŠããŸã(æèŠæéã¯60ïœ90ç§)... </string> @@ -79,6 +85,9 @@ <string name="LoginDownloadingClothing"> æãããŠã³ããŒãããŠããŸã... </string> + <string name="LoginFailedNoNetwork"> + ãããã¯ãŒã¯ãšã©ãŒïŒ æ¥ç¶ã確ç«ã§ããŸããã§ãããã䜿ãã®ãããã¯ãŒã¯æ¥ç¶ãã確èªãã ããã + </string> <string name="Quit"> çµäº </string> @@ -174,7 +183,7 @@ å°å³ã«è¡šç€º </string> <string name="BUTTON_CLOSE_DARWIN"> - éãã ïŒ⌘WïŒ + éãã ïŒâWïŒ </string> <string name="BUTTON_CLOSE_WIN"> éãã ïŒCtrl+WïŒ @@ -191,9 +200,6 @@ <string name="BUTTON_DOCK"> ãããã³ã° </string> - <string name="BUTTON_UNDOCK"> - åãé¢ã - </string> <string name="BUTTON_HELP"> ãã«ãã衚瀺 </string> @@ -626,11 +632,14 @@ <string name="ControlYourCamera"> ã«ã¡ã©ã®ã³ã³ãããŒã« </string> + <string name="NotConnected"> + æ¥ç¶ãããŠããŸãã + </string> <string name="SIM_ACCESS_PG"> - PG + äžè¬ </string> <string name="SIM_ACCESS_MATURE"> - Mature + æ§ãã </string> <string name="SIM_ACCESS_ADULT"> Adult @@ -818,6 +827,9 @@ <string name="InventoryNoMatchingItems"> äžèŽããã¢ã€ãã ãæã¡ç©ã«ãããŸããã§ãã </string> + <string name="FavoritesNoMatchingItems"> + ããã«ã©ã³ãããŒã¯ããã©ãã°ããŠããæ°ã«å
¥ãã«è¿œå ããŸãã + </string> <string name="InventoryNoTexture"> æã¡ç©å
ã«ãã®ãã¯ã¹ãã£ã®ã³ããŒããããŸãã </string> @@ -1288,6 +1300,156 @@ <string name="RegionInfoAllowedGroups"> èš±å¯ãããã°ã«ãŒãïŒ ïŒ[ALLOWEDGROUPS]ãæ倧 [MAXACCESS] ã°ã«ãŒãïŒ </string> + <string name="ScriptLimitsParcelScriptMemory"> + åºç»ã¹ã¯ãªããã¡ã¢ãª + </string> + <string name="ScriptLimitsParcelsOwned"> + åºç»äžèŠ§ïŒ [PARCELS] + </string> + <string name="ScriptLimitsMemoryUsed"> + 䜿çšãããã¡ã¢ãªïŒ [MAX] kb äž [COUNT] kbïŒ[AVAILABLE] kb å©çšå¯ + </string> + <string name="ScriptLimitsMemoryUsedSimple"> + 䜿çšãããã¡ã¢ãªïŒ [COUNT] kb + </string> + <string name="ScriptLimitsParcelScriptURLs"> + åºç»ã®ã¹ã¯ãªããURL + </string> + <string name="ScriptLimitsURLsUsed"> + 䜿çšãããURLïŒ [MAX] äž [COUNT] ïŒ[AVAILABLE] å©çšå¯ + </string> + <string name="ScriptLimitsURLsUsedSimple"> + 䜿çšãããURLïŒ [COUNT] + </string> + <string name="ScriptLimitsRequestError"> + æ
å ±ã®ãªã¯ãšã¹ãäžã«ãšã©ãŒãçºçããŸãã + </string> + <string name="ScriptLimitsRequestWrongRegion"> + ãšã©ãŒïŒ ã¹ã¯ãªããæ
å ±ã¯çŸåšå°ã®ã¿ååŸã§ããŸã + </string> + <string name="ScriptLimitsRequestWaiting"> + æ
å ±ãååŸäž... + </string> + <string name="ScriptLimitsRequestDontOwnParcel"> + ãã®åºç»ã調æ»ããæš©éããããŸããã + </string> + <string name="SITTING_ON"> + çåžäž + </string> + <string name="ATTACH_CHEST"> + èžéš + </string> + <string name="ATTACH_HEAD"> + é + </string> + <string name="ATTACH_LSHOULDER"> + å·Šè© + </string> + <string name="ATTACH_RSHOULDER"> + å³è© + </string> + <string name="ATTACH_LHAND"> + å·Šæ + </string> + <string name="ATTACH_RHAND"> + å³æ + </string> + <string name="ATTACH_LFOOT"> + 巊足 + </string> + <string name="ATTACH_RFOOT"> + å³è¶³ + </string> + <string name="ATTACH_BACK"> + èäž + </string> + <string name="ATTACH_PELVIS"> + éªšç€ + </string> + <string name="ATTACH_MOUTH"> + å£ + </string> + <string name="ATTACH_CHIN"> + ãã + </string> + <string name="ATTACH_LEAR"> + å·Šè³ + </string> + <string name="ATTACH_REAR"> + å³è³ + </string> + <string name="ATTACH_LEYE"> + å·Šç® + </string> + <string name="ATTACH_REYE"> + å³ç® + </string> + <string name="ATTACH_NOSE"> + 錻 + </string> + <string name="ATTACH_RUARM"> + å³è
ïŒäžïŒ + </string> + <string name="ATTACH_RLARM"> + å³è
ïŒäžïŒ + </string> + <string name="ATTACH_LUARM"> + å·Šè
ïŒäžïŒ + </string> + <string name="ATTACH_LLARM"> + å·Šè
ïŒäžïŒ + </string> + <string name="ATTACH_RHIP"> + å³è
° + </string> + <string name="ATTACH_RULEG"> + å³èïŒäžïŒ + </string> + <string name="ATTACH_RLLEG"> + å³èïŒäžïŒ + </string> + <string name="ATTACH_LHIP"> + å·Šè
° + </string> + <string name="ATTACH_LULEG"> + å·ŠèïŒäžïŒ + </string> + <string name="ATTACH_LLLEG"> + å·ŠèïŒäžïŒ + </string> + <string name="ATTACH_BELLY"> + ãè
¹ + </string> + <string name="ATTACH_RPEC"> + å³èžç + </string> + <string name="ATTACH_LPEC"> + å·Šèžç + </string> + <string name="ATTACH_HUD_CENTER_2"> + HUDïŒäžå€® 2ïŒ + </string> + <string name="ATTACH_HUD_TOP_RIGHT"> + HUDå³äž + </string> + <string name="ATTACH_HUD_TOP_CENTER"> + HUDïŒäžã»äžå€®ïŒ + </string> + <string name="ATTACH_HUD_TOP_LEFT"> + HUD å·Šäž + </string> + <string name="ATTACH_HUD_CENTER_1"> + HUDïŒäžå€® 1ïŒ + </string> + <string name="ATTACH_HUD_BOTTOM_LEFT"> + HUDïŒå·ŠäžïŒ + </string> + <string name="ATTACH_HUD_BOTTOM"> + HUDïŒäžïŒ + </string> + <string name="ATTACH_HUD_BOTTOM_RIGHT"> + HUDïŒå³äžïŒ + </string> <string name="CursorPos"> [LINE] è¡ç®ã[COLUMN] åç® </string> @@ -1338,6 +1500,12 @@ <string name="ClassifiedUpdateAfterPublish"> ïŒæ²èŒåŸæŽæ°ïŒ </string> + <string name="NoPicksClassifiedsText"> + ããã«ã¯ããã¯ã»ã¯ã©ã·ãã¡ã€ãåºåã¯ãããŸããã + </string> + <string name="PicksClassifiedsLoadingText"> + ããŒãã£ã³ã°... + </string> <string name="MultiPreviewTitle"> ãã¬ãã¥ãŒ </string> @@ -1414,23 +1582,35 @@ äžæã®æ¡åŒµåïŒ %s 䜿çšå¯èœãªæ¡åŒµåïŒ .wav, .tga, .bmp, .jpg, .jpeg, or .bvh </string> + <string name="MuteObject2"> + ããã㯠+ </string> + <string name="MuteAvatar"> + ããã㯠+ </string> + <string name="UnmuteObject"> + ãããã¯è§£é€ + </string> + <string name="UnmuteAvatar"> + ãããã¯è§£é€ + </string> <string name="AddLandmarkNavBarMenu"> - ã©ã³ãããŒã¯ãè¿œå ... + ã〠ã©ã³ãããŒã¯ã«è¿œå ... </string> <string name="EditLandmarkNavBarMenu"> - ã©ã³ãããŒã¯ãç·šé... + ã〠ã©ã³ãããŒã¯ãç·šé... </string> <string name="accel-mac-control"> - ⌃ + â </string> <string name="accel-mac-command"> - ⌘ + â </string> <string name="accel-mac-option"> - ⌥ + ⥠</string> <string name="accel-mac-shift"> - ⇧ + ⧠</string> <string name="accel-win-control"> Ctrl+ @@ -1616,7 +1796,7 @@ èŽåœçãªãšã©ãŒ </string> <string name="MBRequiresAltiVec"> - [APP_NAME] ã¯ãAltiVecæèŒã®ããã»ããµãå¿
èŠã§ããïŒG4 以éïŒ + [APP_NAME] ã¯ãAltiVecæèŒã®ããã»ããµãå¿
èŠã§ããïŒG4 以éïŒ </string> <string name="MBAlreadyRunning"> [APP_NAME] ã¯ãã§ã«å®è¡äžã§ãã @@ -1628,7 +1808,7 @@ ã¯ã©ãã·ã¥å ±åãéä¿¡ããŸããïŒ </string> <string name="MBAlert"> - èŠå + éç¥ </string> <string name="MBNoDirectX"> [APP_NAME] 㯠DirectX 9.0b åã³ãã以éã®ããŒãžã§ã³ãæ€åºããããšãã§ããŸããã§ããã @@ -2010,12 +2190,6 @@ www.secondlife.com ããææ°ããŒãžã§ã³ãããŠã³ããŒãããŠãã ã <string name="Eyes Bugged"> äžãŸã¶ãããããã ç® </string> - <string name="Eyes Shear Left Up"> - å·ŠåŽãäžã« - </string> - <string name="Eyes Shear Right Up"> - å³åŽãäžã« - </string> <string name="Face Shear"> é¡ã®ããã¿ </string> @@ -3018,6 +3192,27 @@ www.secondlife.com ããææ°ããŒãžã§ã³ãããŠã³ããŒãããŠãã ã <string name="LocationCtrlComboBtnTooltip"> ãã€ãã±ãŒã·ã§ã³å±¥æŽ </string> + <string name="LocationCtrlForSaleTooltip"> + ãã®åå°ã賌å
¥ + </string> + <string name="LocationCtrlVoiceTooltip"> + ããã§ã¯ãã€ã¹ã®å©çšãã§ããŸãã + </string> + <string name="LocationCtrlFlyTooltip"> + é£è¡ã¯çŠæ¢ãããŠããŸã + </string> + <string name="LocationCtrlPushTooltip"> + ããã·ã¥çŠæ¢ + </string> + <string name="LocationCtrlBuildTooltip"> + ãªããžã§ã¯ãã®å¶äœã»ããããã¯çŠæ¢ãããŠããŸã + </string> + <string name="LocationCtrlScriptsTooltip"> + ã¹ã¯ãªããäžå¯ + </string> + <string name="LocationCtrlDamageTooltip"> + äœå + </string> <string name="UpdaterWindowTitle"> [APP_NAME] ã¢ããããŒã </string> @@ -3075,6 +3270,33 @@ www.secondlife.com ããææ°ããŒãžã§ã³ãããŠã³ããŒãããŠãã ã <string name="IM_moderator_label"> ïŒã¢ãã¬ãŒã¿ïŒ </string> + <string name="started_call"> + ãã€ã¹ã³ãŒã«ãéå§ããŸã + </string> + <string name="joined_call"> + ãã€ã¹ã³ãŒã«ã«åå ããŸãã + </string> + <string name="ringing-im"> + ãã€ã¹ã³ãŒã«ã«åå ... + </string> + <string name="connected-im"> + æ¥ç¶ããŸãããã³ãŒã«çµäºãã¯ãªãã¯ããŠåããŸã + </string> + <string name="hang_up-im"> + ãã€ã¹ã³ãŒã«ããéåžããŸãã + </string> + <string name="answering-im"> + æ¥ç¶äž... + </string> + <string name="conference-title"> + ã¢ãããã¯ã³ã³ãã¡ã¬ã³ã¹ + </string> + <string name="inventory_item_offered-im"> + æã¡ç©ã¢ã€ãã ãéãããŠããŸãã + </string> + <string name="share_alert"> + æã¡ç©ããããã«ã¢ã€ãã ããã©ãã°ããŸã + </string> <string name="only_user_message"> ãã®ã»ãã·ã§ã³ã«ãããŠãŒã¶ãŒã¯ããªãã ãã§ãã </string> @@ -3084,6 +3306,12 @@ www.secondlife.com ããææ°ããŒãžã§ã³ãããŠã³ããŒãããŠãã ã <string name="invite_message"> ãã®ãã€ã¹ãã£ããã«å¿ç/æ¥ç¶ããå Žåã¯ã[BUTTON NAME]ãã¯ãªãã¯ããŠãã ããã </string> + <string name="muted_message"> + ãã®äœäººããããã¯ããŠããŸãã ã¡ãã»ãŒãžãéããšããããã¯ãèªåçã«è§£é€ãããŸãã + </string> + <string name="generic"> + ãªã¯ãšã¹ãäžã«ãšã©ãŒãçºçããŸãããããšã§ããäžåºŠãè©Šããã ããã + </string> <string name="generic_request_error"> èŠæ±äžã«ãšã©ãŒãçºçããŸãããåŸã§ããäžåºŠè©ŠããŠãã ããã </string> @@ -3102,19 +3330,37 @@ www.secondlife.com ããææ°ããŒãžã§ã³ãããŠã³ããŒãããŠãã ã <string name="not_a_mod_error"> ããªãã¯ã»ãã·ã§ã³ã»ã¢ãã¬ãŒã¿ã§ã¯ãããŸããã </string> + <string name="muted"> + ã°ã«ãŒãã®ã¢ãã¬ãŒã¿ãŒããããªãã®ããã¹ããã£ãããçŠæ¢ããŸããã + </string> <string name="muted_error"> ã°ã«ãŒãã¢ãã¬ãŒã¿ãããªãã®ããã¹ããã£ãããç¡å¹åããŸãã </string> <string name="add_session_event"> [RECIPIENT] ãšã®ãã£ããã»ã»ãã·ã§ã³ã«ãŠãŒã¶ãŒãè¿œå ããããšãã§ããŸãã </string> + <string name="message"> + [RECIPIENT] ãšã®ãã£ããã»ãã·ã§ã³ã«ãã¡ãã»ãŒãžãéä¿¡ããããšãã§ããŸããã + </string> <string name="message_session_event"> [RECIPIENT] ãšã®ãã£ããã»ã»ãã·ã§ã³ã«ã¡ãã»ãŒãžãéãããšãã§ããŸãã </string> + <string name="mute"> + ã¢ãã¬ãŒãäžã«ãšã©ãŒãçºçããŸããã + </string> + <string name="removed"> + ã°ã«ãŒãããè±éããŸããã + </string> <string name="removed_from_group"> ããªãã¯ã°ã«ãŒãããåé€ãããŸããã </string> <string name="close_on_no_ability"> ãã®ãã£ããã»ã»ãã·ã§ã³ãç¶ç¶ããããšã¯ã§ããŸãã </string> + <string name="unread_chat_single"> + [SOURCES] ã¯äœãæ°ããããšãèšããŸããã + </string> + <string name="unread_chat_multiple"> + [SOURCES] ã¯äœãæ°ããããšãèšããŸããã + </string> </strings> |