Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm
# Conflicts: # indra/newview/llagentlistener.cpp # indra/newview/llappviewer.cpp # indra/newview/llcommanddispatcherlistener.cpp # indra/newview/llfilepicker_mac.mm # indra/newview/llworldmapview.cppmaster
commit
137f5d145e
|
|
@ -10,19 +10,20 @@ env:
|
|||
AUTOBUILD_VARIABLES_FILE: ${{github.workspace}}/build-variables/variables
|
||||
EXTRA_ARGS: -DUSE_FMODSTUDIO=ON -DUSE_KDU=ON --crashreporting
|
||||
build_secrets_checkout: ${{github.workspace}}/signing
|
||||
XZ_DEFAULTS: -T0
|
||||
|
||||
|
||||
jobs:
|
||||
build_matrix:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [macos-10.15,ubuntu-20.04,windows-2022]
|
||||
os: [macos-11,ubuntu-20.04,windows-2022]
|
||||
grid: [sl,os]
|
||||
addrsize: [64,32]
|
||||
exclude:
|
||||
- os: ubuntu-20.04
|
||||
addrsize: 32
|
||||
- os: macos-10.15
|
||||
- os: macos-11
|
||||
addrsize: 32
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
|
|
@ -196,6 +197,12 @@ jobs:
|
|||
fi
|
||||
done
|
||||
shell: bash
|
||||
|
||||
- name: make Nightly builds expire after 14 days
|
||||
if: env.FS_BUILD_TYPE == 'Nightly'
|
||||
run: |
|
||||
echo "EXTRA_ARGS=${{ env.EXTRA_ARGS}} --testbuild=14" >> $GITHUB_ENV
|
||||
|
||||
- name: Clean up packages to give more space
|
||||
run: rm *${{ env.fallback_platform }}*bz2
|
||||
shell: bash
|
||||
|
|
@ -246,18 +253,22 @@ jobs:
|
|||
- name: Install discord-webhook library
|
||||
run: pip install discord-webhook
|
||||
|
||||
- name: find channel from Branch name
|
||||
- name: find channel and webhook from Branch name
|
||||
run: |
|
||||
if [[ "${{ github.ref_name }}" == *Release* ]]; then
|
||||
FS_RELEASE_FOLDER=release
|
||||
else
|
||||
if [[ "${{github.event_name}}" == 'schedule' ]]; then
|
||||
FS_RELEASE_FOLDER=nightly
|
||||
FS_BUILD_WEBHOOK_URL=${{ secrets.RELEASE_WEBHOOK_URL }}
|
||||
else
|
||||
FS_RELEASE_FOLDER=preview
|
||||
if [[ "${{github.event_name}}" == 'schedule' ]]; then
|
||||
FS_RELEASE_FOLDER=nightly
|
||||
FS_BUILD_WEBHOOK_URL=${{ secrets.NIGHTLY_WEBHOOK_URL }}
|
||||
else
|
||||
FS_RELEASE_FOLDER=preview
|
||||
FS_BUILD_WEBHOOK_URL=${{ secrets.BETA_WEBHOOK_URL }}
|
||||
fi
|
||||
fi
|
||||
echo "FS_RELEASE_FOLDER=${FS_RELEASE_FOLDER}" >> $GITHUB_ENV
|
||||
echo "FS_BUILD_WEBHOOK_URL=${FS_BUILD_WEBHOOK_URL}" >> $GITHUB_ENV
|
||||
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
|
|
@ -269,7 +280,7 @@ jobs:
|
|||
working-directory: ${{steps.download.outputs.download-path}}
|
||||
|
||||
- name: Reorganise artifacts ready for server upload.
|
||||
run: python ./fsutils/download_list.py -u ${{steps.download.outputs.download-path}} -w ${{ secrets.RELEASE_WEBHOOK_URL }}
|
||||
run: python ./fsutils/download_list.py -u ${{steps.download.outputs.download-path}} -w ${{ env.FS_BUILD_WEBHOOK_URL }}
|
||||
|
||||
- name: Setup rclone and download the folder
|
||||
uses: beqjanus/setup-rclone@main
|
||||
|
|
|
|||
|
|
@ -239,6 +239,7 @@ Ansariel Hiller
|
|||
SL-15227
|
||||
SL-15398
|
||||
SL-18432
|
||||
SL-4126
|
||||
Aralara Rajal
|
||||
Arare Chantilly
|
||||
CHUIBUG-191
|
||||
|
|
@ -289,6 +290,7 @@ Beq Janus
|
|||
SL-18592
|
||||
SL-18637
|
||||
SL-19317
|
||||
SL-19660
|
||||
Beth Walcher
|
||||
Bezilon Kasei
|
||||
Biancaluce Robbiani
|
||||
|
|
|
|||
|
|
@ -80,7 +80,8 @@ def get_md5(mdfile):
|
|||
#split md5sum on space
|
||||
md5sum = md5sum.split()[0]
|
||||
#remove leading '\'
|
||||
md5sum = md5sum[1:]
|
||||
if md5sum[0] == "\\":
|
||||
md5sum = md5sum[1:]
|
||||
print(f"generating md5sum for {mdfile} as {md5sum}")
|
||||
return md5sum
|
||||
|
||||
|
|
@ -210,7 +211,11 @@ for build_type in build_types_created:
|
|||
platforms_printable = {"windows":"MS Windows", "mac":"MacOS", "linux":"Linux"}
|
||||
grids_printable = {"SL":"Second Life", "OS":"OpenSim"}
|
||||
|
||||
download_root = f"https://downloads.firestormviewer.org/{build_types[build_type]}/"
|
||||
download_root = f"https://downloads.firestormviewer.org/{build_types[build_type]}"
|
||||
output += f'''
|
||||
DOWNLOADS - {build_type}
|
||||
-------------------------------------------------------------------------------------------------------
|
||||
'''
|
||||
for dir in dirs:
|
||||
print(f"Getting files for {dir} in {build_type_dir}")
|
||||
files = get_files(os.path.join(build_type_dir, dir))
|
||||
|
|
@ -236,11 +241,8 @@ for build_type in build_types_created:
|
|||
print(f"No files found for {dir} in {build_type_dir}")
|
||||
|
||||
|
||||
output += f'''
|
||||
DOWNLOADS - {build_type}
|
||||
'''
|
||||
|
||||
output += f'''-------------------------------------------------------------------------------------------------------
|
||||
output += f'''
|
||||
{platforms_printable[dir]}
|
||||
'''
|
||||
dir = dir.lower()
|
||||
|
|
@ -266,8 +268,7 @@ DOWNLOADS - {build_type}
|
|||
except KeyError:
|
||||
output += f"{platform} for {grid_printable} ({wordsize}-bit) - NOT AVAILABLE\n"
|
||||
output += "\n"
|
||||
output += '''
|
||||
-------------------------------------------------------------------------------------------------------
|
||||
output += '''-------------------------------------------------------------------------------------------------------
|
||||
'''
|
||||
|
||||
if args.webhook:
|
||||
|
|
@ -276,6 +277,7 @@ DOWNLOADS - {build_type}
|
|||
# Send the webhook
|
||||
response = webhook.execute()
|
||||
# Print the response
|
||||
print(f"Webhook response: {response}")
|
||||
if not response.ok:
|
||||
print(f"Webhook Error {response.status_code}: {response.text}")
|
||||
print(output)
|
||||
|
||||
|
|
|
|||
|
|
@ -622,7 +622,7 @@ namespace
|
|||
|
||||
if (index >= mData.size())
|
||||
{
|
||||
mData.resize(i + 1);
|
||||
mData.resize(index + 1);
|
||||
}
|
||||
|
||||
return mData[index];
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@
|
|||
#include <map>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <type_traits>
|
||||
|
||||
#include "stdtypes.h"
|
||||
|
||||
|
|
@ -216,21 +215,15 @@ public:
|
|||
void assign(const Date&);
|
||||
void assign(const URI&);
|
||||
void assign(const Binary&);
|
||||
|
||||
// support assignment from size_t et al.
|
||||
template <typename VALUE,
|
||||
typename std::enable_if<std::is_integral<VALUE>::value &&
|
||||
! std::is_same<VALUE, Boolean>::value,
|
||||
bool>::type = true>
|
||||
void assign(VALUE v) { assign(Integer(narrow(v))); }
|
||||
// support assignment from F32 et al.
|
||||
template <typename VALUE,
|
||||
typename std::enable_if<std::is_floating_point<VALUE>::value,
|
||||
bool>::type = true>
|
||||
void assign(VALUE v) { assign(Real(narrow(v))); }
|
||||
|
||||
template <typename VALUE>
|
||||
LLSD& operator=(VALUE v) { assign(v); return *this; }
|
||||
|
||||
LLSD& operator=(Boolean v) { assign(v); return *this; }
|
||||
LLSD& operator=(Integer v) { assign(v); return *this; }
|
||||
LLSD& operator=(Real v) { assign(v); return *this; }
|
||||
LLSD& operator=(const String& v) { assign(v); return *this; }
|
||||
LLSD& operator=(const UUID& v) { assign(v); return *this; }
|
||||
LLSD& operator=(const Date& v) { assign(v); return *this; }
|
||||
LLSD& operator=(const URI& v) { assign(v); return *this; }
|
||||
LLSD& operator=(const Binary& v) { assign(v); return *this; }
|
||||
//@}
|
||||
|
||||
/**
|
||||
|
|
@ -292,6 +285,7 @@ public:
|
|||
//@{
|
||||
LLSD(const char*);
|
||||
void assign(const char*);
|
||||
LLSD& operator=(const char* v) { assign(v); return *this; }
|
||||
//@}
|
||||
|
||||
/** @name Map Values */
|
||||
|
|
|
|||
|
|
@ -121,9 +121,14 @@ U32 micro_sleep(U64 us, U32 max_yields)
|
|||
U64 start = get_clock_count();
|
||||
// This is kernel dependent. Currently, our kernel generates software clock
|
||||
// interrupts at 250 Hz (every 4,000 microseconds).
|
||||
const U64 KERNEL_SLEEP_INTERVAL_US = 4000;
|
||||
const S64 KERNEL_SLEEP_INTERVAL_US = 4000;
|
||||
|
||||
auto num_sleep_intervals = (us - (KERNEL_SLEEP_INTERVAL_US >> 1)) / KERNEL_SLEEP_INTERVAL_US;
|
||||
// Use signed arithmetic to discover whether a sleep is even necessary. If
|
||||
// either 'us' or KERNEL_SLEEP_INTERVAL_US is unsigned, the compiler
|
||||
// promotes the difference to unsigned. If 'us' is less than half
|
||||
// KERNEL_SLEEP_INTERVAL_US, the unsigned difference will be hugely
|
||||
// positive, resulting in a crazy long wait.
|
||||
auto num_sleep_intervals = (S64(us) - (KERNEL_SLEEP_INTERVAL_US >> 1)) / KERNEL_SLEEP_INTERVAL_US;
|
||||
if (num_sleep_intervals > 0)
|
||||
{
|
||||
U64 sleep_time = (num_sleep_intervals * KERNEL_SLEEP_INTERVAL_US) - (KERNEL_SLEEP_INTERVAL_US >> 1);
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ typedef unsigned int U32;
|
|||
|
||||
// to express an index that might go negative
|
||||
// (ssize_t is provided by SOME compilers, don't collide)
|
||||
typedef typename std::make_signed<size_t>::type llssize;
|
||||
typedef typename std::make_signed<std::size_t>::type llssize; // <FS:Ansariel> Stop Linux complaining
|
||||
|
||||
#if LL_WINDOWS
|
||||
// https://docs.microsoft.com/en-us/cpp/build/reference/zc-wchar-t-wchar-t-is-native-type
|
||||
|
|
|
|||
|
|
@ -286,7 +286,7 @@ F32 LLSettingsWater::getModifiedWaterFogDensity(bool underwater) const
|
|||
if (underwater && underwater_fog_mod > 0.0f)
|
||||
{
|
||||
underwater_fog_mod = llclamp(underwater_fog_mod, 0.0f, 10.0f);
|
||||
// <FS:Beq> BUG-233797/BUG-233798 -ve underwater fog density can cause (unrecoverable) blackout.
|
||||
// BUG-233797/BUG-233798 -ve underwater fog density can cause (unrecoverable) blackout.
|
||||
// raising a negative number to a non-integral power results in a non-real result (which is NaN for our purposes)
|
||||
// Two methods were tested, number 2 is being used:
|
||||
// 1) Force the fog_mod to be integral. The effect is unlikely to be nice, but it is better than blackness.
|
||||
|
|
@ -299,7 +299,6 @@ F32 LLSettingsWater::getModifiedWaterFogDensity(bool underwater) const
|
|||
{
|
||||
fog_density = 1.0f;
|
||||
}
|
||||
// </FS:Beq>
|
||||
fog_density = pow(fog_density, underwater_fog_mod);
|
||||
}
|
||||
return fog_density;
|
||||
|
|
|
|||
|
|
@ -268,7 +268,9 @@ void LLAvatarNameCache::handleAvNameCacheSuccess(const LLSD &data, const LLSD &h
|
|||
{
|
||||
const LLUUID& agent_id = *it;
|
||||
|
||||
LL_WARNS("AvNameCache") << "LLAvatarNameResponder::result "
|
||||
// If cap fails, response can contain a lot of names,
|
||||
// don't spam too much
|
||||
LL_DEBUGS("AvNameCache") << "LLAvatarNameResponder::result "
|
||||
<< "failed id " << agent_id
|
||||
<< LL_ENDL;
|
||||
|
||||
|
|
@ -296,7 +298,7 @@ void LLAvatarNameCache::handleAgentError(const LLUUID& agent_id)
|
|||
// </FS:Ansariel>
|
||||
|
||||
// there is no existing cache entry, so make a temporary name from legacy
|
||||
LL_WARNS("AvNameCache") << "LLAvatarNameCache get legacy for agent "
|
||||
LL_DEBUGS("AvNameCache") << "LLAvatarNameCache get legacy for agent "
|
||||
<< agent_id << LL_ENDL;
|
||||
gCacheName->get(agent_id, false, // legacy compatibility
|
||||
boost::bind(&LLAvatarNameCache::legacyNameFetch, _1, _2, _3));
|
||||
|
|
|
|||
|
|
@ -1768,7 +1768,8 @@ void LLFolderView::update()
|
|||
|
||||
// Clear the modified setting on the filter only if the filter finished after running the filter process
|
||||
// Note: if the filter count has timed out, that means the filter halted before completing the entire set of items
|
||||
if (filter_object.isModified() && (!filter_object.isTimedOut()))
|
||||
bool filter_modified = filter_object.isModified();
|
||||
if (filter_modified && (!filter_object.isTimedOut()))
|
||||
{
|
||||
filter_object.clearModified();
|
||||
}
|
||||
|
|
@ -1802,7 +1803,7 @@ void LLFolderView::update()
|
|||
BOOL filter_finished = mViewModel->contentsReady()
|
||||
&& (getViewModelItem()->passedFilter()
|
||||
|| ( getViewModelItem()->getLastFilterGeneration() >= filter_object.getFirstSuccessGeneration()
|
||||
&& !filter_object.isModified()));
|
||||
&& !filter_modified));
|
||||
if (filter_finished
|
||||
|| gFocusMgr.childHasKeyboardFocus(mParentPanel.get())
|
||||
|| gFocusMgr.childHasMouseCapture(mParentPanel.get()))
|
||||
|
|
@ -1890,13 +1891,26 @@ void LLFolderView::update()
|
|||
|
||||
if (mSelectedItems.size() && mNeedsScroll)
|
||||
{
|
||||
scrollToShowItem(mSelectedItems.back(), constraint_rect);
|
||||
LLFolderViewItem* scroll_to_item = mSelectedItems.back();
|
||||
scrollToShowItem(scroll_to_item, constraint_rect);
|
||||
// continue scrolling until animated layout change is done
|
||||
if (filter_finished
|
||||
&& (!needsArrange() || !is_visible))
|
||||
{
|
||||
mNeedsScroll = FALSE;
|
||||
}
|
||||
bool selected_filter_finished = getRoot()->getViewModelItem()->getLastFilterGeneration() >= filter_object.getFirstSuccessGeneration();
|
||||
if (selected_filter_finished && scroll_to_item && scroll_to_item->getViewModelItem())
|
||||
{
|
||||
selected_filter_finished = scroll_to_item->getViewModelItem()->getLastFilterGeneration() >= filter_object.getFirstSuccessGeneration();
|
||||
}
|
||||
if (filter_finished && selected_filter_finished)
|
||||
{
|
||||
bool needs_arrange = needsArrange() || getRoot()->needsArrange();
|
||||
if (mParentFolder)
|
||||
{
|
||||
needs_arrange |= (bool)mParentFolder->needsArrange();
|
||||
}
|
||||
if (!needs_arrange || !is_visible)
|
||||
{
|
||||
mNeedsScroll = FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (mSignalSelectCallback)
|
||||
|
|
|
|||
|
|
@ -350,7 +350,6 @@ protected:
|
|||
F32 mAutoOpenCountdown;
|
||||
S32 mLastArrangeGeneration;
|
||||
S32 mLastCalculatedWidth;
|
||||
// bool mNeedsSort; <FS:ND/> Unused.
|
||||
bool mIsFolderComplete; // indicates that some children were not loaded/added yet
|
||||
bool mAreChildrenInited; // indicates that no children were initialized
|
||||
|
||||
|
|
|
|||
|
|
@ -338,7 +338,7 @@ void LLNotificationForm::addElement(const std::string& type, const std::string&
|
|||
element["name"] = name;
|
||||
element["text"] = name;
|
||||
element["value"] = value;
|
||||
element["index"] = mFormData.size();
|
||||
element["index"] = LLSD::Integer(mFormData.size());
|
||||
element["enabled"] = enabled;
|
||||
mFormData.append(element);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -252,31 +252,9 @@ void LLKeyboardWin32::scanKeyboard()
|
|||
{
|
||||
S32 key;
|
||||
MSG msg;
|
||||
BOOL pending_key_events = PeekMessage(&msg, NULL, WM_KEYFIRST, WM_KEYLAST, PM_NOREMOVE | PM_NOYIELD);
|
||||
PeekMessage(&msg, NULL, WM_KEYFIRST, WM_KEYLAST, PM_NOREMOVE | PM_NOYIELD);
|
||||
for (key = 0; key < KEY_COUNT; key++)
|
||||
{
|
||||
// On Windows, verify key down state. JC
|
||||
// RN: only do this if we don't have further key events in the queue
|
||||
// as otherwise there might be key repeat events still waiting for this key we are now dumping
|
||||
if (!pending_key_events && mKeyLevel[key])
|
||||
{
|
||||
// *TODO: I KNOW there must be a better way of
|
||||
// interrogating the key state than this, using async key
|
||||
// state can cause ALL kinds of bugs - Doug
|
||||
if ((key < KEY_BUTTON0) && ((key < '0') || (key > '9')))
|
||||
{
|
||||
// ...under windows make sure the key actually still is down.
|
||||
// ...translate back to windows key
|
||||
U16 virtual_key = inverseTranslateExtendedKey(key);
|
||||
// keydown in highest bit
|
||||
if (!pending_key_events && !(GetAsyncKeyState(virtual_key) & 0x8000))
|
||||
{
|
||||
//LL_INFOS() << "Key up event missed, resetting" << LL_ENDL;
|
||||
mKeyLevel[key] = FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Generate callback if any event has occurred on this key this frame.
|
||||
// Can't just test mKeyLevel, because this could be a slow frame and
|
||||
// key might have gone down then up. JC
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
6.6.12
|
||||
6.6.13
|
||||
|
|
|
|||
|
|
@ -11198,6 +11198,17 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>NvAPICreateApplicationProfile</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Create NVIDIA application profile for optimized settings</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>PurgeCacheOnNextStartup</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
@ -25304,6 +25315,7 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<string>LLSD</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<string>az</string>
|
||||
<string>de</string>
|
||||
<string>en</string>
|
||||
<string>es</string>
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ void LLAgentListener::requestTeleport(LLSD const & event_data) const
|
|||
params.append(event_data["x"]);
|
||||
params.append(event_data["y"]);
|
||||
params.append(event_data["z"]);
|
||||
LLCommandDispatcher::dispatch("teleport", params, LLSD(), LLGridManager::getInstance()->getGrid(), NULL, "clicked", true);
|
||||
LLCommandDispatcher::dispatch("teleport", params, LLSD(), LLGridManager::getInstance()->getGrid(), NULL, LLCommandHandler::NAV_TYPE_CLICKED, true);
|
||||
// *TODO - lookup other LLCommandHandlers for "agent", "classified", "event", "group", "floater", "parcel", "login", login_refresh", "balance", "chat"
|
||||
// should we just compose LLCommandHandler and LLDispatchListener?
|
||||
}
|
||||
|
|
@ -164,7 +164,7 @@ void LLAgentListener::requestTeleport(LLSD const & event_data) const
|
|||
LLVector3(event_data["x"].asReal(),
|
||||
event_data["y"].asReal(),
|
||||
event_data["z"].asReal())).getSLURLString();
|
||||
LLURLDispatcher::dispatch(url, "clicked", NULL, false);
|
||||
LLURLDispatcher::dispatch(url, LLCommandHandler::NAV_TYPE_CLICKED, NULL, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2540,6 +2540,7 @@ bool LLAppViewer::cleanup()
|
|||
LLSelectMgr::deleteSingleton();
|
||||
LLViewerEventRecorder::deleteSingleton();
|
||||
LLWorld::deleteSingleton();
|
||||
LLVoiceClient::deleteSingleton();
|
||||
|
||||
// It's not at first obvious where, in this long sequence, a generic cleanup
|
||||
// call OUGHT to go. So let's say this: as we migrate cleanup from
|
||||
|
|
|
|||
|
|
@ -302,25 +302,8 @@ void ll_nvapi_init(NvDRSSessionHandle hSession)
|
|||
std::string app_name = LLTrans::getString("APP_NAME");
|
||||
llutf16string w_app_name = utf8str_to_utf16str(app_name);
|
||||
wsprintf(profile_name, L"%s", w_app_name.c_str());
|
||||
// <FS:Ansariel> FIRE-16667 / BUG-9906: Viewer messing up the global NVIDIA driver profile
|
||||
//status = NvAPI_DRS_SetCurrentGlobalProfile(hSession, profile_name);
|
||||
//if (status != NVAPI_OK)
|
||||
//{
|
||||
// nvapi_error(status);
|
||||
// return;
|
||||
//}
|
||||
|
||||
//// (3) Obtain the current profile.
|
||||
//NvDRSProfileHandle hProfile = 0;
|
||||
//status = NvAPI_DRS_GetCurrentGlobalProfile(hSession, &hProfile);
|
||||
//if (status != NVAPI_OK)
|
||||
//{
|
||||
// nvapi_error(status);
|
||||
// return;
|
||||
//}
|
||||
|
||||
NvDRSProfileHandle hProfile = 0;
|
||||
// Check if we already have a Firestorm profile
|
||||
// (3) Check if we already have an application profile for the viewer
|
||||
status = NvAPI_DRS_FindProfileByName(hSession, profile_name, &hProfile);
|
||||
if (status != NVAPI_OK && status != NVAPI_PROFILE_NOT_FOUND)
|
||||
{
|
||||
|
|
@ -329,8 +312,8 @@ void ll_nvapi_init(NvDRSSessionHandle hSession)
|
|||
}
|
||||
else if (status == NVAPI_PROFILE_NOT_FOUND)
|
||||
{
|
||||
// Don't have a Firestorm profile yet - create one
|
||||
LL_INFOS() << "Creating Firestorm profile for NVIDIA driver" << LL_ENDL;
|
||||
// Don't have an application profile yet - create one
|
||||
LL_INFOS() << "Creating NVIDIA application profile" << LL_ENDL;
|
||||
|
||||
NVDRS_PROFILE profileInfo;
|
||||
profileInfo.version = NVDRS_PROFILE_VER;
|
||||
|
|
@ -345,7 +328,7 @@ void ll_nvapi_init(NvDRSSessionHandle hSession)
|
|||
}
|
||||
}
|
||||
|
||||
// Check if current exe is part of the profile
|
||||
// (4) Check if current exe is part of the profile
|
||||
std::string exe_name = gDirUtilp->getExecutableFilename();
|
||||
NVDRS_APPLICATION profile_application;
|
||||
profile_application.version = NVDRS_APPLICATION_VER;
|
||||
|
|
@ -362,7 +345,7 @@ void ll_nvapi_init(NvDRSSessionHandle hSession)
|
|||
}
|
||||
else if (status == NVAPI_EXECUTABLE_NOT_FOUND)
|
||||
{
|
||||
LL_INFOS() << "Creating application for " << exe_name << " for NVIDIA driver" << LL_ENDL;
|
||||
LL_INFOS() << "Creating application for " << exe_name << " for NVIDIA application profile" << LL_ENDL;
|
||||
|
||||
// Add this exe to the profile
|
||||
NVDRS_APPLICATION application;
|
||||
|
|
@ -382,13 +365,12 @@ void ll_nvapi_init(NvDRSSessionHandle hSession)
|
|||
|
||||
// Save application in case we added one
|
||||
status = NvAPI_DRS_SaveSettings(hSession);
|
||||
if (status != NVAPI_OK)
|
||||
if (status != NVAPI_OK)
|
||||
{
|
||||
nvapi_error(status);
|
||||
return;
|
||||
}
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
// load settings for querying
|
||||
status = NvAPI_DRS_LoadSettings(hSession);
|
||||
|
|
@ -404,7 +386,7 @@ void ll_nvapi_init(NvDRSSessionHandle hSession)
|
|||
status = NvAPI_DRS_GetSetting(hSession, hProfile, PREFERRED_PSTATE_ID, &drsSetting);
|
||||
if (status == NVAPI_SETTING_NOT_FOUND)
|
||||
{ //only override if the user hasn't specifically set this setting
|
||||
// (4) Specify that we want the VSYNC disabled setting
|
||||
// (5) Specify that we want to enable maximum performance setting
|
||||
// first we fill the NVDRS_SETTING struct, then we call the function
|
||||
drsSetting.version = NVDRS_SETTING_VER;
|
||||
drsSetting.settingId = PREFERRED_PSTATE_ID;
|
||||
|
|
@ -417,7 +399,7 @@ void ll_nvapi_init(NvDRSSessionHandle hSession)
|
|||
return;
|
||||
}
|
||||
|
||||
// (5) Now we apply (or save) our changes to the system
|
||||
// (6) Now we apply (or save) our changes to the system
|
||||
status = NvAPI_DRS_SaveSettings(hSession);
|
||||
if (status != NVAPI_OK)
|
||||
{
|
||||
|
|
@ -502,27 +484,31 @@ int APIENTRY WINMAIN(HINSTANCE hInstance,
|
|||
LL_WARNS() << "Application init failed." << LL_ENDL;
|
||||
return -1;
|
||||
}
|
||||
|
||||
NvAPI_Status status;
|
||||
|
||||
// Initialize NVAPI
|
||||
status = NvAPI_Initialize();
|
||||
NvDRSSessionHandle hSession = 0;
|
||||
|
||||
if (status == NVAPI_OK)
|
||||
{
|
||||
// Create the session handle to access driver settings
|
||||
status = NvAPI_DRS_CreateSession(&hSession);
|
||||
if (status != NVAPI_OK)
|
||||
{
|
||||
nvapi_error(status);
|
||||
}
|
||||
else
|
||||
{
|
||||
//override driver setting as needed
|
||||
ll_nvapi_init(hSession);
|
||||
}
|
||||
}
|
||||
NvDRSSessionHandle hSession = 0;
|
||||
static LLCachedControl<bool> use_nv_api(gSavedSettings, "NvAPICreateApplicationProfile", true);
|
||||
if (use_nv_api)
|
||||
{
|
||||
NvAPI_Status status;
|
||||
|
||||
// Initialize NVAPI
|
||||
status = NvAPI_Initialize();
|
||||
|
||||
if (status == NVAPI_OK)
|
||||
{
|
||||
// Create the session handle to access driver settings
|
||||
status = NvAPI_DRS_CreateSession(&hSession);
|
||||
if (status != NVAPI_OK)
|
||||
{
|
||||
nvapi_error(status);
|
||||
}
|
||||
else
|
||||
{
|
||||
//override driver setting as needed
|
||||
ll_nvapi_init(hSession);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Have to wait until after logging is initialized to display LFH info
|
||||
if (num_heaps > 0)
|
||||
|
|
@ -782,101 +768,107 @@ bool LLAppViewerWin32::init()
|
|||
// LLFile::remove(log_file, ENOENT);
|
||||
//}
|
||||
|
||||
success = LLAppViewer::init();
|
||||
if (!success)
|
||||
return false;
|
||||
// Win7 is no longer supported
|
||||
bool is_win_7_or_below = LLOSInfo::getInstance()->mMajorVer <= 6 && LLOSInfo::getInstance()->mMajorVer <= 1;
|
||||
|
||||
checkTemp(); // Always do and log this, no matter if using Bugsplat or not
|
||||
if (!is_win_7_or_below)
|
||||
{
|
||||
success = LLAppViewer::init();
|
||||
if (!success)
|
||||
return false;
|
||||
|
||||
// Save those early so we don't have to deal with the dynamic memory during in process crash handling.
|
||||
FS::LogfileIn = ll_convert_string_to_wide(gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "Firestorm.log"));
|
||||
FS::LogfileOut = ll_convert_string_to_wide(gDirUtilp->getExpandedFilename(LL_PATH_DUMP, "Firestorm.log"));
|
||||
FS::DumpFile = ll_convert_string_to_wide(gDirUtilp->getExpandedFilename(LL_PATH_DUMP, "Firestorm.dmp"));
|
||||
checkTemp(); // Always do and log this, no matter if using Bugsplat or not
|
||||
|
||||
S32 nCrashSubmitBehavior = gCrashSettings.getS32("CrashSubmitBehavior");
|
||||
// Don't ever send? bail out!
|
||||
if (nCrashSubmitBehavior == 2 /*CRASH_BEHAVIOR_NEVER_SEND*/)
|
||||
return success;
|
||||
// Save those early so we don't have to deal with the dynamic memory during in process crash handling.
|
||||
FS::LogfileIn = ll_convert_string_to_wide(gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "Firestorm.log"));
|
||||
FS::LogfileOut = ll_convert_string_to_wide(gDirUtilp->getExpandedFilename(LL_PATH_DUMP, "Firestorm.log"));
|
||||
FS::DumpFile = ll_convert_string_to_wide(gDirUtilp->getExpandedFilename(LL_PATH_DUMP, "Firestorm.dmp"));
|
||||
|
||||
DWORD dwAsk{ MDSF_NONINTERACTIVE };
|
||||
if (nCrashSubmitBehavior == 0 /*CRASH_BEHAVIOR_ASK*/)
|
||||
dwAsk = 0;
|
||||
// </FS:ND>
|
||||
|
||||
std::string build_data_fname(
|
||||
gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "build_data.json"));
|
||||
// Use llifstream instead of std::ifstream because LL_PATH_EXECUTABLE
|
||||
// could contain non-ASCII characters, which std::ifstream doesn't handle.
|
||||
llifstream inf(build_data_fname.c_str());
|
||||
if (! inf.is_open())
|
||||
{
|
||||
LL_WARNS("BUGSPLAT") << "Can't initialize BugSplat, can't read '" << build_data_fname
|
||||
<< "'" << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
Json::Reader reader;
|
||||
Json::Value build_data;
|
||||
if (! reader.parse(inf, build_data, false)) // don't collect comments
|
||||
{
|
||||
// gah, the typo is baked into Json::Reader API
|
||||
LL_WARNS("BUGSPLAT") << "Can't initialize BugSplat, can't parse '" << build_data_fname
|
||||
<< "': " << reader.getFormatedErrorMessages() << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
Json::Value BugSplat_DB = build_data["BugSplat DB"];
|
||||
if (! BugSplat_DB)
|
||||
{
|
||||
LL_WARNS("BUGSPLAT") << "Can't initialize BugSplat, no 'BugSplat DB' entry in '"
|
||||
<< build_data_fname << "'" << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Got BugSplat_DB, onward!
|
||||
std::wstring version_string(WSTRINGIZE(LL_VIEWER_VERSION_MAJOR << '.' <<
|
||||
LL_VIEWER_VERSION_MINOR << '.' <<
|
||||
LL_VIEWER_VERSION_PATCH << '.' <<
|
||||
LL_VIEWER_VERSION_BUILD));
|
||||
S32 nCrashSubmitBehavior = gCrashSettings.getS32("CrashSubmitBehavior");
|
||||
// Don't ever send? bail out!
|
||||
if (nCrashSubmitBehavior == 2 /*CRASH_BEHAVIOR_NEVER_SEND*/)
|
||||
return success;
|
||||
|
||||
// <FS:ND> Set up Bugsplat to ask or always send
|
||||
//DWORD dwFlags = MDSF_NONINTERACTIVE | // automatically submit report without prompting
|
||||
// MDSF_PREVENTHIJACKING; // disallow swiping Exception filter
|
||||
DWORD dwFlags = dwAsk |
|
||||
MDSF_PREVENTHIJACKING; // disallow swiping Exception filter
|
||||
// </FS:ND>
|
||||
DWORD dwAsk{ MDSF_NONINTERACTIVE };
|
||||
if (nCrashSubmitBehavior == 0 /*CRASH_BEHAVIOR_ASK*/)
|
||||
dwAsk = 0;
|
||||
// </FS:ND>
|
||||
|
||||
std::string build_data_fname(
|
||||
gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "build_data.json"));
|
||||
// Use llifstream instead of std::ifstream because LL_PATH_EXECUTABLE
|
||||
// could contain non-ASCII characters, which std::ifstream doesn't handle.
|
||||
llifstream inf(build_data_fname.c_str());
|
||||
if (! inf.is_open())
|
||||
{
|
||||
LL_WARNS("BUGSPLAT") << "Can't initialize BugSplat, can't read '" << build_data_fname
|
||||
<< "'" << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
Json::Reader reader;
|
||||
Json::Value build_data;
|
||||
if (! reader.parse(inf, build_data, false)) // don't collect comments
|
||||
{
|
||||
// gah, the typo is baked into Json::Reader API
|
||||
LL_WARNS("BUGSPLAT") << "Can't initialize BugSplat, can't parse '" << build_data_fname
|
||||
<< "': " << reader.getFormatedErrorMessages() << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
Json::Value BugSplat_DB = build_data["BugSplat DB"];
|
||||
if (! BugSplat_DB)
|
||||
{
|
||||
LL_WARNS("BUGSPLAT") << "Can't initialize BugSplat, no 'BugSplat DB' entry in '"
|
||||
<< build_data_fname << "'" << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Got BugSplat_DB, onward!
|
||||
std::wstring version_string(WSTRINGIZE(LL_VIEWER_VERSION_MAJOR << '.' <<
|
||||
LL_VIEWER_VERSION_MINOR << '.' <<
|
||||
LL_VIEWER_VERSION_PATCH << '.' <<
|
||||
LL_VIEWER_VERSION_BUILD));
|
||||
|
||||
//bool needs_log_file = !isSecondInstance() && debugLoggingEnabled("BUGSPLAT");
|
||||
//if (needs_log_file)
|
||||
//{
|
||||
// // Startup only!
|
||||
// LL_INFOS("BUGSPLAT") << "Engaged BugSplat logging to bugsplat.log" << LL_ENDL;
|
||||
// dwFlags |= MDSF_LOGFILE | MDSF_LOG_VERBOSE;
|
||||
//}
|
||||
// <FS:ND> Set up Bugsplat to ask or always send
|
||||
//DWORD dwFlags = MDSF_NONINTERACTIVE | // automatically submit report without prompting
|
||||
// MDSF_PREVENTHIJACKING; // disallow swiping Exception filter
|
||||
DWORD dwFlags = dwAsk |
|
||||
MDSF_PREVENTHIJACKING; // disallow swiping Exception filter
|
||||
// </FS:ND>
|
||||
|
||||
// have to convert normal wide strings to strings of __wchar_t
|
||||
sBugSplatSender = new MiniDmpSender(
|
||||
WCSTR(BugSplat_DB.asString()),
|
||||
WCSTR(LL_TO_WSTRING(LL_VIEWER_CHANNEL)),
|
||||
WCSTR(version_string),
|
||||
nullptr, // szAppIdentifier -- set later
|
||||
dwFlags);
|
||||
//bool needs_log_file = !isSecondInstance() && debugLoggingEnabled("BUGSPLAT");
|
||||
//if (needs_log_file)
|
||||
//{
|
||||
// // Startup only!
|
||||
// LL_INFOS("BUGSPLAT") << "Engaged BugSplat logging to bugsplat.log" << LL_ENDL;
|
||||
// dwFlags |= MDSF_LOGFILE | MDSF_LOG_VERBOSE;
|
||||
//}
|
||||
|
||||
sBugSplatSender->setCallback(bugsplatSendLog);
|
||||
// have to convert normal wide strings to strings of __wchar_t
|
||||
sBugSplatSender = new MiniDmpSender(
|
||||
WCSTR(BugSplat_DB.asString()),
|
||||
WCSTR(LL_TO_WSTRING(LL_VIEWER_CHANNEL)),
|
||||
WCSTR(version_string),
|
||||
nullptr, // szAppIdentifier -- set later
|
||||
dwFlags);
|
||||
|
||||
//if (needs_log_file)
|
||||
//{
|
||||
// // Log file will be created in %TEMP%, but it will be moved into logs folder in case of crash
|
||||
// std::string log_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "bugsplat.log");
|
||||
// sBugSplatSender->setLogFilePath(WCSTR(log_file));
|
||||
//}
|
||||
sBugSplatSender->setCallback(bugsplatSendLog);
|
||||
|
||||
// engage stringize() overload that converts from wstring
|
||||
LL_INFOS("BUGSPLAT") << "Engaged BugSplat(" << LL_TO_STRING(LL_VIEWER_CHANNEL)
|
||||
<< ' ' << stringize(version_string) << ')' << LL_ENDL;
|
||||
} // got BugSplat_DB
|
||||
} // parsed build_data.json
|
||||
} // opened build_data.json
|
||||
//if (needs_log_file)
|
||||
//{
|
||||
// // Log file will be created in %TEMP%, but it will be moved into logs folder in case of crash
|
||||
// std::string log_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "bugsplat.log");
|
||||
// sBugSplatSender->setLogFilePath(WCSTR(log_file));
|
||||
//}
|
||||
|
||||
// engage stringize() overload that converts from wstring
|
||||
LL_INFOS("BUGSPLAT") << "Engaged BugSplat(" << LL_TO_STRING(LL_VIEWER_CHANNEL)
|
||||
<< ' ' << stringize(version_string) << ')' << LL_ENDL;
|
||||
} // got BugSplat_DB
|
||||
} // parsed build_data.json
|
||||
} // opened build_data.json
|
||||
} // !is_win_7_or_below
|
||||
|
||||
#endif // LL_BUGSPLAT
|
||||
#endif // LL_SEND_CRASH_REPORTS
|
||||
|
|
|
|||
|
|
@ -64,8 +64,13 @@ void LLCommandDispatcherListener::dispatch(const LLSD& params) const
|
|||
// But for testing, allow a caller to specify untrusted.
|
||||
trusted_browser = params["trusted"].asBoolean();
|
||||
}
|
||||
LLCommandDispatcher::dispatch(params["cmd"], params["params"], params["query"], "", NULL,
|
||||
"clicked", trusted_browser);
|
||||
LLCommandDispatcher::dispatch(params["cmd"],
|
||||
params["params"],
|
||||
params["query"],
|
||||
"",
|
||||
NULL,
|
||||
LLCommandHandler::NAV_TYPE_CLICKED,
|
||||
trusted_browser);
|
||||
}
|
||||
|
||||
void LLCommandDispatcherListener::enumerate(const LLSD& params) const
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@
|
|||
|
||||
static LLCommandDispatcherListener sCommandDispatcherListener;
|
||||
const std::string LLCommandHandler::NAV_TYPE_CLICKED = "clicked";
|
||||
const std::string LLCommandHandler::NAV_TYPE_EXTERNAL = "external";
|
||||
const std::string LLCommandHandler::NAV_TYPE_NAVIGATED = "navigated";
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Underlying registry for command handlers, not directly accessible.
|
||||
|
|
|
|||
|
|
@ -70,6 +70,8 @@ public:
|
|||
};
|
||||
|
||||
static const std::string NAV_TYPE_CLICKED;
|
||||
static const std::string NAV_TYPE_EXTERNAL;
|
||||
static const std::string NAV_TYPE_NAVIGATED;
|
||||
|
||||
LLCommandHandler(const char* command, EUntrustedAccess untrusted_access);
|
||||
// Automatically registers object to get called when
|
||||
|
|
|
|||
|
|
@ -283,8 +283,9 @@ namespace Details
|
|||
errorCount = 0;
|
||||
|
||||
if (!result.isMap() ||
|
||||
!result.get("events") ||
|
||||
!result.get("id"))
|
||||
!result.has("events") ||
|
||||
!result["events"].isArray() ||
|
||||
!result.has("id"))
|
||||
{
|
||||
LL_WARNS("LLEventPollImpl") << " <" << counter << "> received event poll with no events or id key: " << result << LL_ENDL;
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -509,6 +509,18 @@ bool LLFeatureManager::loadGPUClass()
|
|||
{
|
||||
mGPUClass = GPU_CLASS_5;
|
||||
}
|
||||
|
||||
#if LL_WINDOWS
|
||||
const F32Gigabytes MIN_PHYSICAL_MEMORY(2);
|
||||
|
||||
LLMemory::updateMemoryInfo();
|
||||
F32Gigabytes physical_mem = LLMemory::getMaxMemKB();
|
||||
if (MIN_PHYSICAL_MEMORY > physical_mem && mGPUClass > GPU_CLASS_1)
|
||||
{
|
||||
// reduce quality on systems that don't have enough memory
|
||||
mGPUClass = (EGPUClass)(mGPUClass - 1);
|
||||
}
|
||||
#endif //LL_WINDOWS
|
||||
} //end if benchmark
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -849,12 +849,14 @@ void set_nav_save_data(LLFilePicker::ESaveFilter filter, std::string &extension,
|
|||
break;
|
||||
#endif
|
||||
|
||||
case LLFilePicker::FFSAVE_XML:
|
||||
type = "\?\?\?\?";
|
||||
creator = "\?\?\?\?";
|
||||
extension = "xml";
|
||||
break;
|
||||
|
||||
// <FS:TS> Compile fix
|
||||
//case LLFilePicker::FFSAVE_XML:
|
||||
// type = "\?\?\?\?";
|
||||
// creator = "\?\?\?\?";
|
||||
// extension = "xml";
|
||||
// break;
|
||||
// </FS:TS> Compile fix
|
||||
|
||||
case LLFilePicker::FFSAVE_RAW:
|
||||
type = "\?\?\?\?";
|
||||
creator = "\?\?\?\?";
|
||||
|
|
@ -872,6 +874,31 @@ void set_nav_save_data(LLFilePicker::ESaveFilter filter, std::string &extension,
|
|||
creator = "\?\?\?\?";
|
||||
extension = "lsl";
|
||||
break;
|
||||
|
||||
// <FS:CR> Export filter
|
||||
case FFSAVE_EXPORT:
|
||||
type = "OXP ";
|
||||
creator = "\?\?\?\?";
|
||||
extension = "oxp";
|
||||
break;
|
||||
case FFSAVE_COLLADA:
|
||||
type = "DAE ";
|
||||
creator = "\?\?\?\?";
|
||||
extension = "dae";
|
||||
break;
|
||||
// <FS:CR> CSV Filter
|
||||
case FFSAVE_CSV:
|
||||
type = "CSV ";
|
||||
creator = "\?\?\?\?";
|
||||
extension = "csv";
|
||||
break;
|
||||
// </FS:CR>
|
||||
case FFSAVE_BEAM:
|
||||
case FFSAVE_XML:
|
||||
type = "XML ";
|
||||
creator = "\?\?\?\?";
|
||||
extension = "xml";
|
||||
break;
|
||||
|
||||
case LLFilePicker::FFSAVE_ALL:
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ NSOpenPanel *init_panel(const std::vector<std::string>* allowed_types, unsigned
|
|||
return panel;
|
||||
}
|
||||
|
||||
std::unique_ptr<std::vector<std::string>> doLoadDialog(const std::vector<std::string>* allowed_types,
|
||||
std::unique_ptr<std::vector<std::string>> doLoadDialog(const std::vector<std::string>* allowed_types,
|
||||
unsigned int flags)
|
||||
{
|
||||
std::unique_ptr<std::vector<std::string>> outfiles;
|
||||
|
|
|
|||
|
|
@ -165,10 +165,21 @@ void LLFloaterDisplayName::onReset()
|
|||
{
|
||||
return;
|
||||
}
|
||||
getChild<LLUICtrl>("display_name_editor")->setValue(av_name.getCompleteName());
|
||||
getChild<LLUICtrl>("display_name_editor")->setValue(av_name.getUserName());
|
||||
|
||||
getChild<LLUICtrl>("display_name_confirm")->clear();
|
||||
getChild<LLUICtrl>("display_name_confirm")->setFocus(TRUE);
|
||||
if (getChild<LLUICtrl>("display_name_editor")->getEnabled())
|
||||
{
|
||||
// UI is enabled, fill the first field
|
||||
getChild<LLUICtrl>("display_name_confirm")->clear();
|
||||
getChild<LLUICtrl>("display_name_confirm")->setFocus(TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
// UI is disabled, looks like we should allow resetting
|
||||
// even if user already set a display name, enable save button
|
||||
getChild<LLUICtrl>("display_name_confirm")->setValue(av_name.getUserName());
|
||||
getChild<LLUICtrl>("save_btn")->setEnabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -183,6 +194,21 @@ void LLFloaterDisplayName::onSave()
|
|||
return;
|
||||
}
|
||||
|
||||
LLAvatarName av_name;
|
||||
if (!LLAvatarNameCache::get(gAgent.getID(), &av_name))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
std::string user_name = av_name.getUserName();
|
||||
if (display_name_utf8.compare(user_name) == 0
|
||||
&& LLAvatarNameCache::getInstance()->hasNameLookupURL())
|
||||
{
|
||||
// A reset
|
||||
LLViewerDisplayName::set("", boost::bind(&LLFloaterDisplayName::onCacheSetName, this, _1, _2, _3));
|
||||
return;
|
||||
}
|
||||
|
||||
const U32 DISPLAY_NAME_MAX_LENGTH = 31; // characters, not bytes
|
||||
LLWString display_name_wstr = utf8string_to_wstring(display_name_utf8);
|
||||
if (display_name_wstr.size() > DISPLAY_NAME_MAX_LENGTH)
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@
|
|||
#include "llfloaterworldmap.h"
|
||||
#include "llproductinforequest.h"
|
||||
#include "llscrolllistctrl.h"
|
||||
#include "llsdutil.h"
|
||||
#include "llstatusbar.h"
|
||||
#include "lltextbox.h"
|
||||
#include "llscrolllistctrl.h"
|
||||
|
|
@ -79,24 +80,25 @@ BOOL LLFloaterLandHoldings::postBuild()
|
|||
for(S32 i = 0; i < count; ++i)
|
||||
{
|
||||
LLUUID id(gAgent.mGroups.at(i).mID);
|
||||
|
||||
LLSD element;
|
||||
element["id"] = id;
|
||||
element["columns"][0]["column"] = "group";
|
||||
element["columns"][0]["value"] = gAgent.mGroups.at(i).mName;
|
||||
element["columns"][0]["font"] = "SANSSERIF";
|
||||
|
||||
LLUIString areastr = getString("area_string");
|
||||
areastr.setArg("[AREA]", llformat("%d", gAgent.mGroups.at(i).mContribution));
|
||||
element["columns"][1]["column"] = "area";
|
||||
element["columns"][1]["value"] = areastr;
|
||||
element["columns"][1]["font"] = "SANSSERIF";
|
||||
|
||||
grant_list->addElement(element);
|
||||
grant_list->addElement(
|
||||
llsd::map(
|
||||
"id", id,
|
||||
"columns", llsd::array(
|
||||
llsd::map(
|
||||
"column", "group",
|
||||
"value", gAgent.mGroups.at(i).mName,
|
||||
"font", "SANSSERIF"),
|
||||
llsd::map(
|
||||
"column", "area",
|
||||
"value", areastr,
|
||||
"font", "SANSSERIF"))));
|
||||
}
|
||||
|
||||
|
||||
center();
|
||||
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -108,8 +110,8 @@ LLFloaterLandHoldings::~LLFloaterLandHoldings()
|
|||
|
||||
void LLFloaterLandHoldings::onOpen(const LLSD& key)
|
||||
{
|
||||
LLScrollListCtrl *list = getChild<LLScrollListCtrl>("parcel list");
|
||||
list->clearRows();
|
||||
LLScrollListCtrl *list = getChild<LLScrollListCtrl>("parcel list");
|
||||
list->clearRows();
|
||||
|
||||
// query_id null is known to be us
|
||||
const LLUUID& query_id = LLUUID::null;
|
||||
|
|
|
|||
|
|
@ -182,11 +182,15 @@ void LLFolderViewModelItemInventory::setPassedFilter(bool passed, S32 filter_gen
|
|||
bool generation_skip = mMarkedDirtyGeneration >= 0
|
||||
&& mPrevPassedAllFilters
|
||||
&& mMarkedDirtyGeneration < mRootViewModel.getFilter().getFirstSuccessGeneration();
|
||||
S32 last_generation = mLastFilterGeneration;
|
||||
LLFolderViewModelItemCommon::setPassedFilter(passed, filter_generation, string_offset, string_size);
|
||||
bool before = mPrevPassedAllFilters;
|
||||
mPrevPassedAllFilters = passedFilter(filter_generation);
|
||||
|
||||
if (before != mPrevPassedAllFilters || generation_skip)
|
||||
if (before != mPrevPassedAllFilters // Change of state
|
||||
|| generation_skip // Was marked dirty
|
||||
// Potential change from being in-progress and invisible to visible)
|
||||
|| (mPrevPassedAllFilters && last_generation < mRootViewModel.getFilter().getFirstRequiredGeneration()))
|
||||
{
|
||||
// Need to rearrange the folder if the filtered state of the item changed,
|
||||
// previously passed item skipped filter generation changes while being dirty
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ class LLGroupHandler : public LLCommandHandler
|
|||
{
|
||||
public:
|
||||
// requires trusted browser to trigger
|
||||
LLGroupHandler() : LLCommandHandler("group", UNTRUSTED_CLICK_ONLY) { }
|
||||
LLGroupHandler() : LLCommandHandler("group", UNTRUSTED_THROTTLE) { }
|
||||
|
||||
virtual bool canHandleUntrusted(
|
||||
const LLSD& params,
|
||||
|
|
|
|||
|
|
@ -368,7 +368,10 @@ public:
|
|||
{
|
||||
// will be deleted by ~LLInventoryModel
|
||||
//delete mInvObserver;
|
||||
LLVoiceClient::getInstance()->removeObserver(this);
|
||||
if (LLVoiceClient::instanceExists())
|
||||
{
|
||||
LLVoiceClient::getInstance()->removeObserver(this);
|
||||
}
|
||||
LLAvatarTracker::instance().removeObserver(this);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3142,6 +3142,14 @@ void LLPanelProfileNotes::onOpen(const LLSD& key)
|
|||
|
||||
void LLPanelProfileNotes::setNotesText(const std::string &text)
|
||||
{
|
||||
// <FS:Zi> FIRE-32926 - Profile notes that are actively being edited get discarded when
|
||||
// the profile owner enters or leaves the region at the same time.
|
||||
if (mHasUnsavedChanges)
|
||||
{
|
||||
return;
|
||||
}
|
||||
// </FS:Zi>
|
||||
|
||||
mSaveChanges->setEnabled(FALSE);
|
||||
mDiscardChanges->setEnabled(FALSE);
|
||||
mHasUnsavedChanges = false;
|
||||
|
|
|
|||
|
|
@ -176,11 +176,18 @@ LLSLURL::LLSLURL(const std::string& slurl)
|
|||
}
|
||||
else
|
||||
{
|
||||
// it wasn't a /secondlife/<region> or /app/<params>, so it must be secondlife://<region>
|
||||
if(slurl_uri.hostName() == LLSLURL::SLURL_APP_PATH)
|
||||
{
|
||||
mType = APP;
|
||||
}
|
||||
else
|
||||
{
|
||||
// it wasn't a /secondlife/<region> or /app/<params>, so it must be secondlife://<region>
|
||||
// therefore the hostname will be the region name, and it's a location type
|
||||
mType = LOCATION;
|
||||
// 'normalize' it so the region name is in fact the head of the path_array
|
||||
path_array.insert(0, slurl_uri.hostName());
|
||||
}
|
||||
}
|
||||
}
|
||||
else if((slurl_uri.scheme() == LLSLURL::SLURL_HTTP_SCHEME) ||
|
||||
|
|
|
|||
|
|
@ -572,6 +572,8 @@ void set_flags_and_update_appearance()
|
|||
{
|
||||
LLAppearanceMgr::instance().setAttachmentInvLinkEnable(true);
|
||||
LLAppearanceMgr::instance().updateAppearanceFromCOF(true, true, no_op);
|
||||
|
||||
LLInventoryModelBackgroundFetch::instance().start();
|
||||
}
|
||||
|
||||
// Returns false to skip other idle processing. Should only return
|
||||
|
|
@ -3969,7 +3971,7 @@ bool LLStartUp::dispatchURL()
|
|||
|| (dx*dx > SLOP*SLOP)
|
||||
|| (dy*dy > SLOP*SLOP) )
|
||||
{
|
||||
LLURLDispatcher::dispatch(getStartSLURL().getSLURLString(), "clicked",
|
||||
LLURLDispatcher::dispatch(getStartSLURL().getSLURLString(), LLCommandHandler::NAV_TYPE_CLICKED,
|
||||
NULL, false);
|
||||
}
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -171,6 +171,16 @@ void LLSurface::create(const S32 grids_per_edge,
|
|||
mMetersPerEdge = mMetersPerGrid * (mGridsPerEdge - 1);
|
||||
// <FS:CR> Aurora Sim
|
||||
sTextureSize = width;
|
||||
|
||||
// Trap non-power of 2 widths to avoid GLtexture issues.
|
||||
if ((sTextureSize & (sTextureSize - 1)) != 0)
|
||||
{
|
||||
// Not a power of 2, find the next power of 2
|
||||
sTextureSize = 1 << static_cast<S32>( ceil(log2(sTextureSize)) ) ;
|
||||
}
|
||||
|
||||
// Clamp to maximum limit
|
||||
sTextureSize = std::min(sTextureSize, 1024);
|
||||
// </FS:CR> Aurora Sim
|
||||
|
||||
mOriginGlobal.setVec(origin_global);
|
||||
|
|
|
|||
|
|
@ -230,7 +230,11 @@ void LLToast::hide()
|
|||
/*virtual*/
|
||||
void LLToast::setFocus(BOOL b)
|
||||
{
|
||||
if (b && !hasFocus() && mPanel)
|
||||
if (b
|
||||
&& !hasFocus()
|
||||
&& mPanel
|
||||
&& mWrapperPanel
|
||||
&& !mWrapperPanel->getChildList()->empty())
|
||||
{
|
||||
LLModalDialog::setFocus(TRUE);
|
||||
// mostly for buttons
|
||||
|
|
@ -438,15 +442,18 @@ void LLToast::setVisible(BOOL show)
|
|||
//hide "hide" button in case toast was hidden without mouse_leave
|
||||
if(mHideBtn)
|
||||
mHideBtn->setVisible(show);
|
||||
}
|
||||
LLFloater::setVisible(show);
|
||||
if(mPanel)
|
||||
{
|
||||
if(!mPanel->isDead())
|
||||
{
|
||||
mPanel->setVisible(show);
|
||||
}
|
||||
}
|
||||
}
|
||||
LLFloater::setVisible(show);
|
||||
if (mPanel
|
||||
&& !mPanel->isDead()
|
||||
&& mWrapperPanel
|
||||
&& !mWrapperPanel->getChildList()->empty()
|
||||
// LLInspectToast can take over, but LLToast still appears to act like a data storage
|
||||
&& mPanel->getParent() == mWrapperPanel
|
||||
)
|
||||
{
|
||||
mPanel->setVisible(show);
|
||||
}
|
||||
}
|
||||
|
||||
void LLToast::updateHoveredState()
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ bool LLURLDispatcherImpl::dispatchRightClick(const LLSLURL& slurl)
|
|||
const bool right_click = true;
|
||||
LLMediaCtrl* web = NULL;
|
||||
const bool trusted_browser = false;
|
||||
return dispatchCore(slurl, "clicked", right_click, web, trusted_browser);
|
||||
return dispatchCore(slurl, LLCommandHandler::NAV_TYPE_CLICKED, right_click, web, trusted_browser);
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
@ -541,7 +541,7 @@ bool LLURLDispatcher::dispatchFromTextEditor(const std::string& slurl, bool trus
|
|||
// *TODO: Make this trust model more refined. JC
|
||||
|
||||
LLMediaCtrl* web = NULL;
|
||||
return LLURLDispatcherImpl::dispatch(LLSLURL(slurl), "clicked", web, trusted_content);
|
||||
return LLURLDispatcherImpl::dispatch(LLSLURL(slurl), LLCommandHandler::NAV_TYPE_CLICKED, web, trusted_content);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ class LLHelpHandler : public LLCommandHandler
|
|||
{
|
||||
public:
|
||||
// requests will be throttled from a non-trusted browser
|
||||
LLHelpHandler() : LLCommandHandler("help", UNTRUSTED_THROTTLE) {}
|
||||
LLHelpHandler() : LLCommandHandler("help", UNTRUSTED_CLICK_ONLY) {}
|
||||
|
||||
bool handle(const LLSD& params, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3545,6 +3545,13 @@ void handle_object_open()
|
|||
// LLFloaterReg::showInstance("openobject");
|
||||
}
|
||||
|
||||
bool enable_object_inspect()
|
||||
{
|
||||
LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection();
|
||||
LLViewerObject* selected_objectp = selection->getFirstRootObject();
|
||||
return selected_objectp != NULL;
|
||||
}
|
||||
|
||||
bool enable_object_open()
|
||||
{
|
||||
// Look for contents in root object, which is all the LLFloaterOpenObject
|
||||
|
|
@ -10075,7 +10082,7 @@ bool enable_object_take_copy()
|
|||
bool all_valid = false;
|
||||
if (LLSelectMgr::getInstance())
|
||||
{
|
||||
if (!LLSelectMgr::getInstance()->getSelection()->isEmpty())
|
||||
if (LLSelectMgr::getInstance()->getSelection()->getRootObjectCount() > 0)
|
||||
{
|
||||
all_valid = true;
|
||||
#ifndef HACKED_GODLIKE_VIEWER
|
||||
|
|
@ -12503,6 +12510,7 @@ void initialize_menus()
|
|||
commit.add("Object.Open", boost::bind(&handle_object_open));
|
||||
commit.add("Object.Take", boost::bind(&handle_take));
|
||||
commit.add("Object.ShowInspector", boost::bind(&handle_object_show_inspector));
|
||||
enable.add("Object.EnableInspect", boost::bind(&enable_object_inspect));
|
||||
enable.add("Object.EnableOpen", boost::bind(&enable_object_open));
|
||||
enable.add("Object.EnableTouch", boost::bind(&enable_object_touch, _1));
|
||||
enable.add("Object.EnableDelete", boost::bind(&enable_object_delete));
|
||||
|
|
|
|||
|
|
@ -7410,12 +7410,8 @@ void process_script_question(LLMessageSystem *msg, void **user_data)
|
|||
{
|
||||
count++;
|
||||
known_questions |= script_perm.permbit;
|
||||
|
||||
if (!LLMuteList::isLinden(owner_name))
|
||||
{
|
||||
// check whether permission question should cause special caution dialog
|
||||
caution |= (script_perm.caution);
|
||||
}
|
||||
// check whether permission question should cause special caution dialog
|
||||
caution |= (script_perm.caution);
|
||||
|
||||
if (("ScriptTakeMoney" == script_perm.question) && has_not_only_debit)
|
||||
continue;
|
||||
|
|
@ -8001,7 +7997,7 @@ bool handle_lure_callback(const LLSD& notification, const LLSD& response)
|
|||
// More than OFFER_RECIPIENT_LIMIT targets will overload the message
|
||||
// producing an llerror.
|
||||
LLSD args;
|
||||
args["OFFERS"] = notification["payload"]["ids"].size();
|
||||
args["OFFERS"] = LLSD::Integer(notification["payload"]["ids"].size());
|
||||
args["LIMIT"] = static_cast<int>(OFFER_RECIPIENT_LIMIT);
|
||||
LLNotificationsUtil::add("TooManyTeleportOffers", args);
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -171,7 +171,7 @@ public:
|
|||
}
|
||||
|
||||
// Process the SLapp as if it was a secondlife://{PLACE} SLurl
|
||||
LLURLDispatcher::dispatch(url, "clicked", web, true);
|
||||
LLURLDispatcher::dispatch(url, LLCommandHandler::NAV_TYPE_CLICKED, web, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
|
||||
#include "llrender.h"
|
||||
#include "llenvironment.h"
|
||||
#include "llerrorcontrol.h"
|
||||
#include "llatmosphere.h"
|
||||
#include "llworld.h"
|
||||
#include "llsky.h"
|
||||
|
|
@ -566,10 +567,15 @@ void LLViewerShaderMgr::setShaders()
|
|||
std::string shader_name = loadBasicShaders();
|
||||
if (shader_name.empty())
|
||||
{
|
||||
LL_INFOS() << "Loaded basic shaders." << LL_ENDL;
|
||||
LL_INFOS("Shader") << "Loaded basic shaders." << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
// "ShaderLoading" and "Shader" need to be logged
|
||||
LLError::ELevel lvl = LLError::getDefaultLevel();
|
||||
LLError::setDefaultLevel(LLError::LEVEL_DEBUG);
|
||||
loadBasicShaders();
|
||||
LLError::setDefaultLevel(lvl);
|
||||
LL_ERRS() << "Unable to load basic shader " << shader_name << ", verify graphics driver installed and current." << LL_ENDL;
|
||||
reentrance = false; // For hygiene only, re-try probably helps nothing
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@
|
|||
|
||||
#include "llagent.h"
|
||||
#include "llagentcamera.h"
|
||||
#include "llcommandhandler.h"
|
||||
#include "llcommunicationchannel.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llhudicon.h"
|
||||
|
|
@ -1396,7 +1397,7 @@ LLWindowCallbacks::DragNDropResult LLViewerWindow::handleDragNDrop( LLWindow *wi
|
|||
{
|
||||
if (drop)
|
||||
{
|
||||
LLURLDispatcher::dispatch( dropped_slurl.getSLURLString(), "clicked", NULL, true );
|
||||
LLURLDispatcher::dispatch( dropped_slurl.getSLURLString(), LLCommandHandler::NAV_TYPE_CLICKED, NULL, true );
|
||||
return LLWindowCallbacks::DND_MOVE;
|
||||
}
|
||||
return LLWindowCallbacks::DND_COPY;
|
||||
|
|
@ -1865,7 +1866,7 @@ void LLViewerWindow::handleDataCopy(LLWindow *window, S32 data_type, void *data)
|
|||
LLMediaCtrl* web = NULL;
|
||||
const bool trusted_browser = false;
|
||||
// don't treat slapps coming from external browsers as "clicks" as this would bypass throttling
|
||||
if (LLURLDispatcher::dispatch(url, "", web, trusted_browser))
|
||||
if (LLURLDispatcher::dispatch(url, LLCommandHandler::NAV_TYPE_EXTERNAL, web, trusted_browser))
|
||||
{
|
||||
// bring window to foreground, as it has just been "launched" from a URL
|
||||
mWindow->bringToFront();
|
||||
|
|
|
|||
|
|
@ -147,6 +147,7 @@ LLVoiceClient::LLVoiceClient(LLPumpIO *pump)
|
|||
|
||||
LLVoiceClient::~LLVoiceClient()
|
||||
{
|
||||
llassert(!mVoiceModule);
|
||||
}
|
||||
|
||||
void LLVoiceClient::init(LLPumpIO *pump)
|
||||
|
|
|
|||
|
|
@ -2011,7 +2011,7 @@ BOOL LLWorldMapView::handleDoubleClick( S32 x, S32 y, MASK mask )
|
|||
// Invoke the event details floater if someone is clicking on an event.
|
||||
LLSD params(LLSD::emptyArray());
|
||||
params.append(event_id);
|
||||
LLCommandDispatcher::dispatch("event", params, LLSD(), LLGridManager::getInstance()->getGrid(), NULL, "clicked", true);
|
||||
LLCommandDispatcher::dispatch("event", params, LLSD(), LLGridManager::getInstance()->getGrid(), NULL, LLCommandHandler::NAV_TYPE_CLICKED, true);
|
||||
break;
|
||||
}
|
||||
case MAP_ITEM_LAND_FOR_SALE:
|
||||
|
|
|
|||
|
|
@ -58,9 +58,9 @@
|
|||
</combo_box>
|
||||
</panel>
|
||||
<panel name="button_panel">
|
||||
<button label="OK" name="Keep" width="120"/>
|
||||
<button label="OK" name="Keep"/>
|
||||
<button label="Verwerfen" name="Discard"/>
|
||||
<flyout_button label="Speichern..." name="save_tex_btn" width="140">
|
||||
<flyout_button label="Speichern..." name="save_tex_btn">
|
||||
<flyout_button.item label="Speichern als TGA" name="save_item_tga"/>
|
||||
<flyout_button.item label="Speichern als PNG" name="save_item_png"/>
|
||||
</flyout_button>
|
||||
|
|
|
|||
|
|
@ -3,6 +3,9 @@
|
|||
<label
|
||||
name="en"
|
||||
value="System default" />
|
||||
<label
|
||||
name="az"
|
||||
value="Sistem standartı" />
|
||||
<label
|
||||
name="it"
|
||||
value="Default di sistema" />
|
||||
|
|
|
|||
|
|
@ -0,0 +1,72 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<contents>
|
||||
<rows name="camera_actions">
|
||||
<columns label="Kamera" name="lst_action"/>
|
||||
</rows>
|
||||
<rows name="look_up">
|
||||
<columns name="lst_action" value="Yuxarı bax"/>
|
||||
</rows>
|
||||
<rows name="look_down">
|
||||
<columns name="lst_action" value="Aşağı bax"/>
|
||||
</rows>
|
||||
<rows name="move_forward">
|
||||
<columns name="lst_action" value="Kameranı önə doğru"/>
|
||||
</rows>
|
||||
<rows name="move_backward">
|
||||
<columns name="lst_action" value="Kameranı arxa doğru"/>
|
||||
</rows>
|
||||
<rows name="move_forward_fast">
|
||||
<columns name="lst_action" value="Kameranı sürətli önə doğru"/>
|
||||
</rows>
|
||||
<rows name="move_backward_fast">
|
||||
<columns name="lst_action" value="Kameranı sürətli arxa doğru"/>
|
||||
</rows>
|
||||
<rows name="spin_over">
|
||||
<columns name="lst_action" value="Kameranı üstündə döndər"/>
|
||||
</rows>
|
||||
<rows name="spin_under">
|
||||
<columns name="lst_action" value="Kameranı alta döndər"/>
|
||||
</rows>
|
||||
<rows name="pan_up">
|
||||
<columns name="lst_action" value="Kameranı yuxarı mənzərələ"/>
|
||||
</rows>
|
||||
<rows name="pan_down">
|
||||
<columns name="lst_action" value="Kameranı aşağı mənzərələ"/>
|
||||
</rows>
|
||||
<rows name="pan_left">
|
||||
<columns name="lst_action" value="Kameranı sola mənzərələ"/>
|
||||
</rows>
|
||||
<rows name="pan_right">
|
||||
<columns name="lst_action" value="Kameranı sağa mənzərələ"/>
|
||||
</rows>
|
||||
<rows name="pan_in">
|
||||
<columns name="lst_action" value="Kameranı özündən uzaqlaşdır"/>
|
||||
</rows>
|
||||
<rows name="pan_out">
|
||||
<columns name="lst_action" value="Kameranı özünə yaxınlaşdır"/>
|
||||
</rows>
|
||||
<rows name="spin_around_ccw">
|
||||
<columns name="lst_action" tool_tip="Kameranı saat istiqamətindən əksinə döndər" value="Saata əksinə"/>
|
||||
</rows>
|
||||
<rows name="spin_around_cw">
|
||||
<columns name="lst_action" tool_tip="Kameranı saat istiqamətində döndər" value="Saata doğru"/>
|
||||
</rows>
|
||||
<rows name="move_forward_sitting">
|
||||
<columns name="lst_action" value="Sedəndən öndə kameranı"/>
|
||||
</rows>
|
||||
<rows name="move_backward_sitting">
|
||||
<columns name="lst_action" value="Sedəndən arxada kameranı"/>
|
||||
</rows>
|
||||
<rows name="spin_over_sitting">
|
||||
<columns name="lst_action" value="Kameranı oturanın üstündən döndər"/>
|
||||
</rows>
|
||||
<rows name="spin_under_sitting">
|
||||
<columns name="lst_action" value="Kameranı oturanın altından döndər"/>
|
||||
</rows>
|
||||
<rows name="spin_around_ccw_sitting">
|
||||
<columns name="lst_action" tool_tip="Kameranı oturanın ətrafında saat istiqamətinin əksinə döndər" value="Oturaraq saat əksinə"/>
|
||||
</rows>
|
||||
<rows name="spin_around_cw_sitting">
|
||||
<columns name="lst_action" tool_tip="Kameranı oturanın ətrafında saat istiqamətində döndər" value="Oturaraq saata doğru"/>
|
||||
</rows>
|
||||
</contents>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<contents>
|
||||
<columns label="Əməliyyat" name="lst_action"/>
|
||||
<columns label="Əsas idarəetmə" name="lst_ctrl1"/>
|
||||
<columns label="Altenativ 1" name="lst_ctrl2"/>
|
||||
<columns label="Altenativ 2" name="lst_ctrl3"/>
|
||||
</contents>
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<contents>
|
||||
<rows name="editing_actions">
|
||||
<columns label="Dəyişdirmək" name="lst_action"/>
|
||||
</rows>
|
||||
<rows name="edit_avatar_spin_ccw">
|
||||
<columns name="lst_action" tool_tip="Kamera avatarın saat istiqamətinin əksinə doğru döndərilir" value="Saat istiqamətinin əksinə"/>
|
||||
</rows>
|
||||
<rows name="edit_avatar_spin_cw">
|
||||
<columns name="lst_action" tool_tip="Kamera avatarın saat istiqamətində döndərilir" value="Saat istiqamətində"/>
|
||||
</rows>
|
||||
<rows name="edit_avatar_spin_over">
|
||||
<columns name="lst_action" tool_tip="Kamera avatarın üstünə döndərilir" value="Kamera yuxarıda"/>
|
||||
</rows>
|
||||
<rows name="edit_avatar_spin_under">
|
||||
<columns name="lst_action" tool_tip="Kamera avatarın altına döndərilir" value="Kamera aşağıda"/>
|
||||
</rows>
|
||||
<rows name="edit_avatar_move_forward">
|
||||
<columns name="lst_action" value="Kamera özünə doğru"/>
|
||||
</rows>
|
||||
<rows name="edit_avatar_move_backward">
|
||||
<columns name="lst_action" value="Kamera geriyə"/>
|
||||
</rows>
|
||||
</contents>
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<contents>
|
||||
<rows name="media_actions">
|
||||
<columns label="Səs və Media" name="lst_action"/>
|
||||
</rows>
|
||||
<rows name="toggle_pause_media">
|
||||
<columns name="lst_action" value="Multimediya oynatmasını başlat/dayandır"/>
|
||||
</rows>
|
||||
<rows name="toggle_enable_media">
|
||||
<columns name="lst_action" value="Bütün multimediyanı başlat/dayandır"/>
|
||||
</rows>
|
||||
<rows name="voice_follow_key">
|
||||
<columns name="lst_action" value="Səs"/>
|
||||
</rows>
|
||||
<rows name="toggle_voice">
|
||||
<columns name="lst_action" value="Səsi dəyişdir"/>
|
||||
</rows>
|
||||
<rows name="start_chat">
|
||||
<columns name="lst_action" value="Çatı başlat"/>
|
||||
</rows>
|
||||
<rows name="start_gesture">
|
||||
<columns name="lst_action" value="Jesti başlat"/>
|
||||
</rows>
|
||||
<rows name="script_trigger_lbutton">
|
||||
<columns name="lst_action" value="Əlaqə (Sol Maus Düyməsi)"/>
|
||||
</rows>
|
||||
</contents>
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<contents>
|
||||
<rows name="move_actions">
|
||||
<columns label="Hərəkət Əməliyyatları" name="lst_action"/>
|
||||
</rows>
|
||||
<rows name="walk_to">
|
||||
<columns name="lst_action" tool_tip="Sürətini təyin etdiyiniz nöqtəyə yürüyər" value="Yürüyərək get"/>
|
||||
</rows>
|
||||
<rows name="teleport_to">
|
||||
<columns name="lst_action" tool_tip="Maus ilə göstərilən nöqtəyə teleport olur. Lakin teleport olmaq üçün yerdə buna icazə olmalıdır. Bu səbəbdən istənilən yerdən daha yaxın bir yerə teleport olmağa çalışın" value="Teleport ol"/>
|
||||
</rows>
|
||||
<rows name="push_forward">
|
||||
<columns name="lst_action" value="İrəli get"/>
|
||||
</rows>
|
||||
<rows name="push_backward">
|
||||
<columns name="lst_action" value="Geriyə get"/>
|
||||
</rows>
|
||||
<rows name="turn_left">
|
||||
<columns name="lst_action" value="Sola dön"/>
|
||||
</rows>
|
||||
<rows name="turn_right">
|
||||
<columns name="lst_action" value="Sağa dön"/>
|
||||
</rows>
|
||||
<rows name="slide_left">
|
||||
<columns name="lst_action" value="Sola sürüşmək"/>
|
||||
</rows>
|
||||
<rows name="slide_right">
|
||||
<columns name="lst_action" value="Sağa sürüşmək"/>
|
||||
</rows>
|
||||
<rows name="jump">
|
||||
<columns name="lst_action" value="Hoppanmaq/Yuxarı"/>
|
||||
</rows>
|
||||
<rows name="push_down">
|
||||
<columns name="lst_action" value="Aşağıya"/>
|
||||
</rows>
|
||||
<rows name="run_forward">
|
||||
<columns name="lst_action" value="İrəliyə qaçış"/>
|
||||
</rows>
|
||||
<rows name="run_backward">
|
||||
<columns name="lst_action" value="Geriyə qaçış"/>
|
||||
</rows>
|
||||
<rows name="run_left">
|
||||
<columns name="lst_action" value="Sola qaçış"/>
|
||||
</rows>
|
||||
<rows name="run_right">
|
||||
<columns name="lst_action" value="Sağa qaçış"/>
|
||||
</rows>
|
||||
<rows name="toggle_run">
|
||||
<columns name="lst_action" value="Qaçışı yandır/söndür"/>
|
||||
</rows>
|
||||
<rows name="toggle_fly">
|
||||
<columns name="lst_action" value="Uçmaq/Uçmamaq"/>
|
||||
</rows>
|
||||
<rows name="toggle_sit">
|
||||
<columns name="lst_action" value="Oturmaq/Durmaq"/>
|
||||
</rows>
|
||||
<rows name="stop_moving">
|
||||
<columns name="lst_action" value="Dayanmaq"/>
|
||||
</rows>
|
||||
</contents>
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<floater name="360capture" title="360° Şəkil">
|
||||
<panel name="ui_panel_left">
|
||||
<text name="quality_level_label">Keyfiyyət</text>
|
||||
<radio_group name="360_quality_selection">
|
||||
<radio_item label="Önbaxış (tez)" name="preview_quality" tool_tip="Önbaxış keyfiyyəti"/>
|
||||
<radio_item label="Ortam" name="medium_quality" tool_tip="Orta keyfiyyət"/>
|
||||
<radio_item label="Yüksək" name="high_quality" tool_tip="Yüksək keyfiyyət"/>
|
||||
<radio_item label="Maksimal" name="maximum_quality" tool_tip="Maksimal keyfiyyət"/>
|
||||
</radio_group>
|
||||
<check_box label="Bütün avatarları gizlət" name="360_hide_avatar"/>
|
||||
<button label="360° Şəkil çək" name="capture_button"/>
|
||||
<button label="Yadda saxla..." name="save_local_button"/>
|
||||
</panel>
|
||||
<panel name="ui_panel_right">
|
||||
<text name="statusbar">Panorama etmək üçün şəkilə toxunub daşıyın</text>
|
||||
</panel>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater name="sound_explorer" title="Səslər">
|
||||
<floater.string name="Playing">Oynayır</floater.string>
|
||||
<floater.string name="NotPlaying">[TIME] dəq.əvvəl</floater.string>
|
||||
<floater.string name="Type_UI">UI</floater.string>
|
||||
<floater.string name="Type_Avatar">Avatar</floater.string>
|
||||
<floater.string name="Type_llTriggerSound">llTriggerSound</floater.string>
|
||||
<floater.string name="Type_llLoopSound">llLoopSound</floater.string>
|
||||
<floater.string name="Type_llPlaySound">llPlaySound</floater.string>
|
||||
<check_box width="80" name="avatars_chk" label="Avatarlar" />
|
||||
<check_box left_delta="80" width="80" name="objects_chk" label="Obyektlər"/>
|
||||
<check_box left_delta="80" width="150" name="collision_chk" label="Toqquşma səsləri" />
|
||||
<check_box left_delta="150" width="120" name="repeated_asset_chk" label="Təkrarlanır" />
|
||||
<check_box left_delta="120" width="80" name="pause_chk" label="Fasilə jurnalı"/>
|
||||
<scroll_list name="sound_list">
|
||||
<columns label="Oynayır" name="playing" />
|
||||
<columns label="Növ" name="type" />
|
||||
<columns label="Sahibi" name="owner" />
|
||||
<columns width="200" label="Səs" name="sound" />
|
||||
</scroll_list>
|
||||
<button label="Yerli oynat" name="play_locally_btn" width="95"/>
|
||||
<button label="Yerli dayandır" name="stop_locally_btn" width="95"/>
|
||||
<button label="Bax" name="look_at_btn" left_delta="100" width="95"/>
|
||||
<button label="Dayandır" name="stop_btn" right="-10" width="95"/>
|
||||
<button label="Qara siyahı" name="bl_btn" right="-110" width="95"/>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="floater_about" title="[APP_NAME] haqqında">
|
||||
<tab_container name="about_tab">
|
||||
<panel label="Məlumat" name="support_panel">
|
||||
<text name="support_intro">
|
||||
Firestorm haqqında yeni məlumat burada mövcuddur
|
||||
https://www.firestormviewer.org
|
||||
</text>
|
||||
<button label="Buferə köçürt" name="copy_btn"/>
|
||||
</panel>
|
||||
<panel label="Təşəkkürlər" name="credits_panel">
|
||||
<text name="linden_intro">
|
||||
Firestormun yaradılması Linden Lab orijinal Second Life klient kodunu ictimailəşdirmək qərarı olmadan mümkün olmazdı.
|
||||
|
||||
Linden kimdir:
|
||||
</text>
|
||||
<text name="contrib_intro">
|
||||
open source töhfəsi ilə:
|
||||
</text>
|
||||
<text name="trans_intro">
|
||||
və tərcümələri ilə:
|
||||
</text>
|
||||
</panel>
|
||||
<panel label="Firestorm" name="fs_credits_panel" height="960">
|
||||
<scroll_container name="fs_credits_scroll_container">
|
||||
<panel name="fs_credits_scroll_container_content_panel">
|
||||
<text name="firestorm_intro" height="130">
|
||||
Firestorm, SecondLife (tm) Viewer-dən istifadə təcrübəsinə əsaslanan keyfiyyətin yaxşılaşdırılması məqsədləri olan proqramçılar icmasının layihəsidir. Biz könüllülər komandası tərəfindən dəstəklənən yaxşı, funksional müştəri yaratmaq üçün müxtəlif icmalardan olan müxtəlif proqramçıların töhfələrini, Linden Laboratoriyasının kodu və özümüzlə birləşdiririk. Firestorm qeyri-kommersiya təşkilatı The Phoenix Firestorm Project, Inc. sayəsində mövcuddur.
|
||||
|
||||
Firestorm təkmilləşdirici qrupu:
|
||||
</text>
|
||||
<text name="fs_contrib_intro">
|
||||
Firestorm kodunun inkişafına əlavə töhfələr:
|
||||
</text>
|
||||
<text name="fs_support_intro">
|
||||
Dəstək komandasına, viki nəşriyyatçılarına, müəllimlərə və tərcüməçilərə xüsusi təşəkkürlər:
|
||||
</text>
|
||||
<text name="fs_art_intro" height="90">
|
||||
Firestorm, Firestorm üçün dəyişdirilmiş Starlight-dan istifadə edir. Alternativ, daha aydın və istifadəsi asan interfeys təmin etmək məqsədi ilə istifadəçilər tərəfindən istifadəçilər üçün yaradılmışdır. Daha ətraflı burada <nolink>https://wiki.secondlife.com/wiki/Viewer_Skins/Starlight</nolink>.
|
||||
|
||||
Rəssamlar və interfeys dizaynerləri:
|
||||
</text>
|
||||
</panel>
|
||||
</scroll_container>
|
||||
</panel>
|
||||
<panel label="Lisenziyalar" name="licenses_panel" />
|
||||
</tab_container>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,486 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="floaterland" title="Yer haqqında">
|
||||
<floater.string name="Hours">
|
||||
[HOURS] sa
|
||||
</floater.string>
|
||||
<floater.string name="Hour">
|
||||
sa.
|
||||
</floater.string>
|
||||
<floater.string name="Minutes">
|
||||
[MINUTES] dəd.
|
||||
</floater.string>
|
||||
<floater.string name="Minute">
|
||||
dəq.
|
||||
</floater.string>
|
||||
<floater.string name="Seconds">
|
||||
[SECONDS] sn.
|
||||
</floater.string>
|
||||
<floater.string name="Remaining">
|
||||
qalıb
|
||||
</floater.string>
|
||||
<floater.string name="Always">
|
||||
Həmişə
|
||||
</floater.string>
|
||||
<tab_container name="landtab">
|
||||
<panel label="Ümumi" name="land_general_panel">
|
||||
<panel.string name="new users only">
|
||||
Yalnız yeni sakinlər
|
||||
</panel.string>
|
||||
<panel.string name="anyone">
|
||||
Hər kəs
|
||||
</panel.string>
|
||||
<panel.string name="area_text">
|
||||
Sahə
|
||||
</panel.string>
|
||||
<panel.string name="area_size_text">
|
||||
[AREA] m²
|
||||
</panel.string>
|
||||
<panel.string name="auction_id_text">
|
||||
Hərrac ID-si: [ID]
|
||||
</panel.string>
|
||||
<panel.string name="need_tier_to_modify">
|
||||
Bu torpağı dəyişdirmək üçün satınalmanı təsdiq etməlisiniz.
|
||||
</panel.string>
|
||||
<panel.string name="group_owned_text">
|
||||
(Qrup əmlakı)
|
||||
</panel.string>
|
||||
<panel.string name="profile_text">
|
||||
Profil
|
||||
</panel.string>
|
||||
<panel.string name="info_text">
|
||||
Məlumat
|
||||
</panel.string>
|
||||
<panel.string name="public_text">
|
||||
(içtimai)
|
||||
</panel.string>
|
||||
<panel.string name="none_text">
|
||||
(yox)
|
||||
</panel.string>
|
||||
<panel.string name="sale_pending_text">
|
||||
(Satışı gözlənilir)
|
||||
</panel.string>
|
||||
<panel.string name="no_selection_text">
|
||||
Sahə seçilməyib.
|
||||
</panel.string>
|
||||
<panel.string name="time_stamp_template">
|
||||
[wkday,datetime,slt], [day,datetime,slt] [mth,datetime,slt] [year,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt]
|
||||
</panel.string>
|
||||
<panel.string name="error_resolving_uuid">
|
||||
Sahənin UUID-si düzəldilə bilməz.
|
||||
</panel.string>
|
||||
<text name="Name:">
|
||||
Adı:
|
||||
</text>
|
||||
<text name="UUID:">
|
||||
Sahənin UUID-si:
|
||||
</text>
|
||||
<text name="Description:">
|
||||
Təsviri:
|
||||
</text>
|
||||
<text name="LandType">
|
||||
Növ:
|
||||
</text>
|
||||
<text name="LandTypeText">
|
||||
Qitə / Əmlak
|
||||
</text>
|
||||
<text name="ContentRating">
|
||||
Reytinq:
|
||||
</text>
|
||||
<text name="ContentRatingText">
|
||||
Yetkin
|
||||
</text>
|
||||
<text name="Owner:">
|
||||
Sahibi:
|
||||
</text>
|
||||
<text name="OwnerText">
|
||||
Yüklənir...
|
||||
</text>
|
||||
<text name="Group:">
|
||||
Qrup:
|
||||
</text>
|
||||
<text name="GroupText">
|
||||
Yüklənir...
|
||||
</text>
|
||||
<button label="Təyin et" name="Set..."/>
|
||||
<check_box label="Torpağın qrupa verilməsinə icazə verin" name="check deed" tool_tip="Qrup məmuru bu torpağı mövcud töhfə şərti ilə qrupa verə bilər." />
|
||||
<button label="Müqavilə" name="Deed..." tool_tip="Siz yalnız seçilmiş qrupun rəsmisisinizsə, torpağı verə bilərsiniz."/>
|
||||
<check_box label="Sahib verdiyi zamanı töhfələr verir" name="check contrib" tool_tip="Torpaq bir qrupa verildikdə, keçmiş mülkiyyətçi torpağı saxlamaq üçün kifayət qədər töhfə verir."/>
|
||||
<text name="For Sale:">
|
||||
Satılır:
|
||||
</text>
|
||||
<text name="Not for sale.">
|
||||
Satılmır
|
||||
</text>
|
||||
<text name="For Sale: Price L$[PRICE].">
|
||||
Qiymət: L$[PRICE] (L$[PRICE_PER_SQM]/m²)
|
||||
</text>
|
||||
<text name="SalePending"/>
|
||||
<button label="Torpağı sat" name="Sell Land..."/>
|
||||
<text name="For sale to">
|
||||
Kimə satılır: [BUYER]
|
||||
</text>
|
||||
<text name="Sell with landowners objects in parcel.">
|
||||
Obyektlər satışa daxildir
|
||||
</text>
|
||||
<text name="Selling with no objects in parcel.">
|
||||
Obyektlər satışa daxil deyil
|
||||
</text>
|
||||
<button label="Satışı ləğv edin" label_selected="Satışı ləğv edin" name="Cancel Land Sale" />
|
||||
<text name="Claimed:">
|
||||
Mülkiyyət:
|
||||
</text>
|
||||
<text name="PriceLabel">
|
||||
Sahə:
|
||||
</text>
|
||||
<text name="PriceText">
|
||||
4048 m²
|
||||
</text>
|
||||
<text name="Traffic:">
|
||||
Trafik:
|
||||
</text>
|
||||
<text name="DwellText">
|
||||
Yüklənir...
|
||||
</text>
|
||||
<button label="Torpağı al" name="Buy Land..."/>
|
||||
<button label="Linden satışı" name="Linden Sale..." tool_tip="Torpaq mülkiyyətində olmalı, müəyyən məzmuna malik olmalı və hərraca çıxarılmamalıdır." />
|
||||
<button label="Skriptlər haqqında məlumat" name="Scripts..."/>
|
||||
<button label="Qrup üçün alın" name="Buy For Group..." />
|
||||
<button label="İcazənamə alın" name="Buy Pass..." tool_tip="İcazənamə sizə bu əraziyə müvəqqəti giriş imkanı verir." />
|
||||
<button label="Torpaqdan imtina edin" name="Abandon Land..." />
|
||||
<button label="Torpağı geri alın" name="Reclaim Land..."/>
|
||||
</panel>
|
||||
<panel label="Müqavilə" name="land_covenant_panel">
|
||||
<panel.string name="can_resell">
|
||||
Bu regionda alınan torpaq yenidən satıla bilər.
|
||||
</panel.string>
|
||||
<panel.string name="can_not_resell">
|
||||
Bu regionda alınan torpaq yenidən satıla bilməz.
|
||||
</panel.string>
|
||||
<panel.string name="can_change">
|
||||
Alınan torpaq birləşə və ya bölünə bilər.
|
||||
</panel.string>
|
||||
<panel.string name="can_not_change">
|
||||
Alınan torpaq birləşə və ya bölünə bilməz.
|
||||
</panel.string>
|
||||
<text name="estate_section_lbl">
|
||||
Torpaq mülkiyyəti
|
||||
</text>
|
||||
<text name="estate_name_text">
|
||||
qitə
|
||||
</text>
|
||||
<text name="estate_owner_lbl">
|
||||
Sahibi:
|
||||
</text>
|
||||
<text name="estate_owner_text">
|
||||
(yox)
|
||||
</text>
|
||||
<text_editor name="covenant_editor">
|
||||
Bu torpaq mülkiyyəti ilə bağlı heç bir müqavilə yoxdur.
|
||||
</text_editor>
|
||||
<text name="covenant_timestamp_text">
|
||||
Axırınci dəyişiklər: 31 dekabr 1969 il., cümə, 16:00:00
|
||||
</text>
|
||||
<text name="region_section_lbl">
|
||||
Region:
|
||||
</text>
|
||||
<text name="region_name_text">
|
||||
Yüklənir...
|
||||
</text>
|
||||
<text name="region_landtype_lbl">
|
||||
Növ:
|
||||
</text>
|
||||
<text name="region_landtype_text">
|
||||
Qitə / Əmlak
|
||||
</text>
|
||||
<text name="region_maturity_lbl">
|
||||
Reytinq:
|
||||
</text>
|
||||
<text name="region_maturity_text">
|
||||
Yetkin
|
||||
</text>
|
||||
<text name="resellable_lbl">
|
||||
Yenidən satış:
|
||||
</text>
|
||||
<text name="resellable_clause">
|
||||
Bu regiondakı torpaqlar yenidən satıla bilməz.
|
||||
</text>
|
||||
<text name="changeable_lbl">
|
||||
Ayırma:
|
||||
</text>
|
||||
<text name="changeable_clause">
|
||||
Bu regiondakı torpaqlar birləşdirilə və ya bölünə bilməz.
|
||||
</text>
|
||||
</panel>
|
||||
<panel label="Obyektlər" name="land_objects_panel">
|
||||
<panel.string name="objects_available_text">
|
||||
[COUNT] sayından [MAX] (mövcuddur: [AVAILABLE])
|
||||
</panel.string>
|
||||
<panel.string name="objects_deleted_text">
|
||||
[COUNT] sayından [MAX] (silinəcək: [DELETED])
|
||||
</panel.string>
|
||||
<text name="parcel_object_bonus">
|
||||
Obyektlər üçün bonus vuran: [BONUS]
|
||||
</text>
|
||||
<text name="Simulator primitive usage:">
|
||||
Region həcmi:
|
||||
</text>
|
||||
<text name="objects_available">
|
||||
[COUNT] sayından [MAX] (mövcuddur: [AVAILABLE])
|
||||
</text>
|
||||
<text name="Primitives parcel supports:">
|
||||
Sahə həcmi:
|
||||
</text>
|
||||
<text name="Primitives on parcel:">
|
||||
Sahə istifadə edir:
|
||||
</text>
|
||||
<text name="Owned by parcel owner:">
|
||||
Sahibinin əmlakı:
|
||||
</text>
|
||||
<button label="Göstər" label_selected="Göstər" name="ShowOwner"/>
|
||||
<button label="Qaytar" name="ReturnOwner..." tool_tip="Obyektləri sahiblərinə qaytarın."/>
|
||||
<text name="Set to group:">
|
||||
Qrup tərəfindən təyin edilib:
|
||||
</text>
|
||||
<button label="Göstər" label_selected="Göstər" name="ShowGroup"/>
|
||||
<button label="Qaytar" name="ReturnGroup..." tool_tip="Obyektləri sahiblərinə qaytarın."/>
|
||||
<text name="Owned by others:">
|
||||
Başqalarının mülkiyyəti:
|
||||
</text>
|
||||
<button label="Göstər" label_selected="Göstər" name="ShowOther"/>
|
||||
<button label="Qaytar" name="ReturnOther..." tool_tip="Obyektləri sahiblərinə qaytarın."/>
|
||||
<text name="Selected / sat upon:">
|
||||
Seçilmiş / Üzərində:
|
||||
</text>
|
||||
<text name="Autoreturn">
|
||||
Obyektlərin istifadəçilərə avtomatik qaytarılması (dəqiqələrlə, 0 - söndürülüb):
|
||||
</text>
|
||||
<text name="Object Owners:">
|
||||
Obyekt sahibləri:
|
||||
</text>
|
||||
<button name="Refresh List" tool_tip="Obyektlərin siyahısını yeniləyin"/>
|
||||
<button label="Obyektləri qaytarın" name="Return objects..."/>
|
||||
<name_list name="owner list">
|
||||
<name_list.columns label="Növ" name="type" />
|
||||
<name_list.columns label="Ad" name="name" />
|
||||
<name_list.columns label="Miqdar" name="count"/>
|
||||
<name_list.columns label="Son" name="mostrecent" />
|
||||
</name_list>
|
||||
</panel>
|
||||
<panel label="Seçimlər" name="land_options_panel">
|
||||
<panel.string name="search_enabled_tooltip">
|
||||
İnsanlara sahəni axtarış nəticələrində görmək imkanı verin
|
||||
</panel.string>
|
||||
<panel.string name="search_disabled_small_tooltip">
|
||||
Torpağın sahəsi 128 m² və ya daha az olduğu üçün bu funksiya mövcud deyil.
|
||||
Yalnız daha böyük kvadrata malik olan sahələr axtarışda çıxa bilər.
|
||||
</panel.string>
|
||||
<panel.string name="search_disabled_permissions_tooltip">
|
||||
Bu sahənin seçimlərini dəyişdirə bilməyəcəyiniz üçün bu seçim mövcud deyil
|
||||
</panel.string>
|
||||
<panel.string name="mature_check_mature">
|
||||
Orta məzmun
|
||||
</panel.string>
|
||||
<panel.string name="mature_check_adult">
|
||||
Yetkin məzmun
|
||||
</panel.string>
|
||||
<panel.string name="mature_check_mature_tooltip">
|
||||
Sahə məlumatınız və ya məzmununuz mülayim hesab edilə bilər.
|
||||
</panel.string>
|
||||
<panel.string name="mature_check_adult_tooltip">
|
||||
Sahə məlumatınız və ya məzmununuz Yetkin hesab edilə bilər.
|
||||
</panel.string>
|
||||
<panel.string name="landing_point_none">
|
||||
(yox)
|
||||
</panel.string>
|
||||
<panel.string name="push_restrict_text">
|
||||
İtələməyin
|
||||
</panel.string>
|
||||
<panel.string name="push_restrict_region_text">
|
||||
İtələməyin (Regionda əvvəlcədən təyin edilib)
|
||||
</panel.string>
|
||||
<panel.string name="DirectoryFree">
|
||||
Axtarışda yeri göstərin
|
||||
</panel.string>
|
||||
<panel.string name="DirectoryFee">
|
||||
Bu yeri axtarışda göstərin (L$[DIRECTORY_FEE]/həftə)
|
||||
</panel.string>
|
||||
<text name="allow_label">
|
||||
Digər sakinlərə icazə verin:
|
||||
</text>
|
||||
<text name="allow_label1" width="150">
|
||||
Mənzərəni dəyişdirmək:
|
||||
</text>
|
||||
<check_box label="Hamısı" name="edit land check" tool_tip="Qutu işarələnərsə, hər kəs torpağınızın mənzərəsini dəyişə bilər. Bunu olduğu kimi buraxmaq daha yaxşıdır."/>
|
||||
<text name="caution_text">
|
||||
(Ehtiyatla istifadə edin!)
|
||||
</text>
|
||||
<text name="allow_label0">
|
||||
Uçmaq:
|
||||
</text>
|
||||
<check_box label="Hamısı" name="check fly" tool_tip="Qutu işarələnərsə, sakinlər sizin torpağınızda uça bilər.Qutu işarələnməyibsə, onlar yalnız sahənizdən kənarda uça bilərlər"/>
|
||||
<text name="allow_label2">
|
||||
Tikmək:
|
||||
</text>
|
||||
<check_box label="Hamısı" name="edit objects check" tool_tip="Qutu işarələnərsə, sakinlər torpağınızda obyektlər yarada və yerləşdirə bilərlər."/>
|
||||
<check_box label="Qrup" name="edit group objects check" tool_tip="Qutu işarələnərsə, sakinlər torpağınızda obyektlər yarada və yerləşdirə bilərlər."/>
|
||||
<text name="allow_label3">
|
||||
Obyekt qoymaq:
|
||||
</text>
|
||||
<check_box label="Hamısı" name="all object entry check" tool_tip="Qutu işarələnərsə, onda sakinlər mövcud obyektləri başqa sahələrdən bu sahəyə daşıya bilərlər."/>
|
||||
<check_box label="Qrup" name="group object entry check" tool_tip="Qutu işarələnərsə, onda sahə qrupunun üzvləri mövcud obyektləri digər sahələrdən həmin sahəyə daşıya bilərlər."/>
|
||||
<text name="allow_label4">
|
||||
Skriptləri işə salmaq:
|
||||
</text>
|
||||
<check_box label="Hamısı" name="check other scripts" tool_tip="Qutu işarələnərsə, sakinlər proqramlar da daxil olmaqla sahənizdə skript işlədə bilərlər."/>
|
||||
<check_box label="Qrup" name="check group scripts" tool_tip="Qutu işarələnərsə, qrup üzvləri proqramlar da daxil olmaqla sahənizdə skriptlər işlədə bilər."/>
|
||||
<check_box label="Təhlükəsiz (zədə yoxdur)" name="check safe" tool_tip="Qutu işarələnərsə, yer təhlükəsiz sayılır, döyüş zərərləri aradan qaldırılır. Qutu işarələnməyibsə, döyüş ziyanı aktivləşdirilir." />
|
||||
<check_box label="İtələməyin" name="PushRestrictCheck" tool_tip="Skriptlərin itələnməsinin qarşısını alır. Bu seçim torpağınızda arzuolunmaz davranışların qarşısını almaqda faydalı ola bilər." />
|
||||
<check_box label="Bu yeri axtarışda göstər (həftədə 30 L$)" name="ShowDirectoryCheck" tool_tip="İnsanlara sahəni axtarış nəticələrində görmək imkanı verir" />
|
||||
<combo_box name="land category">
|
||||
<combo_box.item label="Hər kateqoriya" name="item0" />
|
||||
<combo_box.item label="Linden məkanı" name="item1" />
|
||||
<combo_box.item label="İncəsənət və mədəniyyət" name="item3" />
|
||||
<combo_box.item label="Biznes" name="item4"/>
|
||||
<combo_box.item label="Təhsil" name="item5"/>
|
||||
<combo_box.item label="Oyunlar" name="item6" />
|
||||
<combo_box.item label="Görüş yerləri" name="item7"/>
|
||||
<combo_box.item label="Yeni başlayanlar üçün" name="item8" />
|
||||
<combo_box.item label="Parklar və təbiət" name="item9" />
|
||||
<combo_box.item label="Yaşayış" name="item10" />
|
||||
<combo_box.item label="Ticarət" name="item11"/>
|
||||
<combo_box.item label="İcra" name="item13" />
|
||||
<combo_box.item label="Müxtəlif" name="item12" />
|
||||
</combo_box>
|
||||
<check_box label="Ortam məzmun" name="MatureCheck" />
|
||||
<text name="Snapshot:">
|
||||
Şəkil:
|
||||
</text>
|
||||
<texture_picker name="snapshot_ctrl" tool_tip="Şəkil seçmək üçün basın" />
|
||||
<text name="allow_see_label">
|
||||
Digər sahələrin avatarları həmin sahədəki avatarları görə və onlarla əlaqə saxlaya bilər
|
||||
</text>
|
||||
<check_box name="SeeAvatarsCheck" tool_tip="Digər sahələrin avatarlarına bu sahədəki avatarları görməyə və onlarla əlaqə saxlamağa icazə verin, siz də onları görə və onlarla əlaqə saxlaya bilərsiniz."/>
|
||||
<text name="landing_point">
|
||||
Gəliş nöqtəsi: [ENDING]
|
||||
</text>
|
||||
<button label="Təyin et" name="Set" tool_tip="Avatarların çatacağı gəliş nöqtəsini təyin edir. Bu nöqtə saytdakı avatarınızın koordinatları ilə müəyyən edilir." />
|
||||
<button label="Təmizlə" label_selected="Təmizlə" name="Clear" tool_tip="Gəliş nöqtəsini təmizlə" width="65"/>
|
||||
<button label="Teleport" label_selected="Teleport" name="teleport_to_landing_point" tool_tip="Gəliş nöqtəsinə teleport ol" width="90" />
|
||||
<text name="Teleport Routing: ">
|
||||
Teleportasiya marşrutu:
|
||||
</text>
|
||||
<combo_box name="landing type" tool_tip="Teleportasiya marşrutu -- torpağınıza teleportasiyanı necə idarə edəcəyinizi seçin">
|
||||
<combo_box.item label="Bloklanıb" name="Blocked" />
|
||||
<combo_box.item label="Gəliş nöqtəsi" name="LandingPoint" />
|
||||
<combo_box.item label="Hər yerdə" name="Anywhere"/>
|
||||
</combo_box>
|
||||
</panel>
|
||||
<panel label="Media" name="land_media_panel">
|
||||
<text name="with media:">
|
||||
Növ:
|
||||
</text>
|
||||
<combo_box name="media type" tool_tip="Keçidin video, veb səhifə və ya digər media olub olmadığını təyin edin"/>
|
||||
<text name="at URL:">
|
||||
URL:
|
||||
</text>
|
||||
<button label="Təyin et" name="set_media_url"/>
|
||||
<text name="Description:">
|
||||
Təsviri:
|
||||
</text>
|
||||
<line_editor name="url_description" tool_tip="Oynat/Yüklə düyməsinin yanında göstərilən mətn"/>
|
||||
<text name="Media texture:">
|
||||
Tekstura:
|
||||
</text>
|
||||
<texture_picker name="media texture" tool_tip="Şəkil seçmək üçün basın" />
|
||||
<text name="replace_texture_help">
|
||||
Bu teksturadan istifadə edən obyekt, oynatma düyməsinə basdıqda video və ya veb səhifəni oynadacaq. Fərqli tekstura seçmək üçün kiçik şəklin üzərinə basın.
|
||||
</text>
|
||||
<check_box label="Avto miqyas" name="media_auto_scale" tool_tip="Bu funksiyanın seçilməsi nəticəsində bu sahə üçün məzmun avtomatik olaraq ölçülür. Bu, bir qədər yavaş və aşağı şəkil keyfiyyətindədir, lakin miqyaslaşdırma və teksturanın uyğunlaşdırılmasını tələb etmir." />
|
||||
<text name="media_size" tool_tip="Veb media ekranının ölçüsü, standart 0-dır.">
|
||||
Ölçü:
|
||||
</text>
|
||||
<spinner name="media_size_width" tool_tip="Veb media ekranının genişliyi, standart 0-dır." />
|
||||
<spinner name="media_size_height" tool_tip="Veb media ekranının hündürlüyü, standart 0-dır." />
|
||||
<text name="pixels">
|
||||
piksel
|
||||
</text>
|
||||
<text name="Options:">
|
||||
Seçimlər:
|
||||
</text>
|
||||
<check_box label="Döngə" name="media_loop" tool_tip="Medianı döngədə oxudun. Media oynatmağı bitirdikdə, o, əvvəldən başlayacaq." />
|
||||
</panel>
|
||||
<panel label="Səs" name="land_audio_panel">
|
||||
<text name="MusicURL:">
|
||||
Musiqi üçün URL:
|
||||
</text>
|
||||
<button name="stream_add_btn" tool_tip="Musiqi Yayımının URL-sini Saxlanmış Yayımlar Siyahısına əlavə edin" />
|
||||
<button name="stream_delete_btn" tool_tip="Musiqi Yayımının URL-sini Saxlanmış Yayımlar Siyahısına silin" />
|
||||
<button name="stream_copy_btn" tool_tip="Musiqi axınının URL-sini buferə köçürdün" />
|
||||
<text name="Sound:">
|
||||
Səs:
|
||||
</text>
|
||||
<check_box label="Obyekt jestləri və səsləri sahə sərhədlərilə məhdudlaşdırın" name="check sound local" width="292" tool_tip="Əgər bu funksiya seçilibsə, o zaman obyektlərdən gələn jestlər və səslər yalnız bu sahədə eşidiləcək, lakin ondan kənarda eşidilməyəcək."/>
|
||||
<text name="Avatar Sounds:">
|
||||
Avatar səsləri:
|
||||
</text>
|
||||
<check_box label="Hamısı" name="all av sound check"/>
|
||||
<check_box label="Qrup" name="group av sound check"/>
|
||||
<text name="Voice settings:">
|
||||
Səs(avaz):
|
||||
</text>
|
||||
<check_box label="Səsi aktivləşdirin" name="parcel_enable_voice_channel"/>
|
||||
<check_box label="Səsi aktivləşdirin (adanın sahibi tərəfindən təyin olunur)" name="parcel_enable_voice_channel_is_estate_disabled" width="300" />
|
||||
<check_box label="Bu sahənin sərhəddi ilə səsi məhdudlaşdırın" name="parcel_enable_voice_channel_local"/>
|
||||
<text name="media">
|
||||
Media:
|
||||
</text>
|
||||
<check_box label="Obyektdə anlaşılmaz media" name="obscure_moap" tool_tip="Sahədən kənarda yerləşən obyektdəki media həmin sahənin daxilindəki agent üçün avtomatik olaraq oynamamalıdır və əksinə."/>
|
||||
</panel>
|
||||
<panel label="Giriş" name="land_access_panel">
|
||||
<panel.string name="access_estate_defined">
|
||||
(Adada müəyyən edilmişdir)
|
||||
</panel.string>
|
||||
<panel.string name="estate_override">
|
||||
Bir və ya daha çox seçim ada seçimləri ilə əvvəlcədən müəyyən edilib
|
||||
</panel.string>
|
||||
<check_box name="public_access" label="İctimai girişə icazə verin (Söndürülmə qadağa xətləri yaradacaq)" />
|
||||
<text name="Only Allow">
|
||||
Yalnız aşağıdakı istifadəçilərə girişə icazə verin:
|
||||
</text>
|
||||
<check_box label="Ödəniş məlumatı var [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Sakinlərin bu sahəyə daxil olmaq üçün ödəniş məlumatı olmalıdır. Ətraflı məlumatı burada tapa bilərsiniz: [SUPPORT_SITE]."/>
|
||||
<check_box label="18 yaşa və yuxarıya çatıb [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Bu sahəyə giriş 18 yaşdan aşağı olan sakinlər üçün məhdudlaşdırılır. Ətraflı məlumatı burada tapa bilərsiniz: [SUPPORT_SITE]." />
|
||||
<check_box label="Qrup girişinə icazə verin: [GROUP]" name="GroupCheck" tool_tip="Qrupu 'Ümumi' pəncərəsində təyin edin."/>
|
||||
<check_box label="İcazənamənin satışı:" name="PassCheck" tool_tip="Bu sahəyə müvəqqəti girişə icazə verin" />
|
||||
<combo_box name="pass_combo">
|
||||
<combo_box.item label="Hamıya" name="Anyone" />
|
||||
<combo_box.item label="Qrupa" name="Group" />
|
||||
</combo_box>
|
||||
<spinner label="L$-da qiymət:" name="PriceSpin"/>
|
||||
<spinner label="Giriş saatları:" name="HoursSpin" />
|
||||
<text name="OwnerLimited">
|
||||
(Mülk sahibi bu seçimləri məhdudlaşdırmış ola bilər)
|
||||
</text>
|
||||
<panel name="Allowed_layout_panel">
|
||||
<text name="AllowedText">
|
||||
İcazəli sakinlər ([COUNT]/[MAX])
|
||||
</text>
|
||||
<name_list name="AccessList" tool_tip="([LISTED] siyahıda, maksimal [MAX])" />
|
||||
<button label="Əlavə et" name="add_allowed" />
|
||||
<button label="Sil" label_selected="Sil" name="remove_allowed" />
|
||||
</panel>
|
||||
<panel name="Banned_layout_panel">
|
||||
<text name="BanCheck">
|
||||
Bloklanıb ([COUNT], maks. [MAX])
|
||||
</text>
|
||||
<name_list name="BannedList" tool_tip="([LISTED] siyahıda, maksimal [MAX])">
|
||||
<columns label="Ad" name="name"/>
|
||||
<columns label="Vaxt" name="duration"/>
|
||||
</name_list>
|
||||
<button label="Əlavə et" name="add_banned"/>
|
||||
<button label="Sil" label_selected="Sil" name="remove_banned" />
|
||||
</panel>
|
||||
</panel>
|
||||
<panel label="Macəralar" name="land_experiences_panel"/>
|
||||
<panel label="Ətraf mühit" name="land_environment_panel"/>
|
||||
</tab_container>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="floater_activeim" title="Aktiv şəxsi söhbət"/>
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater name="floater_add_payment_method">
|
||||
<panel name="wrapper_panel">
|
||||
<text name="title_txt">
|
||||
Second Life-dan daha çox zövq almaq üçün Linden dolları almaq üçün ödəniş üsulunu əlavə edin.
|
||||
</text>
|
||||
<button label="Başla" name="continue_btn" width="140"/>
|
||||
<button label="Sonra" name="close_btn" width="90"/>
|
||||
<text name="image_left_desc">
|
||||
Sevimli avatar yaradın. Second Life dükkanlarında və Marketplace-də milyonlarla mallardan seçim edin. Siz burada stil yarada bilərsiniz.
|
||||
</text>
|
||||
<text name="image_center_desc">
|
||||
Sevimli müğənnilər və aparıcılar üçün hədiyyələr verin. Dəstəyiniz onlara gözəl təsirlər yaratmağa kömək edir.
|
||||
</text>
|
||||
<text name="image_right_desc">
|
||||
Xəyallarınızın evini yaradın. Almaq üçün milyonlarla əşya var, bu sayədə məskəninizi unikal edə bilərsiniz.
|
||||
</text>
|
||||
</panel>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="env_adjust_snapshot" title="Şəxsi işıqlandırma">
|
||||
<layout_stack name="outer_stack">
|
||||
<layout_panel name="env_controls">
|
||||
<layout_stack name="settings_stack">
|
||||
<layout_panel name="lp_1">
|
||||
<text name="ambient_lbl">Mühit:</text>
|
||||
<text name="blue_horizon_lbl">Üfüq:</text>
|
||||
<text name="blue_density_lbl">Səma:</text>
|
||||
<button label="Sıfırla" name="btn_reset" tool_tip="Bağla və Ortam ətraf mühitə sıfırla"/>
|
||||
<text name="sun_color_lbl">Günəş:</text>
|
||||
<text name="cloud_color_lbl">Buludun rəngi:</text>
|
||||
<text name="cloud_map_label">Buludlar:</text>
|
||||
<text name="water_map_label">Su:</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="lp_2">
|
||||
<text name="haze_horizon_label">Üfüq dumanı:</text>
|
||||
<text name="haze_density_label">Dumanlıqlığın yoğunluğu:</text>
|
||||
<text name="cloud_coverage_label">Bulud örtüyü:</text>
|
||||
<text name="cloud_scale_label">Buludların ölçüsü:</text>
|
||||
<text name="scene_gamma_label">Səhnə Gamma:</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="lp_3">
|
||||
<text name="label">Günəş:</text>
|
||||
<text name="sun_azimuth_label">Azimut:</text>
|
||||
<text name="sun_elevation_label">Yüksəklik:</text>
|
||||
<check_box label="Mayakı göstər" name="sunbeacon"/>
|
||||
<text name="scale_label">Ölçü:</text>
|
||||
<text name="glow_focus_label">Parlaqlığın fokusu:</text>
|
||||
<text name="glow_size_label">Parlaqlığın ölçüsü:</text>
|
||||
<text name="star_brightness_label">Ulduzların parlaqlığı:</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="lp_4">
|
||||
<text name="label">Ay:</text>
|
||||
<text name="moon_azimuth_label">Azimut:</text>
|
||||
<text name="moon_elevation_label">Yüksəklik:</text>
|
||||
<check_box label="Mayakı göstər" name="moonbeacon"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="Anim Preview">
|
||||
<text name="name_label">
|
||||
Adı:
|
||||
</text>
|
||||
<text name="description_label">
|
||||
Təsviri:
|
||||
</text>
|
||||
<button label="Göndər ([AMOUNT]L$)" name="ok_btn"/>
|
||||
<button label="Ləğv et" label_selected="Ləğv et" name="cancel_btn"/>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,188 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="Animation Preview">
|
||||
<floater.string name="failed_to_initialize">
|
||||
Hərəkətin başlatılması mümkün olmadı
|
||||
</floater.string>
|
||||
<floater.string name="anim_too_long">
|
||||
Animasiya faylının uzunluğu: [LENGTH] sn.
|
||||
|
||||
Maksimum animasiya uzunluğu: [MAX_LENGTH] sn.
|
||||
</floater.string>
|
||||
<floater.string name="failed_file_read">
|
||||
Animasiya faylını oxumaq mümkün olmadı.
|
||||
|
||||
[STATUS]
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_OK">
|
||||
OK
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_EOF">
|
||||
Faylın tez bitişi.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_CONSTRAINT">
|
||||
Məhdudiyyət təyini oxuna bilmir.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_FILE">
|
||||
BVH faylı açıla bilmədi.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_HIER">
|
||||
Yanlış HIERARCHY başlığı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_JOINT">
|
||||
ROOT və ya JOINT tapıla bilmədi.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_NAME">
|
||||
JOINT adını almaq mümkün olmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_OFFSET">
|
||||
OFFSET tapıla bilmədi.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_CHANNELS">
|
||||
CHANNELS tapıla bilmədi.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_ROTATION">
|
||||
Döndürmə sırasını almaq mümkün olmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_AXIS">
|
||||
Döndürmə mərzəni almaq mümkün olmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_MOTION">
|
||||
MOTION tapıla bilmədi.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_FRAMES">
|
||||
Frame sayını almaq mümkün olmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_FRAME_TIME">
|
||||
Frame vaxtını almaq mümkün olmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_POS">
|
||||
Position dəyərlərini almaq mümkün olmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_ROT">
|
||||
Döndürmə dəyərlərini almaq mümkün olmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_XLT_FILE">
|
||||
Tərcümə faylını açmaq mümkün olmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_XLT_HEADER">
|
||||
Tərcümə başlığını oxumaq mümkün olmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_XLT_NAME">
|
||||
Tərcümə adları oxunmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_XLT_IGNORE">
|
||||
Ignore tərcümə dəyəri oxunmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_XLT_RELATIVE">
|
||||
Relative tərcümə dəyəri oxunmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_XLT_OUTNAME">
|
||||
Outname tərcümə dəyəri oxunmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_XLT_MATRIX">
|
||||
Tərcümə matrisi oxunmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_XLT_MERGECHILD">
|
||||
Mergechild adı alınmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_XLT_MERGEPARENT">
|
||||
Mergeparent adı alınmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_XLT_PRIORITY">
|
||||
Priority dəyəri alınmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_XLT_LOOP">
|
||||
Loop dəyəri alınmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_XLT_EASEIN">
|
||||
EaseIn dəyərləri alınmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_XLT_EASEOUT">
|
||||
EaseOut dəyərləri alınmadı.
|
||||
</floater.string name="E_ST_NO_XLT_HAND">
|
||||
Hand morph dəyəri alınmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_NO_XLT_EMOTE">
|
||||
Emote adı oxunmadı.
|
||||
</floater.string>
|
||||
<floater.string name="E_ST_BAD_ROOT">
|
||||
Kök bağlantısının adı yanlışdır, «hip» olmalıdır.
|
||||
</floater.string>
|
||||
<text name="name_label">
|
||||
Adı:
|
||||
</text>
|
||||
<text name="description_label">
|
||||
Təsviri:
|
||||
</text>
|
||||
<spinner label="Prioritet" name="priority" tool_tip="Digər animasiyaların bununla necə üst-üstə düşə biləcəyinə nəzarət edir."/>
|
||||
<check_box label="Dövr" name="loop_check" tool_tip="Animasiyanı dövrlənmiş eləyir"/>
|
||||
<spinner label="Başlanğıc(%)" name="loop_in_point" tool_tip="Dövrün qayıtma nöqtəsini təyin edir"/>
|
||||
<spinner label="Son(%)" name="loop_out_point" tool_tip="Dövrün son nöqtəsini təyin edir"/>
|
||||
<spinner label="Başlanğıc(s)" name="loop_in_frames" tool_tip="Dövrün döndüyü animasiya nöqtəsini çərçivələrdə təyin edir"/>
|
||||
<spinner label="Son(s)" name="loop_out_frames" tool_tip="Dövrü bitirən animasiya nöqtəsini çərçivələrdə təyin edir"/>
|
||||
<text name="hand_label">
|
||||
Barmaqların vəziyyəti
|
||||
</text>
|
||||
<combo_box name="hand_pose_combo" tool_tip="Animasiya zamanı əllərin pozisiyasını nəzarət edir">
|
||||
<combo_box.item label="Ayrılmış" name="Spread"/>
|
||||
<combo_box.item label="Sərbəst" name="Relaxed"/>
|
||||
<combo_box.item label="Göstərir" name="PointBoth"/>
|
||||
<combo_box.item label="Qapalı" name="Fist"/>
|
||||
<combo_box.item label="Sol xash" name="RelaxedLeft"/>
|
||||
<combo_box.item label="Sol göstərir" name="PointLeft"/>
|
||||
<combo_box.item label="Sol qapalı" name="FistLeft"/>
|
||||
<combo_box.item label="Sağ xaş" name="RelaxedRight"/>
|
||||
<combo_box.item label="Sağ göstərir" name="PointRight"/>
|
||||
<combo_box.item label="Sağ qapalı" name="FistRight"/>
|
||||
<combo_box.item label="Sağ salam verir" name="SaluteRight"/>
|
||||
<combo_box.item label="Yazı yazır" name="Typing"/>
|
||||
<combo_box.item label="Sağ 'V'" name="PeaceRight"/>
|
||||
</combo_box>
|
||||
<text name="emote_label">
|
||||
Üz ifadəsi
|
||||
</text>
|
||||
<combo_box name="emote_combo" tool_tip="Animasiya zamanı üz ifadəsini idarə edir">
|
||||
<item label="(yox)" name="[None]"/>
|
||||
<item label="Aaaah" name="Aaaaah"/>
|
||||
<item label="Qorxur" name="Afraid"/>
|
||||
<item label="Hirsli" name="Angry"/>
|
||||
<item label="Geniş təbəssüm edir" name="BigSmile"/>
|
||||
<item label="Yorğun" name="Bored"/>
|
||||
<item label="Ağlayır" name="Cry"/>
|
||||
<item label="Xor baxır" name="Disdain"/>
|
||||
<item label="Həvəsli" name="Embarrassed"/>
|
||||
<item label="Qaşqabağını tökür" name="Frown"/>
|
||||
<item label="Öpüşür" name="Kiss"/>
|
||||
<item label="Gülür" name="Laugh"/>
|
||||
<item label="Əyləncəli" name="Plllppt"/>
|
||||
<item label="Rədd edir" name="Repulsed"/>
|
||||
<item label="Qəmli" name="Sad"/>
|
||||
<item label="Anlamır" name="Shrug"/>
|
||||
<item label="Təbəssüm edir" name="Smile"/>
|
||||
<item label="Təəssüf edir" name="Surprise"/>
|
||||
<item label="Göz kırpır" name="Wink"/>
|
||||
<item label="Təəccüblənir" name="Worry"/>
|
||||
</combo_box>
|
||||
<text name="preview_label">
|
||||
Baxış zamanı
|
||||
</text>
|
||||
<combo_box name="preview_base_anim" tool_tip="Əməliyyat icrası müddətində avatar tərəfindən animasiyanızın görüntüsünün izlənməsi.">
|
||||
<item label="Durmaq" name="Standing"/>
|
||||
<item label="Yürümək" name="Walking"/>
|
||||
<item label="Oturmaq" name="Sitting"/>
|
||||
<item label="Uçuş" name="Flying"/>
|
||||
</combo_box>
|
||||
<spinner label="Giriş (sn.)" name="ease_in_time" tool_tip="Başlanğıc mövqeyə daxil olmaq üçün keçirilən vaxt (saniyə cinsində)"/>
|
||||
<spinner label="Çıxış (sn.)" name="ease_out_time" tool_tip="Animasiyadan çıxmaq üçün keçirilən vaxt (saniyə cinsində)"/>
|
||||
<button name="play_btn" tool_tip="Animasiyanı oynat"/>
|
||||
<button name="pause_btn" tool_tip="Animasiyaya fasilə"/>
|
||||
<button name="stop_btn" tool_tip="Animasiyanı dayandır"/>
|
||||
<text name="bad_animation_text">
|
||||
Animasiya faylını oxumaq mümkün deyil.
|
||||
|
||||
Poser 4-dən idxal olunmuş BVH fayllarının istifadəsi tövsiyə olunur.
|
||||
</text>
|
||||
<button label="Faylı yenidən yüklə" name="reload_btn" width="128" />
|
||||
<button label="Ötür (L$[AMOUNT])" name="ok_btn"/>
|
||||
<button label="Ləğv et" name="cancel_btn"/>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="animation_explorer" title="Animasiya bələdçisi">
|
||||
<scroll_list name="animation_list">
|
||||
<scroll_list.column label="Oynayan" name="played_by" />
|
||||
<scroll_list.column label="Vəziyyət" name="played" />
|
||||
<scroll_list.column label="Prioritet" name="priority" />
|
||||
<scroll_list.column label="Vaxt" name="timestamp" />
|
||||
<scroll_list.column label="Animasiya ID-si" name="animation_id" />
|
||||
<scroll_list.column label="Obyekt ID-si" name="object_id" />
|
||||
</scroll_list>
|
||||
<panel name="buttons_panel">
|
||||
<button label="Dayandır" name="stop_btn" />
|
||||
<button label="Dayandır və İmtina et" name="stop_and_revoke_btn" />
|
||||
<button label="İmtina et" name="revoke_btn" />
|
||||
<check_box label="Mənim animasiyalarım yoxdur" name="no_owned_animations_check" tool_tip="Avatarınıza məxsus olan, AO animasiyaları və ya standart sistem animasiyaları kimi, bütün animasiyaları filtrləyəcək" />
|
||||
</panel>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater name="animation_overrider" title="Animasiya əvəzçisi (AO)">
|
||||
<floater.string name="ao_no_sets_loaded">Yüklənmiş dəstlər yoxdur</floater.string>
|
||||
<floater.string name="ao_no_animations_loaded">Yüklənmiş animasiyalar yoxdur</floater.string>
|
||||
<floater.string name="ao_dnd_only_on_full_interface">Siz yalnız animasiya dəsti ilə qeydi tam Animator pəncərə interfeysinə daşıyıb buraxa bilərsiniz. Açmaq üçün açar işarəsinə klikləyin.</floater.string>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="associate listing" title="SİYAHI QOŞ">
|
||||
<text name="message">Siyahı ID-si:</text>
|
||||
<line_editor name="listing_id">ID daxil edin</line_editor>
|
||||
<button label="OK" name="OK"/>
|
||||
<button label="Ləğv et" name="Cancel"/>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="floater_auction" title="Linden Yeri Satışı">
|
||||
<floater.string name="already for sale">
|
||||
Satılıq olan ərazi artıq hərraca qoyula bilməz.
|
||||
</floater.string>
|
||||
<check_box initial_value="true" label="Seçilmiş ərazinin ətrafındakı sarı çiti daxil etmək" name="fence_check"/>
|
||||
<button label="Ani şəkil çəkmək" label_selected="Ani şəkil çəkmək" name="snapshot_btn"/>
|
||||
<button label="Hər kəsə almağa icazə verilir" label_selected="Hər kəsə almağa icazə verilir" name="sell_to_anyone_btn"/>
|
||||
<button label="Parametrləri sıfırla" label_selected="Parametrləri sıfırla" name="reset_parcel_btn"/>
|
||||
<button label="Hərracı başlamaq" label_selected="Hərraca başlamaq" name="start_auction_btn"/>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="autoreplace_floater" title="Avtomatik əvəzləmə Ayarları">
|
||||
<check_box label="Avtomatik əvəzləməni aktivləşdir" name="autoreplace_enable" tool_tip="Çatda mətn yazarkən müvafiq əvəzləmə elementlərinə uyğun sözlər dəyişdiriləcək"/>
|
||||
<button label="Siyahını idxal et..." name="autoreplace_import_list" tool_tip="Daha əvvəl idxal edilmiş siyahını bir fayldan yükləyin."/>
|
||||
<button label="Siyahını ixrac et..." name="autoreplace_export_list" tool_tip="Seçilmiş siyahını bir fayla yaddaşa verin ki, daha sonra yayıma verilə bilərsiniz."/>
|
||||
<button label="Yeni siyahı yarat..." name="autoreplace_new_list" tool_tip="Yeni siyahı yaradın."/>
|
||||
<button label="Siyahını sil" name="autoreplace_delete_list" tool_tip="Seçilmiş siyahını silin."/>
|
||||
<button name="autoreplace_list_up" tool_tip="Siyahı prioritetini artırın."/>
|
||||
<button name="autoreplace_list_down" tool_tip="Siyahı prioritetini azaltın."/>
|
||||
<scroll_list name="autoreplace_list_replacements">
|
||||
<scroll_list.columns label="Açar söz" name="keyword"/>
|
||||
<scroll_list.columns label="Əvəzləmə" name="replacement"/>
|
||||
</scroll_list>
|
||||
<button label="Əlavə et..." name="autoreplace_add_entry"/>
|
||||
<button label="Sil" name="autoreplace_delete_entry"/>
|
||||
<text name="autoreplace_keyword_txt">
|
||||
Açar söz:
|
||||
</text>
|
||||
<text name="autoreplace_replacement_txt">
|
||||
Əvəzləmə:
|
||||
</text>
|
||||
<button label="Qeyd etməni saxla" name="autoreplace_save_entry" tool_tip="Bu qeydi saxlayın."/>
|
||||
<button label="Dəyişiklikləri saxla" name="autoreplace_save_changes" tool_tip="Bütün dəyişiklikləri saxlayın."/>
|
||||
<button label="Ləğv et" name="autoreplace_cancel" tool_tip="Bütün dəyişiklikləri ləğv edin."/>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="Avatar" title="Avatar seçin"/>
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="avatarpicker" title="Avatar seçimi">
|
||||
<floater.string name="not_found">
|
||||
'[TEXT]' mətni tapılmadı
|
||||
</floater.string>
|
||||
<floater.string name="not_found_text">
|
||||
Sakin tapılmadı.
|
||||
</floater.string>
|
||||
<floater.string name="no_one_near">
|
||||
Yaxınlıqda heç kəs yoxdur
|
||||
</floater.string>
|
||||
<floater.string name="no_results">
|
||||
Nəticə yoxdur
|
||||
</floater.string>
|
||||
<floater.string name="searching">
|
||||
Axtarış...
|
||||
</floater.string>
|
||||
<string name="Select">
|
||||
Seç
|
||||
</string>
|
||||
<string name="Close">
|
||||
Bağla
|
||||
</string>
|
||||
<tab_container name="ResidentChooserTabs">
|
||||
<panel label="Axtarış" name="SearchPanel">
|
||||
<text name="InstructSearchResidentName">
|
||||
Sakinin adının bir hissəsini daxil edin:
|
||||
</text>
|
||||
<button label="Axtarış" label_selected="Axtarış" name="Find"/>
|
||||
<fs_scroll_list name="SearchResults">
|
||||
<columns label="Ad" name="name"/>
|
||||
<columns label="İstifadəçi adı" name="username"/>
|
||||
</fs_scroll_list>
|
||||
</panel>
|
||||
<panel label="Dostlar" name="FriendsPanel">
|
||||
<text name="InstructSelectFriend">
|
||||
Sakini seçin:
|
||||
</text>
|
||||
<fs_scroll_list name="Friends">
|
||||
<columns label="Ad" name="name"/>
|
||||
<columns label="İstifadəçi adı" name="username"/>
|
||||
</fs_scroll_list>
|
||||
</panel>
|
||||
<panel label="Yaxınlıqımda" name="NearMePanel">
|
||||
<text name="InstructSelectResident">
|
||||
Yaxınlıqda olan sakini seçin:
|
||||
</text>
|
||||
<slider label="Məsafə" name="near_me_range"/>
|
||||
<text name="meters">
|
||||
Metr
|
||||
</text>
|
||||
<fs_scroll_list name="NearMe">
|
||||
<columns label="Ad" name="name"/>
|
||||
<columns label="İstifadəçi adı" name="username"/>
|
||||
</fs_scroll_list>
|
||||
</panel>
|
||||
<panel label="UUID ilə axtarış" name="SearchPanelUUID">
|
||||
<text name="SearchByUUIDLabel">
|
||||
UUID daxil edin:
|
||||
</text>
|
||||
<line_editor name="EditUUID"/>
|
||||
<button label="Axtarış" label_selected="Axtarış" name="FindUUID"/>
|
||||
<fs_scroll_list name="SearchResultsUUID">
|
||||
<columns label="Ad" name="nameUUID"/>
|
||||
<columns label="İstifadəçi adı" name="usernameUUID"/>
|
||||
</fs_scroll_list>
|
||||
</panel>
|
||||
</tab_container>
|
||||
<button label="ОК" label_selected="ОК" name="ok_btn"/>
|
||||
<button label="Ləğv et" label_selected="Ləğv et" name="cancel_btn"/>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="floater_avatar_render_settings" title="Avatar Göstərmə İstisnaları">
|
||||
<string name="av_never_render" value="Heç vaxt"/>
|
||||
<string name="av_always_render" value="Həmişə"/>
|
||||
<name_list name="render_settings_list">
|
||||
<name_list.columns label="Ad" name="name"/>
|
||||
<name_list.columns label="Ətraflı" name="setting"/>
|
||||
</name_list>
|
||||
<panel name="add_subpanel">
|
||||
<menu_button label="Kimisə əlavə etmək..." name="plus_btn" tool_tip="Seçilmiş adam ilə hərəkətlər"/>
|
||||
</panel>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="avatar_texture_debug" title="Avatar teksturları">
|
||||
<floater.string name="InvalidAvatar">
|
||||
Qeyri-düzgün avatar
|
||||
</floater.string>
|
||||
<scroll_container name="profile_scroll">
|
||||
<panel name="scroll_content_panel">
|
||||
<text name="label">
|
||||
Atılmış
|
||||
Teksturlar
|
||||
</text>
|
||||
<text name="composite_label">
|
||||
Çətin
|
||||
Teksturlar
|
||||
</text>
|
||||
<button label="ID-lərin konsola çıxarışı" label_selected="Çıxarış" name="Dump"/>
|
||||
<panel name="scroll_content_panel">
|
||||
<texture_picker label="Saçlar" name="hair-baked"/>
|
||||
<texture_picker label="Saçlar" name="hair_grain"/>
|
||||
<texture_picker label="Saç alfası" name="hair_alpha"/>
|
||||
<texture_picker label="Saç döyməsi" name="hair_tattoo"/>
|
||||
<texture_picker label="Baş" name="head-baked"/>
|
||||
<texture_picker label="Makyaj" name="head_bodypaint"/>
|
||||
<texture_picker label="Baş alfası" name="head_alpha"/>
|
||||
<texture_picker label="Baş döyməsi" name="head_tattoo"/>
|
||||
<texture_picker label="Univers.döymə" name="head_universal_tattoo"/>
|
||||
<texture_picker label="Gözlər" name="eyes-baked"/>
|
||||
<texture_picker label="Göz" name="eyes_iris"/>
|
||||
<texture_picker label="Gözlər alfası" name="eyes_alpha"/>
|
||||
<texture_picker label="Gözlər döyməsi" name="eyes_tattoo"/>
|
||||
<texture_picker label="Bədənin üstü" name="upper-baked"/>
|
||||
<texture_picker label="Üstün rənglənməsi" name="upper_bodypaint"/>
|
||||
<texture_picker label="Mayka" name="upper_undershirt"/>
|
||||
<texture_picker label="Əlcəklər" name="upper_gloves"/>
|
||||
<texture_picker label="Köynək" name="upper_shirt"/>
|
||||
<texture_picker label="Pencək üstü" name="upper_jacket"/>
|
||||
<texture_picker label="Üstün alfası" name="upper_alpha"/>
|
||||
<texture_picker label="Üstün döyməsi" name="upper_tattoo"/>
|
||||
<texture_picker label="Univers.döymə" name="upper_universal_tattoo"/>
|
||||
<texture_picker label="Bədənin altı" name="lower-baked"/>
|
||||
<texture_picker label="Altın rənglənməsi" name="lower_bodypaint"/>
|
||||
<texture_picker label="Tuman" name="lower_underpants"/>
|
||||
<texture_picker label="Corablar" name="lower_socks"/>
|
||||
<texture_picker label="Ayaqqabı" name="lower_shoes"/>
|
||||
<texture_picker label="Şalvar" name="lower_pants"/>
|
||||
<texture_picker label="Pencək" name="lower_jacket"/>
|
||||
<texture_picker label="Altın alfası" name="lower_alpha"/>
|
||||
<texture_picker label="Altın döyməsi" name="lower_tattoo"/>
|
||||
<texture_picker label="Univers.döymə" name="lower_universal_tattoo"/>
|
||||
<texture_picker label="Don" name="skirt-baked"/>
|
||||
<texture_picker label="Don" name="skirt"/>
|
||||
<texture_picker label="Don döyməsi" name="skirt_tattoo"/>
|
||||
<texture_picker label="Sol əl" name="leftarm-baked"/>
|
||||
<texture_picker label="Sol əl döyməsi" name="leftarm_tattoo"/>
|
||||
<texture_picker label="Sol ayaq" name="leftleg-baked"/>
|
||||
<texture_picker label="Sol ayaq döyməsi" name="leftleg_tattoo"/>
|
||||
<texture_picker label="Əlv 1" name="aux1-baked"/>
|
||||
<texture_picker label="Əlv 1 döyməsi" name="aux1_tattoo"/>
|
||||
<texture_picker label="Əlv 2" name="aux2-baked"/>
|
||||
<texture_picker label="Əlv 2 döyməsi" name="aux2_tattoo"/>
|
||||
<texture_picker label="Əlv 3" name="aux3-baked"/>
|
||||
<texture_picker label="Əlv 3 döyməsi" name="aux3_tattoo"/>
|
||||
</panel>
|
||||
</panel>
|
||||
</scroll_container>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="ban_duration" title="Qadağa müddəti">
|
||||
<text name="duration_textbox">
|
||||
Qadağa müddəti:
|
||||
</text>
|
||||
<radio_group name="ban_duration_radio">
|
||||
<radio_item label="Həmişəlik" name="always_radio">
|
||||
Həmişəlik
|
||||
</radio_item>
|
||||
<radio_item label="Müvəqqəti" name="temporary_radio">
|
||||
Müvəqqəti
|
||||
</radio_item>
|
||||
</radio_group>
|
||||
<text name="hours_textbox">
|
||||
saat
|
||||
</text>
|
||||
<button label="ОК" name="ok_btn"/>
|
||||
<button label="Ləğv et" name="cancel_btn"/>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="beacons" title="Mayaklar">
|
||||
<panel name="beacons_panel">
|
||||
<text name="label_show">
|
||||
Göstər:
|
||||
</text>
|
||||
<check_box label="Səhnədəki mayaklar məhdudları" name="lights_bounding_boxes"/>
|
||||
<check_box label="Mayaklar" name="beacons"/>
|
||||
<check_box label="Qeydə alma" name="highlights"/>
|
||||
<check_box label="Ekran üzərində mayak məlumatı" name="FSRenderBeaconText"/>
|
||||
<text name="beacon_width_label" tool_tip="Mayak eni">
|
||||
En:
|
||||
</text>
|
||||
<text name="label_objects">
|
||||
Bu obyektlər üçün:
|
||||
</text>
|
||||
<check_box label="Fiziki" name="physical"/>
|
||||
<check_box label="Skriptli" name="scripted"/>
|
||||
<check_box label="Sadəcə toxunma" name="touch_only"/>
|
||||
<check_box label="Səs mənbələri" name="sounds"/>
|
||||
<check_box label="Partikl mənbələri" name="particles"/>
|
||||
<check_box label="Media mənbələri" name="moapbeacon"/>
|
||||
<text name="label_objects">
|
||||
Göstərmə istiqaməti:
|
||||
</text>
|
||||
<check_box label="Günəş" name="sun"/>
|
||||
<check_box label="Ay" name="moon"/>
|
||||
</panel>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater name="BeamColor" title="İşıq rəngi">
|
||||
<floater.string name="start_hue">
|
||||
Başlanğıc rəng
|
||||
</floater.string>
|
||||
<floater.string name="end_hue">
|
||||
Son rəng
|
||||
</floater.string>
|
||||
<text name="beamcolor_text">
|
||||
Hansı rəng ilkin və hansı son olduğunu
|
||||
göstərmək üçün siçandan istifadə edin
|
||||
Başlanğıc üçün sol düyməni istifadə edin.
|
||||
Son üçün sağ düyməni istifadə edin.
|
||||
</text>
|
||||
<color_swatch name="BeamColor_Preview" tool_tip="Rəng seçimini açmaq üçün toxunun" />
|
||||
<text name="beamcolor_text2">
|
||||
Önizləmə
|
||||
</text>
|
||||
<slider name="BeamColor_Speed" label="Döngə sürəti:" label_width="95" tool_tip="Rəng döngəsinin sürətini idarə edir" />
|
||||
<button label="Saxlamaq" name="BeamColor_Save" />
|
||||
<button label="Yükləmək" name="BeamColor_Load" />
|
||||
<button label="Ləğv etmək" name="BeamColor_Cancel" />
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater name="BeamCreator" title="Şüa yaratmaq paneli">
|
||||
<text name="beamcreator_text">
|
||||
Yeni bir şüa yaratmaq üçün aşağıdakı paneldə siçanın
|
||||
sol düyməsini basın və seçilmiş rəng ilə təyin edin və ya
|
||||
siçanın sağ düyməsi ilə basıb silin. Bitirdikdə Yadda saxla
|
||||
düyməsinə basın.
|
||||
</text>
|
||||
<color_swatch label="Rəng" name="beam_color_swatch" tool_tip="Rəng seçimini açmaq üçün toxunun" />
|
||||
<button label="Yadda saxla" name="beamshape_save" />
|
||||
<button label="Yüklə" name="beamshape_load" />
|
||||
<button label="Təmizlə" name="beamshape_clear" />
|
||||
<button label="Ləğv et" name="cancel" />
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="floater_big_preview" title="Önbaxış"/>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="build options floater" title="Şəbəkə seçimləri">
|
||||
<spinner label="Şəbəkə ölçüləri (metr)" name="GridResolution"/>
|
||||
<spinner label="Şəbəkə hündürlüyü (metr)" name="GridDrawSize"/>
|
||||
<spinner label="Onluq nöqtəsi" name="DecimalPrecision"/>
|
||||
<spinner label="Bucaq (dərəcə)" name="RotationStep"/>
|
||||
<check_box label="Alt birliklərə bağlı ol" name="GridSubUnit"/>
|
||||
<check_box label="Yan üçün görüntü" name="GridCrossSection"/>
|
||||
<text name="grid_opacity_label" tool_tip="Şəbəkənin şəffaflığı">
|
||||
Şəffaflıq:
|
||||
</text>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="floaterbulkperms" title="Məzmun üçün icazələrin təyin edilməsi">
|
||||
<floater.string name="nothing_to_modify_text">
|
||||
Seçilmiş məzmunda dəyişdirmək üçün heçnə yoxdur.
|
||||
</floater.string>
|
||||
<floater.string name="status_text">
|
||||
[NAME] üçün icazələrin təyin edilməsi
|
||||
</floater.string>
|
||||
<floater.string name="start_text">
|
||||
İcazə dəyişdirmə sorğusu yaradılır...
|
||||
</floater.string>
|
||||
<floater.string name="done_text">
|
||||
İcra edilmiş icazə dəyişdirmə sorğuları.
|
||||
</floater.string>
|
||||
<icon name="icon_animation" tool_tip="Animasiya"/>
|
||||
<icon name="icon_bodypart" tool_tip="Bədən hissələri"/>
|
||||
<icon name="icon_clothing" tool_tip="Paltarlar"/>
|
||||
<icon name="icon_gesture" tool_tip="Jestlər"/>
|
||||
<icon name="icon_notecard" tool_tip="Qeydlər"/>
|
||||
<icon name="icon_object" tool_tip="Obyektlər"/>
|
||||
<icon name="icon_script" tool_tip="Skriptlər"/>
|
||||
<icon name="icon_sound" tool_tip="Səslər"/>
|
||||
<icon name="icon_texture" tool_tip="Teksturlar"/>
|
||||
<icon name="icon_setting" tool_tip="Mühit seçimləri"/>
|
||||
<button label="√ Hamısı" name="check_all"/>
|
||||
<button label="Təmizlə" label_selected="Yox" name="check_none"/>
|
||||
<text name="newperms">
|
||||
Seçilmiş üçün icazələri təyin et:
|
||||
</text>
|
||||
<text name="GroupLabel">
|
||||
Qrup:
|
||||
</text>
|
||||
<check_box label="Paylaş" name="share_with_group" tool_tip="Позволить всем участникам выбранной группы получить установленные вам права на этот объект. Для включения ролевых ограничений необходимо произвести сделку."/>
|
||||
<text name="AnyoneLabel">
|
||||
Hamısı:
|
||||
</text>
|
||||
<check_box label="Köçürt" name="everyone_copy" tool_tip="Копию объекта может взять любой желающий. Объект и все его содержимое должны копироваться и передаваться."/>
|
||||
<text left="200" name="NextOwnerLabel">
|
||||
Yeni Sahibi:
|
||||
</text>
|
||||
<check_box top_pad="15" label="Dəyişdirmək" name="next_owner_modify" tool_tip="Yeni sahibi obyektin xüsiyyətlərini dəyişdirə bilər, məsələn: ayrı elementin adını, və ya ölçüsünü"/>
|
||||
<check_box label="Köçürt" name="next_owner_copy" tool_tip="Növbəti sahibi bu obyektin qeyri-məhdud sayda köçürtməsini çıxarda bilər. Köçürtmələr yaradıcı haqqında məlumat içərirlər, və köçürdülmüş obyektdən çox icazəli ola bilməzlər."/>
|
||||
<check_box initial_value="true" label="Paylaş" name="next_owner_transfer" tool_tip="Yeni sahibi bu obyekti paylaşa və ya sata bilər."/>
|
||||
<scroll_list height="75" name="queue output"/>
|
||||
<button label="OK" name="ok"/>
|
||||
<button label="Tətbiq et" name="apply"/>
|
||||
<button label="Ləğv et" name="close"/>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="floater_bumps" title="Zərbələr, toqquşmalar və vurmaqlar">
|
||||
<floater.string name="none_detected">
|
||||
Heç nə aşkar edilmədi
|
||||
</floater.string>
|
||||
<floater.string name="bump">
|
||||
[TIME] [NAME] sizi toxundu
|
||||
</floater.string>
|
||||
<floater.string name="llpushobject">
|
||||
[TIME] [NAME] script vasitəsilə sizi sürüklədi
|
||||
</floater.string>
|
||||
<floater.string name="selected_object_collide">
|
||||
[TIME] [NAME] sizi obyekt ilə vurdu
|
||||
</floater.string>
|
||||
<floater.string name="scripted_object_collide">
|
||||
[TIME] [NAME] sizi skript obyekti ilə vurdu
|
||||
</floater.string>
|
||||
<floater.string name="physical_object_collide">
|
||||
[TIME] [NAME] sizi fiziki obyekti ilə vurdu
|
||||
</floater.string>
|
||||
<floater.string name="timeStr">
|
||||
[[hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt]]
|
||||
</floater.string>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="floater_buy_contents" title="Məzmunun almaq">
|
||||
<floater.string name="no_copy_text">
|
||||
(köçürülə bilməz)
|
||||
</floater.string>
|
||||
<floater.string name="no_modify_text">
|
||||
(dəyişdirilə bilməz)
|
||||
</floater.string>
|
||||
<floater.string name="no_transfer_text">
|
||||
(keçirilə bilməz)
|
||||
</floater.string>
|
||||
<text name="contains_text">
|
||||
<nolink>[NAME]</nolink> içərir:
|
||||
</text>
|
||||
<text name="buy_text">
|
||||
[NAME] adlı satıcıdan L$[AMOUNT] qiymətinə alırsınız?
|
||||
</text>
|
||||
<check_box label="Geyim indi taxılsın" name="wear_check"/>
|
||||
<button label="Satın al" label_selected="Satın alınır" name="buy_btn"/>
|
||||
<button label="Ləğv et" label_selected="Ləğv edilir" name="cancel_btn"/>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<floater title="L$ Al" name="buy currency">
|
||||
<floater.string name="buy_currency">
|
||||
Təxminən [LOCALAMOUNT] üçün L$ [LINDENS] alın
|
||||
</floater.string>
|
||||
<floater.string name="info_cannot_buy">
|
||||
Almaq olmaz
|
||||
</floater.string>
|
||||
<layout_stack name="outer_stack">
|
||||
<layout_panel name="layout_panel_title">
|
||||
<text name="info_need_more">
|
||||
Sizə daha çox L$-a ehtiyacınız var
|
||||
</text>
|
||||
<text name="info_buying">
|
||||
L$ alın
|
||||
</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="layout_panel_price">
|
||||
<text name="target_price_label">
|
||||
Sizin ehtiyacınız var:
|
||||
</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="layout_panel_balance">
|
||||
<text name="balance_label">
|
||||
Artıq sizin hesabınızda var:
|
||||
</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="layout_panel_required">
|
||||
<text name="required_label">
|
||||
Ən azından alınmalıdır
|
||||
</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="layout_panel_action">
|
||||
<text name="currency_action">
|
||||
Almaq üçün məbləği seçin
|
||||
</text>
|
||||
<text name="currency_est">
|
||||
təxminən [LOCALAMOUNT]
|
||||
</text>
|
||||
<text name="getting_data">
|
||||
Hesablanır...
|
||||
</text>
|
||||
<text name="total_label">
|
||||
Yeni balansınız olacaq
|
||||
</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="layout_panel_msg">
|
||||
<text name="currency_links">
|
||||
[http://www.secondlife.com/my/account/payment_method_management.php ödəniş üsulu] | [http://www.secondlife.com/my/account/currency.php pul]
|
||||
</text>
|
||||
<text name="exchange_rate_note">
|
||||
Yeni məzənnəni görmək üçün məbləği yenidən daxil edin.
|
||||
</text>
|
||||
<text name="purchase_warning_repurchase">
|
||||
L$ aldıqdan sonra alışı yenidən cəhd edin.
|
||||
</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="layout_panel_buttons">
|
||||
<text name="contacting">
|
||||
LindeX ilə əlaqə...
|
||||
</text>
|
||||
<button label="Almaq" name="buy_btn"/>
|
||||
<button label="Ləğv et" name="cancel_btn"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="floater_buy_currency_html" title="Valyuta alqı-satqısı"/>
|
||||
|
|
@ -0,0 +1,233 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="buy land" title="Torpaq alma">
|
||||
<floater.string name="can_resell">
|
||||
Başqa şəxsə satıla bilər.
|
||||
</floater.string>
|
||||
<floater.string name="can_not_resell">
|
||||
Satıla bilməz.
|
||||
</floater.string>
|
||||
<floater.string name="can_change">
|
||||
Birləşdirilə, bölünə bilər.
|
||||
</floater.string>
|
||||
<floater.string name="can_not_change">
|
||||
Birləşdirilə, bölünə bilməz.
|
||||
</floater.string>
|
||||
<floater.string name="cant_buy_for_group">
|
||||
Aktiv qrupunuz üçün torpaq almaq üçün hüquqlarınız yoxdur.
|
||||
</floater.string>
|
||||
<floater.string name="no_land_selected">
|
||||
Heç bir torpaq seçilmədi.
|
||||
</floater.string>
|
||||
<floater.string name="multiple_parcels_selected">
|
||||
Bir neçə fərqli hissə seçildi.
|
||||
Daha kiçik bir sahə seçməyə çalışın.
|
||||
</floater.string>
|
||||
<floater.string name="no_permission">
|
||||
Aktiv qrupunuz üçün torpaq almaq üçün hüquqlarınız yoxdur.
|
||||
</floater.string>
|
||||
<floater.string name="parcel_not_for_sale">
|
||||
Seçilmiş torpaq hissəsi satışa çıxarılmayıb.
|
||||
</floater.string>
|
||||
<floater.string name="group_already_owns">
|
||||
Qrup artıq torpaq hissəsinin sahibidir.
|
||||
</floater.string>
|
||||
<floater.string name="you_already_own">
|
||||
Siz artıq torpaq hissəsinin sahibisiniz.
|
||||
</floater.string>
|
||||
<floater.string name="set_to_sell_to_other">
|
||||
Seçilmiş torpaq hissəsi başqaları üçün satışa çıxarılmışdır.
|
||||
</floater.string>
|
||||
<floater.string name="no_public_land">
|
||||
Seçilmiş sahədə ictimai torpaq yoxdur.
|
||||
</floater.string>
|
||||
<floater.string name="not_owned_by_you">
|
||||
Başqa bir sakini olan torpaq seçildi.
|
||||
Daha kiçik bir sahə seçməyə çalışın.
|
||||
</floater.string>
|
||||
<floater.string name="processing">
|
||||
Alışınız emal edilir...
|
||||
|
||||
(bu bir neçə dəqiqə çəkə bilər).
|
||||
</floater.string>
|
||||
<floater.string name="fetching_error">
|
||||
Xəta: torpaq almaq haqqında məlumat sorğusunda səhv baş verdi.
|
||||
</floater.string>
|
||||
<floater.string name="buying_will">
|
||||
Bu torpaq satın alınacaq:
|
||||
</floater.string>
|
||||
<floater.string name="buying_for_group">
|
||||
Qrup üçün torpaq almaq:
|
||||
</floater.string>
|
||||
<floater.string name="cannot_buy_now">
|
||||
Hələ alış-veriş edə bilməzsiniz:
|
||||
</floater.string>
|
||||
<floater.string name="not_for_sale">
|
||||
Satılıq deyil:
|
||||
</floater.string>
|
||||
<floater.string name="none_needed">
|
||||
tələb olunmur
|
||||
</floater.string>
|
||||
<floater.string name="must_upgrade">
|
||||
Torpaq sahibi olmaq üçün hesabınızın yüksəldilməsi lazımdır.
|
||||
</floater.string>
|
||||
<floater.string name="cant_own_land">
|
||||
Hesabınız torpaq sahibi olmağa icazə verir.
|
||||
</floater.string>
|
||||
<floater.string name="land_holdings">
|
||||
Siz [BUYER] m² torpaq sahibisiniz.
|
||||
</floater.string>
|
||||
<floater.string name="pay_to_for_land">
|
||||
Bu torpaq üçün [AMOUNT] L$ [SELLER] satıcısına ödəniş edin
|
||||
</floater.string>
|
||||
<floater.string name="buy_for_US">
|
||||
[AMOUNT] L$-ı təxminən [LOCAL_AMOUNT] qiymətə alın,
|
||||
</floater.string>
|
||||
<floater.string name="parcel_meters">
|
||||
Torpaq sahəsi – [AMOUNT] m²
|
||||
</floater.string>
|
||||
<floater.string name="premium_land">
|
||||
Bu torpaq premium klassdır və [AMOUNT] m² kimi hesablanır.
|
||||
</floater.string>
|
||||
<floater.string name="discounted_land">
|
||||
Bu torpaq endirimlidir və [AMOUNT] m² kimi hesablanır.
|
||||
</floater.string>
|
||||
<floater.string name="meters_supports_object">
|
||||
[AMOUNT] m²
|
||||
[AMOUNT2] obyektləri dəstəkləyir
|
||||
</floater.string>
|
||||
<floater.string name="sold_with_objects">
|
||||
obyektlərlə satılıb
|
||||
</floater.string>
|
||||
<floater.string name="sold_without_objects">
|
||||
obyektlər daxil deyil
|
||||
</floater.string>
|
||||
<floater.string name="info_price_string">
|
||||
L$ [PRICE]
|
||||
(L$ [PRICE_PER_SQM]/м²)
|
||||
[SOLD_WITH_OBJECTS]
|
||||
</floater.string>
|
||||
<floater.string name="insufficient_land_credits">
|
||||
[GROUP] qrupuna bu ərazini dəstəkləmək üçün satın alma prosesinin sonuna qədər ərazinin örtülməsi üçün kifayət qədər məbləğ ödəmək lazımdır.
|
||||
</floater.string>
|
||||
<floater.string name="have_enough_lindens">
|
||||
Bu ərazini almaq üçün kifayət qədər L$ [AMOUNT] varınızdır.
|
||||
</floater.string>
|
||||
<floater.string name="not_enough_lindens">
|
||||
L$ [AMOUNT2] olmadan yalnızca L$ [AMOUNT] varınızdır.
|
||||
</floater.string>
|
||||
<floater.string name="balance_left">
|
||||
Alışdan sonra L$ [AMOUNT] qalacaq.
|
||||
</floater.string>
|
||||
<floater.string name="balance_needed">
|
||||
Bu ərazini almaq üçün ən azı L$ [AMOUNT] qazanmalısınız.
|
||||
</floater.string>
|
||||
<floater.string name="no_parcel_selected">
|
||||
(sahə seçilməyib)
|
||||
</floater.string>
|
||||
<text name="region_name_label">
|
||||
Region:
|
||||
</text>
|
||||
<text name="region_name_text">
|
||||
(naməlum)
|
||||
</text>
|
||||
<text name="region_type_label">
|
||||
Növ:
|
||||
</text>
|
||||
<text name="region_type_text">
|
||||
(naməlum)
|
||||
</text>
|
||||
<text name="estate_name_label">
|
||||
Torpaq əmlakı:
|
||||
</text>
|
||||
<text name="estate_name_text">
|
||||
(naməlum)
|
||||
</text>
|
||||
<text name="estate_owner_label">
|
||||
Torpaq sahibi:
|
||||
</text>
|
||||
<text name="estate_owner_text">
|
||||
(naməlum)
|
||||
</text>
|
||||
<text name="resellable_changeable_label">
|
||||
Bu rayonda alınmış torpaq:
|
||||
</text>
|
||||
<text name="resellable_clause">
|
||||
Yenidən satıla bilər və ya satılmaya bilər.
|
||||
</text>
|
||||
<text name="changeable_clause">
|
||||
Biləşdirilə və ya bölünə bilməz və ya bilər.
|
||||
</text>
|
||||
<text name="covenant_text">
|
||||
Siz torpaq mülkiyyəti müqaviləsini qəbul etməlisiniz:
|
||||
</text>
|
||||
<text_editor name="covenant_editor">
|
||||
Yüklənir...
|
||||
</text_editor>
|
||||
<check_box label="Yuxarıda göstərilən müqaviləni qəbul edirəm." name="agree_covenant"/>
|
||||
<text name="info_parcel_label">
|
||||
Sahə:
|
||||
</text>
|
||||
<text name="info_parcel">
|
||||
Dabandaşı 138,204
|
||||
</text>
|
||||
<text name="info_size_label">
|
||||
Ölçü:
|
||||
</text>
|
||||
<text name="info_size">
|
||||
1024 m²
|
||||
</text>
|
||||
<text name="info_price_label">
|
||||
Qiymət:
|
||||
</text>
|
||||
<text name="info_price">
|
||||
L$ 1500
|
||||
(L$ 1,1/м²)
|
||||
obyektlər daxil satılıb
|
||||
</text>
|
||||
<text name="info_action">
|
||||
Bu torpağın alınması:
|
||||
</text>
|
||||
<text name="error_message">
|
||||
Bir şey səhvdir.
|
||||
</text>
|
||||
<button label="Sayta keçid et" name="error_web"/>
|
||||
<text name="account_action">
|
||||
Hesabınızı Premium səviyyəsinə yüksəldin.
|
||||
</text>
|
||||
<text name="account_reason">
|
||||
Yalnız Premium istifadəçilər torpağa sahib ola bilər.
|
||||
</text>
|
||||
<combo_box name="account_level">
|
||||
<combo_box.item label="9,95 ABŞ dolları/ay, ayda bir ödənilir" name="US$9.95/month,billedmonthly"/>
|
||||
<combo_box.item label="7,50 ABŞ dolları/ay, rüblük ödənilir" name="US$7.50/month,billedquarterly"/>
|
||||
<combo_box.item label="6,00 ABŞ dolları/ay, illik ödənilir" name="US$6.00/month,billedannually"/>
|
||||
</combo_box>
|
||||
<text name="land_use_action">
|
||||
Aylıq ödənişinizi US$ 40/ay artıracaq.
|
||||
</text>
|
||||
<text name="land_use_reason">
|
||||
Siz 1309 m² torpaqda sahibsiniz.
|
||||
Bu hissədə 512 m² torpaq var.
|
||||
</text>
|
||||
<text name="purchase_action">
|
||||
Joe sakininə torpaq almaq üçün 4000 L$ ödəyin.
|
||||
</text>
|
||||
<text name="currency_reason">
|
||||
Sizin 2100 L$ varınızdır.
|
||||
</text>
|
||||
<text name="currency_action">
|
||||
L$ alışı
|
||||
</text>
|
||||
<line_editor name="currency_amt">
|
||||
1000
|
||||
</line_editor>
|
||||
<text name="currency_est">
|
||||
tahmini qiyməti [LOCAL_AMOUNT] olacaq
|
||||
</text>
|
||||
<text name="currency_balance">
|
||||
Sizin 2100 L$ varınızdır.
|
||||
</text>
|
||||
<check_box label="Qrupdan [AMOUNT] m² töhfəni silin." name="remove_contribution"/>
|
||||
<button label="Almaq" name="buy_btn"/>
|
||||
<button label="Ləğv et" name="cancel_btn"/>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="contents" title="Obyektin köçürtməsin al">
|
||||
<floater.string name="title_buy_text">
|
||||
Al
|
||||
</floater.string>
|
||||
<floater.string name="title_buy_copy_text">
|
||||
Köçürtməsin al
|
||||
</floater.string>
|
||||
<floater.string name="no_copy_text">
|
||||
(köçürülmür)
|
||||
</floater.string>
|
||||
<floater.string name="no_modify_text">
|
||||
(dəyişdirilmir)
|
||||
</floater.string>
|
||||
<floater.string name="multiple_selected">
|
||||
Çoxlu seçim
|
||||
</floater.string>
|
||||
<floater.string name="no_transfer_text">
|
||||
(paylaşılmır)
|
||||
</floater.string>
|
||||
<text name="contents_text">
|
||||
Məzmunu:
|
||||
</text>
|
||||
<text name="buy_text">
|
||||
L$[AMOUNT] qiymətinə bu istifadəçidən almaq istədiyinizə əminsiniz:
|
||||
</text>
|
||||
<text name="buy_name_text">
|
||||
[NAME]?
|
||||
</text>
|
||||
<button label="Almaq" label_selected="Almaq" name="buy_btn"/>
|
||||
<button label="Ləğv et" label_selected="Ləğv et" name="cancel_btn"/>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater name="camera_floater" title="Kemara idarəetməsi">
|
||||
<floater.string name="rotate_tooltip">
|
||||
Kameranı diqqətləşdirmə nöqtəsinin üzərində çevir
|
||||
</floater.string>
|
||||
<floater.string name="zoom_tooltip">
|
||||
Kameranı diqqətləşdirmə nöqtəsinə nisbətən yaxınlaşdır/uzaqlaşdır
|
||||
</floater.string>
|
||||
<floater.string name="move_tooltip">
|
||||
Kameranı yuxarı/aşağı, sola/sağa sürüşdürün
|
||||
</floater.string>
|
||||
<floater.string name="free_mode_title">
|
||||
Obyekt icmalı
|
||||
</floater.string>
|
||||
<string name="inactive_combo_text">Təyimlər</string>
|
||||
<panel name="buttons_panel">
|
||||
<panel_camera_item name="front_view" tool_tip="Öndən baxış"/>
|
||||
<panel_camera_item name="group_view" tool_tip="Kəndardan baxış" />
|
||||
<panel_camera_item name="rear_view" tool_tip="Arxadan baxış" />
|
||||
<panel_camera_item name="object_view" tool_tip="Obyektə baxış"/>
|
||||
<panel_camera_item name="mouselook_view" tool_tip="Birini şəxs baxışı"/>
|
||||
<panel_camera_item name="reset_view" tool_tip="Baxışı sıfırla"/>
|
||||
</panel>
|
||||
<panel name="zoom">
|
||||
<layout_stack name="camera_view_layout_stack">
|
||||
<layout_panel name="camera_rotate_layout_panel">
|
||||
<joystick_rotate name="cam_rotate_stick" tool_tip="Kameranı diqqətləşdirmə nöqtəsinin üzərində çevir"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="camera_zoom_layout_panel">
|
||||
<slider_bar name="zoom_slider" tool_tip="Kameranı diqqətləşdirmə nöqtəsinə/nöqtəsindən yaxınlaşdır/uzaqlaşdır"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="panel_track">
|
||||
<joystick_track name="cam_track_stick" tool_tip="Kameranı yuxarı/aşağı, sola/sağa sürüşdürün"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</panel>
|
||||
<panel name="preset_buttons_panel">
|
||||
<button label="Yerləşmə..." name="camera_position_btn"/>
|
||||
<button name="save_preset_btn" tool_tip="Öntəyin kimi yadda saxla"/>
|
||||
<combo_box name="preset_combo">
|
||||
<combo_box.item label="Öncədən təyinlər" name="Use preset"/>
|
||||
</combo_box>
|
||||
<button name="gear_btn" tool_tip="Kemera öntəyinləri"/>
|
||||
</panel>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater title="Kamera təyinləri" name="floater_camera_presets">
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="groups" title="Qruplar">
|
||||
<text name="groupdesc">
|
||||
Qrup seçin:
|
||||
</text>
|
||||
<button label="Ləğv et" label_selected="Ləğv et" name="Cancel"/>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<floater name="floater_classified" title="Reklam">
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="ColorPicker" title="Rəng seçimi">
|
||||
<tab_container name="scale_type_container">
|
||||
<panel name="RGB" label="RGB">
|
||||
<text name="r_val_text">
|
||||
Qırmızı:
|
||||
</text>
|
||||
<text name="g_val_text">
|
||||
Yaşıl:
|
||||
</text>
|
||||
<text name="b_val_text">
|
||||
Göy:
|
||||
</text>
|
||||
</panel>
|
||||
<panel name="LSL" label="LSL">
|
||||
<text name="r_val_text_lsl">
|
||||
Qırmızı:
|
||||
</text>
|
||||
<text name="g_val_text_lsl">
|
||||
Yaşıl:
|
||||
</text>
|
||||
<text name="b_val_text_lsl">
|
||||
Göy:
|
||||
</text>
|
||||
</panel>
|
||||
<panel name="Hex" label="Hex">
|
||||
<text name="hex_text">
|
||||
Hex (#rrggbb):
|
||||
</text>
|
||||
</panel>
|
||||
</tab_container>
|
||||
<text name="h_val_text">
|
||||
Çalar:
|
||||
</text>
|
||||
<text name="s_val_text">
|
||||
Doyma:
|
||||
</text>
|
||||
<text name="l_val_text">
|
||||
Parlaqlıq:
|
||||
</text>
|
||||
<check_box label="İndi t. et" name="apply_immediate" width="100" />
|
||||
<button label="LSL köç."
|
||||
tool_tip="Rəng dəyərini <r, g, b>. formatda LSL rəng vektoruna köçürdür" name="copy_lsl_btn" width="80" />
|
||||
<button label="ОК" label_selected="ОК" name="select_btn"/>
|
||||
<button label="Ləğv et" label_selected="Ləğv et" name="cancel_btn"/>
|
||||
<text name="Current color:">
|
||||
^ Cari rəng ^
|
||||
</text>
|
||||
<text name="(Drag below to save.)">
|
||||
(Saxlam. üçün aşağı daşı.)
|
||||
</text>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="floater_conversation_log" title="Söhbət jurnalı">
|
||||
<panel name="buttons_panel">
|
||||
<filter_editor label="Adam filtri" name="people_filter_input"/>
|
||||
<menu_button name="conversations_gear_btn" tool_tip="Seçilmiş şəxs və ya qrup üçün hərəkətlər"/>
|
||||
<menu_button name="conversation_view_btn" tool_tip="Görünüş/Sıralama Seçimləri"/>
|
||||
</panel>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="preview_conversation" title="Söhbət:">
|
||||
<floater.string name="Title">
|
||||
Söhbət: [NAME]
|
||||
</floater.string>
|
||||
<text name="page_label" value="Səh." />
|
||||
<button tool_tip="Ayrı bir pəncərədə mesaj tarixini açın" name="open_external_btn" />
|
||||
<button tool_tip="Söhbət tarixinin axtarışı" name="search_btn" />
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="create_landmark" title="Əlfəcin yarat">
|
||||
<string name="favorites_bar">Sevimli paneli</string>
|
||||
<text name="title_label" value="Ətraflı"/>
|
||||
<text name="name_label" value="Adı:"/>
|
||||
<text name="folder_label" value="Əlfəcini harada saxla:"/>
|
||||
<text name="new_folder_textbox">[secondlife:/// Yeni qovluq yarat]</text>
|
||||
<text name="notes_label" value="Qeydlərim:"/>
|
||||
<button label="OK" name="ok_btn"/>
|
||||
<button label="Ləğv et" name="cancel_btn"/>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="modal container">
|
||||
<button label="Davam et" label_selected="Davam et" name="Continue"/>
|
||||
<text name="tos_heading">
|
||||
Zəhmət olmasa aşağıdakı mesajı diqqətlə oxuyun.
|
||||
</text>
|
||||
<text_editor name="tos_text">
|
||||
TOS_TEXT
|
||||
</text_editor>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<floater name="delete_pref_preset" title="Öncədən təyini sil">
|
||||
<string name="title_graphic">
|
||||
Qrafikanın öncədən təyinini sil
|
||||
</string>
|
||||
<string name="title_camera">
|
||||
Камеры Kameranın öncədən təyinini sil
|
||||
</string>
|
||||
<text name="Preset">
|
||||
Öncədən təyini seçin
|
||||
</text>
|
||||
<button label="Sil" name="delete"/>
|
||||
<button label="Ləğv et" name="cancel"/>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="Destinations" title="Gediləcək yer"/>
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="Display Name" title="Göstərilən ad">
|
||||
<text name="info_text">
|
||||
Avatar verdiyiniz ad göstərilən ad adlanır. Həftədə bir dəfə dəyişə bilərsiniz.
|
||||
</text>
|
||||
<text name="lockout_text">
|
||||
Adınızı [TIME] tarixinə qədər dəyişə bilməzsiniz.
|
||||
</text>
|
||||
<text name="set_name_label">
|
||||
Yeni ad:
|
||||
</text>
|
||||
<text name="name_confirm_label">
|
||||
Təsdiq etmək üçün yeni adınızı yenidən daxil edin:
|
||||
</text>
|
||||
<button label="Saxla" name="save_btn" tool_tip="Yeni adı qeyd edin"/>
|
||||
<button label="Sıfırla" name="reset_btn" tool_tip="Adı istifadəçi adına dəyişdirin"/>
|
||||
<button label="Ləğv et" name="cancel_btn"/>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,99 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="env_edit_extdaycycle" title="Gün dövrünü dəyişdir">
|
||||
<string name="title_new">
|
||||
Yeni gün dövrü yaradın
|
||||
</string>
|
||||
<string name="title_edit">
|
||||
Gün dövrünü dəyişdir
|
||||
</string>
|
||||
<string name="hint_new">
|
||||
Gün dövrünün adını daxil edin, idarə elemə vasitələri ilə parametrlərini təyin edin və «Yadda saxla» düyməsini basın.
|
||||
</string>
|
||||
<string name="hint_edit">
|
||||
Gün dövrünü dəyişdirmək üçün, aşağıda yerləşən idarə elemə vasitələri ilə parametrlərini təyin edin və «Yadda saxla» düyməsini basın.
|
||||
</string>
|
||||
<string name="time_label">
|
||||
([HH]:[MM])
|
||||
</string>
|
||||
<string name="sky_track_label">
|
||||
Səma [ALT]
|
||||
</string>
|
||||
<string name="sky_label">
|
||||
Səma
|
||||
</string>
|
||||
<string name="water_label">
|
||||
Su
|
||||
</string>
|
||||
<string name="commit_parcel">
|
||||
Sahəyə tətbiq et
|
||||
</string>
|
||||
<string name="commit_region">
|
||||
Regiona tətbiq et
|
||||
</string>
|
||||
<layout_stack name="outer_stack">
|
||||
<layout_panel name="name_and_import">
|
||||
<text name="label">
|
||||
Günlük döngü:
|
||||
</text>
|
||||
<button label="İdxal" name="btn_import" tool_tip="Diskdən köhnə ayarları idxal edin."/>
|
||||
</layout_panel>
|
||||
<layout_panel name="content">
|
||||
<layout_stack name="content_stack">
|
||||
<layout_panel name="timeline_track_selection">
|
||||
<panel name="timeline_layers">
|
||||
<button label="Səma 4" name="sky4_track"/>
|
||||
<button label="Səma 3" name="sky3_track"/>
|
||||
<button label="Səma 2" name="sky2_track"/>
|
||||
<button label="Yer səviyyəsi" name="sky1_track"/>
|
||||
<button label="Su" name="water_track"/>
|
||||
</panel>
|
||||
<panel name="timeline">
|
||||
<layout_stack name="track_options_ls">
|
||||
<layout_panel name="track_options_lp">
|
||||
<button label="Trek klonla" name="copy_track"/>
|
||||
<button label="Trek yüklə" name="load_track"/>
|
||||
<button label="Trek təmizlə" name="clear_track"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="track_progress_lp">
|
||||
<layout_stack name="progress_control">
|
||||
<layout_panel name="skip_back">
|
||||
<button name="skip_back_btn" tool_tip="Geri adım"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="skip_forward">
|
||||
<button name="skip_forward_btn" tool_tip="İrəli addım"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</layout_panel>
|
||||
<layout_panel name="frames_lp">
|
||||
<button label="[FRAME] Əlavə et" name="add_frame" width="120"/>
|
||||
<button label="[FRAME] Yüklə" name="btn_load_frame" width="120"/>
|
||||
<button label="[FRAME] Sil" name="delete_frame" width="120"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</panel>
|
||||
</layout_panel>
|
||||
<layout_panel name="frame_edit_controls">
|
||||
<text name="icn_lock_edit">
|
||||
Seçimləri dəyişmək üçün yuxarıdakı vaxt qrafikində əsas kadr seçin.
|
||||
</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="frame_settings_water">
|
||||
<tab_container name="water_tabs">
|
||||
<panel label="Su" name="water_panel"/>
|
||||
</tab_container>
|
||||
</layout_panel>
|
||||
<layout_panel name="frame_settings_sky">
|
||||
<tab_container name="sky_tabs">
|
||||
<panel label="Atmosfer və İşıq" name="atmosphere_panel"/>
|
||||
<panel label="Buludlar" name="clouds_panel"/>
|
||||
<panel label="Günəş və ay" name="moon_panel"/>
|
||||
</tab_container>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</layout_panel>
|
||||
<layout_panel name="buttons">
|
||||
<button label="Yadda saxla" name="save_btn"/>
|
||||
<button label="Ləğv et" name="cancel_btn"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="HoverHeight" title="Hündürlüyü təyin edin">
|
||||
<slider label="Hündürlük" name="HoverHeightSlider"/>
|
||||
<check_box label="Kameranın görünüşünə təsir edir" name="BindCameraCheck" width="237"/>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater label="Hadisə" name="Event" title="Hadisə ">
|
||||
<floater.string name="loading_text">
|
||||
Yüklənir...
|
||||
</floater.string>
|
||||
<floater.string name="done_text">
|
||||
Hazır
|
||||
</floater.string>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="experiencepicker" title="Macəra seçin"/>
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
|
||||
<floater name="experience_profile" title="Macəra profili">
|
||||
<floater.string name="empty_slurl">
|
||||
(yox)
|
||||
</floater.string>
|
||||
<text name="edit_title" value="Macəra profili"/>
|
||||
<tab_container name="tab_container">
|
||||
<panel name="panel_experience_info">
|
||||
<scroll_container name="xp_scroll">
|
||||
<panel name="scrolling_panel">
|
||||
<layout_stack name="ls1">
|
||||
<layout_panel name="top panel">
|
||||
<button label="Dəyişdir" name="edit_btn"/>
|
||||
</layout_panel>
|
||||
|
||||
<layout_panel name="maturity panel">
|
||||
<text name="ContentRating" width="75">
|
||||
Reytinq:
|
||||
</text>
|
||||
</layout_panel>
|
||||
|
||||
<layout_panel name="location panel">
|
||||
<text name="Location">
|
||||
Yer:
|
||||
</text>
|
||||
</layout_panel>
|
||||
|
||||
<layout_panel name="marketplace panel">
|
||||
<text name="Marketplace">
|
||||
Ticarət mərkəzi:
|
||||
</text>
|
||||
|
||||
</layout_panel>
|
||||
<layout_panel name="owner panel">
|
||||
<text name="Owner">
|
||||
Sahibi:
|
||||
</text>
|
||||
</layout_panel>
|
||||
|
||||
<layout_panel name="group_panel">
|
||||
<text name="Group">
|
||||
Qrup:
|
||||
</text>
|
||||
</layout_panel>
|
||||
|
||||
<layout_panel name="perm panel">
|
||||
<button label="İcazə ver" name="allow_btn"/>
|
||||
<button label="Unut" name="forget_btn" />
|
||||
<button label="Blokla" name="block_btn" width="95"/>
|
||||
<text name="privileged">
|
||||
Bu macəra bütün sakinlər üçün aktivdir.
|
||||
</text>
|
||||
<button label="Şikayət" name="report_btn"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</panel>
|
||||
</scroll_container>
|
||||
</panel>
|
||||
|
||||
<panel name="edit_panel_experience_info">
|
||||
<scroll_container name="edit_xp_scroll">
|
||||
<panel name="edit_scrolling_panel">
|
||||
<text name="edit_experience_title_label" value="Adı:"/>
|
||||
<text name="edit_experience_desc_label" value="Təsviri:"/>
|
||||
<button name="Group_btn" label="Группа"/>
|
||||
<text name="edit_ContentRating">
|
||||
Reytinq:
|
||||
</text>
|
||||
<icons_combo_box label="Ortam"
|
||||
tool_tip="Macəra üçün yetkinlik reytinqinin artırılması macəraya icazə vermiş bütün sakinlər üçün icazəni sıfırlayır."
|
||||
name="edit_ContentRatingText">
|
||||
<icons_combo_box.item label="Yetkin" name="Adult"/>
|
||||
<icons_combo_box.item label="Ortam" name="Mature"/>
|
||||
<icons_combo_box.item label="Ümumi" name="PG"/>
|
||||
</icons_combo_box>
|
||||
<text name="edit_Location">
|
||||
Yer:
|
||||
</text>
|
||||
<button name="location_btn" label="Cari təyin edin"/>
|
||||
<button name="clear_btn" label="Yeri təmizlə"/>
|
||||
<text name="edit_marketplace">
|
||||
Ticarət mərkəzi:
|
||||
</text>
|
||||
<check_box label="Macəranı yandır" name="edit_enable_btn"/>
|
||||
<check_box label="Axtarışda gizlət" name="edit_private_btn"/>
|
||||
<text name="changes" value="Bütün regionlarda macəra dəyişikliklərinin görünməsi bir neçə dəqiqə çəkə bilər."/>
|
||||
<button label="Geri" name="cancel_btn"/>
|
||||
<button label="Yadda saxla" name="save_btn"/>
|
||||
</panel>
|
||||
</scroll_container>
|
||||
</panel>
|
||||
</tab_container>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="floater_experiences" title="Macəralar"/>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue