summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rwxr-xr-xindra/llappearance/llavatarappearance.cpp2
-rw-r--r--indra/llappearance/llpolyskeletaldistortion.cpp2
-rwxr-xr-xindra/llcharacter/lljoint.cpp110
-rwxr-xr-xindra/llcharacter/lljoint.h30
-rwxr-xr-xindra/llinventory/llfoldertype.cpp2
-rwxr-xr-xindra/llinventory/llparcel.cpp4
-rwxr-xr-xindra/llmath/llquaternion.h18
-rwxr-xr-xindra/llprimitive/llmodel.cpp2
-rwxr-xr-xindra/llrender/llrender.cpp2
-rwxr-xr-xindra/llui/llfolderview.cpp3
-rw-r--r--indra/llui/llfolderviewitem.cpp29
-rw-r--r--indra/llui/llfolderviewitem.h1
-rwxr-xr-xindra/llui/llfolderviewmodel.h26
-rwxr-xr-xindra/llui/llkeywords.cpp8
-rwxr-xr-xindra/llui/lllineeditor.cpp1
-rwxr-xr-xindra/llui/llmenugl.cpp15
-rwxr-xr-xindra/llui/llstatbar.cpp2
-rwxr-xr-xindra/llui/llstatgraph.cpp3
-rwxr-xr-xindra/llui/lltextbase.cpp17
-rwxr-xr-xindra/llui/lltexteditor.cpp1
-rwxr-xr-xindra/llui/llui.h1
-rwxr-xr-xindra/llui/llurlentry.cpp6
-rwxr-xr-xindra/llui/llurlentry.h2
-rwxr-xr-xindra/llui/llurlregistry.cpp20
-rwxr-xr-xindra/llui/llurlregistry.h2
-rwxr-xr-xindra/llui/llview.cpp2
-rw-r--r--indra/llwindow/llopenglview-objc.mm53
-rwxr-xr-xindra/llwindow/llwindowmacosx-objc.h2
-rwxr-xr-xindra/llwindow/llwindowmacosx.cpp16
-rwxr-xr-xindra/newview/CMakeLists.txt2
-rwxr-xr-xindra/newview/app_settings/keywords.ini46
-rwxr-xr-xindra/newview/app_settings/settings.xml35
-rwxr-xr-xindra/newview/app_settings/shaders/class1/deferred/alphaV.glsl5
-rwxr-xr-xindra/newview/llagent.cpp19
-rwxr-xr-xindra/newview/llagentcamera.cpp5
-rwxr-xr-xindra/newview/llagentcamera.h1
-rwxr-xr-xindra/newview/llagentwearables.cpp6
-rwxr-xr-xindra/newview/llaisapi.cpp35
-rw-r--r--indra/newview/llappdelegate-objc.mm10
-rwxr-xr-xindra/newview/llappearancemgr.cpp58
-rwxr-xr-xindra/newview/llappviewer.cpp8
-rwxr-xr-xindra/newview/llavataractions.cpp12
-rwxr-xr-xindra/newview/lldrawpool.cpp2
-rwxr-xr-xindra/newview/lldrawpool.h2
-rwxr-xr-xindra/newview/lldrawpoolavatar.cpp2
-rw-r--r--indra/newview/lldrawpoolmaterials.cpp2
-rwxr-xr-xindra/newview/llfavoritesbar.cpp30
-rwxr-xr-xindra/newview/llfavoritesbar.h2
-rwxr-xr-xindra/newview/llfloateravatar.cpp8
-rwxr-xr-xindra/newview/llfloaterimcontainer.cpp19
-rwxr-xr-xindra/newview/llfloaterimcontainer.h3
-rwxr-xr-xindra/newview/llfloaterimsession.cpp3
-rwxr-xr-xindra/newview/llfloaterimsessiontab.cpp2
-rw-r--r--indra/newview/llfloaterlagmeter.cpp378
-rw-r--r--indra/newview/llfloaterlagmeter.h80
-rwxr-xr-xindra/newview/llfloaterland.cpp24
-rwxr-xr-xindra/newview/llfloatermodelpreview.cpp2
-rwxr-xr-xindra/newview/llfloaternotificationsconsole.cpp17
-rwxr-xr-xindra/newview/llfloateropenobject.cpp23
-rwxr-xr-xindra/newview/llfloateropenobject.h7
-rwxr-xr-xindra/newview/llfloaterpay.cpp75
-rwxr-xr-xindra/newview/llfloatersidepanelcontainer.cpp4
-rwxr-xr-xindra/newview/llfloatersidepanelcontainer.h2
-rwxr-xr-xindra/newview/llfloatertools.cpp3
-rwxr-xr-xindra/newview/llfloaterurlentry.cpp8
-rwxr-xr-xindra/newview/llfloaterwebcontent.cpp9
-rwxr-xr-xindra/newview/llfolderviewmodelinventory.cpp12
-rwxr-xr-xindra/newview/llgesturemgr.cpp2
-rwxr-xr-xindra/newview/llinventorybridge.cpp134
-rwxr-xr-xindra/newview/llinventorybridge.h7
-rwxr-xr-xindra/newview/llinventoryfilter.cpp38
-rwxr-xr-xindra/newview/llinventoryfilter.h1
-rwxr-xr-xindra/newview/llinventoryfunctions.cpp2
-rwxr-xr-xindra/newview/llinventorypanel.cpp26
-rwxr-xr-xindra/newview/lllocalbitmaps.cpp41
-rwxr-xr-xindra/newview/lllocalbitmaps.h1
-rwxr-xr-xindra/newview/llmanip.cpp55
-rwxr-xr-xindra/newview/llmanip.h2
-rwxr-xr-xindra/newview/llmaniptranslate.cpp11
-rwxr-xr-xindra/newview/llmediactrl.cpp10
-rwxr-xr-xindra/newview/llmediactrl.h1
-rwxr-xr-xindra/newview/llnotificationstorage.cpp24
-rwxr-xr-xindra/newview/llnotificationstorage.h4
-rwxr-xr-xindra/newview/llpanelcontents.cpp7
-rwxr-xr-xindra/newview/llpanelcontents.h1
-rwxr-xr-xindra/newview/llpaneleditwearable.cpp8
-rwxr-xr-xindra/newview/llpanelface.cpp2
-rwxr-xr-xindra/newview/llpanelgrouproles.cpp8
-rwxr-xr-xindra/newview/llpanellogin.cpp22
-rwxr-xr-xindra/newview/llpanelmaininventory.cpp14
-rwxr-xr-xindra/newview/llpanelobjectinventory.cpp15
-rwxr-xr-xindra/newview/llpanelobjectinventory.h1
-rwxr-xr-xindra/newview/llpanelpeoplemenus.cpp15
-rwxr-xr-xindra/newview/llpanelpeoplemenus.h1
-rwxr-xr-xindra/newview/llpersistentnotificationstorage.cpp7
-rwxr-xr-xindra/newview/llpreviewnotecard.cpp5
-rwxr-xr-xindra/newview/llpreviewscript.cpp29
-rwxr-xr-xindra/newview/llpreviewscript.h4
-rwxr-xr-xindra/newview/llpreviewsound.cpp3
-rw-r--r--indra/newview/llscenemonitor.cpp13
-rw-r--r--indra/newview/llscenemonitor.h1
-rwxr-xr-xindra/newview/llsceneview.cpp4
-rwxr-xr-xindra/newview/llsceneview.h1
-rwxr-xr-xindra/newview/llspatialpartition.cpp2
-rwxr-xr-xindra/newview/llspeakers.cpp10
-rwxr-xr-xindra/newview/llstartup.cpp1
-rwxr-xr-xindra/newview/llstatusbar.cpp1
-rwxr-xr-xindra/newview/lltexturectrl.cpp15
-rwxr-xr-xindra/newview/lltextureview.cpp2
-rwxr-xr-xindra/newview/lltoast.cpp2
-rwxr-xr-xindra/newview/lltoastalertpanel.cpp5
-rwxr-xr-xindra/newview/lltoolbrush.cpp57
-rwxr-xr-xindra/newview/lltoolbrush.h8
-rwxr-xr-xindra/newview/lltoolcomp.cpp89
-rwxr-xr-xindra/newview/lltoolcomp.h14
-rwxr-xr-xindra/newview/lltooldraganddrop.cpp25
-rwxr-xr-xindra/newview/lltooldraganddrop.h1
-rwxr-xr-xindra/newview/lltoolfocus.cpp12
-rwxr-xr-xindra/newview/lltoolfocus.h1
-rwxr-xr-xindra/newview/lltoolgrab.cpp29
-rwxr-xr-xindra/newview/lltoolgrab.h3
-rwxr-xr-xindra/newview/lltoolmgr.cpp16
-rwxr-xr-xindra/newview/lltoolpie.cpp26
-rwxr-xr-xindra/newview/lltoolselect.cpp16
-rwxr-xr-xindra/newview/llurldispatcher.cpp6
-rwxr-xr-xindra/newview/llviewerfloaterreg.cpp2
-rwxr-xr-xindra/newview/llviewerkeyboard.cpp39
-rwxr-xr-xindra/newview/llviewermenu.cpp40
-rwxr-xr-xindra/newview/llviewermenufile.cpp22
-rwxr-xr-xindra/newview/llviewermessage.cpp11
-rwxr-xr-xindra/newview/llviewerobject.cpp26
-rwxr-xr-xindra/newview/llviewerobject.h2
-rwxr-xr-xindra/newview/llviewerparcelmgr.cpp18
-rwxr-xr-xindra/newview/llviewerparcelmgr.h1
-rwxr-xr-xindra/newview/llviewertexture.cpp12
-rwxr-xr-xindra/newview/llviewertexture.h2
-rwxr-xr-xindra/newview/llviewerwindow.cpp15
-rwxr-xr-xindra/newview/llvoavatar.cpp35
-rwxr-xr-xindra/newview/llvoavatar.h2
-rwxr-xr-xindra/newview/llvoicechannel.cpp8
-rwxr-xr-xindra/newview/llvoiceclient.cpp10
-rwxr-xr-xindra/newview/llvoicevivox.cpp5
-rwxr-xr-xindra/newview/llvovolume.cpp20
-rwxr-xr-xindra/newview/llweb.cpp21
-rwxr-xr-xindra/newview/llweb.h8
-rwxr-xr-xindra/newview/llworldmapview.cpp2
-rw-r--r--indra/newview/skins/default/xui/da/floater_lagmeter.xml151
-rw-r--r--indra/newview/skins/default/xui/de/floater_lagmeter.xml151
-rw-r--r--indra/newview/skins/default/xui/de/floater_region_restarting.xml23
-rw-r--r--indra/newview/skins/default/xui/de/floater_scene_load_stats.xml64
-rwxr-xr-xindra/newview/skins/default/xui/de/floater_stats.xml44
-rwxr-xr-xindra/newview/skins/default/xui/de/menu_avatar_icon.xml1
-rwxr-xr-xindra/newview/skins/default/xui/de/menu_inventory.xml1
-rwxr-xr-xindra/newview/skins/default/xui/de/menu_login.xml10
-rwxr-xr-xindra/newview/skins/default/xui/de/menu_teleport_history_item.xml2
-rwxr-xr-xindra/newview/skins/default/xui/de/menu_viewer.xml18
-rwxr-xr-xindra/newview/skins/default/xui/de/notifications.xml41
-rwxr-xr-xindra/newview/skins/default/xui/de/panel_group_info_sidetray.xml2
-rwxr-xr-xindra/newview/skins/default/xui/de/panel_group_roles.xml1
-rwxr-xr-xindra/newview/skins/default/xui/de/panel_region_debug.xml9
-rwxr-xr-xindra/newview/skins/default/xui/de/panel_region_general.xml2
-rwxr-xr-xindra/newview/skins/default/xui/de/sidepanel_inventory.xml4
-rwxr-xr-xindra/newview/skins/default/xui/de/strings.xml66
-rwxr-xr-xindra/newview/skins/default/xui/en/floater_im_session.xml2
-rwxr-xr-xindra/newview/skins/default/xui/en/floater_joystick.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_lagmeter.xml336
-rwxr-xr-xindra/newview/skins/default/xui/en/floater_openobject.xml73
-rwxr-xr-xindra/newview/skins/default/xui/en/floater_pay.xml187
-rwxr-xr-xindra/newview/skins/default/xui/en/floater_pay_object.xml194
-rwxr-xr-xindra/newview/skins/default/xui/en/floater_report_abuse.xml2
-rwxr-xr-xindra/newview/skins/default/xui/en/floater_snapshot.xml1
-rwxr-xr-xindra/newview/skins/default/xui/en/floater_stats.xml2
-rwxr-xr-xindra/newview/skins/default/xui/en/menu_inventory.xml2
-rwxr-xr-xindra/newview/skins/default/xui/en/menu_viewer.xml26
-rwxr-xr-xindra/newview/skins/default/xui/en/mime_types.xml21
-rwxr-xr-xindra/newview/skins/default/xui/en/mime_types_linux.xml21
-rwxr-xr-xindra/newview/skins/default/xui/en/mime_types_mac.xml21
-rwxr-xr-xindra/newview/skins/default/xui/en/notifications.xml66
-rwxr-xr-xindra/newview/skins/default/xui/en/panel_place_profile.xml4
-rwxr-xr-xindra/newview/skins/default/xui/en/panel_preferences_setup.xml44
-rwxr-xr-xindra/newview/skins/default/xui/en/strings.xml1
-rw-r--r--indra/newview/skins/default/xui/es/floater_lagmeter.xml154
-rw-r--r--indra/newview/skins/default/xui/es/floater_region_restarting.xml23
-rw-r--r--indra/newview/skins/default/xui/es/floater_scene_load_stats.xml64
-rwxr-xr-xindra/newview/skins/default/xui/es/floater_stats.xml43
-rwxr-xr-xindra/newview/skins/default/xui/es/menu_avatar_icon.xml1
-rwxr-xr-xindra/newview/skins/default/xui/es/menu_inventory.xml1
-rwxr-xr-xindra/newview/skins/default/xui/es/menu_login.xml10
-rwxr-xr-xindra/newview/skins/default/xui/es/menu_teleport_history_item.xml2
-rwxr-xr-xindra/newview/skins/default/xui/es/menu_viewer.xml18
-rwxr-xr-xindra/newview/skins/default/xui/es/notifications.xml43
-rwxr-xr-xindra/newview/skins/default/xui/es/panel_group_info_sidetray.xml2
-rwxr-xr-xindra/newview/skins/default/xui/es/panel_group_roles.xml1
-rwxr-xr-xindra/newview/skins/default/xui/es/panel_region_debug.xml9
-rwxr-xr-xindra/newview/skins/default/xui/es/panel_region_general.xml2
-rwxr-xr-xindra/newview/skins/default/xui/es/sidepanel_inventory.xml6
-rwxr-xr-xindra/newview/skins/default/xui/es/strings.xml66
-rw-r--r--indra/newview/skins/default/xui/fr/floater_lagmeter.xml151
-rw-r--r--indra/newview/skins/default/xui/fr/floater_region_restarting.xml23
-rw-r--r--indra/newview/skins/default/xui/fr/floater_scene_load_stats.xml64
-rwxr-xr-xindra/newview/skins/default/xui/fr/floater_stats.xml40
-rwxr-xr-xindra/newview/skins/default/xui/fr/menu_avatar_icon.xml1
-rwxr-xr-xindra/newview/skins/default/xui/fr/menu_inventory.xml1
-rwxr-xr-xindra/newview/skins/default/xui/fr/menu_login.xml10
-rwxr-xr-xindra/newview/skins/default/xui/fr/menu_teleport_history_item.xml2
-rwxr-xr-xindra/newview/skins/default/xui/fr/menu_viewer.xml18
-rwxr-xr-xindra/newview/skins/default/xui/fr/notifications.xml41
-rwxr-xr-xindra/newview/skins/default/xui/fr/panel_group_info_sidetray.xml2
-rwxr-xr-xindra/newview/skins/default/xui/fr/panel_group_roles.xml1
-rwxr-xr-xindra/newview/skins/default/xui/fr/panel_region_debug.xml9
-rwxr-xr-xindra/newview/skins/default/xui/fr/panel_region_general.xml2
-rwxr-xr-xindra/newview/skins/default/xui/fr/sidepanel_inventory.xml6
-rwxr-xr-xindra/newview/skins/default/xui/fr/strings.xml66
-rw-r--r--indra/newview/skins/default/xui/it/floater_lagmeter.xml154
-rw-r--r--indra/newview/skins/default/xui/it/floater_region_restarting.xml23
-rw-r--r--indra/newview/skins/default/xui/it/floater_scene_load_stats.xml64
-rwxr-xr-xindra/newview/skins/default/xui/it/floater_stats.xml43
-rwxr-xr-xindra/newview/skins/default/xui/it/menu_avatar_icon.xml1
-rwxr-xr-xindra/newview/skins/default/xui/it/menu_inventory.xml1
-rwxr-xr-xindra/newview/skins/default/xui/it/menu_login.xml10
-rwxr-xr-xindra/newview/skins/default/xui/it/menu_teleport_history_item.xml2
-rwxr-xr-xindra/newview/skins/default/xui/it/menu_viewer.xml18
-rwxr-xr-xindra/newview/skins/default/xui/it/notifications.xml43
-rwxr-xr-xindra/newview/skins/default/xui/it/panel_group_info_sidetray.xml2
-rwxr-xr-xindra/newview/skins/default/xui/it/panel_group_roles.xml1
-rwxr-xr-xindra/newview/skins/default/xui/it/panel_region_debug.xml9
-rwxr-xr-xindra/newview/skins/default/xui/it/panel_region_general.xml2
-rwxr-xr-xindra/newview/skins/default/xui/it/sidepanel_inventory.xml2
-rwxr-xr-xindra/newview/skins/default/xui/it/strings.xml66
-rw-r--r--indra/newview/skins/default/xui/ja/floater_lagmeter.xml151
-rw-r--r--indra/newview/skins/default/xui/ja/floater_region_restarting.xml23
-rw-r--r--indra/newview/skins/default/xui/ja/floater_scene_load_stats.xml64
-rwxr-xr-xindra/newview/skins/default/xui/ja/floater_stats.xml44
-rwxr-xr-xindra/newview/skins/default/xui/ja/menu_avatar_icon.xml1
-rwxr-xr-xindra/newview/skins/default/xui/ja/menu_inventory.xml1
-rwxr-xr-xindra/newview/skins/default/xui/ja/menu_login.xml10
-rwxr-xr-xindra/newview/skins/default/xui/ja/menu_teleport_history_item.xml2
-rwxr-xr-xindra/newview/skins/default/xui/ja/menu_viewer.xml18
-rwxr-xr-xindra/newview/skins/default/xui/ja/notifications.xml39
-rwxr-xr-xindra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml4
-rwxr-xr-xindra/newview/skins/default/xui/ja/panel_group_roles.xml1
-rwxr-xr-xindra/newview/skins/default/xui/ja/panel_region_debug.xml9
-rwxr-xr-xindra/newview/skins/default/xui/ja/panel_region_general.xml2
-rwxr-xr-xindra/newview/skins/default/xui/ja/sidepanel_inventory.xml6
-rwxr-xr-xindra/newview/skins/default/xui/ja/strings.xml65
-rw-r--r--indra/newview/skins/default/xui/pl/floater_lagmeter.xml151
-rw-r--r--indra/newview/skins/default/xui/pt/floater_lagmeter.xml154
-rw-r--r--indra/newview/skins/default/xui/pt/floater_region_restarting.xml23
-rw-r--r--indra/newview/skins/default/xui/pt/floater_scene_load_stats.xml64
-rwxr-xr-xindra/newview/skins/default/xui/pt/floater_stats.xml43
-rwxr-xr-xindra/newview/skins/default/xui/pt/menu_avatar_icon.xml1
-rwxr-xr-xindra/newview/skins/default/xui/pt/menu_inventory.xml1
-rwxr-xr-xindra/newview/skins/default/xui/pt/menu_login.xml10
-rwxr-xr-xindra/newview/skins/default/xui/pt/menu_teleport_history_item.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pt/menu_viewer.xml18
-rwxr-xr-xindra/newview/skins/default/xui/pt/notifications.xml51
-rwxr-xr-xindra/newview/skins/default/xui/pt/panel_group_info_sidetray.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pt/panel_group_roles.xml3
-rwxr-xr-xindra/newview/skins/default/xui/pt/panel_region_debug.xml9
-rwxr-xr-xindra/newview/skins/default/xui/pt/panel_region_general.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pt/sidepanel_inventory.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pt/strings.xml66
-rw-r--r--indra/newview/skins/default/xui/ru/floater_lagmeter.xml151
-rw-r--r--indra/newview/skins/default/xui/ru/floater_region_restarting.xml23
-rw-r--r--indra/newview/skins/default/xui/ru/floater_scene_load_stats.xml64
-rwxr-xr-xindra/newview/skins/default/xui/ru/floater_stats.xml40
-rwxr-xr-xindra/newview/skins/default/xui/ru/menu_avatar_icon.xml1
-rwxr-xr-xindra/newview/skins/default/xui/ru/menu_inventory.xml1
-rwxr-xr-xindra/newview/skins/default/xui/ru/menu_login.xml10
-rwxr-xr-xindra/newview/skins/default/xui/ru/menu_teleport_history_item.xml2
-rwxr-xr-xindra/newview/skins/default/xui/ru/menu_viewer.xml17
-rwxr-xr-xindra/newview/skins/default/xui/ru/notifications.xml37
-rwxr-xr-xindra/newview/skins/default/xui/ru/panel_group_info_sidetray.xml2
-rwxr-xr-xindra/newview/skins/default/xui/ru/panel_group_roles.xml1
-rwxr-xr-xindra/newview/skins/default/xui/ru/panel_region_debug.xml3
-rwxr-xr-xindra/newview/skins/default/xui/ru/panel_region_general.xml2
-rwxr-xr-xindra/newview/skins/default/xui/ru/sidepanel_inventory.xml8
-rwxr-xr-xindra/newview/skins/default/xui/ru/strings.xml66
-rw-r--r--indra/newview/skins/default/xui/tr/floater_lagmeter.xml151
-rw-r--r--indra/newview/skins/default/xui/tr/floater_region_restarting.xml23
-rw-r--r--indra/newview/skins/default/xui/tr/floater_scene_load_stats.xml64
-rwxr-xr-xindra/newview/skins/default/xui/tr/floater_stats.xml44
-rwxr-xr-xindra/newview/skins/default/xui/tr/menu_avatar_icon.xml1
-rwxr-xr-xindra/newview/skins/default/xui/tr/menu_inventory.xml1
-rwxr-xr-xindra/newview/skins/default/xui/tr/menu_login.xml10
-rwxr-xr-xindra/newview/skins/default/xui/tr/menu_teleport_history_item.xml2
-rwxr-xr-xindra/newview/skins/default/xui/tr/menu_viewer.xml18
-rwxr-xr-xindra/newview/skins/default/xui/tr/notifications.xml39
-rwxr-xr-xindra/newview/skins/default/xui/tr/panel_group_info_sidetray.xml2
-rwxr-xr-xindra/newview/skins/default/xui/tr/panel_group_roles.xml1
-rwxr-xr-xindra/newview/skins/default/xui/tr/panel_region_debug.xml3
-rwxr-xr-xindra/newview/skins/default/xui/tr/panel_region_general.xml2
-rwxr-xr-xindra/newview/skins/default/xui/tr/strings.xml66
-rw-r--r--indra/newview/skins/default/xui/zh/floater_lagmeter.xml151
-rw-r--r--indra/newview/skins/default/xui/zh/floater_region_restarting.xml23
-rw-r--r--indra/newview/skins/default/xui/zh/floater_scene_load_stats.xml64
-rwxr-xr-xindra/newview/skins/default/xui/zh/floater_stats.xml44
-rwxr-xr-xindra/newview/skins/default/xui/zh/menu_avatar_icon.xml1
-rwxr-xr-xindra/newview/skins/default/xui/zh/menu_inventory.xml1
-rwxr-xr-xindra/newview/skins/default/xui/zh/menu_login.xml10
-rwxr-xr-xindra/newview/skins/default/xui/zh/menu_teleport_history_item.xml2
-rwxr-xr-xindra/newview/skins/default/xui/zh/menu_viewer.xml18
-rwxr-xr-xindra/newview/skins/default/xui/zh/notifications.xml39
-rwxr-xr-xindra/newview/skins/default/xui/zh/panel_group_info_sidetray.xml2
-rwxr-xr-xindra/newview/skins/default/xui/zh/panel_group_roles.xml1
-rwxr-xr-xindra/newview/skins/default/xui/zh/panel_region_debug.xml3
-rwxr-xr-xindra/newview/skins/default/xui/zh/panel_region_general.xml2
-rwxr-xr-xindra/newview/skins/default/xui/zh/sidepanel_inventory.xml6
-rwxr-xr-xindra/newview/skins/default/xui/zh/strings.xml63
309 files changed, 6701 insertions, 1049 deletions
diff --git a/indra/llappearance/llavatarappearance.cpp b/indra/llappearance/llavatarappearance.cpp
index 6fdf9e2e07..c0ad8315af 100755
--- a/indra/llappearance/llavatarappearance.cpp
+++ b/indra/llappearance/llavatarappearance.cpp
@@ -584,8 +584,6 @@ BOOL LLAvatarAppearance::setupBone(const LLAvatarBoneInfo* info, LLJoint* parent
info->mRot.mV[VZ], LLQuaternion::XYZ));
joint->setScale(info->mScale);
- joint->setDefaultFromCurrentXform();
-
if (info->mIsJoint)
{
joint->setSkinOffset( info->mPivot );
diff --git a/indra/llappearance/llpolyskeletaldistortion.cpp b/indra/llappearance/llpolyskeletaldistortion.cpp
index ea29cbd451..fbc312c426 100644
--- a/indra/llappearance/llpolyskeletaldistortion.cpp
+++ b/indra/llappearance/llpolyskeletaldistortion.cpp
@@ -213,7 +213,7 @@ void LLPolySkeletalDistortion::apply( ESex avatar_sex )
LLVector3 scaleDelta = iter->second;
newScale = newScale + (effective_weight * scaleDelta) - (mLastWeight * scaleDelta);
//An aspect of attached mesh objects (which contain joint offsets) that need to be cleaned up when detached
- joint->storeScaleForReset( newScale );
+ // needed? // joint->storeScaleForReset( newScale );
joint->setScale(newScale);
}
diff --git a/indra/llcharacter/lljoint.cpp b/indra/llcharacter/lljoint.cpp
index dbd6d48a95..bad9c198ad 100755
--- a/indra/llcharacter/lljoint.cpp
+++ b/indra/llcharacter/lljoint.cpp
@@ -36,6 +36,20 @@
S32 LLJoint::sNumUpdates = 0;
S32 LLJoint::sNumTouches = 0;
+
+//-----------------------------------------------------------------------------
+// LLJoint::AttachmentOverrideRecord::AttachmentOverrideRecord()
+//-----------------------------------------------------------------------------
+LLJoint::AttachmentOverrideRecord::AttachmentOverrideRecord()
+{
+}
+
+template <class T>
+bool attachment_map_iter_compare_name(const T& a, const T& b)
+{
+ return a.second.name < b.second.name;
+}
+
//-----------------------------------------------------------------------------
// LLJoint()
// Class Constructor
@@ -48,11 +62,8 @@ void LLJoint::init()
mParent = NULL;
mXform.setScaleChildOffset(TRUE);
mXform.setScale(LLVector3(1.0f, 1.0f, 1.0f));
- mOldXform.setScaleChildOffset(TRUE);
- mOldXform.setScale(LLVector3(1.0f, 1.0f, 1.0f));
mDirtyFlags = MATRIX_DIRTY | ROTATION_DIRTY | POSITION_DIRTY;
mUpdateXform = TRUE;
- mResetAfterRestoreOldXform = false;
}
LLJoint::LLJoint() :
@@ -243,42 +254,69 @@ void LLJoint::setPosition( const LLVector3& pos )
touch(MATRIX_DIRTY | POSITION_DIRTY);
}
-
//--------------------------------------------------------------------
-// setPosition()
+// addAttachmentPosOverride()
//--------------------------------------------------------------------
-void LLJoint::setDefaultFromCurrentXform( void )
-{
- mDefaultXform = mXform;
+void LLJoint::addAttachmentPosOverride( const LLVector3& pos, const std::string& attachment_name )
+{
+ if (attachment_name.empty())
+ {
+ return;
+ }
+ if (m_attachmentOverrides.empty())
+ {
+ LL_DEBUGS("Avatar") << getName() << " saving m_posBeforeOverrides " << getPosition() << LL_ENDL;
+ m_posBeforeOverrides = getPosition();
+ }
+ AttachmentOverrideRecord rec;
+ rec.name = attachment_name;
+ rec.pos = pos;
+ m_attachmentOverrides[attachment_name] = rec;
+ LL_DEBUGS("Avatar") << getName() << " addAttachmentPosOverride for " << attachment_name << " pos " << pos << LL_ENDL;
+ updatePos();
}
//--------------------------------------------------------------------
-// storeCurrentXform()
+// removeAttachmentPosOverride()
//--------------------------------------------------------------------
-void LLJoint::storeCurrentXform( const LLVector3& pos )
-{
- mOldXform = mXform;
- mResetAfterRestoreOldXform = true;
- setPosition( pos );
- touch(ALL_DIRTY);
+void LLJoint::removeAttachmentPosOverride( const std::string& attachment_name )
+{
+ if (attachment_name.empty())
+ {
+ return;
+ }
+ attachment_map_t::iterator it = m_attachmentOverrides.find(attachment_name);
+ if (it != m_attachmentOverrides.end())
+ {
+ LL_DEBUGS("Avatar") << getName() << " removeAttachmentPosOverride for " << attachment_name << LL_ENDL;
+ m_attachmentOverrides.erase(it);
+ }
+ updatePos();
}
//--------------------------------------------------------------------
-// storeScaleForReset()
+// updatePos()
//--------------------------------------------------------------------
-void LLJoint::storeScaleForReset( const LLVector3& scale )
+void LLJoint::updatePos()
{
- mOldXform.setScale( scale );
-}
-//--------------------------------------------------------------------
-// restoreOldXform()
-//--------------------------------------------------------------------
-void LLJoint::restoreOldXform( void )
-{
- mXform = mDefaultXform;
- mResetAfterRestoreOldXform = false;
- mDirtyFlags = ALL_DIRTY;
+ LLVector3 pos;
+ attachment_map_t::iterator it = std::max_element(m_attachmentOverrides.begin(),
+ m_attachmentOverrides.end(),
+ attachment_map_iter_compare_name<LLJoint::attachment_map_t::value_type>);
+ if (it != m_attachmentOverrides.end())
+ {
+ AttachmentOverrideRecord& rec = it->second;
+ LL_DEBUGS("Avatar") << getName() << " updatePos, winner of " << m_attachmentOverrides.size() << " is attachment " << rec.name << " pos " << rec.pos << LL_ENDL;
+ pos = rec.pos;
+ }
+ else
+ {
+ LL_DEBUGS("Avatar") << getName() << " updatePos, winner is posBeforeOverrides " << m_posBeforeOverrides << LL_ENDL;
+ pos = m_posBeforeOverrides;
+ }
+ setPosition(pos);
}
+
//--------------------------------------------------------------------
// getWorldPosition()
//--------------------------------------------------------------------
@@ -325,7 +363,7 @@ void LLJoint::setWorldPosition( const LLVector3& pos )
//--------------------------------------------------------------------
-// mXform.getRotation()
+// getRotation()
//--------------------------------------------------------------------
const LLQuaternion& LLJoint::getRotation()
{
@@ -432,7 +470,7 @@ const LLMatrix4 &LLJoint::getWorldMatrix()
//--------------------------------------------------------------------
void LLJoint::setWorldMatrix( const LLMatrix4& mat )
{
-LL_INFOS() << "WARNING: LLJoint::setWorldMatrix() not correctly implemented yet" << LL_ENDL;
+ LL_INFOS() << "WARNING: LLJoint::setWorldMatrix() not correctly implemented yet" << LL_ENDL;
// extract global translation
LLVector3 trans( mat.mMatrix[VW][VX],
mat.mMatrix[VW][VY],
@@ -548,20 +586,6 @@ void LLJoint::clampRotation(LLQuaternion old_rot, LLQuaternion new_rot)
break;
}
}
-
- // 2003.03.26 - This code was just using up cpu cycles. AB
-
-// LLVector3 old_axis = main_axis * old_rot;
-// LLVector3 new_axis = main_axis * new_rot;
-
-// for (S32 i = 0; i < mConstraintSilhouette.size() - 1; i++)
-// {
-// LLVector3 vert1 = mConstraintSilhouette[i];
-// LLVector3 vert2 = mConstraintSilhouette[i + 1];
-
- // figure out how to clamp rotation to line on 3-sphere
-
-// }
}
// End
diff --git a/indra/llcharacter/lljoint.h b/indra/llcharacter/lljoint.h
index b65d6979d4..0ef054d9c1 100755
--- a/indra/llcharacter/lljoint.h
+++ b/indra/llcharacter/lljoint.h
@@ -79,8 +79,6 @@ protected:
// explicit transformation members
LLXformMatrix mXform;
- LLXformMatrix mOldXform;
- LLXformMatrix mDefaultXform;
LLUUID mId;
@@ -88,8 +86,6 @@ public:
U32 mDirtyFlags;
BOOL mUpdateXform;
- BOOL mResetAfterRestoreOldXform;
-
// describes the skin binding pose
LLVector3 mSkinOffset;
@@ -103,6 +99,18 @@ public:
static S32 sNumTouches;
static S32 sNumUpdates;
+ struct AttachmentOverrideRecord
+ {
+ AttachmentOverrideRecord();
+ LLVector3 pos;
+ std::string name;
+ };
+ typedef std::map<std::string,AttachmentOverrideRecord> attachment_map_t;
+ attachment_map_t m_attachmentOverrides;
+ LLVector3 m_posBeforeOverrides;
+
+ void updatePos();
+
public:
LLJoint();
LLJoint(S32 joint_num);
@@ -160,7 +168,7 @@ public:
// get/set local scale
const LLVector3& getScale();
void setScale( const LLVector3& scale );
- void storeScaleForReset( const LLVector3& scale );
+
// get/set world matrix
const LLMatrix4 &getWorldMatrix();
void setWorldMatrix( const LLMatrix4& mat );
@@ -183,20 +191,14 @@ public:
virtual BOOL isAnimatable() const { return TRUE; }
S32 getJointNum() const { return mJointNum; }
-
- void restoreOldXform( void );
- void setDefaultFromCurrentXform( void );
- void storeCurrentXform( const LLVector3& pos );
+
+ void addAttachmentPosOverride( const LLVector3& pos, const std::string& attachment_name );
+ void removeAttachmentPosOverride( const std::string& attachment_name );
//Accessor for the joint id
LLUUID getId( void ) { return mId; }
//Setter for the joints id
void setId( const LLUUID& id ) { mId = id;}
-
- //If the old transform flag has been set, then the reset logic in avatar needs to be aware(test) of it
- const BOOL doesJointNeedToBeReset( void ) const { return mResetAfterRestoreOldXform; }
- void setJointResetFlag( bool val ) { mResetAfterRestoreOldXform = val; }
-
};
#endif // LL_LLJOINT_H
diff --git a/indra/llinventory/llfoldertype.cpp b/indra/llinventory/llfoldertype.cpp
index 5f8aaae20b..23bf6da1f9 100755
--- a/indra/llinventory/llfoldertype.cpp
+++ b/indra/llinventory/llfoldertype.cpp
@@ -93,7 +93,7 @@ LLFolderDictionary::LLFolderDictionary()
addEntry(LLFolderType::FT_MESH, new FolderEntry("mesh", TRUE));
addEntry(LLFolderType::FT_INBOX, new FolderEntry("inbox", TRUE));
- addEntry(LLFolderType::FT_OUTBOX, new FolderEntry("outbox", FALSE));
+ addEntry(LLFolderType::FT_OUTBOX, new FolderEntry("outbox", TRUE));
addEntry(LLFolderType::FT_BASIC_ROOT, new FolderEntry("basic_rt", TRUE));
diff --git a/indra/llinventory/llparcel.cpp b/indra/llinventory/llparcel.cpp
index e400877b3b..b24e14c72b 100755
--- a/indra/llinventory/llparcel.cpp
+++ b/indra/llinventory/llparcel.cpp
@@ -793,8 +793,6 @@ BOOL LLParcel::addToAccessList(const LLUUID& agent_id, S32 time)
}
}
- removeFromBanList(agent_id);
-
LLAccessEntry new_entry;
new_entry.mID = agent_id;
new_entry.mTime = time;
@@ -838,8 +836,6 @@ BOOL LLParcel::addToBanList(const LLUUID& agent_id, S32 time)
}
}
- removeFromAccessList(agent_id);
-
LLAccessEntry new_entry;
new_entry.mID = agent_id;
new_entry.mTime = time;
diff --git a/indra/llmath/llquaternion.h b/indra/llmath/llquaternion.h
index e56929ed0f..aa0b1752f4 100755
--- a/indra/llmath/llquaternion.h
+++ b/indra/llmath/llquaternion.h
@@ -71,6 +71,9 @@ public:
void quantize8(F32 lower, F32 upper); // changes the vector to reflect quatization
void loadIdentity(); // Loads the quaternion that represents the identity rotation
+ bool isEqualEps(const LLQuaternion &quat, F32 epsilon) const;
+ bool isNotEqualEps(const LLQuaternion &quat, F32 epsilon) const;
+
const LLQuaternion& set(F32 x, F32 y, F32 z, F32 w); // Sets Quaternion to normalize(x, y, z, w)
const LLQuaternion& set(const LLQuaternion &quat); // Copies Quaternion
const LLQuaternion& set(const F32 *q); // Sets Quaternion to normalize(quat[VX], quat[VY], quat[VZ], quat[VW])
@@ -239,6 +242,21 @@ inline void LLQuaternion::loadIdentity()
mQ[VW] = 1.0f;
}
+inline bool LLQuaternion::isEqualEps(const LLQuaternion &quat, F32 epsilon) const
+{
+ return ( fabs(mQ[VX] - quat.mQ[VX]) < epsilon
+ && fabs(mQ[VY] - quat.mQ[VY]) < epsilon
+ && fabs(mQ[VZ] - quat.mQ[VZ]) < epsilon
+ && fabs(mQ[VS] - quat.mQ[VS]) < epsilon );
+}
+
+inline bool LLQuaternion::isNotEqualEps(const LLQuaternion &quat, F32 epsilon) const
+{
+ return ( fabs(mQ[VX] - quat.mQ[VX]) > epsilon
+ || fabs(mQ[VY] - quat.mQ[VY]) > epsilon
+ || fabs(mQ[VZ] - quat.mQ[VZ]) > epsilon
+ || fabs(mQ[VS] - quat.mQ[VS]) > epsilon );
+}
inline const LLQuaternion& LLQuaternion::set(F32 x, F32 y, F32 z, F32 w)
{
diff --git a/indra/llprimitive/llmodel.cpp b/indra/llprimitive/llmodel.cpp
index 57a698b98f..b4963225dc 100755
--- a/indra/llprimitive/llmodel.cpp
+++ b/indra/llprimitive/llmodel.cpp
@@ -191,7 +191,7 @@ LLModel::EModelStatus load_face_from_dom_triangles(std::vector<LLVolumeFace>& fa
U32 tc_count = tc_source ? tc.getCount() : 0;
U32 norm_count = norm_source ? n.getCount() : 0;
- if (vertex_count == 0)
+ if ((vertex_count == 0) || (tc_count == 0))
{
llwarns << "Unable to process mesh with empty position array; invalid model." << llendl;
return LLModel::BAD_ELEMENT;
diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp
index 388d3a4f1a..0af402efea 100755
--- a/indra/llrender/llrender.cpp
+++ b/indra/llrender/llrender.cpp
@@ -1168,7 +1168,7 @@ void LLRender::syncMatrices()
{
stop_glerror();
- U32 name[] =
+ static const U32 name[] =
{
LLShaderMgr::MODELVIEW_MATRIX,
LLShaderMgr::PROJECTION_MATRIX,
diff --git a/indra/llui/llfolderview.cpp b/indra/llui/llfolderview.cpp
index cca26f335a..474b545f00 100755
--- a/indra/llui/llfolderview.cpp
+++ b/indra/llui/llfolderview.cpp
@@ -1371,7 +1371,8 @@ BOOL LLFolderView::search(LLFolderViewItem* first_item, const std::string &searc
}
}
- const std::string current_item_label(search_item->getViewModelItem()->getSearchableName());
+ std::string current_item_label(search_item->getViewModelItem()->getSearchableName());
+ LLStringUtil::toUpper(current_item_label);
S32 search_string_length = llmin(upper_case_string.size(), current_item_label.size());
if (!current_item_label.compare(0, search_string_length, upper_case_string))
{
diff --git a/indra/llui/llfolderviewitem.cpp b/indra/llui/llfolderviewitem.cpp
index 83254c2840..6dd6f94d02 100644
--- a/indra/llui/llfolderviewitem.cpp
+++ b/indra/llui/llfolderviewitem.cpp
@@ -256,6 +256,23 @@ BOOL LLFolderViewItem::passedFilter(S32 filter_generation)
return getViewModelItem()->passedFilter(filter_generation);
}
+BOOL LLFolderViewItem::isPotentiallyVisible(S32 filter_generation)
+{
+ if (filter_generation < 0)
+ {
+ filter_generation = getFolderViewModel()->getFilter().getFirstSuccessGeneration();
+ }
+ LLFolderViewModelItem* model = getViewModelItem();
+ BOOL visible = model->passedFilter(filter_generation);
+ if (model->getMarkedDirtyGeneration() >= filter_generation)
+ {
+ // unsure visibility state
+ // retaining previous visibility until item is updated or filter generation changes
+ visible |= getVisible();
+ }
+ return visible;
+}
+
void LLFolderViewItem::refresh()
{
LLFolderViewModelItem& vmi = *getViewModelItem();
@@ -655,7 +672,7 @@ void LLFolderViewItem::drawOpenFolderArrow(const Params& default_params, const L
//
const S32 TOP_PAD = default_params.item_top_pad;
- if (hasVisibleChildren() || getViewModelItem()->hasChildren())
+ if (hasVisibleChildren())
{
LLUIImage* arrow_image = default_params.folder_arrow_image;
gl_draw_scaled_rotated_image(
@@ -968,7 +985,7 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height )
getRoot()->getFolderViewModel()->sort(this);
LL_RECORD_BLOCK_TIME(FTM_ARRANGE);
-
+
// evaluate mHasVisibleChildren
mHasVisibleChildren = false;
if (getViewModelItem()->descendantsPassedFilter())
@@ -979,7 +996,7 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height )
for (items_t::iterator iit = mItems.begin(); iit != mItems.end(); ++iit)
{
LLFolderViewItem* itemp = (*iit);
- found = itemp->passedFilter();
+ found = itemp->isPotentiallyVisible();
if (found)
break;
}
@@ -989,7 +1006,7 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height )
for (folders_t::iterator fit = mFolders.begin(); fit != mFolders.end(); ++fit)
{
LLFolderViewFolder* folderp = (*fit);
- found = folderp->passedFilter();
+ found = folderp->isPotentiallyVisible();
if (found)
break;
}
@@ -1022,7 +1039,7 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height )
for(folders_t::iterator fit = mFolders.begin(); fit != mFolders.end(); ++fit)
{
LLFolderViewFolder* folderp = (*fit);
- folderp->setVisible(folderp->passedFilter()); // passed filter or has descendants that passed filter
+ folderp->setVisible(folderp->isPotentiallyVisible());
if (folderp->getVisible())
{
@@ -1041,7 +1058,7 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height )
iit != mItems.end(); ++iit)
{
LLFolderViewItem* itemp = (*iit);
- itemp->setVisible(itemp->passedFilter());
+ itemp->setVisible(itemp->isPotentiallyVisible());
if (itemp->getVisible())
{
diff --git a/indra/llui/llfolderviewitem.h b/indra/llui/llfolderviewitem.h
index a9b0201236..0cd20a0f2d 100644
--- a/indra/llui/llfolderviewitem.h
+++ b/indra/llui/llfolderviewitem.h
@@ -254,6 +254,7 @@ public:
S32 getIndentation() { return mIndentation; }
virtual BOOL passedFilter(S32 filter_generation = -1);
+ virtual BOOL isPotentiallyVisible(S32 filter_generation = -1);
// refresh information from the object being viewed.
virtual void refresh();
diff --git a/indra/llui/llfolderviewmodel.h b/indra/llui/llfolderviewmodel.h
index 8d98363c5f..f6550eae42 100755
--- a/indra/llui/llfolderviewmodel.h
+++ b/indra/llui/llfolderviewmodel.h
@@ -185,11 +185,13 @@ public:
virtual void setPassedFilter(bool passed, S32 filter_generation, std::string::size_type string_offset = std::string::npos, std::string::size_type string_size = 0) = 0;
virtual void setPassedFolderFilter(bool passed, S32 filter_generation) = 0;
virtual void dirtyFilter() = 0;
+ virtual void dirtyDescendantsFilter() = 0;
virtual bool hasFilterStringMatch() = 0;
virtual std::string::size_type getFilterStringOffset() = 0;
virtual std::string::size_type getFilterStringSize() = 0;
virtual S32 getLastFilterGeneration() const = 0;
+ virtual S32 getMarkedDirtyGeneration() const = 0;
virtual bool hasChildren() const = 0;
virtual void addChild(LLFolderViewModelItem* child) = 0;
@@ -230,6 +232,7 @@ public:
mFolderViewItem(NULL),
mLastFilterGeneration(-1),
mLastFolderFilterGeneration(-1),
+ mMarkedDirtyGeneration(-1),
mMostFilteredDescendantGeneration(-1),
mParent(NULL),
mRootViewModel(root_view_model)
@@ -243,8 +246,13 @@ public:
S32 getLastFilterGeneration() const { return mLastFilterGeneration; }
S32 getLastFolderFilterGeneration() const { return mLastFolderFilterGeneration; }
+ S32 getMarkedDirtyGeneration() const { return mMarkedDirtyGeneration; }
void dirtyFilter()
{
+ if(mMarkedDirtyGeneration < 0)
+ {
+ mMarkedDirtyGeneration = mLastFilterGeneration;
+ }
mLastFilterGeneration = -1;
mLastFolderFilterGeneration = -1;
@@ -254,6 +262,14 @@ public:
mParent->dirtyFilter();
}
}
+ void dirtyDescendantsFilter()
+ {
+ mMostFilteredDescendantGeneration = -1;
+ if (mParent)
+ {
+ mParent->dirtyDescendantsFilter();
+ }
+ }
bool hasFilterStringMatch();
std::string::size_type getFilterStringOffset();
std::string::size_type getFilterStringSize();
@@ -272,7 +288,7 @@ public:
return;
}
}
- mChildren.push_back(child);
+ mChildren.push_back(child);
child->setParent(this);
dirtyFilter();
requestSort();
@@ -280,7 +296,8 @@ public:
virtual void removeChild(LLFolderViewModelItem* child)
{
mChildren.remove(child);
- child->setParent(NULL);
+ child->setParent(NULL);
+ dirtyDescendantsFilter();
dirtyFilter();
}
@@ -290,6 +307,7 @@ public:
// This is different and not equivalent to calling removeChild() on each child
std::for_each(mChildren.begin(), mChildren.end(), DeletePointer());
mChildren.clear();
+ dirtyDescendantsFilter();
dirtyFilter();
}
@@ -303,6 +321,7 @@ public:
mLastFilterGeneration = filter_generation;
mStringMatchOffsetFilter = string_offset;
mStringFilterSize = string_size;
+ mMarkedDirtyGeneration = -1;
}
void setPassedFolderFilter(bool passed, S32 filter_generation)
@@ -351,7 +370,8 @@ protected:
S32 mLastFilterGeneration,
mLastFolderFilterGeneration,
- mMostFilteredDescendantGeneration;
+ mMostFilteredDescendantGeneration,
+ mMarkedDirtyGeneration;
child_list_t mChildren;
LLFolderViewModelItem* mParent;
diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 75773d7dfd..6750ee482a 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -505,7 +505,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
}
// Skip white space
- while( *cur && isspace(*cur) && (*cur != '\n') )
+ while( *cur && iswspace(*cur) && (*cur != '\n') )
{
cur++;
}
@@ -548,7 +548,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
}
// Skip white space
- while( *cur && isspace(*cur) && (*cur != '\n') )
+ while( *cur && iswspace(*cur) && (*cur != '\n') )
{
cur++;
}
@@ -655,10 +655,10 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
// check against words
llwchar prev = cur > base ? *(cur-1) : 0;
- if( !isalnum( prev ) && (prev != '_') )
+ if( !iswalnum( prev ) && (prev != '_') )
{
const llwchar* p = cur;
- while( isalnum( *p ) || (*p == '_') )
+ while( iswalnum( *p ) || (*p == '_') )
{
p++;
}
diff --git a/indra/llui/lllineeditor.cpp b/indra/llui/lllineeditor.cpp
index b09c927782..45f4272aa7 100755
--- a/indra/llui/lllineeditor.cpp
+++ b/indra/llui/lllineeditor.cpp
@@ -254,6 +254,7 @@ void LLLineEditor::onCommit()
setControlValue(getValue());
LLUICtrl::onCommit();
+ resetDirty();
// Selection on commit needs to be turned off when evaluating maths
// expressions, to allow indication of the error position
diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp
index 604dc92789..d3ed4a1286 100755
--- a/indra/llui/llmenugl.cpp
+++ b/indra/llui/llmenugl.cpp
@@ -1276,7 +1276,15 @@ void LLMenuItemBranchGL::openMenu()
{
// open upwards if menu extends past bottom
// adjust by the height of the menu item branch since it is a submenu
- delta_y = branch_rect.getHeight() - getRect().getHeight();
+ if (y + 2 * branch_rect.getHeight() - getRect().getHeight() > menu_region_rect.mTop)
+ {
+ // overlaps with top border, align with top
+ delta_y = menu_region_rect.mTop - y - branch_rect.getHeight();
+ }
+ else
+ {
+ delta_y = branch_rect.getHeight() - getRect().getHeight();
+ }
}
if( x + branch_rect.getWidth() > menu_region_rect.mRight )
@@ -3258,6 +3266,11 @@ void LLMenuGL::showPopup(LLView* spawning_view, LLMenuGL* menu, S32 x, S32 y)
CURSOR_WIDTH + MOUSE_CURSOR_PADDING * 2,
CURSOR_HEIGHT + MOUSE_CURSOR_PADDING * 2);
menu->translateIntoRectWithExclusion( menu_region_rect, mouse_rect );
+ if (menu->getRect().mTop > menu_region_rect.mTop)
+ {
+ // not enough space: align with top, ignore exclusion
+ menu->translateIntoRect( menu_region_rect );
+ }
menu->getParent()->sendChildToFront(menu);
}
diff --git a/indra/llui/llstatbar.cpp b/indra/llui/llstatbar.cpp
index 1bd2bc06f4..303417c337 100755
--- a/indra/llui/llstatbar.cpp
+++ b/indra/llui/llstatbar.cpp
@@ -638,7 +638,7 @@ void LLStatBar::drawLabelAndValue( F32 value, std::string &label, LLRect &bar_re
void LLStatBar::drawTicks( F32 min, F32 max, F32 value_scale, LLRect &bar_rect )
{
- if (mAutoScaleMax || mAutoScaleMin)
+ if (!llisnan(min) && (mAutoScaleMax || mAutoScaleMin))
{
F32 u = LLSmoothInterpolation::getInterpolant(10.f);
mFloatingTargetMinBar = llmin(min, lerp(mFloatingTargetMinBar, min, u));
diff --git a/indra/llui/llstatgraph.cpp b/indra/llui/llstatgraph.cpp
index a44bc18733..98962aff9a 100755
--- a/indra/llui/llstatgraph.cpp
+++ b/indra/llui/llstatgraph.cpp
@@ -44,9 +44,10 @@ LLStatGraph::LLStatGraph(const Params& p)
: LLView(p),
mMin(p.min),
mMax(p.max),
- mPerSec(true),
+ mPerSec(p.per_sec),
mPrecision(p.precision),
mValue(p.value),
+ mUnits(p.units),
mNewStatFloatp(p.stat.count_stat_float)
{
setToolTip(p.name());
diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index 71db0ac030..9b125a85b9 100755
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -1307,14 +1307,14 @@ void LLTextBase::replaceWithSuggestion(U32 index)
if ( (it->first <= (U32)mCursorPos) && (it->second >= (U32)mCursorPos) )
{
deselect();
-
- // Delete the misspelled word
- removeStringNoUndo(it->first, it->second - it->first);
-
// Insert the suggestion in its place
LLWString suggestion = utf8str_to_wstring(mSuggestionList[index]);
insertStringNoUndo(it->first, utf8str_to_wstring(mSuggestionList[index]));
+ // Delete the misspelled word
+ removeStringNoUndo(it->first + (S32)suggestion.length(), it->second - it->first);
+
+
setCursorPos(it->first + (S32)suggestion.length());
break;
@@ -2381,7 +2381,7 @@ S32 LLTextBase::getDocIndexFromLocalCoord( S32 local_x, S32 local_y, BOOL round,
// binary search for line that starts before local_y
line_list_t::const_iterator line_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), doc_y, compare_bottom());
- if (line_iter == mLineInfoList.end())
+ if (!mLineInfoList.size() || line_iter == mLineInfoList.end())
{
return getLength(); // past the end
}
@@ -2473,7 +2473,6 @@ LLRect LLTextBase::getDocRectFromDocIndex(S32 pos) const
// clamp pos to valid values
pos = llclamp(pos, 0, mLineInfoList.back().mDocIndexEnd - 1);
- // find line that contains cursor
line_list_t::const_iterator line_iter = std::upper_bound(mLineInfoList.begin(), mLineInfoList.end(), pos, line_end_compare());
doc_rect.mLeft = line_iter->mRect.mLeft;
@@ -2649,6 +2648,12 @@ void LLTextBase::changeLine( S32 delta )
LLRect visible_region = getVisibleDocumentRect();
S32 new_cursor_pos = getDocIndexFromLocalCoord(mDesiredXPixel,
mLineInfoList[new_line].mRect.mBottom + mVisibleTextRect.mBottom - visible_region.mBottom, TRUE);
+ S32 actual_line = getLineNumFromDocIndex(new_cursor_pos);
+ if (actual_line != new_line)
+ {
+ // line edge, correcting position by 1 to move onto proper line
+ new_cursor_pos += new_line - actual_line;
+ }
setCursorPos(new_cursor_pos, true);
}
}
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index 576e8f7600..cf5fdef539 100755
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -1126,7 +1126,6 @@ void LLTextEditor::addChar(llwchar wc)
}
}
-
void LLTextEditor::addLineBreakChar(BOOL group_together)
{
if( !getEnabled() )
diff --git a/indra/llui/llui.h b/indra/llui/llui.h
index b162f25887..c727f75c4f 100755
--- a/indra/llui/llui.h
+++ b/indra/llui/llui.h
@@ -86,6 +86,7 @@ enum EAcceptance
{
ACCEPT_POSTPONED, // we are asynchronously determining acceptance
ACCEPT_NO, // Uninformative, general purpose denial.
+ ACCEPT_NO_CUSTOM, // Denial with custom message.
ACCEPT_NO_LOCKED, // Operation would be valid, but permissions are set to disallow it.
ACCEPT_YES_COPY_SINGLE, // We'll take a copy of a single item
ACCEPT_YES_SINGLE, // Accepted. OK to drag and drop single item here.
diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp
index 6f3122e7a1..be583c83d8 100755
--- a/indra/llui/llurlentry.cpp
+++ b/indra/llui/llurlentry.cpp
@@ -178,6 +178,12 @@ bool LLUrlEntryBase::isLinkDisabled() const
return globally_disabled;
}
+bool LLUrlEntryBase::isWikiLinkCorrect(std::string url)
+{
+ std::string label = getLabelFromWikiLink(url);
+ return (LLUrlRegistry::instance().hasUrl(label)) ? false : true;
+}
+
static std::string getStringAfterToken(const std::string str, const std::string token)
{
size_t pos = str.find(token);
diff --git a/indra/llui/llurlentry.h b/indra/llui/llurlentry.h
index d4684e2e1e..ffcd45dfde 100755
--- a/indra/llui/llurlentry.h
+++ b/indra/llui/llurlentry.h
@@ -100,6 +100,8 @@ public:
bool isLinkDisabled() const;
+ bool isWikiLinkCorrect(std::string url);
+
protected:
std::string getIDStringFromUrl(const std::string &url) const;
std::string escapeUrl(const std::string &url) const;
diff --git a/indra/llui/llurlregistry.cpp b/indra/llui/llurlregistry.cpp
index bccc646821..ef0789e0e4 100755
--- a/indra/llui/llurlregistry.cpp
+++ b/indra/llui/llurlregistry.cpp
@@ -45,7 +45,8 @@ LLUrlRegistry::LLUrlRegistry()
registerUrl(mUrlEntryIcon);
registerUrl(new LLUrlEntrySLURL());
registerUrl(new LLUrlEntryHTTP());
- registerUrl(new LLUrlEntryHTTPLabel());
+ mUrlEntryHTTPLabel = new LLUrlEntryHTTPLabel();
+ registerUrl(mUrlEntryHTTPLabel);
registerUrl(new LLUrlEntryAgentCompleteName());
registerUrl(new LLUrlEntryAgentDisplayName());
registerUrl(new LLUrlEntryAgentUserName());
@@ -64,7 +65,8 @@ LLUrlRegistry::LLUrlRegistry()
//LLUrlEntrySL and LLUrlEntrySLLabel have more common pattern,
//so it should be registered in the end of list
registerUrl(new LLUrlEntrySL());
- registerUrl(new LLUrlEntrySLLabel());
+ mUrlEntrySLLabel = new LLUrlEntrySLLabel();
+ registerUrl(mUrlEntrySLLabel);
// most common pattern is a URL without any protocol,
// e.g., "secondlife.com"
registerUrl(new LLUrlEntryHTTPNoProtocol());
@@ -128,6 +130,11 @@ static bool matchRegex(const char *text, boost::regex regex, U32 &start, U32 &en
end--;
}
+ else if (text[end] == ']' && std::string(text+start, end-start).find('[') == std::string::npos)
+ {
+ end--;
+ }
+
return true;
}
@@ -175,6 +182,15 @@ bool LLUrlRegistry::findUrl(const std::string &text, LLUrlMatch &match, const LL
// does this match occur in the string before any other match
if (start < match_start || match_entry == NULL)
{
+
+ if((mUrlEntryHTTPLabel == *it) || (mUrlEntrySLLabel == *it))
+ {
+ if(url_entry && !url_entry->isWikiLinkCorrect(text.substr(start, end - start + 1)))
+ {
+ continue;
+ }
+ }
+
match_start = start;
match_end = end;
match_entry = url_entry;
diff --git a/indra/llui/llurlregistry.h b/indra/llui/llurlregistry.h
index 6270df1bbb..1cb403dfc9 100755
--- a/indra/llui/llurlregistry.h
+++ b/indra/llui/llurlregistry.h
@@ -94,6 +94,8 @@ private:
std::vector<LLUrlEntryBase *> mUrlEntry;
LLUrlEntryBase* mUrlEntryIcon;
+ LLUrlEntryBase* mUrlEntryHTTPLabel;
+ LLUrlEntryBase* mUrlEntrySLLabel;
};
#endif
diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp
index 77c8878f4b..9e6bebc93b 100755
--- a/indra/llui/llview.cpp
+++ b/indra/llui/llview.cpp
@@ -885,7 +885,7 @@ BOOL LLView::handleKey(KEY key, MASK mask, BOOL called_from_parent)
handled = handleKeyHere( key, mask );
if (handled)
{
- LL_WARNS() << "Key handled by " << getName() << LL_ENDL;
+ LL_DEBUGS() << "Key handled by " << getName() << LL_ENDL;
}
}
}
diff --git a/indra/llwindow/llopenglview-objc.mm b/indra/llwindow/llopenglview-objc.mm
index 017ea3769c..1b5804ec83 100644
--- a/indra/llwindow/llopenglview-objc.mm
+++ b/indra/llwindow/llopenglview-objc.mm
@@ -124,6 +124,14 @@ attributedStringInfo getSegments(NSAttributedString *str)
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(windowResized:) name:NSWindowDidResizeNotification
+ object:[self window]];
+
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(windowWillMiniaturize:) name:NSWindowWillMiniaturizeNotification
+ object:[self window]];
+
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(windowDidDeminiaturize:) name:NSWindowDidDeminiaturizeNotification
object:[self window]];
}
@@ -141,6 +149,16 @@ attributedStringInfo getSegments(NSAttributedString *str)
}
}
+- (void)windowWillMiniaturize:(NSNotification *)notification;
+{
+ callWindowHide();
+}
+
+- (void)windowDidDeminiaturize:(NSNotification *)notification;
+{
+ callWindowUnhide();
+}
+
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
@@ -349,9 +367,14 @@ attributedStringInfo getSegments(NSAttributedString *str)
callMiddleMouseUp(mMousePos, mModifiers);
}
+- (void) rightMouseDragged:(NSEvent *)theEvent
+{
+ [self mouseDragged:theEvent];
+}
+
- (void) otherMouseDragged:(NSEvent *)theEvent
{
-
+ [self mouseDragged:theEvent];
}
- (void) scrollWheel:(NSEvent *)theEvent
@@ -398,9 +421,35 @@ attributedStringInfo getSegments(NSAttributedString *str)
}
}
-- (void)flagsChanged:(NSEvent *)theEvent {
+- (void)flagsChanged:(NSEvent *)theEvent
+{
mModifiers = [theEvent modifierFlags];
callModifier([theEvent modifierFlags]);
+
+ NSInteger mask = 0;
+ switch([theEvent keyCode])
+ {
+ case 56:
+ mask = NSShiftKeyMask;
+ break;
+ case 58:
+ mask = NSAlternateKeyMask;
+ break;
+ case 59:
+ mask = NSControlKeyMask;
+ break;
+ default:
+ return;
+ }
+
+ if (mModifiers & mask)
+ {
+ callKeyDown([theEvent keyCode], 0);
+ }
+ else
+ {
+ callKeyUp([theEvent keyCode], 0);
+ }
}
- (BOOL) acceptsFirstResponder
diff --git a/indra/llwindow/llwindowmacosx-objc.h b/indra/llwindow/llwindowmacosx-objc.h
index d64525fbdd..f02052ca6a 100755
--- a/indra/llwindow/llwindowmacosx-objc.h
+++ b/indra/llwindow/llwindowmacosx-objc.h
@@ -116,6 +116,8 @@ void callScrollMoved(float delta);
void callMouseExit();
void callWindowFocus();
void callWindowUnfocus();
+void callWindowHide();
+void callWindowUnhide();
void callDeltaUpdate(float *delta, unsigned int mask);
void callMiddleMouseDown(float *pos, unsigned int mask);
void callMiddleMouseUp(float *pos, unsigned int mask);
diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp
index 18d5152015..e8d0a8bdb8 100755
--- a/indra/llwindow/llwindowmacosx.cpp
+++ b/indra/llwindow/llwindowmacosx.cpp
@@ -349,6 +349,22 @@ void callWindowUnfocus()
gWindowImplementation->getCallbacks()->handleFocusLost(gWindowImplementation);
}
+void callWindowHide()
+{
+ if ( gWindowImplementation && gWindowImplementation->getCallbacks() )
+ {
+ gWindowImplementation->getCallbacks()->handleActivate(gWindowImplementation, false);
+ }
+}
+
+void callWindowUnhide()
+{
+ if ( gWindowImplementation && gWindowImplementation->getCallbacks() )
+ {
+ gWindowImplementation->getCallbacks()->handleActivate(gWindowImplementation, true);
+ }
+}
+
void callDeltaUpdate(float *delta, MASK mask)
{
gWindowImplementation->updateMouseDeltas(delta);
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 279d98e5c0..e8f4144e70 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -252,6 +252,7 @@ set(viewer_SOURCE_FILES
llfloaterinspect.cpp
llfloaterinventory.cpp
llfloaterjoystick.cpp
+ llfloaterlagmeter.cpp
llfloaterland.cpp
llfloaterlandholdings.cpp
llfloatermap.cpp
@@ -859,6 +860,7 @@ set(viewer_HEADER_FILES
llfloaterinspect.h
llfloaterinventory.h
llfloaterjoystick.h
+ llfloaterlagmeter.h
llfloaterland.h
llfloaterlandholdings.h
llfloatermap.h
diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini
index 17c70ef1c5..4972472f67 100755
--- a/indra/newview/app_settings/keywords.ini
+++ b/indra/newview/app_settings/keywords.ini
@@ -628,22 +628,22 @@ RCERR_CAST_TIME_EXCEEDED TODO: add documentation
RCERR_SIM_PERF_LOW TODO: add documentation
RCERR_UNKNOWN TODO: add documentation
-ESTATE_ACCESS_ALLOWED_AGENT_ADD TODO: add documentation
-ESTATE_ACCESS_ALLOWED_AGENT_REMOVE TODO: add documentation
-ESTATE_ACCESS_ALLOWED_GROUP_ADD TODO: add documentation
-ESTATE_ACCESS_ALLOWED_GROUP_REMOVE TODO: add documentation
-ESTATE_ACCESS_BANNED_AGENT_ADD TODO: add documentation
-ESTATE_ACCESS_BANNED_AGENT_REMOVE TODO: add documentation
+ESTATE_ACCESS_ALLOWED_AGENT_ADD Passed to llManageEstateAccess to add the agent to this estate's Allowed Residents list
+ESTATE_ACCESS_ALLOWED_AGENT_REMOVE Passed to llManageEstateAccess to remove the agent from this estate's Allowed Residents list
+ESTATE_ACCESS_ALLOWED_GROUP_ADD Passed to llManageEstateAccess to add the group to this estate's Allowed groups list
+ESTATE_ACCESS_ALLOWED_GROUP_REMOVE Passed to llManageEstateAccess to remove the group from this estate's Allowed groups list
+ESTATE_ACCESS_BANNED_AGENT_ADD Passed to llManageEstateAccess to add the agent to this estate's Banned residents list
+ESTATE_ACCESS_BANNED_AGENT_REMOVE Passed to llManageEstateAccess to remove the agent from this estate's Banned residents list
DENSITY TODO: add documentation
FRICTION TODO: add documentation
RESTITUTION TODO: add documentation
GRAVITY_MULTIPLIER TODO: add documentation
-KFM_COMMAND TODO: add documentation
-KFM_CMD_PLAY TODO: add documentation
-KFM_CMD_STOP TODO: add documentation
-KFM_CMD_PAUSE TODO: add documentation
+KFM_COMMAND Command used in the options parameter of llSetKeyframedMotion, followed by one of: KFM_CMD_STOP, KFM_CMD_PLAY, KFM_CMD_PAUSE to play, stop or pause the motion
+KFM_CMD_PLAY Command used in the options parameter llSetKeyframedMotion. Resumes the animation previously stopped by KFM_CMD_STOP or KFM_CMD_PAUSE
+KFM_CMD_STOP Command used in the options parameter llSetKeyframedMotion. Stops the animation and resets it at the start of motion
+KFM_CMD_PAUSE Command used in the options parameter llSetKeyframedMotion. Stops the animation but doesn t reset it at the start of motion.
KFM_CMD_SET_MODE TODO: add documentation
KFM_MODE TODO: add documentation
KFM_FORWARD TODO: add documentation
@@ -657,18 +657,18 @@ KFM_TRANSLATION TODO: add documentation
CHARACTER_CMD_STOP TODO: add documentation
CHARACTER_CMD_JUMP TODO: add documentation
-CHARACTER_DESIRED_SPEED TODO: add documentation
-CHARACTER_RADIUS TODO: add documentation
-CHARACTER_LENGTH TODO: add documentation
-CHARACTER_ORIENTATION TODO: add documentation
-CHARACTER_AVOIDANCE_MODE TODO: add documentation
+CHARACTER_DESIRED_SPEED Constant used to indicate that the following argument is the desired speed for a Pathfinding character.
+CHARACTER_RADIUS Constant used to indicate that the following argument is the radius of the capsule for a Pathfinding character.
+CHARACTER_LENGTH Constant used to indicate that the following argument is the length of the capsule for a Pathfinding character.
+CHARACTER_ORIENTATION Constant used to indicate that the following argument is the orientation of the capsule for a Pathfinding character.
+CHARACTER_AVOIDANCE_MODE Allows you to specify that a character should not try to avoid other characters, should not try to avoid dynamic obstacles, or both. Is combined with a mask bit flags
PURSUIT_OFFSET TODO: add documentation
REQUIRE_LINE_OF_SIGHT TODO: add documentation
PURSUIT_FUZZ_FACTOR TODO: add documentation
PURSUIT_INTERCEPT TODO: add documentation
FORCE_DIRECT_PATH TODO: add documentation
-VERTICAL TODO: add documentation
-HORIZONTAL TODO: add documentation
+VERTICAL Constant to indicate that the orientation of the capsule for a Pathfinding character is vertical.
+HORIZONTAL Constant to indicate that the orientation of the capsule for a Pathfinding character is horizontal.
AVOID_CHARACTERS TODO: add documentation
AVOID_DYNAMIC_OBSTACLES TODO: add documentation
@@ -683,12 +683,12 @@ PU_FAILURE_UNREACHABLE Goal is no longer reachable for some reason - e
PU_GOAL_REACHED Character has reached the goal and will stop or choose a new goal (if wandering).
PU_SLOWDOWN_DISTANCE_REACHED Character is near current goal.
-CHARACTER_TYPE TODO: add documentation
-CHARACTER_TYPE_A TODO: add documentation
-CHARACTER_TYPE_B TODO: add documentation
-CHARACTER_TYPE_C TODO: add documentation
-CHARACTER_TYPE_D TODO: add documentation
-CHARACTER_TYPE_NONE TODO: add documentation
+CHARACTER_TYPE Specifies which walkability coefficient will be used by this character. Used in combination with one of the character type flags.
+CHARACTER_TYPE_A Used for character types that you prefer move in a way consistent with humanoids.
+CHARACTER_TYPE_B Used for character types that you prefer move in a way consistent with wild animals or off road vehicles.
+CHARACTER_TYPE_C Used for mechanical character types or road going vehicles.
+CHARACTER_TYPE_D Used for character types that are not consistent with the A, B, or C type.
+CHARACTER_TYPE_NONE Used to set no specific character type.
TRAVERSAL_TYPE TODO: add documentation
TRAVERSAL_TYPE_SLOW TODO: add documentation
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index a72ee0409a..6fb095ff27 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -13201,7 +13201,7 @@
<key>Value</key>
<string>Default</string>
</map>
- <key>UseExternalBrowser</key>
+ <key>UseExternalBrowser</key> <!-- deprecated (see MAINT-4127) -->
<map>
<key>Comment</key>
<string>Use default browser when opening web pages instead of in-world browser.</string>
@@ -13212,6 +13212,17 @@
<key>Value</key>
<boolean>1</boolean>
</map>
+ <key>PreferredBrowserBehavior</key>
+ <map>
+ <key>Comment</key>
+ <string>Use system browser for any links (0), use builtin browser for SL links and system one for others (1) or use builtin browser only (2).</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>U32</string>
+ <key>Value</key>
+ <integer>1</integer>
+ </map>
<key>UseFreezeFrame</key>
<map>
<key>Comment</key>
@@ -14224,6 +14235,17 @@
<key>Value</key>
<integer>0</integer>
</map>
+ <key>LeaveMouselook</key>
+ <map>
+ <key>Comment</key>
+ <string>Exit Mouselook mode via S or Down Arrow keys while sitting </string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<key>TextureLoggingThreshold</key>
<map>
<key>Comment</key>
@@ -15462,6 +15484,17 @@
<key>Value</key>
<string />
</map>
+ <key>WearFolderLimit</key>
+ <map>
+ <key>Comment</key>
+ <string>Limits number of items in the folder that can be replaced/added to current outfit</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>U32</string>
+ <key>Value</key>
+ <integer>125</integer>
+ </map>
<key>EveryoneCopy</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl
index b40785bbd7..506118d381 100755
--- a/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl
@@ -111,10 +111,9 @@ void main()
#ifdef USE_INDEXED_TEX
passTextureIndex();
- vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy;
-#else
- vary_texcoord0 = texcoord0;
#endif
+
+ vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy;
vary_norm = norm;
vary_position = pos.xyz;
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 43e2b22689..5cb03cd2ae 100755
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -3712,6 +3712,12 @@ bool LLAgent::teleportCore(bool is_local)
return false;
}
+ // force stand up and stop a sitting animation (if any), see MAINT-3969
+ if (isAgentAvatarValid() && gAgentAvatarp->getParent() && gAgentAvatarp->isSitting())
+ {
+ gAgentAvatarp->getOffObject();
+ }
+
#if 0
// This should not exist. It has been added, removed, added, and now removed again.
// This change needs to come from the simulator. Otherwise, the agent ends up out of
@@ -3900,7 +3906,7 @@ void LLAgent::teleportRequest(
bool look_at_from_camera)
{
LLViewerRegion* regionp = getRegion();
- bool is_local = (region_handle == to_region_handle(getPositionGlobal()));
+ bool is_local = (region_handle == regionp->getHandle());
if(regionp && teleportCore(is_local))
{
LL_INFOS("") << "TeleportLocationRequest: '" << region_handle << "':"
@@ -4067,7 +4073,12 @@ void LLAgent::teleportViaLocationLookAt(const LLVector3d& pos_global)
void LLAgent::doTeleportViaLocationLookAt(const LLVector3d& pos_global)
{
mbTeleportKeepsLookAt = true;
- gAgentCamera.setFocusOnAvatar(FALSE, ANIMATE); // detach camera form avatar, so it keeps direction
+
+ if(!gAgentCamera.isfollowCamLocked())
+ {
+ gAgentCamera.setFocusOnAvatar(FALSE, ANIMATE); // detach camera form avatar, so it keeps direction
+ }
+
U64 region_handle = to_region_handle(pos_global);
LLVector3 pos_local = (LLVector3)(pos_global - from_region_handle(region_handle));
teleportRequest(region_handle, pos_local, getTeleportKeepsLookAt());
@@ -4118,8 +4129,8 @@ void LLAgent::stopCurrentAnimations()
anim_it != gAgentAvatarp->mPlayingAnimations.end();
anim_it++)
{
- if (anim_it->first ==
- ANIM_AGENT_SIT_GROUND_CONSTRAINED)
+ if ((anim_it->first == ANIM_AGENT_DO_NOT_DISTURB)||
+ (anim_it->first == ANIM_AGENT_SIT_GROUND_CONSTRAINED))
{
// don't cancel a ground-sit anim, as viewers
// use this animation's status in
diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp
index 7b0496ea45..2356a84688 100755
--- a/indra/newview/llagentcamera.cpp
+++ b/indra/newview/llagentcamera.cpp
@@ -2721,6 +2721,11 @@ void LLAgentCamera::lookAtLastChat()
}
}
+bool LLAgentCamera::isfollowCamLocked()
+{
+ return mFollowCam.getPositionLocked();
+}
+
BOOL LLAgentCamera::setPointAt(EPointAtType target_type, LLViewerObject *object, LLVector3 position)
{
// disallow pointing at attachments and avatars
diff --git a/indra/newview/llagentcamera.h b/indra/newview/llagentcamera.h
index 00fa6ea189..4d0f9a80de 100755
--- a/indra/newview/llagentcamera.h
+++ b/indra/newview/llagentcamera.h
@@ -155,6 +155,7 @@ private:
//--------------------------------------------------------------------
public:
void setUsingFollowCam(bool using_follow_cam);
+ bool isfollowCamLocked();
private:
LLFollowCam mFollowCam; // Ventrella
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index 890fc9a8d9..3928bbadc8 100755
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -1009,6 +1009,10 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it
continue;
}
+ // Don't care about this case - ordering of wearables with the same asset id has no effect.
+ // Causes the two-alphas error case in MAINT-4158.
+ // We should actually disallow wearing two wearables with the same asset id.
+#if 0
if (curr_wearable->getName() != new_item->getName() ||
curr_wearable->getItemID() != new_item->getUUID())
{
@@ -1019,6 +1023,7 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it
mismatched++;
continue;
}
+#endif
// If we got here, everything matches.
matched++;
}
@@ -1035,6 +1040,7 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it
if (mismatched == 0)
{
LL_DEBUGS("Avatar") << "no changes, bailing out" << LL_ENDL;
+ mCOFChangeInProgress = false;
return;
}
diff --git a/indra/newview/llaisapi.cpp b/indra/newview/llaisapi.cpp
index da66ea357a..96de15bf75 100755
--- a/indra/newview/llaisapi.cpp
+++ b/indra/newview/llaisapi.cpp
@@ -380,8 +380,15 @@ void AISUpdate::parseMeta(const LLSD& update)
it != cat_ids.end(); ++it)
{
LLViewerInventoryCategory *cat = gInventory.getCategory(*it);
- mCatDescendentDeltas[cat->getParentUUID()]--;
- mObjectsDeletedIds.insert(*it);
+ if(cat)
+ {
+ mCatDescendentDeltas[cat->getParentUUID()]--;
+ mObjectsDeletedIds.insert(*it);
+ }
+ else
+ {
+ LL_WARNS("Inventory") << "removed category not found " << *it << LL_ENDL;
+ }
}
// parse _categories_items_removed -> mObjectsDeletedIds
@@ -392,8 +399,15 @@ void AISUpdate::parseMeta(const LLSD& update)
it != item_ids.end(); ++it)
{
LLViewerInventoryItem *item = gInventory.getItem(*it);
- mCatDescendentDeltas[item->getParentUUID()]--;
- mObjectsDeletedIds.insert(*it);
+ if(item)
+ {
+ mCatDescendentDeltas[item->getParentUUID()]--;
+ mObjectsDeletedIds.insert(*it);
+ }
+ else
+ {
+ LL_WARNS("Inventory") << "removed item not found " << *it << LL_ENDL;
+ }
}
// parse _broken_links_removed -> mObjectsDeletedIds
@@ -403,8 +417,15 @@ void AISUpdate::parseMeta(const LLSD& update)
it != broken_link_ids.end(); ++it)
{
LLViewerInventoryItem *item = gInventory.getItem(*it);
- mCatDescendentDeltas[item->getParentUUID()]--;
- mObjectsDeletedIds.insert(*it);
+ if(item)
+ {
+ mCatDescendentDeltas[item->getParentUUID()]--;
+ mObjectsDeletedIds.insert(*it);
+ }
+ else
+ {
+ LL_WARNS("Inventory") << "broken link not found " << *it << LL_ENDL;
+ }
}
// parse _created_items
@@ -795,7 +816,7 @@ void AISUpdate::doUpdate()
// Since this is a copy of the category *before* the accounting update, above,
// we need to transfer back the updated version/descendent count.
LLViewerInventoryCategory* curr_cat = gInventory.getCategory(new_category->getUUID());
- if (NULL == curr_cat)
+ if (!curr_cat)
{
LL_WARNS("Inventory") << "Failed to update unknown category " << new_category->getUUID() << LL_ENDL;
}
diff --git a/indra/newview/llappdelegate-objc.mm b/indra/newview/llappdelegate-objc.mm
index 988058aad3..549df80fa1 100644
--- a/indra/newview/llappdelegate-objc.mm
+++ b/indra/newview/llappdelegate-objc.mm
@@ -84,6 +84,16 @@
callWindowUnfocus();
}
+- (void) applicationDidHide:(NSNotification *)notification
+{
+ callWindowHide();
+}
+
+- (void) applicationDidUnhide:(NSNotification *)notification
+{
+ callWindowUnhide();
+}
+
- (NSApplicationDelegateReply) applicationShouldTerminate:(NSApplication *)sender
{
if (!runMainLoop())
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 9451a30341..e35cf011c7 100755
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -1710,8 +1710,16 @@ bool LLAppearanceMgr::getCanAddToCOF(const LLUUID& outfit_cat_id)
return false;
}
+ LLInventoryModel::cat_array_t cats;
+ LLInventoryModel::item_array_t items;
LLFindWearablesEx not_worn(/*is_worn=*/ false, /*include_body_parts=*/ false);
- return gInventory.hasMatchingDirectDescendent(outfit_cat_id, not_worn);
+ gInventory.collectDescendentsIf(outfit_cat_id,
+ cats,
+ items,
+ LLInventoryModel::EXCLUDE_TRASH,
+ not_worn);
+
+ return items.size() > 0;
}
bool LLAppearanceMgr::getCanReplaceCOF(const LLUUID& outfit_cat_id)
@@ -1729,8 +1737,16 @@ bool LLAppearanceMgr::getCanReplaceCOF(const LLUUID& outfit_cat_id)
}
// Check whether the outfit contains any wearables we aren't wearing already (STORM-702).
- LLFindWearablesEx not_worn(/*is_worn=*/ false, /*include_body_parts=*/ true);
- return gInventory.hasMatchingDirectDescendent(outfit_cat_id, not_worn);
+ LLInventoryModel::cat_array_t cats;
+ LLInventoryModel::item_array_t items;
+ LLFindWearablesEx is_worn(/*is_worn=*/ false, /*include_body_parts=*/ true);
+ gInventory.collectDescendentsIf(outfit_cat_id,
+ cats,
+ items,
+ LLInventoryModel::EXCLUDE_TRASH,
+ is_worn);
+
+ return items.size() > 0;
}
void LLAppearanceMgr::purgeBaseOutfitLink(const LLUUID& category, LLPointer<LLInventoryCallback> cb)
@@ -4040,17 +4056,33 @@ public:
bool handle(const LLSD& tokens, const LLSD& query_map,
LLMediaCtrl* web)
{
- LLPointer<LLInventoryCategory> category = new LLInventoryCategory(query_map["folder_id"],
- LLUUID::null,
- LLFolderType::FT_CLOTHING,
- "Quick Appearance");
- LLSD::UUID folder_uuid = query_map["folder_id"].asUUID();
- if ( gInventory.getCategory( folder_uuid ) != NULL )
- {
- LLAppearanceMgr::getInstance()->wearInventoryCategory(category, true, false);
+ LLSD::UUID folder_uuid;
- // *TODOw: This may not be necessary if initial outfit is chosen already -- josh
- gAgent.setOutfitChosen(TRUE);
+ if (folder_uuid.isNull() && query_map.has("folder_name"))
+ {
+ std::string outfit_folder_name = query_map["folder_name"];
+ folder_uuid = findDescendentCategoryIDByName(
+ gInventory.getLibraryRootFolderID(),
+ outfit_folder_name);
+ }
+ if (folder_uuid.isNull() && query_map.has("folder_id"))
+ {
+ folder_uuid = query_map["folder_id"].asUUID();
+ }
+
+ if (folder_uuid.notNull())
+ {
+ LLPointer<LLInventoryCategory> category = new LLInventoryCategory(folder_uuid,
+ LLUUID::null,
+ LLFolderType::FT_CLOTHING,
+ "Quick Appearance");
+ if ( gInventory.getCategory( folder_uuid ) != NULL )
+ {
+ LLAppearanceMgr::getInstance()->wearInventoryCategory(category, true, false);
+
+ // *TODOw: This may not be necessary if initial outfit is chosen already -- josh
+ gAgent.setOutfitChosen(TRUE);
+ }
}
// release avatar picker keyboard focus
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 56f306138b..f6b6c71cfc 100755
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -3368,11 +3368,11 @@ LLSD LLAppViewer::getViewerInfo() const
// TODO: Implement media plugin version query
info["QT_WEBKIT_VERSION"] = "4.7.1 (version number hard-coded)";
- if (gPacketsIn > 0)
+ S32 packets_in = LLViewerStats::instance().getRecording().getSum(LLStatViewer::PACKETS_IN);
+ if (packets_in > 0)
{
- LLTrace::Recording& last_frame = LLTrace::get_frame_recording().getLastRecording();
- info["PACKETS_LOST"] = last_frame.getSum(LLStatViewer::PACKETS_LOST);
- info["PACKETS_IN"] = last_frame.getSum(LLStatViewer::PACKETS_IN);
+ info["PACKETS_LOST"] = LLViewerStats::instance().getRecording().getSum(LLStatViewer::PACKETS_LOST);
+ info["PACKETS_IN"] = packets_in;
info["PACKETS_PCT"] = 100.f*info["PACKETS_LOST"].asReal() / info["PACKETS_IN"].asReal();
}
diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp
index dad85a016c..8235b13118 100755
--- a/indra/newview/llavataractions.cpp
+++ b/indra/newview/llavataractions.cpp
@@ -143,7 +143,7 @@ void LLAvatarActions::removeFriendsDialog(const uuid_vec_t& ids)
LLAvatarName av_name;
if(LLAvatarNameCache::get(agent_id, &av_name))
{
- args["NAME"] = av_name.getDisplayName();
+ args["NAME"] = av_name.getCompleteName();
}
msgType = "RemoveFromFriends";
@@ -381,7 +381,7 @@ void LLAvatarActions::showOnMap(const LLUUID& id)
}
gFloaterWorldMap->trackAvatar(id, av_name.getDisplayName());
- LLFloaterReg::showInstance("world_map");
+ LLFloaterReg::showInstance("world_map", "center");
}
// static
@@ -533,6 +533,14 @@ void LLAvatarActions::share(const LLUUID& id)
{
// we should always get here, but check to verify anyways
LLIMModel::getInstance()->addMessage(session_id, SYSTEM_FROM, LLUUID::null, LLTrans::getString("share_alert"), false);
+
+ LLFloaterIMSessionTab* session_floater = LLFloaterIMSessionTab::findConversation(session_id);
+ if (session_floater && session_floater->isMinimized())
+ {
+ session_floater->setMinimized(false);
+ }
+ LLFloaterIMContainer *im_container = LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container");
+ im_container->selectConversationPair(session_id, true);
}
}
diff --git a/indra/newview/lldrawpool.cpp b/indra/newview/lldrawpool.cpp
index 5b151bdcda..f74164aea6 100755
--- a/indra/newview/lldrawpool.cpp
+++ b/indra/newview/lldrawpool.cpp
@@ -443,7 +443,7 @@ void LLRenderPass::pushMaskBatches(U32 type, U32 mask, BOOL texture, BOOL batch_
}
}
-void LLRenderPass::applyModelMatrix(LLDrawInfo& params)
+void LLRenderPass::applyModelMatrix(const LLDrawInfo& params)
{
if (params.mModelMatrix != gGLLastMatrix)
{
diff --git a/indra/newview/lldrawpool.h b/indra/newview/lldrawpool.h
index 3bde0d29be..bc299cc89f 100755
--- a/indra/newview/lldrawpool.h
+++ b/indra/newview/lldrawpool.h
@@ -168,7 +168,7 @@ public:
BOOL isDead() { return FALSE; }
void resetDrawOrders() { }
- static void applyModelMatrix(LLDrawInfo& params);
+ static void applyModelMatrix(const LLDrawInfo& params);
virtual void pushBatches(U32 type, U32 mask, BOOL texture = TRUE, BOOL batch_textures = FALSE);
virtual void pushMaskBatches(U32 type, U32 mask, BOOL texture = TRUE, BOOL batch_textures = FALSE);
virtual void pushBatch(LLDrawInfo& params, U32 mask, BOOL texture, BOOL batch_textures = FALSE);
diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp
index 90e6dfe351..afd5b84537 100755
--- a/indra/newview/lldrawpoolavatar.cpp
+++ b/indra/newview/lldrawpoolavatar.cpp
@@ -375,7 +375,7 @@ void LLDrawPoolAvatar::endPostDeferredAlpha()
void LLDrawPoolAvatar::renderPostDeferred(S32 pass)
{
- const S32 actual_pass[] =
+ static const S32 actual_pass[] =
{ //map post deferred pass numbers to what render() expects
2, //skinned
4, // rigged fullbright
diff --git a/indra/newview/lldrawpoolmaterials.cpp b/indra/newview/lldrawpoolmaterials.cpp
index 514411aef5..f92320490a 100644
--- a/indra/newview/lldrawpoolmaterials.cpp
+++ b/indra/newview/lldrawpoolmaterials.cpp
@@ -96,7 +96,7 @@ void LLDrawPoolMaterials::endDeferredPass(S32 pass)
void LLDrawPoolMaterials::renderDeferred(S32 pass)
{
- U32 type_list[] =
+ static const U32 type_list[] =
{
LLRenderPass::PASS_MATERIAL,
//LLRenderPass::PASS_MATERIAL_ALPHA,
diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp
index 1b3cfb5ebd..6c5b5be720 100755
--- a/indra/newview/llfavoritesbar.cpp
+++ b/indra/newview/llfavoritesbar.cpp
@@ -40,7 +40,6 @@
#include "llagent.h"
#include "llavatarnamecache.h"
#include "llclipboard.h"
-#include "llclipboard.h"
#include "llinventorybridge.h"
#include "llinventoryfunctions.h"
#include "llfloatersidepanelcontainer.h"
@@ -51,7 +50,7 @@
#include "lltoggleablemenu.h"
#include "llviewerinventory.h"
#include "llviewermenu.h"
-#include "llviewermenu.h"
+#include "llviewernetwork.h"
#include "lltooldraganddrop.h"
#include "llsdserialize.h"
@@ -327,6 +326,7 @@ public:
gInventory.updateItem(item);
gInventory.notifyObservers();
+ LLFavoritesOrderStorage::instance().saveOrder();
}
LLView::getWindow()->setCursor(UI_CURSOR_ARROW);
@@ -1452,6 +1452,18 @@ void LLFavoritesOrderStorage::getSLURL(const LLUUID& asset_id)
void LLFavoritesOrderStorage::destroyClass()
{
LLFavoritesOrderStorage::instance().cleanup();
+
+
+ std::string old_filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "stored_favorites.xml");
+ llifstream file;
+ file.open(old_filename);
+ if (file.is_open())
+ {
+ std::string new_filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "stored_favorites_" + LLGridManager::getInstance()->getGrid() + ".xml");
+ LLFile::copy(old_filename,new_filename);
+ LLFile::remove(old_filename);
+ }
+
if (gSavedPerAccountSettings.getBOOL("ShowFavoritesOnLogin"))
{
LLFavoritesOrderStorage::instance().saveFavoritesSLURLs();
@@ -1498,7 +1510,7 @@ void LLFavoritesOrderStorage::saveFavoritesSLURLs()
return;
}
- std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "stored_favorites.xml");
+ std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "stored_favorites_" + LLGridManager::getInstance()->getGrid() + ".xml");
llifstream in_file;
in_file.open(filename);
LLSD fav_llsd;
@@ -1546,7 +1558,7 @@ void LLFavoritesOrderStorage::saveFavoritesSLURLs()
void LLFavoritesOrderStorage::removeFavoritesRecordOfUser()
{
- std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "stored_favorites.xml");
+ std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "stored_favorites_" + LLGridManager::getInstance()->getGrid() + ".xml");
LLSD fav_llsd;
llifstream file;
file.open(filename);
@@ -1641,6 +1653,16 @@ void LLFavoritesOrderStorage::cleanup()
mSortIndexes.swap(aTempMap);
}
+void LLFavoritesOrderStorage::saveOrder()
+{
+ LLInventoryModel::cat_array_t cats;
+ LLInventoryModel::item_array_t items;
+ LLIsType is_type(LLAssetType::AT_LANDMARK);
+ LLUUID favorites_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_FAVORITE);
+ gInventory.collectDescendentsIf(favorites_id, cats, items, LLInventoryModel::EXCLUDE_TRASH, is_type);
+ saveItemsOrder(items);
+}
+
void LLFavoritesOrderStorage::saveItemsOrder( const LLInventoryModel::item_array_t& items )
{
int sortField = 0;
diff --git a/indra/newview/llfavoritesbar.h b/indra/newview/llfavoritesbar.h
index 211d3c4ce3..5ca1d3e8ed 100755
--- a/indra/newview/llfavoritesbar.h
+++ b/indra/newview/llfavoritesbar.h
@@ -203,6 +203,8 @@ public:
// Is used to save order for Favorites folder.
void saveItemsOrder(const LLInventoryModel::item_array_t& items);
+ void saveOrder();
+
void rearrangeFavoriteLandmarks(const LLUUID& source_item_id, const LLUUID& target_item_id);
/**
diff --git a/indra/newview/llfloateravatar.cpp b/indra/newview/llfloateravatar.cpp
index bdc5b581a9..31adf5b61e 100755
--- a/indra/newview/llfloateravatar.cpp
+++ b/indra/newview/llfloateravatar.cpp
@@ -34,6 +34,7 @@
#include "llfloateravatar.h"
#include "lluictrlfactory.h"
+#include "llmediactrl.h"
LLFloaterAvatar::LLFloaterAvatar(const LLSD& key)
@@ -43,6 +44,13 @@ LLFloaterAvatar::LLFloaterAvatar(const LLSD& key)
LLFloaterAvatar::~LLFloaterAvatar()
{
+ LLMediaCtrl* avatar_picker = findChild<LLMediaCtrl>("avatar_picker_contents");
+ if (avatar_picker)
+ {
+ avatar_picker->navigateStop();
+ avatar_picker->clearCache(); //images are reloading each time already
+ avatar_picker->unloadMediaSource();
+ }
}
BOOL LLFloaterAvatar::postBuild()
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp
index be8195b5ee..ab57e8c170 100755
--- a/indra/newview/llfloaterimcontainer.cpp
+++ b/indra/newview/llfloaterimcontainer.cpp
@@ -229,7 +229,9 @@ BOOL LLFloaterIMContainer::postBuild()
mStubCollapseBtn = getChild<LLButton>("stub_collapse_btn");
mStubCollapseBtn->setClickedCallback(boost::bind(&LLFloaterIMContainer::onStubCollapseButtonClicked, this));
mSpeakBtn = getChild<LLButton>("speak_btn");
- mSpeakBtn->setClickedCallback(boost::bind(&LLFloaterIMContainer::onSpeakButtonClicked, this));
+
+ mSpeakBtn->setMouseDownCallback(boost::bind(&LLFloaterIMContainer::onSpeakButtonPressed, this));
+ mSpeakBtn->setMouseUpCallback(boost::bind(&LLFloaterIMContainer::onSpeakButtonReleased, this));
childSetAction("add_btn", boost::bind(&LLFloaterIMContainer::onAddButtonClicked, this));
@@ -352,11 +354,18 @@ void LLFloaterIMContainer::onStubCollapseButtonClicked()
collapseMessagesPane(true);
}
-void LLFloaterIMContainer::onSpeakButtonClicked()
+void LLFloaterIMContainer::onSpeakButtonPressed()
+{
+ LLVoiceClient::getInstance()->inputUserControlState(true);
+ updateSpeakBtnState();
+}
+
+void LLFloaterIMContainer::onSpeakButtonReleased()
{
- LLAgent::toggleMicrophone("speak");
+ LLVoiceClient::getInstance()->inputUserControlState(false);
updateSpeakBtnState();
}
+
void LLFloaterIMContainer::onExpandCollapseButtonClicked()
{
if (mConversationsPane->isCollapsed() && mMessagesPane->isCollapsed()
@@ -1401,6 +1410,10 @@ bool LLFloaterIMContainer::enableContextMenuItem(const std::string& item, uuid_v
{
return is_single_select && LLAvatarActions::canCall();
}
+ else if ("can_open_voice_conversation" == item)
+ {
+ return is_single_select && LLAvatarActions::canCall();
+ }
else if ("can_zoom_in" == item)
{
return is_single_select && gObjectList.findObject(single_id);
diff --git a/indra/newview/llfloaterimcontainer.h b/indra/newview/llfloaterimcontainer.h
index 5ea9fd399b..f21c0b9947 100755
--- a/indra/newview/llfloaterimcontainer.h
+++ b/indra/newview/llfloaterimcontainer.h
@@ -135,7 +135,8 @@ private:
void onExpandCollapseButtonClicked();
void onStubCollapseButtonClicked();
void processParticipantsStyleUpdate();
- void onSpeakButtonClicked();
+ void onSpeakButtonPressed();
+ void onSpeakButtonReleased();
/*virtual*/ void onClickCloseBtn(bool app_quitting = false);
/*virtual*/ void closeHostedFloater();
diff --git a/indra/newview/llfloaterimsession.cpp b/indra/newview/llfloaterimsession.cpp
index 7852a1f7b3..9def253ba5 100755
--- a/indra/newview/llfloaterimsession.cpp
+++ b/indra/newview/llfloaterimsession.cpp
@@ -927,8 +927,7 @@ void LLFloaterIMSession::onInputEditorFocusReceived( LLFocusableElement* caller,
// Allow enabling the LLFloaterIMSession input editor only if session can accept text
LLIMModel::LLIMSession* im_session =
LLIMModel::instance().findIMSession(self->mSessionID);
- //TODO: While disabled lllineeditor can receive focus we need to check if it is enabled (EK)
- if( im_session && im_session->mTextIMPossible && self->mInputEditor->getEnabled())
+ if( im_session && im_session->mTextIMPossible && !self->mInputEditor->getReadOnly())
{
//in disconnected state IM input editor should be disabled
self->mInputEditor->setEnabled(!gDisconnected);
diff --git a/indra/newview/llfloaterimsessiontab.cpp b/indra/newview/llfloaterimsessiontab.cpp
index fbdaca0e6f..2864f018b2 100755
--- a/indra/newview/llfloaterimsessiontab.cpp
+++ b/indra/newview/llfloaterimsessiontab.cpp
@@ -47,7 +47,7 @@
const F32 REFRESH_INTERVAL = 1.0f;
LLFloaterIMSessionTab::LLFloaterIMSessionTab(const LLSD& session_id)
-: LLTransientDockableFloater(NULL, true, session_id),
+: LLTransientDockableFloater(NULL, false, session_id),
mIsP2PChat(false),
mExpandCollapseBtn(NULL),
mTearOffBtn(NULL),
diff --git a/indra/newview/llfloaterlagmeter.cpp b/indra/newview/llfloaterlagmeter.cpp
new file mode 100644
index 0000000000..f72f2631a1
--- /dev/null
+++ b/indra/newview/llfloaterlagmeter.cpp
@@ -0,0 +1,378 @@
+/**
+ * @file llfloaterlagmeter.cpp
+ * @brief The "Lag-o-Meter" floater used to tell users what is causing lag.
+ *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2010, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llfloaterlagmeter.h"
+
+#include "lluictrlfactory.h"
+#include "llviewerstats.h"
+#include "llviewertexture.h"
+#include "llviewercontrol.h"
+#include "llappviewer.h"
+
+#include "lltexturefetch.h"
+
+#include "llbutton.h"
+#include "llfocusmgr.h"
+#include "lltextbox.h"
+
+const std::string LAG_CRITICAL_IMAGE_NAME = "lag_status_critical.tga";
+const std::string LAG_WARNING_IMAGE_NAME = "lag_status_warning.tga";
+const std::string LAG_GOOD_IMAGE_NAME = "lag_status_good.tga";
+
+LLFloaterLagMeter::LLFloaterLagMeter(const LLSD& key)
+ : LLFloater(key)
+{
+ mCommitCallbackRegistrar.add("LagMeter.ClickShrink", boost::bind(&LLFloaterLagMeter::onClickShrink, this));
+}
+
+BOOL LLFloaterLagMeter::postBuild()
+{
+ // Don't let this window take keyboard focus -- it's confusing to
+ // lose arrow-key driving when testing lag.
+ setIsChrome(TRUE);
+
+ // were we shrunk last time?
+ if (isShrunk())
+ {
+ onClickShrink();
+ }
+
+ mClientButton = getChild<LLButton>("client_lagmeter");
+ mClientText = getChild<LLTextBox>("client_text");
+ mClientCause = getChild<LLTextBox>("client_lag_cause");
+
+ mNetworkButton = getChild<LLButton>("network_lagmeter");
+ mNetworkText = getChild<LLTextBox>("network_text");
+ mNetworkCause = getChild<LLTextBox>("network_lag_cause");
+
+ mServerButton = getChild<LLButton>("server_lagmeter");
+ mServerText = getChild<LLTextBox>("server_text");
+ mServerCause = getChild<LLTextBox>("server_lag_cause");
+
+ std::string config_string = getString("client_frame_rate_critical_fps", mStringArgs);
+ mClientFrameTimeCritical = F32Seconds(1.0f / (float)atof( config_string.c_str() ));
+ config_string = getString("client_frame_rate_warning_fps", mStringArgs);
+ mClientFrameTimeWarning = F32Seconds(1.0f / (float)atof( config_string.c_str() ));
+
+ config_string = getString("network_packet_loss_critical_pct", mStringArgs);
+ mNetworkPacketLossCritical = F32Percent((float)atof( config_string.c_str() ));
+ config_string = getString("network_packet_loss_warning_pct", mStringArgs);
+ mNetworkPacketLossWarning = F32Percent((float)atof( config_string.c_str() ));
+
+ config_string = getString("network_ping_critical_ms", mStringArgs);
+ mNetworkPingCritical = F32Milliseconds((float)atof( config_string.c_str() ));
+ config_string = getString("network_ping_warning_ms", mStringArgs);
+ mNetworkPingWarning = F32Milliseconds((float)atof( config_string.c_str() ));
+ config_string = getString("server_frame_rate_critical_fps", mStringArgs);
+
+ mServerFrameTimeCritical = F32Seconds(1.0f / (float)atof( config_string.c_str() ));
+ config_string = getString("server_frame_rate_warning_fps", mStringArgs);
+ mServerFrameTimeWarning = F32Seconds(1.0f / (float)atof( config_string.c_str() ));
+ config_string = getString("server_single_process_max_time_ms", mStringArgs);
+ mServerSingleProcessMaxTime = F32Seconds((float)atof( config_string.c_str() ));
+
+// mShrunk = false;
+ config_string = getString("max_width_px", mStringArgs);
+ mMaxWidth = atoi( config_string.c_str() );
+ config_string = getString("min_width_px", mStringArgs);
+ mMinWidth = atoi( config_string.c_str() );
+
+ mStringArgs["[CLIENT_FRAME_RATE_CRITICAL]"] = getString("client_frame_rate_critical_fps");
+ mStringArgs["[CLIENT_FRAME_RATE_WARNING]"] = getString("client_frame_rate_warning_fps");
+
+ mStringArgs["[NETWORK_PACKET_LOSS_CRITICAL]"] = getString("network_packet_loss_critical_pct");
+ mStringArgs["[NETWORK_PACKET_LOSS_WARNING]"] = getString("network_packet_loss_warning_pct");
+
+ mStringArgs["[NETWORK_PING_CRITICAL]"] = getString("network_ping_critical_ms");
+ mStringArgs["[NETWORK_PING_WARNING]"] = getString("network_ping_warning_ms");
+
+ mStringArgs["[SERVER_FRAME_RATE_CRITICAL]"] = getString("server_frame_rate_critical_fps");
+ mStringArgs["[SERVER_FRAME_RATE_WARNING]"] = getString("server_frame_rate_warning_fps");
+
+// childSetAction("minimize", onClickShrink, this);
+ updateControls(isShrunk()); // if expanded append colon to the labels (EXT-4079)
+
+ return TRUE;
+}
+LLFloaterLagMeter::~LLFloaterLagMeter()
+{
+ // save shrunk status for next time
+// gSavedSettings.setBOOL("LagMeterShrunk", mShrunk);
+ // expand so we save the large window rectangle
+ if (isShrunk())
+ {
+ onClickShrink();
+ }
+}
+
+void LLFloaterLagMeter::draw()
+{
+ determineClient();
+ determineNetwork();
+ determineServer();
+
+ LLFloater::draw();
+}
+
+void LLFloaterLagMeter::determineClient()
+{
+ F32Milliseconds client_frame_time = LLTrace::get_frame_recording().getPeriodMean(LLStatViewer::FRAME_STACKTIME);
+ bool find_cause = false;
+
+ if (!gFocusMgr.getAppHasFocus())
+ {
+ mClientButton->setImageUnselected(LLUI::getUIImage(LAG_GOOD_IMAGE_NAME));
+ mClientText->setText( getString("client_frame_time_window_bg_msg", mStringArgs) );
+ mClientCause->setText( LLStringUtil::null );
+ }
+ else if(client_frame_time >= mClientFrameTimeCritical)
+ {
+ mClientButton->setImageUnselected(LLUI::getUIImage(LAG_CRITICAL_IMAGE_NAME));
+ mClientText->setText( getString("client_frame_time_critical_msg", mStringArgs) );
+ find_cause = true;
+ }
+ else if(client_frame_time >= mClientFrameTimeWarning)
+ {
+ mClientButton->setImageUnselected(LLUI::getUIImage(LAG_WARNING_IMAGE_NAME));
+ mClientText->setText( getString("client_frame_time_warning_msg", mStringArgs) );
+ find_cause = true;
+ }
+ else
+ {
+ mClientButton->setImageUnselected(LLUI::getUIImage(LAG_GOOD_IMAGE_NAME));
+ mClientText->setText( getString("client_frame_time_normal_msg", mStringArgs) );
+ mClientCause->setText( LLStringUtil::null );
+ }
+
+ if(find_cause)
+ {
+ if(gSavedSettings.getF32("RenderFarClip") > 128)
+ {
+ mClientCause->setText( getString("client_draw_distance_cause_msg", mStringArgs) );
+ }
+ else if(LLAppViewer::instance()->getTextureFetch()->getNumRequests() > 2)
+ {
+ mClientCause->setText( getString("client_texture_loading_cause_msg", mStringArgs) );
+ }
+ else if(LLViewerTexture::sBoundTextureMemory > LLViewerTexture::sMaxBoundTextureMemory)
+ {
+ mClientCause->setText( getString("client_texture_memory_cause_msg", mStringArgs) );
+ }
+ else
+ {
+ mClientCause->setText( getString("client_complex_objects_cause_msg", mStringArgs) );
+ }
+ }
+}
+
+void LLFloaterLagMeter::determineNetwork()
+{
+ LLTrace::PeriodicRecording& frame_recording = LLTrace::get_frame_recording();
+ F32Percent packet_loss = frame_recording.getPeriodMean(LLStatViewer::PACKETS_LOST_PERCENT);
+ F32Milliseconds ping_time = frame_recording.getPeriodMean(LLStatViewer::SIM_PING);
+ bool find_cause_loss = false;
+ bool find_cause_ping = false;
+
+ // *FIXME: We can't blame a large ping time on anything in
+ // particular if the frame rate is low, because a low frame
+ // rate is a sure recipe for bad ping times right now until
+ // the network handlers are de-synched from the rendering.
+ F32Milliseconds client_frame_time = frame_recording.getPeriodMean(LLStatViewer::FRAME_STACKTIME);
+
+ if(packet_loss >= mNetworkPacketLossCritical)
+ {
+ mNetworkButton->setImageUnselected(LLUI::getUIImage(LAG_CRITICAL_IMAGE_NAME));
+ mNetworkText->setText( getString("network_packet_loss_critical_msg", mStringArgs) );
+ find_cause_loss = true;
+ }
+ else if(ping_time >= mNetworkPingCritical)
+ {
+ mNetworkButton->setImageUnselected(LLUI::getUIImage(LAG_CRITICAL_IMAGE_NAME));
+ if (client_frame_time < mNetworkPingCritical)
+ {
+ mNetworkText->setText( getString("network_ping_critical_msg", mStringArgs) );
+ find_cause_ping = true;
+ }
+ }
+ else if(packet_loss >= mNetworkPacketLossWarning)
+ {
+ mNetworkButton->setImageUnselected(LLUI::getUIImage(LAG_WARNING_IMAGE_NAME));
+ mNetworkText->setText( getString("network_packet_loss_warning_msg", mStringArgs) );
+ find_cause_loss = true;
+ }
+ else if(ping_time >= mNetworkPingWarning)
+ {
+ mNetworkButton->setImageUnselected(LLUI::getUIImage(LAG_WARNING_IMAGE_NAME));
+ if (client_frame_time < mNetworkPingWarning)
+ {
+ mNetworkText->setText( getString("network_ping_warning_msg", mStringArgs) );
+ find_cause_ping = true;
+ }
+ }
+ else
+ {
+ mNetworkButton->setImageUnselected(LLUI::getUIImage(LAG_GOOD_IMAGE_NAME));
+ mNetworkText->setText( getString("network_performance_normal_msg", mStringArgs) );
+ }
+
+ if(find_cause_loss)
+ {
+ mNetworkCause->setText( getString("network_packet_loss_cause_msg", mStringArgs) );
+ }
+ else if(find_cause_ping)
+ {
+ mNetworkCause->setText( getString("network_ping_cause_msg", mStringArgs) );
+ }
+ else
+ {
+ mNetworkCause->setText( LLStringUtil::null );
+ }
+}
+
+void LLFloaterLagMeter::determineServer()
+{
+ F32Milliseconds sim_frame_time = LLTrace::get_frame_recording().getLastRecording().getLastValue(LLStatViewer::SIM_FRAME_TIME);
+ bool find_cause = false;
+
+ if(sim_frame_time >= mServerFrameTimeCritical)
+ {
+ mServerButton->setImageUnselected(LLUI::getUIImage(LAG_CRITICAL_IMAGE_NAME));
+ mServerText->setText( getString("server_frame_time_critical_msg", mStringArgs) );
+ find_cause = true;
+ }
+ else if(sim_frame_time >= mServerFrameTimeWarning)
+ {
+ mServerButton->setImageUnselected(LLUI::getUIImage(LAG_WARNING_IMAGE_NAME));
+ mServerText->setText( getString("server_frame_time_warning_msg", mStringArgs) );
+ find_cause = true;
+ }
+ else
+ {
+ mServerButton->setImageUnselected(LLUI::getUIImage(LAG_GOOD_IMAGE_NAME));
+ mServerText->setText( getString("server_frame_time_normal_msg", mStringArgs) );
+ mServerCause->setText( LLStringUtil::null );
+ }
+
+ if(find_cause)
+ {
+ LLTrace::Recording& last_recording = LLTrace::get_frame_recording().getLastRecording();
+
+ if(last_recording.getLastValue(LLStatViewer::SIM_PHYSICS_TIME) > mServerSingleProcessMaxTime)
+ {
+ mServerCause->setText( getString("server_physics_cause_msg", mStringArgs) );
+ }
+ else if(last_recording.getLastValue(LLStatViewer::SIM_SCRIPTS_TIME) > mServerSingleProcessMaxTime)
+ {
+ mServerCause->setText( getString("server_scripts_cause_msg", mStringArgs) );
+ }
+ else if(last_recording.getLastValue(LLStatViewer::SIM_NET_TIME) > mServerSingleProcessMaxTime)
+ {
+ mServerCause->setText( getString("server_net_cause_msg", mStringArgs) );
+ }
+ else if(last_recording.getLastValue(LLStatViewer::SIM_AGENTS_TIME) > mServerSingleProcessMaxTime)
+ {
+ mServerCause->setText( getString("server_agent_cause_msg", mStringArgs) );
+ }
+ else if(last_recording.getLastValue(LLStatViewer::SIM_IMAGES_TIME) > mServerSingleProcessMaxTime)
+ {
+ mServerCause->setText( getString("server_images_cause_msg", mStringArgs) );
+ }
+ else
+ {
+ mServerCause->setText( getString("server_generic_cause_msg", mStringArgs) );
+ }
+ }
+}
+
+void LLFloaterLagMeter::updateControls(bool shrink)
+{
+// LLFloaterLagMeter * self = (LLFloaterLagMeter*)data;
+
+ LLButton * button = getChild<LLButton>("minimize");
+ S32 delta_width = mMaxWidth -mMinWidth;
+ LLRect r = getRect();
+
+ if(!shrink)
+ {
+ setTitle(getString("max_title_msg", mStringArgs) );
+ // make left edge appear to expand
+ r.translate(-delta_width, 0);
+ setRect(r);
+ reshape(mMaxWidth, getRect().getHeight());
+
+ getChild<LLUICtrl>("client")->setValue(getString("client_text_msg", mStringArgs) + ":");
+ getChild<LLUICtrl>("network")->setValue(getString("network_text_msg",mStringArgs) + ":");
+ getChild<LLUICtrl>("server")->setValue(getString("server_text_msg", mStringArgs) + ":");
+
+ // usually "<<"
+ button->setLabel( getString("smaller_label", mStringArgs) );
+ }
+ else
+ {
+ setTitle( getString("min_title_msg", mStringArgs) );
+ // make left edge appear to collapse
+ r.translate(delta_width, 0);
+ setRect(r);
+ reshape(mMinWidth, getRect().getHeight());
+
+ getChild<LLUICtrl>("client")->setValue(getString("client_text_msg", mStringArgs) );
+ getChild<LLUICtrl>("network")->setValue(getString("network_text_msg",mStringArgs) );
+ getChild<LLUICtrl>("server")->setValue(getString("server_text_msg", mStringArgs) );
+
+ // usually ">>"
+ button->setLabel( getString("bigger_label", mStringArgs) );
+ }
+ // Don't put keyboard focus on the button
+ button->setFocus(FALSE);
+
+// self->mClientText->setVisible(self->mShrunk);
+// self->mClientCause->setVisible(self->mShrunk);
+// self->getChildView("client_help")->setVisible( self->mShrunk);
+
+// self->mNetworkText->setVisible(self->mShrunk);
+// self->mNetworkCause->setVisible(self->mShrunk);
+// self->getChildView("network_help")->setVisible( self->mShrunk);
+
+// self->mServerText->setVisible(self->mShrunk);
+// self->mServerCause->setVisible(self->mShrunk);
+// self->getChildView("server_help")->setVisible( self->mShrunk);
+
+// self->mShrunk = !self->mShrunk;
+}
+
+BOOL LLFloaterLagMeter::isShrunk()
+{
+ return gSavedSettings.getBOOL("LagMeterShrunk");
+}
+
+void LLFloaterLagMeter::onClickShrink() // toggle "LagMeterShrunk"
+{
+ bool shrunk = isShrunk();
+ updateControls(!shrunk);
+ gSavedSettings.setBOOL("LagMeterShrunk", !shrunk);
+}
diff --git a/indra/newview/llfloaterlagmeter.h b/indra/newview/llfloaterlagmeter.h
new file mode 100644
index 0000000000..929ea40629
--- /dev/null
+++ b/indra/newview/llfloaterlagmeter.h
@@ -0,0 +1,80 @@
+/**
+ * @file llfloaterlagmeter.h
+ * @brief The "Lag-o-Meter" floater used to tell users what is causing lag.
+ *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2010, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef LLFLOATERLAGMETER_H
+#define LLFLOATERLAGMETER_H
+
+#include "llfloater.h"
+
+class LLTextBox;
+
+class LLFloaterLagMeter : public LLFloater
+{
+ friend class LLFloaterReg;
+
+public:
+ /*virtual*/ void draw();
+ /*virtual*/ BOOL postBuild();
+private:
+
+ LLFloaterLagMeter(const LLSD& key);
+ /*virtual*/ ~LLFloaterLagMeter();
+ void determineClient();
+ void determineNetwork();
+ void determineServer();
+ void updateControls(bool shrink);
+ BOOL isShrunk();
+
+ void onClickShrink();
+
+ bool mShrunk;
+ S32 mMaxWidth, mMinWidth;
+
+ F32Milliseconds mClientFrameTimeCritical;
+ F32Milliseconds mClientFrameTimeWarning;
+ LLButton* mClientButton;
+ LLTextBox* mClientText;
+ LLTextBox* mClientCause;
+
+ F32Percent mNetworkPacketLossCritical;
+ F32Percent mNetworkPacketLossWarning;
+ F32Milliseconds mNetworkPingCritical;
+ F32Milliseconds mNetworkPingWarning;
+ LLButton* mNetworkButton;
+ LLTextBox* mNetworkText;
+ LLTextBox* mNetworkCause;
+
+ F32Milliseconds mServerFrameTimeCritical;
+ F32Milliseconds mServerFrameTimeWarning;
+ F32Milliseconds mServerSingleProcessMaxTime;
+ LLButton* mServerButton;
+ LLTextBox* mServerText;
+ LLTextBox* mServerCause;
+
+ LLStringUtil::format_map_t mStringArgs;
+};
+
+#endif
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index d01c089eaf..7621c35ed2 100755
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -2781,10 +2781,16 @@ void LLPanelLandAccess::callbackAvatarCBAccess(const uuid_vec_t& ids)
{
LLUUID id = ids[0];
LLParcel* parcel = mParcel->getParcel();
- if (parcel)
+ if (parcel && parcel->addToAccessList(id, 0))
{
- parcel->addToAccessList(id, 0);
- LLViewerParcelMgr::getInstance()->sendParcelAccessListUpdate(AL_ACCESS);
+ U32 lists_to_update = AL_ACCESS;
+ // agent was successfully added to access list
+ // but we also need to check ban list to ensure that agent will not be in two lists simultaneously
+ if(parcel->removeFromBanList(id))
+ {
+ lists_to_update |= AL_BAN;
+ }
+ LLViewerParcelMgr::getInstance()->sendParcelAccessListUpdate(lists_to_update);
refresh();
}
}
@@ -2833,10 +2839,16 @@ void LLPanelLandAccess::callbackAvatarCBBanned(const uuid_vec_t& ids)
{
LLUUID id = ids[0];
LLParcel* parcel = mParcel->getParcel();
- if (parcel)
+ if (parcel && parcel->addToBanList(id, 0))
{
- parcel->addToBanList(id, 0);
- LLViewerParcelMgr::getInstance()->sendParcelAccessListUpdate(AL_BAN);
+ U32 lists_to_update = AL_BAN;
+ // agent was successfully added to ban list
+ // but we also need to check access list to ensure that agent will not be in two lists simultaneously
+ if (parcel->removeFromAccessList(id))
+ {
+ lists_to_update |= AL_ACCESS;
+ }
+ LLViewerParcelMgr::getInstance()->sendParcelAccessListUpdate(lists_to_update);
refresh();
}
}
diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp
index b17ce97a2e..195a7f5ffe 100755
--- a/indra/newview/llfloatermodelpreview.cpp
+++ b/indra/newview/llfloatermodelpreview.cpp
@@ -1935,7 +1935,7 @@ bool LLModelLoader::doLoadModel()
LLJoint* pJoint = mPreview->getPreviewAvatar()->getJoint( lookingForJoint );
if ( pJoint )
{
- pJoint->storeCurrentXform( jointTransform.getTranslation() );
+ pJoint->addAttachmentPosOverride( jointTransform.getTranslation(), mFilename);
}
else
{
diff --git a/indra/newview/llfloaternotificationsconsole.cpp b/indra/newview/llfloaternotificationsconsole.cpp
index c21e4ff7e8..fd03efa061 100755
--- a/indra/newview/llfloaternotificationsconsole.cpp
+++ b/indra/newview/llfloaternotificationsconsole.cpp
@@ -41,6 +41,7 @@ class LLNotificationChannelPanel : public LLLayoutPanel
{
public:
LLNotificationChannelPanel(const Params& p);
+ ~LLNotificationChannelPanel();
BOOL postBuild();
private:
@@ -57,6 +58,20 @@ LLNotificationChannelPanel::LLNotificationChannelPanel(const LLNotificationChann
buildFromFile( "panel_notifications_channel.xml");
}
+LLNotificationChannelPanel::~LLNotificationChannelPanel()
+{
+ // Userdata for all records is a LLNotification* we need to clean up
+ std::vector<LLScrollListItem*> data_list = getChild<LLScrollListCtrl>("notifications_list")->getAllData();
+ std::vector<LLScrollListItem*>::iterator data_itor;
+ for (data_itor = data_list.begin(); data_itor != data_list.end(); ++data_itor)
+ {
+ LLScrollListItem* item = *data_itor;
+ LLNotification* notification = (LLNotification*)item->getUserdata();
+ delete notification;
+ notification = NULL;
+ }
+}
+
BOOL LLNotificationChannelPanel::postBuild()
{
LLButton* header_button = getChild<LLButton>("header");
@@ -124,7 +139,7 @@ bool LLNotificationChannelPanel::update(const LLSD& payload)
row["columns"][2]["type"] = "date";
LLScrollListItem* sli = getChild<LLScrollListCtrl>("notifications_list")->addElement(row);
- sli->setUserdata(&(*notification));
+ sli->setUserdata(new LLNotification(notification->asLLSD()));
}
return false;
diff --git a/indra/newview/llfloateropenobject.cpp b/indra/newview/llfloateropenobject.cpp
index 9986bdbd7f..ef746d308d 100755
--- a/indra/newview/llfloateropenobject.cpp
+++ b/indra/newview/llfloateropenobject.cpp
@@ -58,6 +58,8 @@ LLFloaterOpenObject::LLFloaterOpenObject(const LLSD& key)
{
mCommitCallbackRegistrar.add("OpenObject.MoveToInventory", boost::bind(&LLFloaterOpenObject::onClickMoveToInventory, this));
mCommitCallbackRegistrar.add("OpenObject.MoveAndWear", boost::bind(&LLFloaterOpenObject::onClickMoveAndWear, this));
+ mCommitCallbackRegistrar.add("OpenObject.ReplaceOutfit", boost::bind(&LLFloaterOpenObject::onClickReplace, this));
+ mCommitCallbackRegistrar.add("OpenObject.Cancel", boost::bind(&LLFloaterOpenObject::onClickCancel, this));
}
LLFloaterOpenObject::~LLFloaterOpenObject()
@@ -115,6 +117,7 @@ void LLFloaterOpenObject::refresh()
getChild<LLUICtrl>("object_name")->setTextArg("[DESC]", name);
getChildView("copy_to_inventory_button")->setEnabled(enabled);
getChildView("copy_and_wear_button")->setEnabled(enabled);
+ getChildView("copy_and_replace_button")->setEnabled(enabled);
}
@@ -135,7 +138,7 @@ void LLFloaterOpenObject::dirty()
-void LLFloaterOpenObject::moveToInventory(bool wear)
+void LLFloaterOpenObject::moveToInventory(bool wear, bool replace)
{
if (mObjectSelection->getRootObjectCount() != 1)
{
@@ -163,7 +166,7 @@ void LLFloaterOpenObject::moveToInventory(bool wear)
parent_category_id = gInventory.getRootFolderID();
}
- inventory_func_type func = boost::bind(LLFloaterOpenObject::callbackCreateInventoryCategory,_1,object_id,wear);
+ inventory_func_type func = boost::bind(LLFloaterOpenObject::callbackCreateInventoryCategory,_1,object_id,wear,replace);
LLUUID category_id = gInventory.createNewCategory(parent_category_id,
LLFolderType::FT_NONE,
name,
@@ -177,6 +180,7 @@ void LLFloaterOpenObject::moveToInventory(bool wear)
data->mCatID = category_id;
data->mWear = wear;
data->mFolderResponded = false;
+ data->mReplace = replace;
// Copy and/or move the items into the newly created folder.
// Ignore any "you're going to break this item" messages.
@@ -194,13 +198,14 @@ void LLFloaterOpenObject::moveToInventory(bool wear)
}
// static
-void LLFloaterOpenObject::callbackCreateInventoryCategory(const LLUUID& category_id, LLUUID object_id, bool wear)
+void LLFloaterOpenObject::callbackCreateInventoryCategory(const LLUUID& category_id, LLUUID object_id, bool wear, bool replace)
{
LLCatAndWear* wear_data = new LLCatAndWear;
wear_data->mCatID = category_id;
wear_data->mWear = wear;
wear_data->mFolderResponded = true;
+ wear_data->mReplace = replace;
// Copy and/or move the items into the newly created folder.
// Ignore any "you're going to break this item" messages.
@@ -241,7 +246,17 @@ void LLFloaterOpenObject::onClickMoveToInventory()
void LLFloaterOpenObject::onClickMoveAndWear()
{
- moveToInventory(true);
+ moveToInventory(true, false);
closeFloater();
}
+void LLFloaterOpenObject::onClickReplace()
+{
+ moveToInventory(true, true);
+ closeFloater();
+}
+
+void LLFloaterOpenObject::onClickCancel()
+{
+ closeFloater();
+}
diff --git a/indra/newview/llfloateropenobject.h b/indra/newview/llfloateropenobject.h
index 8e472804a4..2e761f99bf 100755
--- a/indra/newview/llfloateropenobject.h
+++ b/indra/newview/llfloateropenobject.h
@@ -50,6 +50,7 @@ public:
LLUUID mCatID;
bool mWear;
bool mFolderResponded;
+ bool mReplace;
};
protected:
@@ -59,11 +60,13 @@ protected:
void draw();
virtual void onOpen(const LLSD& key);
- void moveToInventory(bool wear);
+ void moveToInventory(bool wear, bool replace = false);
void onClickMoveToInventory();
void onClickMoveAndWear();
- static void callbackCreateInventoryCategory(const LLUUID& category_id, LLUUID object_id, bool wear);
+ void onClickReplace();
+ void onClickCancel();
+ static void callbackCreateInventoryCategory(const LLUUID& category_id, LLUUID object_id, bool wear, bool replace = false);
static void callbackMoveInventory(S32 result, void* data);
private:
diff --git a/indra/newview/llfloaterpay.cpp b/indra/newview/llfloaterpay.cpp
index f0c010b545..a4d13ce1d5 100755
--- a/indra/newview/llfloaterpay.cpp
+++ b/indra/newview/llfloaterpay.cpp
@@ -40,8 +40,10 @@
#include "lltextbox.h"
#include "lllineeditor.h"
#include "llmutelist.h"
+#include "llnotificationsutil.h"
#include "llfloaterreporter.h"
#include "llslurl.h"
+#include "llstatusbar.h"
#include "llviewerobject.h"
#include "llviewerobjectlist.h"
#include "llviewerregion.h"
@@ -90,6 +92,9 @@ public:
static void payDirectly(money_callback callback,
const LLUUID& target_id,
bool is_group);
+ static bool payConfirmationCallback(const LLSD& notification,
+ const LLSD& response,
+ LLGiveMoneyInfo* info);
private:
static void onCancel(void* data);
@@ -111,14 +116,12 @@ protected:
LLGiveMoneyInfo* mQuickPayInfo[MAX_PAY_BUTTONS];
LLSafeHandle<LLObjectSelection> mObjectSelection;
-
- static S32 sLastAmount;
};
-S32 LLFloaterPay::sLastAmount = 0;
const S32 MAX_AMOUNT_LENGTH = 10;
const S32 FASTPAY_BUTTON_WIDTH = 80;
+const S32 PAY_AMOUNT_NOTIFICATION = 200;
LLFloaterPay::LLFloaterPay(const LLSD& key)
: LLFloater(key),
@@ -188,17 +191,9 @@ BOOL LLFloaterPay::postBuild()
getChildView("amount text")->setVisible(FALSE);
-
- std::string last_amount;
- if(sLastAmount > 0)
- {
- last_amount = llformat("%d", sLastAmount);
- }
-
getChildView("amount")->setVisible(FALSE);
getChild<LLLineEditor>("amount")->setKeystrokeCallback(&LLFloaterPay::onKeystroke, this);
- getChild<LLUICtrl>("amount")->setValue(last_amount);
getChild<LLLineEditor>("amount")->setPrevalidate(LLTextValidate::validateNonNegativeS32);
info = new LLGiveMoneyInfo(this, 0);
@@ -207,7 +202,7 @@ BOOL LLFloaterPay::postBuild()
childSetAction("pay btn",&LLFloaterPay::onGive,info);
setDefaultBtn("pay btn");
getChildView("pay btn")->setVisible(FALSE);
- getChildView("pay btn")->setEnabled((sLastAmount > 0));
+ getChildView("pay btn")->setEnabled(FALSE);
childSetAction("cancel btn",&LLFloaterPay::onCancel,this);
@@ -419,7 +414,24 @@ void LLFloaterPay::payDirectly(money_callback callback,
floater->finishPayUI(target_id, is_group);
}
-
+
+bool LLFloaterPay::payConfirmationCallback(const LLSD& notification, const LLSD& response, LLGiveMoneyInfo* info)
+{
+ if (!info || !info->mFloater)
+ {
+ return false;
+ }
+
+ S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
+ if (option == 0)
+ {
+ info->mFloater->give(info->mAmount);
+ info->mFloater->closeFloater();
+ }
+
+ return false;
+}
+
void LLFloaterPay::finishPayUI(const LLUUID& target_id, BOOL is_group)
{
std::string slurl;
@@ -470,10 +482,40 @@ void LLFloaterPay::onKeystroke(LLLineEditor*, void* data)
void LLFloaterPay::onGive(void* data)
{
LLGiveMoneyInfo* info = reinterpret_cast<LLGiveMoneyInfo*>(data);
- if(info && info->mFloater)
+ LLFloaterPay* floater = info->mFloater;
+ if(info && floater)
{
- info->mFloater->give(info->mAmount);
- info->mFloater->closeFloater();
+ S32 amount = info->mAmount;
+ if(amount == 0)
+ {
+ amount = atoi(floater->getChild<LLUICtrl>("amount")->getValue().asString().c_str());
+ }
+ if (amount > PAY_AMOUNT_NOTIFICATION && gStatusBar && gStatusBar->getBalance() > amount)
+ {
+ LLUUID payee_id;
+ BOOL is_group;
+ if (floater->mObjectSelection.notNull())
+ {
+ LLSelectNode* node = floater->mObjectSelection->getFirstRootNode();
+ node->mPermissions->getOwnership(payee_id, is_group);
+ }
+ else
+ {
+ is_group = floater->mTargetIsGroup;
+ payee_id = floater->mTargetUUID;
+ }
+
+ LLSD args;
+ args["TARGET"] = LLSLURL( is_group ? "group" : "agent", payee_id, "completename").getSLURLString();
+ args["AMOUNT"] = amount;
+
+ LLNotificationsUtil::add("PayConfirmation", args, LLSD(), boost::bind(&LLFloaterPay::payConfirmationCallback, _1, _2, info));
+ }
+ else
+ {
+ floater->give(amount);
+ floater->closeFloater();
+ }
}
}
@@ -487,7 +529,6 @@ void LLFloaterPay::give(S32 amount)
{
amount = atoi(getChild<LLUICtrl>("amount")->getValue().asString().c_str());
}
- sLastAmount = amount;
// Try to pay an object.
if (mObjectSelection.notNull())
diff --git a/indra/newview/llfloatersidepanelcontainer.cpp b/indra/newview/llfloatersidepanelcontainer.cpp
index c5248719e9..aee20ff706 100755
--- a/indra/newview/llfloatersidepanelcontainer.cpp
+++ b/indra/newview/llfloatersidepanelcontainer.cpp
@@ -57,7 +57,7 @@ void LLFloaterSidePanelContainer::onOpen(const LLSD& key)
getChild<LLPanel>(sMainPanelName)->onOpen(key);
}
-void LLFloaterSidePanelContainer::onClickCloseBtn(bool)
+void LLFloaterSidePanelContainer::closeFloater(bool app_quitting)
{
LLPanelOutfitEdit* panel_outfit_edit =
dynamic_cast<LLPanelOutfitEdit*>(LLFloaterSidePanelContainer::getPanel("appearance", "panel_outfit_edit"));
@@ -75,7 +75,7 @@ void LLFloaterSidePanelContainer::onClickCloseBtn(bool)
}
}
- LLFloater::onClickCloseBtn();
+ LLFloater::closeFloater(app_quitting);
}
LLPanel* LLFloaterSidePanelContainer::openChildPanel(const std::string& panel_name, const LLSD& params)
diff --git a/indra/newview/llfloatersidepanelcontainer.h b/indra/newview/llfloatersidepanelcontainer.h
index 13b17e8867..d7ecd52e57 100755
--- a/indra/newview/llfloatersidepanelcontainer.h
+++ b/indra/newview/llfloatersidepanelcontainer.h
@@ -51,7 +51,7 @@ public:
/*virtual*/ void onOpen(const LLSD& key);
- /*virtual*/ void onClickCloseBtn(bool app_quitting = false);
+ /*virtual*/ void closeFloater(bool app_quitting = false);
LLPanel* openChildPanel(const std::string& panel_name, const LLSD& params);
diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp
index bd5d2207b4..7477b02867 100755
--- a/indra/newview/llfloatertools.cpp
+++ b/indra/newview/llfloatertools.cpp
@@ -888,6 +888,9 @@ void LLFloaterTools::onClose(bool app_quitting)
// hide the advanced object weights floater
LLFloaterReg::hideInstance("object_weights");
+
+ // prepare content for next call
+ mPanelContents->clearContents();
}
void click_popup_info(void*)
diff --git a/indra/newview/llfloaterurlentry.cpp b/indra/newview/llfloaterurlentry.cpp
index e26f1e9ea5..e02e8eeb5a 100755
--- a/indra/newview/llfloaterurlentry.cpp
+++ b/indra/newview/llfloaterurlentry.cpp
@@ -204,6 +204,10 @@ void LLFloaterURLEntry::onBtnOK( void* userdata )
LLURLHistory::addURL("parcel", media_url);
}
+ // show progress bar here?
+ getWindow()->incBusyCount();
+ self->getChildView("loading_label")->setVisible( true);
+
// leading whitespace causes problems with the MIME-type detection so strip it
LLStringUtil::trim( media_url );
@@ -233,10 +237,6 @@ void LLFloaterURLEntry::onBtnOK( void* userdata )
self->getChildView("ok_btn")->setEnabled(false);
self->getChildView("cancel_btn")->setEnabled(false);
self->getChildView("media_entry")->setEnabled(false);
-
- // show progress bar here?
- getWindow()->incBusyCount();
- self->getChildView("loading_label")->setVisible( true);
}
// static
diff --git a/indra/newview/llfloaterwebcontent.cpp b/indra/newview/llfloaterwebcontent.cpp
index 7f599073d5..024e315632 100755
--- a/indra/newview/llfloaterwebcontent.cpp
+++ b/indra/newview/llfloaterwebcontent.cpp
@@ -293,7 +293,8 @@ void LLFloaterWebContent::onOpen(const LLSD& key)
void LLFloaterWebContent::onClose(bool app_quitting)
{
// If we close the web browsing window showing the facebook login, we need to signal to this object that the connection will not happen
- LLFloater* fbc_web = LLFloaterReg::getInstance("fbc_web");
+ // MAINT-3440 note change here to use findInstance and not getInstance - latter creates an instance if it's not there which is bad.
+ LLFloater* fbc_web = LLFloaterReg::findInstance("fbc_web");
if (fbc_web == this)
{
if (!LLFacebookConnect::instance().isConnected())
@@ -302,7 +303,8 @@ void LLFloaterWebContent::onClose(bool app_quitting)
}
}
// Same with Flickr
- LLFloater* flickr_web = LLFloaterReg::getInstance("flickr_web");
+ // MAINT-3440 note change here to use findInstance and not getInstance - latter creates an instance if it's not there which is bad.
+ LLFloater* flickr_web = LLFloaterReg::findInstance("flickr_web");
if (flickr_web == this)
{
if (!LLFlickrConnect::instance().isConnected())
@@ -311,7 +313,8 @@ void LLFloaterWebContent::onClose(bool app_quitting)
}
}
// And Twitter
- LLFloater* twitter_web = LLFloaterReg::getInstance("twitter_web");
+ // MAINT-3440 note change here to use findInstance and not getInstance - latter creates an instance if it's not there which is bad.
+ LLFloater* twitter_web = LLFloaterReg::findInstance("twitter_web");
if (twitter_web == this)
{
if (!LLTwitterConnect::instance().isConnected())
diff --git a/indra/newview/llfolderviewmodelinventory.cpp b/indra/newview/llfolderviewmodelinventory.cpp
index 7339398fa5..3271a40ea0 100755
--- a/indra/newview/llfolderviewmodelinventory.cpp
+++ b/indra/newview/llfolderviewmodelinventory.cpp
@@ -129,13 +129,18 @@ void LLFolderViewModelItemInventory::requestSort()
void LLFolderViewModelItemInventory::setPassedFilter(bool passed, S32 filter_generation, std::string::size_type string_offset, std::string::size_type string_size)
{
+ bool generation_skip = mMarkedDirtyGeneration >= 0
+ && mPrevPassedAllFilters
+ && mMarkedDirtyGeneration < mRootViewModel.getFilter().getFirstSuccessGeneration();
LLFolderViewModelItemCommon::setPassedFilter(passed, filter_generation, string_offset, string_size);
bool before = mPrevPassedAllFilters;
mPrevPassedAllFilters = passedFilter(filter_generation);
- if (before != mPrevPassedAllFilters)
+ if (before != mPrevPassedAllFilters || generation_skip)
{
- // Need to rearrange the folder if the filtered state of the item changed
+ // Need to rearrange the folder if the filtered state of the item changed,
+ // previously passed item skipped filter generation changes while being dirty
+ // or previously passed not yet filtered item was marked dirty
LLFolderViewFolder* parent_folder = mFolderViewItem->getParentFolder();
if (parent_folder)
{
@@ -144,6 +149,9 @@ void LLFolderViewModelItemInventory::setPassedFilter(bool passed, S32 filter_gen
}
}
+
+
+
bool LLFolderViewModelItemInventory::filterChildItem( LLFolderViewModelItem* item, LLFolderViewFilter& filter )
{
S32 filter_generation = filter.getCurrentGeneration();
diff --git a/indra/newview/llgesturemgr.cpp b/indra/newview/llgesturemgr.cpp
index b15556d73d..119872ec29 100755
--- a/indra/newview/llgesturemgr.cpp
+++ b/indra/newview/llgesturemgr.cpp
@@ -1406,7 +1406,7 @@ BOOL LLGestureMgr::matchPrefix(const std::string& in_str, std::string* out_str)
}
if (rest_of_match.compare("") == 0)
{
- return FALSE;
+ return TRUE;
}
if (buf.compare("") != 0)
{
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 87335cd5e6..085986dc68 100755
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -87,6 +87,8 @@ void copy_slurl_to_clipboard_callback_inv(const std::string& slurl);
typedef std::pair<LLUUID, LLUUID> two_uuids_t;
typedef std::list<two_uuids_t> two_uuids_list_t;
+const F32 SOUND_GAIN = 1.0f;
+
struct LLMoveInv
{
LLUUID mObjectID;
@@ -103,6 +105,7 @@ bool move_task_inventory_callback(const LLSD& notification, const LLSD& response
bool confirm_attachment_rez(const LLSD& notification, const LLSD& response);
void teleport_via_landmark(const LLUUID& asset_id);
static BOOL can_move_to_outfit(LLInventoryItem* inv_item, BOOL move_is_into_current_outfit);
+static BOOL can_move_to_landmarks(LLInventoryItem* inv_item);
static bool check_category(LLInventoryModel* model,
const LLUUID& cat_id,
LLInventoryPanel* active_panel,
@@ -2216,13 +2219,18 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,
&& (LLToolDragAndDrop::SOURCE_AGENT == source);
BOOL accept = FALSE;
+ U64 filter_types = filter->getFilterTypes();
+ BOOL use_filter = filter_types && (filter_types&LLInventoryFilter::FILTERTYPE_DATE || (filter_types&LLInventoryFilter::FILTERTYPE_OBJECT)==0);
+
if (is_agent_inventory)
{
const LLUUID &trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH, false);
const LLUUID &landmarks_id = model->findCategoryUUIDForType(LLFolderType::FT_LANDMARK, false);
+ const LLUUID &my_outifts_id = model->findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS, false);
const BOOL move_is_into_trash = (mUUID == trash_id) || model->isObjectDescendentOf(mUUID, trash_id);
- const BOOL move_is_into_outfit = getCategory() && (getCategory()->getPreferredType() == LLFolderType::FT_OUTFIT);
+ const BOOL move_is_into_my_outfits = (mUUID == my_outifts_id) || model->isObjectDescendentOf(mUUID, my_outifts_id);
+ const BOOL move_is_into_outfit = move_is_into_my_outfits || (getCategory() && getCategory()->getPreferredType()==LLFolderType::FT_OUTFIT);
const BOOL move_is_into_landmarks = (mUUID == landmarks_id) || model->isObjectDescendentOf(mUUID, landmarks_id);
//--------------------------------------------------------------------------------
@@ -2273,6 +2281,29 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,
}
}
}
+ U32 max_items_to_wear = gSavedSettings.getU32("WearFolderLimit");
+ if (is_movable
+ && move_is_into_current_outfit
+ && descendent_items.size() > max_items_to_wear)
+ {
+ LLInventoryModel::cat_array_t cats;
+ LLInventoryModel::item_array_t items;
+ LLFindWearablesEx not_worn(/*is_worn=*/ false, /*include_body_parts=*/ false);
+ gInventory.collectDescendentsIf(cat_id,
+ cats,
+ items,
+ LLInventoryModel::EXCLUDE_TRASH,
+ not_worn);
+
+ if (items.size() > max_items_to_wear)
+ {
+ // Can't move 'large' folders into current outfit: MAINT-4086
+ is_movable = FALSE;
+ LLStringUtil::format_map_t args;
+ args["AMOUNT"] = llformat("%d", max_items_to_wear);
+ tooltip_msg = LLTrans::getString("TooltipTooManyWearables",args);
+ }
+ }
if (is_movable && move_is_into_trash)
{
for (S32 i=0; i < descendent_items.size(); ++i)
@@ -2414,7 +2445,7 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,
is_movable = active_folder_view != NULL;
}
- if (is_movable)
+ if (is_movable && use_filter)
{
// Check whether the folder being dragged from active inventory panel
// passes the filter of the destination panel.
@@ -2552,6 +2583,12 @@ BOOL move_inv_category_world_to_agent(const LLUUID& object_id,
BOOL accept = FALSE;
BOOL is_move = FALSE;
+ BOOL use_filter = FALSE;
+ if (filter)
+ {
+ U64 filter_types = filter->getFilterTypes();
+ use_filter = filter_types && (filter_types&LLInventoryFilter::FILTERTYPE_DATE || (filter_types&LLInventoryFilter::FILTERTYPE_OBJECT)==0);
+ }
// coming from a task. Need to figure out if the person can
// move/copy this item.
@@ -2584,7 +2621,7 @@ BOOL move_inv_category_world_to_agent(const LLUUID& object_id,
accept = TRUE;
}
- if (filter && accept)
+ if (accept && use_filter)
{
accept = filter->check(item);
}
@@ -2750,8 +2787,8 @@ void LLRightClickInventoryFetchDescendentsObserver::execute(bool clear_observer)
class LLInventoryCopyAndWearObserver : public LLInventoryObserver
{
public:
- LLInventoryCopyAndWearObserver(const LLUUID& cat_id, int count, bool folder_added=false) :
- mCatID(cat_id), mContentsCount(count), mFolderAdded(folder_added) {}
+ LLInventoryCopyAndWearObserver(const LLUUID& cat_id, int count, bool folder_added=false, bool replace=false) :
+ mCatID(cat_id), mContentsCount(count), mFolderAdded(folder_added), mReplace(replace){}
virtual ~LLInventoryCopyAndWearObserver() {}
virtual void changed(U32 mask);
@@ -2759,6 +2796,7 @@ protected:
LLUUID mCatID;
int mContentsCount;
bool mFolderAdded;
+ bool mReplace;
};
@@ -2797,7 +2835,7 @@ void LLInventoryCopyAndWearObserver::changed(U32 mask)
mContentsCount)
{
gInventory.removeObserver(this);
- LLAppearanceMgr::instance().wearInventoryCategory(category, FALSE, FALSE);
+ LLAppearanceMgr::instance().wearInventoryCategory(category, FALSE, !mReplace);
delete this;
}
}
@@ -2815,7 +2853,7 @@ void LLFolderBridge::performAction(LLInventoryModel* model, std::string action)
LLFolderViewFolder *f = dynamic_cast<LLFolderViewFolder *>(mInventoryPanel.get()->getItemByID(mUUID));
if (f)
{
- f->setOpen(TRUE);
+ f->toggleOpen();
}
return;
@@ -3097,10 +3135,14 @@ void LLFolderBridge::pasteFromClipboard()
{
const LLUUID &current_outfit_id = model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT, false);
const LLUUID &outbox_id = model->findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false);
+ const LLUUID &favorites_id = model->findCategoryUUIDForType(LLFolderType::FT_FAVORITE, false);
+ const LLUUID &my_outifts_id = model->findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS, false);
const BOOL move_is_into_current_outfit = (mUUID == current_outfit_id);
- const BOOL move_is_into_outfit = (getCategory() && getCategory()->getPreferredType()==LLFolderType::FT_OUTFIT);
+ const BOOL move_is_into_my_outfits = (mUUID == my_outifts_id) || model->isObjectDescendentOf(mUUID, my_outifts_id);
+ const BOOL move_is_into_outfit = move_is_into_my_outfits || (getCategory() && getCategory()->getPreferredType()==LLFolderType::FT_OUTFIT);
const BOOL move_is_into_outbox = model->isObjectDescendentOf(mUUID, outbox_id);
+ const BOOL move_is_into_favorites = (mUUID == favorites_id);
std::vector<LLUUID> objects;
LLClipboard::instance().pasteFromClipboard(objects);
@@ -3158,11 +3200,18 @@ void LLFolderBridge::pasteFromClipboard()
{
if (move_is_into_current_outfit || move_is_into_outfit)
{
- if (can_move_to_outfit(item, move_is_into_current_outfit))
+ if (item && can_move_to_outfit(item, move_is_into_current_outfit))
{
dropToOutfit(item, move_is_into_current_outfit);
}
}
+ else if (move_is_into_favorites)
+ {
+ if (item && can_move_to_landmarks(item))
+ {
+ dropToFavorites(item);
+ }
+ }
else if (LLClipboard::instance().isCutMode())
{
// Do a move to "paste" a "cut"
@@ -3225,9 +3274,11 @@ void LLFolderBridge::pasteLinkFromClipboard()
{
const LLUUID &current_outfit_id = model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT, false);
const LLUUID &outbox_id = model->findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false);
+ const LLUUID &my_outifts_id = model->findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS, false);
const BOOL move_is_into_current_outfit = (mUUID == current_outfit_id);
- const BOOL move_is_into_outfit = (getCategory() && getCategory()->getPreferredType()==LLFolderType::FT_OUTFIT);
+ const BOOL move_is_into_my_outfits = (mUUID == my_outifts_id) || model->isObjectDescendentOf(mUUID, my_outifts_id);
+ const BOOL move_is_into_outfit = move_is_into_my_outfits || (getCategory() && getCategory()->getPreferredType()==LLFolderType::FT_OUTFIT);
const BOOL move_is_into_outbox = model->isObjectDescendentOf(mUUID, outbox_id);
if (move_is_into_outbox)
@@ -3729,6 +3780,25 @@ void LLFolderBridge::modifyOutfit(BOOL append)
LLViewerInventoryCategory* cat = getCategory();
if(!cat) return;
+ // checking amount of items to wear
+ U32 max_items = gSavedSettings.getU32("WearFolderLimit");
+ LLInventoryModel::cat_array_t cats;
+ LLInventoryModel::item_array_t items;
+ LLFindWearablesEx not_worn(/*is_worn=*/ false, /*include_body_parts=*/ false);
+ gInventory.collectDescendentsIf(cat->getUUID(),
+ cats,
+ items,
+ LLInventoryModel::EXCLUDE_TRASH,
+ not_worn);
+
+ if (items.size() > max_items)
+ {
+ LLSD args;
+ args["AMOUNT"] = llformat("%d", max_items);
+ LLNotificationsUtil::add("TooManyWearables", args);
+ return;
+ }
+
LLAppearanceMgr::instance().wearInventoryCategory( cat, FALSE, append );
}
@@ -3746,7 +3816,8 @@ bool move_task_inventory_callback(const LLSD& notification, const LLSD& response
LLInventoryObject::object_list_t inventory_objects;
object->getInventoryContents(inventory_objects);
int contents_count = inventory_objects.size()-1; //subtract one for containing folder
- LLInventoryCopyAndWearObserver* inventoryObserver = new LLInventoryCopyAndWearObserver(cat_and_wear->mCatID, contents_count, cat_and_wear->mFolderResponded);
+ LLInventoryCopyAndWearObserver* inventoryObserver = new LLInventoryCopyAndWearObserver(cat_and_wear->mCatID, contents_count, cat_and_wear->mFolderResponded,
+ cat_and_wear->mReplace);
gInventory.addObserver(inventoryObserver);
}
@@ -3783,6 +3854,12 @@ static BOOL can_move_to_outfit(LLInventoryItem* inv_item, BOOL move_is_into_curr
return FALSE;
}
+ U32 flags = inv_item->getFlags();
+ if(flags & LLInventoryItemFlags::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS)
+ {
+ return FALSE;
+ }
+
if (move_is_into_current_outfit && get_is_item_worn(inv_item->getUUID()))
{
return FALSE;
@@ -3868,16 +3945,22 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
const LLUUID &favorites_id = model->findCategoryUUIDForType(LLFolderType::FT_FAVORITE, false);
const LLUUID &landmarks_id = model->findCategoryUUIDForType(LLFolderType::FT_LANDMARK, false);
const LLUUID &outbox_id = model->findCategoryUUIDForType(LLFolderType::FT_OUTBOX, false);
+ const LLUUID &my_outifts_id = model->findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS, false);
const BOOL move_is_into_current_outfit = (mUUID == current_outfit_id);
const BOOL move_is_into_favorites = (mUUID == favorites_id);
- const BOOL move_is_into_outfit = (getCategory() && getCategory()->getPreferredType()==LLFolderType::FT_OUTFIT);
+ const BOOL move_is_into_my_outfits = (mUUID == my_outifts_id) || model->isObjectDescendentOf(mUUID, my_outifts_id);
+ const BOOL move_is_into_outfit = move_is_into_my_outfits || (getCategory() && getCategory()->getPreferredType()==LLFolderType::FT_OUTFIT);
const BOOL move_is_into_landmarks = (mUUID == landmarks_id) || model->isObjectDescendentOf(mUUID, landmarks_id);
const BOOL move_is_into_outbox = model->isObjectDescendentOf(mUUID, outbox_id);
const BOOL move_is_from_outbox = model->isObjectDescendentOf(inv_item->getUUID(), outbox_id);
LLToolDragAndDrop::ESource source = LLToolDragAndDrop::getInstance()->getSource();
BOOL accept = FALSE;
+ U64 filter_types = filter->getFilterTypes();
+ // We shouldn't allow to drop non recent items into recent tab (or some similar transactions)
+ // while we are allowing to interact with regular filtered inventory
+ BOOL use_filter = filter_types && (filter_types&LLInventoryFilter::FILTERTYPE_DATE || (filter_types&LLInventoryFilter::FILTERTYPE_OBJECT)==0);
LLViewerObject* object = NULL;
if(LLToolDragAndDrop::SOURCE_AGENT == source)
{
@@ -3976,7 +4059,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
// Check whether the item being dragged from active inventory panel
// passes the filter of the destination panel.
- if (accept && active_panel)
+ if (accept && active_panel && use_filter)
{
LLFolderViewItem* fv_item = active_panel->getItemByID(inv_item->getUUID());
if (!fv_item) return false;
@@ -4114,7 +4197,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
// Check whether the item being dragged from in world
// passes the filter of the destination panel.
- if (accept)
+ if (accept && use_filter)
{
accept = filter->check(inv_item);
}
@@ -4158,7 +4241,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
// Check whether the item being dragged from notecard
// passes the filter of the destination panel.
- if (accept)
+ if (accept && use_filter)
{
accept = filter->check(inv_item);
}
@@ -4198,7 +4281,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
// Check whether the item being dragged from the library
// passes the filter of the destination panel.
- if (accept && active_panel)
+ if (accept && active_panel && use_filter)
{
LLFolderViewItem* fv_item = active_panel->getItemByID(inv_item->getUUID());
if (!fv_item) return false;
@@ -4444,6 +4527,23 @@ void LLSoundBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
hide_context_entries(menu, items, disabled_items);
}
+void LLSoundBridge::performAction(LLInventoryModel* model, std::string action)
+{
+ if ("sound_play" == action)
+ {
+ LLViewerInventoryItem* item = getItem();
+ if(item)
+ {
+ send_sound_trigger(item->getAssetUUID(), SOUND_GAIN);
+ }
+ }
+ else if ("open" == action)
+ {
+ openSoundPreview((void*)this);
+ }
+ else LLItemBridge::performAction(model, action);
+}
+
// +=================================================+
// | LLLandmarkBridge |
// +=================================================+
@@ -6056,7 +6156,7 @@ public:
LLViewerInventoryItem* item = getItem();
if (item)
{
- LLFloaterReg::showInstance("preview_sound", LLSD(mUUID), TAKE_FOCUS_YES);
+ send_sound_trigger(item->getAssetUUID(), SOUND_GAIN);
}
LLInvFVBridgeAction::doIt();
}
diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h
index 7dac830098..e8d5db4437 100755
--- a/indra/newview/llinventorybridge.h
+++ b/indra/newview/llinventorybridge.h
@@ -158,7 +158,7 @@ protected:
BOOL isAgentInventory() const; // false if lost or in the inventory library
BOOL isCOFFolder() const; // true if COF or descendant of
BOOL isInboxFolder() const; // true if COF or descendant of marketplace inbox
- BOOL isOutboxFolder() const; // true if COF or descendant of marketplace outbox
+
BOOL isOutboxFolderDirectParent() const;
const LLUUID getOutboxFolder() const;
@@ -172,6 +172,10 @@ protected:
const LLUUID& new_parent,
BOOL restamp);
void removeBatchNoCheck(std::vector<LLFolderViewModelItem*>& batch);
+
+public:
+ BOOL isOutboxFolder() const; // true if COF or descendant of marketplace outbox
+
protected:
LLHandle<LLInventoryPanel> mInventoryPanel;
LLFolderView* mRoot;
@@ -385,6 +389,7 @@ public:
LLItemBridge(inventory, root, uuid) {}
virtual void openItem();
virtual void buildContextMenu(LLMenuGL& menu, U32 flags);
+ virtual void performAction(LLInventoryModel* model, std::string action);
static void openSoundPreview(void*);
};
diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp
index 0bbb4aeeff..dc8b15a5bf 100755
--- a/indra/newview/llinventoryfilter.cpp
+++ b/indra/newview/llinventoryfilter.cpp
@@ -126,13 +126,6 @@ bool LLInventoryFilter::checkFolder(const LLFolderViewModelItem* item) const
bool LLInventoryFilter::checkFolder(const LLUUID& folder_id) const
{
- // when applying a filter, matching folders get their contents downloaded first
- if (isNotDefault()
- && !gInventory.isCategoryComplete(folder_id))
- {
- LLInventoryModelBackgroundFetch::instance().start(folder_id);
- }
-
// Always check against the clipboard
const BOOL passed_clipboard = checkAgainstClipboard(folder_id);
@@ -142,6 +135,13 @@ bool LLInventoryFilter::checkFolder(const LLUUID& folder_id) const
return passed_clipboard;
}
+ // when applying a filter, matching folders get their contents downloaded first
+ if (mFilterSubString.size()
+ && !gInventory.isCategoryComplete(folder_id))
+ {
+ LLInventoryModelBackgroundFetch::instance().start(folder_id);
+ }
+
// show folder links
LLViewerInventoryItem* item = gInventory.getItem(folder_id);
if (item && item->getActualType() == LLAssetType::AT_LINK_FOLDER)
@@ -179,6 +179,7 @@ bool LLInventoryFilter::checkAgainstFilterType(const LLFolderViewModelItemInvent
// Pass if this item's type is of the correct filter type
if (filterTypes & FILTERTYPE_OBJECT)
{
+
// If it has no type, pass it, unless it's a link.
if (object_type == LLInventoryType::IT_NONE)
{
@@ -257,13 +258,25 @@ bool LLInventoryFilter::checkAgainstFilterType(const LLFolderViewModelItemInvent
bool is_hidden_if_empty = LLViewerFolderType::lookupIsHiddenIfEmpty(listener->getPreferredType());
if (is_hidden_if_empty)
{
- // Force the fetching of those folders so they are hidden iff they really are empty...
+ // Force the fetching of those folders so they are hidden if they really are empty...
gInventory.fetchDescendentsOf(object_id);
- return FALSE;
+
+ LLInventoryModel::cat_array_t* cat_array = NULL;
+ LLInventoryModel::item_array_t* item_array = NULL;
+ gInventory.getDirectDescendentsOf(object_id,cat_array,item_array);
+ S32 descendents_actual = 0;
+ if(cat_array && item_array)
+ {
+ descendents_actual = cat_array->size() + item_array->size();
+ }
+ if (descendents_actual == 0)
+ {
+ return FALSE;
+ }
}
}
}
-
+
return TRUE;
}
@@ -1013,6 +1026,11 @@ void LLInventoryFilter::fromParams(const Params& params)
setDateRangeLastLogoff(params.since_logoff);
}
+U64 LLInventoryFilter::getFilterTypes() const
+{
+ return mFilterOps.mFilterTypes;
+}
+
U64 LLInventoryFilter::getFilterObjectTypes() const
{
return mFilterOps.mFilterObjectTypes;
diff --git a/indra/newview/llinventoryfilter.h b/indra/newview/llinventoryfilter.h
index 0d3d3889cb..5e18ad4d20 100755
--- a/indra/newview/llinventoryfilter.h
+++ b/indra/newview/llinventoryfilter.h
@@ -160,6 +160,7 @@ public:
// +-------------------------------------------------------------------+
// + Parameters
// +-------------------------------------------------------------------+
+ U64 getFilterTypes() const;
U64 getFilterObjectTypes() const;
U64 getFilterCategoryTypes() const;
U64 getFilterWearableTypes() const;
diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp
index 1e7825a13e..1abc09bf3b 100755
--- a/indra/newview/llinventoryfunctions.cpp
+++ b/indra/newview/llinventoryfunctions.cpp
@@ -881,7 +881,7 @@ bool LLFindWearablesEx::operator()(LLInventoryCategory* cat, LLInventoryItem* it
if (!vitem) return false;
// Skip non-wearables.
- if (!vitem->isWearableType() && vitem->getType() != LLAssetType::AT_OBJECT)
+ if (!vitem->isWearableType() && vitem->getType() != LLAssetType::AT_OBJECT && vitem->getType() != LLAssetType::AT_GESTURE)
{
return false;
}
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index db5be2cef5..3546317471 100755
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -336,7 +336,9 @@ LLInventoryFilter& LLInventoryPanel::getFilter()
void LLInventoryPanel::setFilterTypes(U64 types, LLInventoryFilter::EFilterType filter_type)
{
if (filter_type == LLInventoryFilter::FILTERTYPE_OBJECT)
+ {
getFilter().setFilterObjectTypes(types);
+ }
if (filter_type == LLInventoryFilter::FILTERTYPE_CATEGORY)
getFilter().setFilterCategoryTypes(types);
}
@@ -540,12 +542,13 @@ void LLInventoryPanel::modelChanged(U32 mask)
// This item already exists in both memory and UI. It was probably reparented.
else if (model_item && view_item)
{
+ LLFolderViewFolder* old_parent = view_item->getParentFolder();
// Don't process the item if it is the root
- if (view_item->getParentFolder())
+ if (old_parent)
{
LLFolderViewFolder* new_parent = (LLFolderViewFolder*)getItemByID(model_item->getParentUUID());
// Item has been moved.
- if (view_item->getParentFolder() != new_parent)
+ if (old_parent != new_parent)
{
if (new_parent != NULL)
{
@@ -571,6 +574,7 @@ void LLInventoryPanel::modelChanged(U32 mask)
// doesn't include trash). Just remove the item's UI.
view_item->destroyView();
}
+ old_parent->getViewModelItem()->dirtyDescendantsFilter();
}
}
}
@@ -581,8 +585,13 @@ void LLInventoryPanel::modelChanged(U32 mask)
else if (!model_item && view_item && viewmodel_item)
{
// Remove the item's UI.
- removeItemID(viewmodel_item->getUUID());
+ LLFolderViewFolder* parent = view_item->getParentFolder();
+ removeItemID(viewmodel_item->getUUID());
view_item->destroyView();
+ if(parent)
+ {
+ parent->getViewModelItem()->dirtyDescendantsFilter();
+ }
}
}
}
@@ -1395,6 +1404,17 @@ BOOL LLInventoryPanel::handleKeyHere( KEY key, MASK mask )
// Open selected items if enter key hit on the inventory panel
if (mask == MASK_NONE)
{
+ //Don't allow attaching or opening items from Merchant Outbox
+ LLFolderViewItem* folder_item = mFolderRoot.get()->getCurSelectedItem();
+ if(folder_item)
+ {
+ LLInvFVBridge* bridge = (LLInvFVBridge*)folder_item->getViewModelItem();
+ if(bridge && bridge->isOutboxFolder() && (bridge->getInventoryType() != LLInventoryType::IT_CATEGORY))
+ {
+ return handled;
+ }
+ }
+
LLInventoryAction::doToSelected(mInventory, mFolderRoot.get(), "open");
handled = TRUE;
}
diff --git a/indra/newview/lllocalbitmaps.cpp b/indra/newview/lllocalbitmaps.cpp
index b91e37d596..897ee8429a 100755
--- a/indra/newview/lllocalbitmaps.cpp
+++ b/indra/newview/lllocalbitmaps.cpp
@@ -61,7 +61,9 @@
#include "llnotificationsutil.h"
#include "pipeline.h"
#include "llmaterialmgr.h"
-
+#include "llimagedimensionsinfo.h"
+#include "llviewercontrol.h"
+#include "lltrans.h"
/*=======================================*/
/* Formal declarations, constants, etc. */
/*=======================================*/
@@ -845,6 +847,12 @@ bool LLLocalBitmapMgr::addUnit()
std::string filename = picker.getFirstFile();
while(!filename.empty())
{
+ if(!checkTextureDimensions(filename))
+ {
+ filename = picker.getNextFile();
+ continue;
+ }
+
LLLocalBitmap* unit = new LLLocalBitmap(filename);
if (unit->getValid())
@@ -874,6 +882,37 @@ bool LLLocalBitmapMgr::addUnit()
return add_successful;
}
+bool LLLocalBitmapMgr::checkTextureDimensions(std::string filename)
+{
+ std::string exten = gDirUtilp->getExtension(filename);
+ U32 codec = LLImageBase::getCodecFromExtension(exten);
+ std::string mImageLoadError;
+ LLImageDimensionsInfo image_info;
+ if (!image_info.load(filename,codec))
+ {
+ return false;
+ }
+
+ S32 max_width = gSavedSettings.getS32("max_texture_dimension_X");
+ S32 max_height = gSavedSettings.getS32("max_texture_dimension_Y");
+
+ if ((image_info.getWidth() > max_width) || (image_info.getHeight() > max_height))
+ {
+ LLStringUtil::format_map_t args;
+ args["WIDTH"] = llformat("%d", max_width);
+ args["HEIGHT"] = llformat("%d", max_height);
+ mImageLoadError = LLTrans::getString("texture_load_dimensions_error", args);
+
+ LLSD notif_args;
+ notif_args["REASON"] = mImageLoadError;
+ LLNotificationsUtil::add("CannotUploadTexture", notif_args);
+
+ return false;
+ }
+
+ return true;
+}
+
void LLLocalBitmapMgr::delUnit(LLUUID tracking_id)
{
if (!sBitmapList.empty())
diff --git a/indra/newview/lllocalbitmaps.h b/indra/newview/lllocalbitmaps.h
index a15ea10801..59467922b4 100755
--- a/indra/newview/lllocalbitmaps.h
+++ b/indra/newview/lllocalbitmaps.h
@@ -120,6 +120,7 @@ class LLLocalBitmapMgr
static void cleanupClass();
static bool addUnit();
static void delUnit(LLUUID tracking_id);
+ static bool checkTextureDimensions(std::string filename);
static LLUUID getWorldID(LLUUID tracking_id);
static std::string getFilename(LLUUID tracking_id);
diff --git a/indra/newview/llmanip.cpp b/indra/newview/llmanip.cpp
index bbcdcb126d..0935691ebc 100755
--- a/indra/newview/llmanip.cpp
+++ b/indra/newview/llmanip.cpp
@@ -62,7 +62,7 @@ F32 LLManip::sHelpTextFadeTime = 2.f;
S32 LLManip::sNumTimesHelpTextShown = 0;
S32 LLManip::sMaxTimesShowHelpText = 5;
F32 LLManip::sGridMaxSubdivisionLevel = 32.f;
-F32 LLManip::sGridMinSubdivisionLevel = 1.f;
+F32 LLManip::sGridMinSubdivisionLevel = 1.f / 32.f;
LLVector2 LLManip::sTickLabelSpacing(60.f, 25.f);
@@ -176,7 +176,7 @@ BOOL LLManip::getManipAxis(LLViewerObject* object, EManipPart manip, LLVector3 &
return TRUE;
}
-F32 LLManip::getSubdivisionLevel(const LLVector3 &reference_point, const LLVector3 &translate_axis, F32 grid_scale, S32 min_pixel_spacing)
+F32 LLManip::getSubdivisionLevel(const LLVector3 &reference_point, const LLVector3 &translate_axis, F32 grid_scale, S32 min_pixel_spacing, F32 min_subdivisions, F32 max_subdivisions)
{
//update current snap subdivision level
LLVector3 cam_to_reference;
@@ -192,7 +192,8 @@ F32 LLManip::getSubdivisionLevel(const LLVector3 &reference_point, const LLVecto
F32 projected_translation_axis_length = (translate_axis % cam_to_reference).magVec();
F32 subdivisions = llmax(projected_translation_axis_length * grid_scale / (current_range / LLViewerCamera::getInstance()->getPixelMeterRatio() * min_pixel_spacing), 0.f);
- subdivisions = llclamp((F32)pow(2.f, llfloor(log(subdivisions) / log(2.f))), 1.f / 32.f, 32.f);
+ // figure out nearest power of 2 that subdivides grid_scale with result > min_pixel_spacing
+ subdivisions = llclamp((F32)pow(2.f, llfloor(log(subdivisions) / log(2.f))), min_subdivisions, max_subdivisions);
return subdivisions;
}
@@ -548,37 +549,31 @@ void LLManip::renderTickValue(const LLVector3& pos, F32 value, const std::string
BOOL hud_selection = mObjectSelection->getSelectType() == SELECT_TYPE_HUD;
gGL.matrixMode(LLRender::MM_MODELVIEW);
gGL.pushMatrix();
- LLVector3 render_pos = pos;
- if (hud_selection)
{
- F32 zoom_amt = gAgentCamera.mHUDCurZoom;
- F32 inv_zoom_amt = 1.f / zoom_amt;
- // scale text back up to counter-act zoom level
- render_pos = pos * zoom_amt;
- gGL.scalef(inv_zoom_amt, inv_zoom_amt, inv_zoom_amt);
- }
-
- LLColor4 shadow_color = LLColor4::black;
- shadow_color.mV[VALPHA] = color.mV[VALPHA] * 0.5f;
+ LLVector3 render_pos = pos;
+ if (hud_selection)
+ {
+ F32 zoom_amt = gAgentCamera.mHUDCurZoom;
+ F32 inv_zoom_amt = 1.f / zoom_amt;
+ // scale text back up to counter-act zoom level
+ render_pos = pos * zoom_amt;
+ gGL.scalef(inv_zoom_amt, inv_zoom_amt, inv_zoom_amt);
+ }
- if (fractional_portion != 0)
- {
- fraction_string = llformat("%c%02d%s", LLResMgr::getInstance()->getDecimalPoint(), fractional_portion, suffix.c_str());
+ LLColor4 shadow_color = LLColor4::black;
+ shadow_color.mV[VALPHA] = color.mV[VALPHA] * 0.5f;
- gViewerWindow->setup3DViewport(1, -1);
- hud_render_utf8text(val_string, render_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -1.f * big_fontp->getWidthF32(val_string), 3.f, shadow_color, hud_selection);
- hud_render_utf8text(fraction_string, render_pos, *small_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, 1.f, 3.f, shadow_color, hud_selection);
+ if (fractional_portion != 0)
+ {
+ fraction_string = llformat("%c%02d%s", LLResMgr::getInstance()->getDecimalPoint(), fractional_portion, suffix.c_str());
- gViewerWindow->setup3DViewport();
- hud_render_utf8text(val_string, render_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -1.f * big_fontp->getWidthF32(val_string), 3.f, color, hud_selection);
- hud_render_utf8text(fraction_string, render_pos, *small_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, 1.f, 3.f, color, hud_selection);
- }
- else
- {
- gViewerWindow->setup3DViewport(1, -1);
- hud_render_utf8text(val_string, render_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -0.5f * big_fontp->getWidthF32(val_string), 3.f, shadow_color, hud_selection);
- gViewerWindow->setup3DViewport();
- hud_render_utf8text(val_string, render_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -0.5f * big_fontp->getWidthF32(val_string), 3.f, color, hud_selection);
+ hud_render_utf8text(val_string, render_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::DROP_SHADOW, -1.f * big_fontp->getWidthF32(val_string), 3.f, color, hud_selection);
+ hud_render_utf8text(fraction_string, render_pos, *small_fontp, LLFontGL::NORMAL, LLFontGL::DROP_SHADOW, 1.f, 3.f, color, hud_selection);
+ }
+ else
+ {
+ hud_render_utf8text(val_string, render_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::DROP_SHADOW, -0.5f * big_fontp->getWidthF32(val_string), 3.f, color, hud_selection);
+ }
}
gGL.popMatrix();
}
diff --git a/indra/newview/llmanip.h b/indra/newview/llmanip.h
index 6263e4244f..1fb05e047a 100755
--- a/indra/newview/llmanip.h
+++ b/indra/newview/llmanip.h
@@ -137,7 +137,7 @@ protected:
LLVector3 getPivotPoint();
void getManipNormal(LLViewerObject* object, EManipPart manip, LLVector3 &normal);
BOOL getManipAxis(LLViewerObject* object, EManipPart manip, LLVector3 &axis);
- F32 getSubdivisionLevel(const LLVector3 &reference_point, const LLVector3 &translate_axis, F32 grid_scale, S32 min_pixel_spacing = MIN_DIVISION_PIXEL_WIDTH);
+ F32 getSubdivisionLevel(const LLVector3 &reference_point, const LLVector3 &translate_axis, F32 grid_scale, S32 min_pixel_spacing = MIN_DIVISION_PIXEL_WIDTH, F32 min_subdivisions = sGridMinSubdivisionLevel, F32 max_subdivisions = sGridMaxSubdivisionLevel);
void renderTickValue(const LLVector3& pos, F32 value, const std::string& suffix, const LLColor4 &color);
void renderTickText(const LLVector3& pos, const std::string& suffix, const LLColor4 &color);
void updateGridSettings();
diff --git a/indra/newview/llmaniptranslate.cpp b/indra/newview/llmaniptranslate.cpp
index 8a89131c43..d22672bc16 100755
--- a/indra/newview/llmaniptranslate.cpp
+++ b/indra/newview/llmaniptranslate.cpp
@@ -374,7 +374,7 @@ BOOL LLManipTranslate::handleMouseDownOnPart( S32 x, S32 y, MASK mask )
//LLVector3 select_center_agent = gAgent.getPosAgentFromGlobal(LLSelectMgr::getInstance()->getSelectionCenterGlobal());
// TomY: The above should (?) be identical to the below
LLVector3 select_center_agent = getPivotPoint();
- mSubdivisions = llclamp(getSubdivisionLevel(select_center_agent, axis_exists ? axis : LLVector3::z_axis, getMinGridScale()), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
+ mSubdivisions = getSubdivisionLevel(select_center_agent, axis_exists ? axis : LLVector3::z_axis, getMinGridScale());
// if we clicked on a planar manipulator, recenter mouse cursor
if (mManipPart >= LL_YZ_PLANE && mManipPart <= LL_XY_PLANE)
@@ -516,7 +516,7 @@ BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask)
LLSelectMgr::getInstance()->updateSelectionCenter();
LLVector3d current_pos_global = gAgent.getPosGlobalFromAgent(getPivotPoint());
- mSubdivisions = llclamp(getSubdivisionLevel(getPivotPoint(), axis_f, getMinGridScale()), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
+ mSubdivisions = getSubdivisionLevel(getPivotPoint(), axis_f, getMinGridScale());
// Project the cursor onto that plane
LLVector3d relative_move;
@@ -606,7 +606,7 @@ BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask)
max_grid_scale = mGridScale.mV[VZ];
}
- F32 num_subdivisions = llclamp(getSubdivisionLevel(getPivotPoint(), camera_projected_dir, max_grid_scale), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
+ F32 num_subdivisions = getSubdivisionLevel(getPivotPoint(), camera_projected_dir, max_grid_scale);
F32 grid_scale_a;
F32 grid_scale_b;
@@ -1254,6 +1254,7 @@ void LLManipTranslate::renderSnapGuides()
for (S32 pass = 0; pass < 3; pass++)
{
LLColor4 line_color = setupSnapGuideRenderPass(pass);
+ LLGLDepthTest gls_depth(pass != 1);
gGL.begin(LLRender::LINES);
{
@@ -1285,7 +1286,7 @@ void LLManipTranslate::renderSnapGuides()
{
tick_start = selection_center + (translate_axis * (smallest_grid_unit_scale * (F32)i - offset_nearest_grid_unit));
- F32 cur_subdivisions = llclamp(getSubdivisionLevel(tick_start, translate_axis, getMinGridScale()), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
+ F32 cur_subdivisions = getSubdivisionLevel(tick_start, translate_axis, getMinGridScale());
if (fmodf((F32)(i + sub_div_offset), (max_subdivisions / cur_subdivisions)) != 0.f)
{
@@ -1383,7 +1384,7 @@ void LLManipTranslate::renderSnapGuides()
tick_scale *= 0.7f;
}
- if (fmodf((F32)(i + sub_div_offset), (max_subdivisions / llmin(sGridMaxSubdivisionLevel, getSubdivisionLevel(tick_pos, translate_axis, getMinGridScale(), tick_label_spacing)))) == 0.f)
+ if (fmodf((F32)(i + sub_div_offset), (max_subdivisions / getSubdivisionLevel(tick_pos, translate_axis, getMinGridScale(), tick_label_spacing))) == 0.f)
{
F32 snap_offset_meters;
diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp
index 086bc1c186..f4e08dc790 100755
--- a/indra/newview/llmediactrl.cpp
+++ b/indra/newview/llmediactrl.cpp
@@ -509,6 +509,16 @@ void LLMediaCtrl::navigateForward()
////////////////////////////////////////////////////////////////////////////////
//
+void LLMediaCtrl::navigateStop()
+{
+ if (mMediaSource && mMediaSource->hasMedia())
+ {
+ mMediaSource->getMediaPlugin()->browse_stop();
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+//
bool LLMediaCtrl::canNavigateBack()
{
if (mMediaSource)
diff --git a/indra/newview/llmediactrl.h b/indra/newview/llmediactrl.h
index b6ed0f3fab..785c57b78a 100755
--- a/indra/newview/llmediactrl.h
+++ b/indra/newview/llmediactrl.h
@@ -99,6 +99,7 @@ public:
void navigateBack();
void navigateHome();
void navigateForward();
+ void navigateStop();
void navigateToLocalPage( const std::string& subdir, const std::string& filename_in );
bool canNavigateBack();
bool canNavigateForward();
diff --git a/indra/newview/llnotificationstorage.cpp b/indra/newview/llnotificationstorage.cpp
index 2923221c90..e9970de58c 100755
--- a/indra/newview/llnotificationstorage.cpp
+++ b/indra/newview/llnotificationstorage.cpp
@@ -103,19 +103,21 @@ bool LLNotificationStorage::writeNotifications(const LLSD& pNotificationData) co
return didFileOpen;
}
-bool LLNotificationStorage::readNotifications(LLSD& pNotificationData) const
+bool LLNotificationStorage::readNotifications(LLSD& pNotificationData, bool is_new_filename) const
{
- LL_INFOS("LLNotificationStorage") << "starting read '" << mFileName << "'" << LL_ENDL;
+ std::string filename = is_new_filename? mFileName : mOldFileName;
+
+ LL_INFOS("LLNotificationStorage") << "starting read '" << filename << "'" << LL_ENDL;
bool didFileRead;
pNotificationData.clear();
- llifstream notifyFile(mFileName.c_str());
+ llifstream notifyFile(filename.c_str());
didFileRead = notifyFile.is_open();
if (!didFileRead)
{
- LL_WARNS("LLNotificationStorage") << "Failed to open file '" << mFileName << "'" << LL_ENDL;
+ LL_WARNS("LLNotificationStorage") << "Failed to open file '" << filename << "'" << LL_ENDL;
}
else
{
@@ -128,7 +130,19 @@ bool LLNotificationStorage::readNotifications(LLSD& pNotificationData) const
}
}
- LL_INFOS("LLNotificationStorage") << "ending read '" << mFileName << "'" << LL_ENDL;
+ LL_INFOS("LLNotificationStorage") << "ending read '" << filename << "'" << LL_ENDL;
+ if (!didFileRead)
+ {
+ if(is_new_filename)
+ {
+ didFileRead = readNotifications(pNotificationData, false);
+ if(didFileRead)
+ {
+ writeNotifications(pNotificationData);
+ LLFile::remove(mOldFileName);
+ }
+ }
+ }
return didFileRead;
}
diff --git a/indra/newview/llnotificationstorage.h b/indra/newview/llnotificationstorage.h
index 53fd898ea4..21d7123747 100755
--- a/indra/newview/llnotificationstorage.h
+++ b/indra/newview/llnotificationstorage.h
@@ -43,13 +43,15 @@ public:
protected:
bool writeNotifications(const LLSD& pNotificationData) const;
- bool readNotifications(LLSD& pNotificationData) const;
+ bool readNotifications(LLSD& pNotificationData, bool is_new_filename = true) const;
void setFileName(std::string pFileName) {mFileName = pFileName;}
+ void setOldFileName(std::string pFileName) {mOldFileName = pFileName;}
LLNotificationResponderInterface* createResponder(const std::string& pNotificationName, const LLSD& pParams) const;
private:
std::string mFileName;
+ std::string mOldFileName;
};
#endif // LL_NOTIFICATIONSTORAGE_H
diff --git a/indra/newview/llpanelcontents.cpp b/indra/newview/llpanelcontents.cpp
index 89a9e0dc16..407cbfc47b 100755
--- a/indra/newview/llpanelcontents.cpp
+++ b/indra/newview/llpanelcontents.cpp
@@ -142,6 +142,13 @@ void LLPanelContents::refresh()
}
}
+void LLPanelContents::clearContents()
+{
+ if (mPanelInventoryObject)
+ {
+ mPanelInventoryObject->clearInventoryTask();
+ }
+}
//
diff --git a/indra/newview/llpanelcontents.h b/indra/newview/llpanelcontents.h
index ad62e13bc2..6ecc78afa0 100755
--- a/indra/newview/llpanelcontents.h
+++ b/indra/newview/llpanelcontents.h
@@ -48,6 +48,7 @@ public:
virtual ~LLPanelContents();
void refresh();
+ void clearContents();
static void onClickNewScript(void*);
diff --git a/indra/newview/llpaneleditwearable.cpp b/indra/newview/llpaneleditwearable.cpp
index ac00c5d986..19a86cdcea 100755
--- a/indra/newview/llpaneleditwearable.cpp
+++ b/indra/newview/llpaneleditwearable.cpp
@@ -860,10 +860,8 @@ void LLPanelEditWearable::draw()
void LLPanelEditWearable::onClose()
{
- if ( isDirty() )
- {
- revertChanges();
- }
+ // any unsaved changes should be reverted at this point
+ revertChanges();
}
void LLPanelEditWearable::setVisible(BOOL visible)
@@ -951,7 +949,7 @@ void LLPanelEditWearable::onCommitSexChange()
gAgentAvatarp->updateSexDependentLayerSets();
gAgentAvatarp->updateVisualParams();
-
+ showWearable(mWearablePtr, TRUE, TRUE);
updateScrollingPanelUI();
}
diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp
index e3be1312e4..02e05d3d9a 100755
--- a/indra/newview/llpanelface.cpp
+++ b/indra/newview/llpanelface.cpp
@@ -1848,6 +1848,8 @@ void LLPanelFace::onCancelNormalTexture(const LLSD& data)
U8 bumpy = 0;
bool identical_bumpy = false;
LLSelectedTE::getBumpmap(bumpy, identical_bumpy);
+ LLUUID spec_map_id = getChild<LLTextureCtrl>("bumpytexture control")->getImageAssetID();
+ bumpy = spec_map_id.isNull() ? bumpy : BUMPY_TEXTURE;
sendBump(bumpy);
}
diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp
index 1d7ba4d741..c3a10b3fa0 100755
--- a/indra/newview/llpanelgrouproles.cpp
+++ b/indra/newview/llpanelgrouproles.cpp
@@ -1961,7 +1961,7 @@ bool LLPanelGroupRolesSubTab::needsApply(std::string& mesg)
LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID);
if(!gdatap)
{
- llwarns << "Unable to get group data for group " << mGroupID << llendl;
+ LL_WARNS() << "Unable to get group data for group " << mGroupID << LL_ENDL;
return false;
}
@@ -2389,8 +2389,8 @@ void LLPanelGroupRolesSubTab::handleActionCheck(LLUICtrl* ctrl, bool force)
}
else
{
- llwarns << "Unable to look up role information for role id: "
- << role_id << llendl;
+ LL_WARNS() << "Unable to look up role information for role id: "
+ << role_id << LL_ENDL;
}
//////////////////////////////////////////////////////////////////////////
@@ -2835,7 +2835,7 @@ void LLPanelGroupActionsSubTab::setGroupID(const LLUUID& id)
if(mActionMembers) mActionMembers->deleteAllItems();
if(mActionDescription) mActionDescription->clear();
-
+
LLPanelGroupSubTab::setGroupID(id);
}
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index 088eaa8e0d..abdfa89f50 100755
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
@@ -225,11 +225,16 @@ void LLPanelLogin::addUsersWithFavoritesToUsername()
{
LLComboBox* combo = getChild<LLComboBox>("username_combo");
if (!combo) return;
- std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "stored_favorites.xml");
+ std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "stored_favorites_" + LLGridManager::getInstance()->getGrid() + ".xml");
+ std::string old_filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "stored_favorites.xml");
LLSD fav_llsd;
llifstream file;
file.open(filename);
- if (!file.is_open()) return;
+ if (!file.is_open())
+ {
+ file.open(old_filename);
+ if (!file.is_open()) return;
+ }
LLSDSerialize::fromXML(fav_llsd, file);
for (LLSD::map_const_iterator iter = fav_llsd.beginMap();
iter != fav_llsd.endMap(); ++iter)
@@ -251,11 +256,17 @@ void LLPanelLogin::addFavoritesToStartLocation()
// Load favorites into the combo.
std::string user_defined_name = getChild<LLComboBox>("username_combo")->getSimple();
- std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "stored_favorites.xml");
+ std::replace(user_defined_name.begin(), user_defined_name.end(), '.', ' ');
+ std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "stored_favorites_" + LLGridManager::getInstance()->getGrid() + ".xml");
+ std::string old_filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "stored_favorites.xml");
LLSD fav_llsd;
llifstream file;
file.open(filename);
- if (!file.is_open()) return;
+ if (!file.is_open())
+ {
+ file.open(old_filename);
+ if (!file.is_open()) return;
+ }
LLSDSerialize::fromXML(fav_llsd, file);
for (LLSD::map_const_iterator iter = fav_llsd.beginMap();
iter != fav_llsd.endMap(); ++iter)
@@ -954,11 +965,12 @@ void LLPanelLogin::onSelectServer()
// The user twiddled with the grid choice ui.
// apply the selection to the grid setting.
LLPointer<LLCredential> credential;
-
+
LLComboBox* server_combo = getChild<LLComboBox>("server_combo");
LLSD server_combo_val = server_combo->getSelectedValue();
LL_INFOS("AppInit") << "grid "<<server_combo_val.asString()<< LL_ENDL;
LLGridManager::getInstance()->setGridChoice(server_combo_val.asString());
+ addFavoritesToStartLocation();
/*
* Determine whether or not the value in the start_location_combo makes sense
diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp
index 6c8765c62d..eb037577be 100755
--- a/indra/newview/llpanelmaininventory.cpp
+++ b/indra/newview/llpanelmaininventory.cpp
@@ -153,7 +153,9 @@ BOOL LLPanelMainInventory::postBuild()
recent_items_panel->setSinceLogoff(TRUE);
recent_items_panel->setSortOrder(LLInventoryFilter::SO_DATE);
recent_items_panel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS);
- recent_items_panel->getFilter().markDefault();
+ LLInventoryFilter& recent_filter = recent_items_panel->getFilter();
+ recent_filter.setFilterObjectTypes(recent_filter.getFilterObjectTypes() & ~(0x1 << LLInventoryType::IT_CATEGORY));
+ recent_filter.markDefault();
recent_items_panel->setSelectCallback(boost::bind(&LLPanelMainInventory::onSelectionChange, this, recent_items_panel, _1, _2));
}
@@ -384,9 +386,11 @@ BOOL LLPanelMainInventory::filtersVisible(void* user_data)
void LLPanelMainInventory::onClearSearch()
{
+ BOOL initially_active = FALSE;
LLFloater *finder = getFinder();
if (mActivePanel)
{
+ initially_active = mActivePanel->getFilter().isNotDefault();
mActivePanel->setFilterSubString(LLStringUtil::null);
mActivePanel->setFilterTypes(0xffffffffffffffffULL);
mActivePanel->setFilterLinks(LLInventoryFilter::FILTERLINK_INCLUDE_LINKS);
@@ -397,8 +401,8 @@ void LLPanelMainInventory::onClearSearch()
LLFloaterInventoryFinder::selectAllTypes(finder);
}
- // re-open folders that were initially open
- if (mActivePanel)
+ // re-open folders that were initially open in case filter was active
+ if (mActivePanel && (mFilterSubString.size() || initially_active))
{
mSavedFolderState->setApply(TRUE);
mActivePanel->getRootFolder()->applyFunctorRecursively(*mSavedFolderState);
@@ -851,9 +855,9 @@ void LLFloaterInventoryFinder::draw()
filtered_by_all_types = FALSE;
}
- if (!filtered_by_all_types)
+ if (!filtered_by_all_types || (mPanelMainInventory->getPanel()->getFilter().getFilterTypes() & LLInventoryFilter::FILTERTYPE_DATE))
{
- // don't include folders in filter, unless I've selected everything
+ // don't include folders in filter, unless I've selected everything or filtering by date
filter &= ~(0x1 << LLInventoryType::IT_CATEGORY);
}
diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp
index 665b9ab294..6354b5a02b 100755
--- a/indra/newview/llpanelobjectinventory.cpp
+++ b/indra/newview/llpanelobjectinventory.cpp
@@ -698,6 +698,10 @@ void LLTaskInvFVBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
if(isItemRenameable())
{
items.push_back(std::string("Task Rename"));
+ if ((flags & FIRST_SELECTED_ITEM) == 0)
+ {
+ disabled_items.push_back(std::string("Task Rename"));
+ }
}
if(isItemRemovable())
{
@@ -1862,14 +1866,19 @@ void LLPanelObjectInventory::refresh()
}
if(!has_inventory)
{
- mTaskUUID = LLUUID::null;
- removeVOInventoryListener();
- clearContents();
+ clearInventoryTask();
}
mInventoryViewModel.setTaskID(mTaskUUID);
//LL_INFOS() << "LLPanelObjectInventory::refresh() " << mTaskUUID << LL_ENDL;
}
+void LLPanelObjectInventory::clearInventoryTask()
+{
+ mTaskUUID = LLUUID::null;
+ removeVOInventoryListener();
+ clearContents();
+}
+
void LLPanelObjectInventory::removeSelectedItem()
{
if(mFolders)
diff --git a/indra/newview/llpanelobjectinventory.h b/indra/newview/llpanelobjectinventory.h
index 9559f7e886..3de49242ac 100755
--- a/indra/newview/llpanelobjectinventory.h
+++ b/indra/newview/llpanelobjectinventory.h
@@ -62,6 +62,7 @@ public:
void refresh();
const LLUUID& getTaskUUID() { return mTaskUUID;}
+ void clearInventoryTask();
void removeSelectedItem();
void startRenamingSelectedItem();
diff --git a/indra/newview/llpanelpeoplemenus.cpp b/indra/newview/llpanelpeoplemenus.cpp
index 6979ae06e0..a5f59dbf4a 100755
--- a/indra/newview/llpanelpeoplemenus.cpp
+++ b/indra/newview/llpanelpeoplemenus.cpp
@@ -90,7 +90,7 @@ LLContextMenu* PeopleContextMenu::createMenu()
// Set up for multi-selected People
// registrar.add("Avatar.AddFriend", boost::bind(&LLAvatarActions::requestFriendshipDialog, mUUIDs)); // *TODO: unimplemented
- registrar.add("Avatar.IM", boost::bind(&LLAvatarActions::startConference, mUUIDs, LLUUID::null));
+ registrar.add("Avatar.IM", boost::bind(&PeopleContextMenu::startConference, this));
registrar.add("Avatar.Call", boost::bind(&LLAvatarActions::startAdhocCall, mUUIDs, LLUUID::null));
registrar.add("Avatar.OfferTeleport", boost::bind(&PeopleContextMenu::offerTeleport, this));
registrar.add("Avatar.RemoveFriend", boost::bind(&LLAvatarActions::removeFriendsDialog, mUUIDs));
@@ -272,6 +272,19 @@ void PeopleContextMenu::offerTeleport()
LLAvatarActions::offerTeleport(mUUIDs);
}
+void PeopleContextMenu::startConference()
+{
+ uuid_vec_t uuids;
+ for (uuid_vec_t::const_iterator it = mUUIDs.begin(); it != mUUIDs.end(); ++it)
+ {
+ if(*it != gAgentID)
+ {
+ uuids.push_back(*it);
+ }
+ }
+ LLAvatarActions::startConference(uuids);
+}
+
//== NearbyPeopleContextMenu ===============================================================
void NearbyPeopleContextMenu::buildContextMenu(class LLMenuGL& menu, U32 flags)
diff --git a/indra/newview/llpanelpeoplemenus.h b/indra/newview/llpanelpeoplemenus.h
index 945382ebc5..9767bab89f 100755
--- a/indra/newview/llpanelpeoplemenus.h
+++ b/indra/newview/llpanelpeoplemenus.h
@@ -47,6 +47,7 @@ private:
bool enableContextMenuItem(const LLSD& userdata);
bool checkContextMenuItem(const LLSD& userdata);
void offerTeleport();
+ void startConference();
void requestTeleport();
};
diff --git a/indra/newview/llpersistentnotificationstorage.cpp b/indra/newview/llpersistentnotificationstorage.cpp
index 8658921dc4..9e4f50b7a7 100755
--- a/indra/newview/llpersistentnotificationstorage.cpp
+++ b/indra/newview/llpersistentnotificationstorage.cpp
@@ -35,7 +35,7 @@
#include "llscreenchannel.h"
#include "llscriptfloater.h"
#include "llviewermessage.h"
-
+#include "llviewernetwork.h"
LLPersistentNotificationStorage::LLPersistentNotificationStorage()
: LLSingleton<LLPersistentNotificationStorage>()
, LLNotificationStorage("")
@@ -158,7 +158,10 @@ void LLPersistentNotificationStorage::loadNotifications()
void LLPersistentNotificationStorage::initialize()
{
- setFileName(gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "open_notifications.xml"));
+ std::string file_name = "open_notifications_" + LLGridManager::getInstance()->getGrid() + ".xml";
+ setFileName(gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, file_name));
+ setOldFileName(gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "open_notifications.xml"));
+
LLNotifications::instance().getChannel("Persistent")->
connectChanged(boost::bind(&LLPersistentNotificationStorage::onPersistentChannelChanged, this, _1));
}
diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp
index c4858e241e..337a63e627 100755
--- a/indra/newview/llpreviewnotecard.cpp
+++ b/indra/newview/llpreviewnotecard.cpp
@@ -474,12 +474,17 @@ bool LLPreviewNotecard::saveIfNeeded(LLInventoryItem* copyitem)
&onSaveComplete,
(void*)info,
FALSE);
+ return true;
}
else // !gAssetStorage
{
LL_WARNS() << "Not connected to an asset storage system." << LL_ENDL;
return false;
}
+ if(mCloseAfterSave)
+ {
+ closeFloater();
+ }
}
}
return true;
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 9411b8265b..a41986373e 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -663,12 +663,13 @@ void LLScriptEdCore::updateDynamicHelp(BOOL immediate)
LLTextSegmentPtr segment = NULL;
std::vector<LLTextSegmentPtr> selected_segments;
mEditor->getSelectedSegments(selected_segments);
-
+ LLKeywordToken* token;
// try segments in selection range first
std::vector<LLTextSegmentPtr>::iterator segment_iter;
for (segment_iter = selected_segments.begin(); segment_iter != selected_segments.end(); ++segment_iter)
{
- if((*segment_iter)->getToken() && (*segment_iter)->getToken()->getType() == LLKeywordToken::TT_WORD)
+ token = (*segment_iter)->getToken();
+ if(token && isKeyword(token))
{
segment = *segment_iter;
break;
@@ -679,7 +680,8 @@ void LLScriptEdCore::updateDynamicHelp(BOOL immediate)
if (!segment)
{
const LLTextSegmentPtr test_segment = mEditor->getPreviousSegment();
- if(test_segment->getToken() && test_segment->getToken()->getType() == LLKeywordToken::TT_WORD)
+ token = test_segment->getToken();
+ if(token && isKeyword(token))
{
segment = test_segment;
}
@@ -708,6 +710,24 @@ void LLScriptEdCore::updateDynamicHelp(BOOL immediate)
}
}
+bool LLScriptEdCore::isKeyword(LLKeywordToken* token)
+{
+ switch(token->getType())
+ {
+ case LLKeywordToken::TT_CONSTANT:
+ case LLKeywordToken::TT_CONTROL:
+ case LLKeywordToken::TT_EVENT:
+ case LLKeywordToken::TT_FUNCTION:
+ case LLKeywordToken::TT_SECTION:
+ case LLKeywordToken::TT_TYPE:
+ case LLKeywordToken::TT_WORD:
+ return true;
+
+ default:
+ return false;
+ }
+}
+
void LLScriptEdCore::setHelpPage(const std::string& help_string)
{
LLFloater* help_floater = mLiveHelpHandle.get();
@@ -1166,7 +1186,7 @@ void LLScriptEdCore::onBtnSaveToFile( void* userdata )
if( self->mSaveCallback )
{
LLFilePicker& file_picker = LLFilePicker::instance();
- if( file_picker.getSaveFile( LLFilePicker::FFSAVE_SCRIPT ) )
+ if( file_picker.getSaveFile( LLFilePicker::FFSAVE_SCRIPT, self->mScriptName ) )
{
std::string filename = file_picker.getFirstFile();
std::string scriptText=self->mEditor->getText();
@@ -1948,6 +1968,7 @@ void LLLiveLSLEditor::loadScriptText(LLVFS *vfs, const LLUUID &uuid, LLAssetType
mScriptEd->setScriptText(LLStringExplicit(&buffer[0]), TRUE);
mScriptEd->mEditor->makePristine();
+ mScriptEd->setScriptName(getItem()->getName());
}
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index 9ea191e928..66727bceee 100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -114,6 +114,8 @@ public:
virtual bool hasAccelerators() const { return true; }
+ void setScriptName(const std::string& name){mScriptName = name;};
+
private:
void onBtnHelp();
void onBtnDynamicHelp();
@@ -131,6 +133,7 @@ protected:
void deleteBridges();
void setHelpPage(const std::string& help_string);
void updateDynamicHelp(BOOL immediate = FALSE);
+ bool isKeyword(LLKeywordToken* token);
void addHelpItemToHistory(const std::string& help_string);
static void onErrorList(LLUICtrl*, void* user_data);
@@ -138,6 +141,7 @@ protected:
private:
std::string mSampleText;
+ std::string mScriptName;
LLScriptEditor* mEditor;
void (*mLoadCallback)(void* userdata);
void (*mSaveCallback)(void* userdata, BOOL close_after_save);
diff --git a/indra/newview/llpreviewsound.cpp b/indra/newview/llpreviewsound.cpp
index 11b81a58fc..105c5e8cbe 100755
--- a/indra/newview/llpreviewsound.cpp
+++ b/indra/newview/llpreviewsound.cpp
@@ -95,7 +95,6 @@ void LLPreviewSound::auditionSound( void *userdata )
if(item && gAudiop)
{
- LLVector3d lpos_global = gAgent.getPositionGlobal();
- gAudiop->triggerSound(item->getAssetUUID(), gAgent.getID(), SOUND_GAIN, LLAudioEngine::AUDIO_TYPE_SFX, lpos_global);
+ gAudiop->triggerSound(item->getAssetUUID(), gAgent.getID(), SOUND_GAIN, LLAudioEngine::AUDIO_TYPE_SFX);
}
}
diff --git a/indra/newview/llscenemonitor.cpp b/indra/newview/llscenemonitor.cpp
index 7f705e44d2..179a73413e 100644
--- a/indra/newview/llscenemonitor.cpp
+++ b/indra/newview/llscenemonitor.cpp
@@ -709,9 +709,20 @@ void LLSceneMonitorView::onClose(bool app_quitting)
setVisible(false);
}
+void LLSceneMonitorView::onClickCloseBtn(bool app_quitting)
+{
+ setVisible(false);
+}
+
void LLSceneMonitorView::onVisibilityChange(BOOL visible)
{
- visible = visible && LLGLSLShader::sNoFixedFunction;
+ if (!LLGLSLShader::sNoFixedFunction && visible)
+ {
+ visible = false;
+ // keep Scene monitor and its view in sycn
+ setVisible(false);
+ LL_WARNS("SceneMonitor") << "Incompatible graphical settings, Scene Monitor can't be turned on" << LL_ENDL;
+ }
LLSceneMonitor::getInstance()->setDebugViewerVisible(visible);
}
diff --git a/indra/newview/llscenemonitor.h b/indra/newview/llscenemonitor.h
index e9ceb2aa2a..5bde3b5aab 100644
--- a/indra/newview/llscenemonitor.h
+++ b/indra/newview/llscenemonitor.h
@@ -116,6 +116,7 @@ public:
protected:
virtual void onClose(bool app_quitting=false);
+ virtual void onClickCloseBtn(bool app_quitting=false);
};
extern LLSceneMonitorView* gSceneMonitorView;
diff --git a/indra/newview/llsceneview.cpp b/indra/newview/llsceneview.cpp
index 32f327b762..112fa5b4e1 100755
--- a/indra/newview/llsceneview.cpp
+++ b/indra/newview/llsceneview.cpp
@@ -56,6 +56,10 @@ void LLSceneView::onClose(bool)
setVisible(false);
}
+void LLSceneView::onClickCloseBtn(bool)
+{
+ setVisible(false);
+}
void LLSceneView::draw()
{
diff --git a/indra/newview/llsceneview.h b/indra/newview/llsceneview.h
index 6d839bcf08..e077c358b4 100755
--- a/indra/newview/llsceneview.h
+++ b/indra/newview/llsceneview.h
@@ -39,6 +39,7 @@ public:
protected:
virtual void onClose(bool app_qutting = false);
+ virtual void onClickCloseBtn(bool app_qutting = false);
};
diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp
index 0a8257f42b..5e342099d7 100755
--- a/indra/newview/llspatialpartition.cpp
+++ b/indra/newview/llspatialpartition.cpp
@@ -1632,7 +1632,7 @@ void pushVertsColorCoded(LLSpatialGroup* group, U32 mask)
{
LLDrawInfo* params = NULL;
- LLColor4 colors[] = {
+ static const LLColor4 colors[] = {
LLColor4::green,
LLColor4::green1,
LLColor4::green2,
diff --git a/indra/newview/llspeakers.cpp b/indra/newview/llspeakers.cpp
index 89302c3c64..e80756e4de 100755
--- a/indra/newview/llspeakers.cpp
+++ b/indra/newview/llspeakers.cpp
@@ -544,10 +544,18 @@ void LLSpeakerMgr::updateSpeakerList()
LLIMModel::LLIMSession* session = LLIMModel::getInstance()->findIMSession(session_id);
if (session->isGroupSessionType() && (mSpeakers.size() <= 1))
{
- const F32 load_group_timeout = gSavedSettings.getF32("ChatLoadGroupTimeout");
// For groups, we need to hit the group manager.
// Note: The session uuid and the group uuid are actually one and the same. If that was to change, this will fail.
LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(session_id);
+ F32 large_group_delay = 0.f;
+ if (gdatap)
+ {
+ //This is a viewer-side bandaid for maint-4414 it does not fix the core issue.
+ large_group_delay = (F32)(gdatap->mMemberCount / 5000);
+ }
+
+ const F32 load_group_timeout = gSavedSettings.getF32("ChatLoadGroupTimeout") + large_group_delay;
+
if (!gdatap && (mGetListTime.getElapsedTimeF32() >= load_group_timeout))
{
// Request the data the first time around
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 0c282a19a5..74df18810c 100755
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -2226,7 +2226,6 @@ bool idle_startup()
return TRUE;
}
- LL_WARNS("AppInit") << "Reached end of idle_startup for state " << LLStartUp::getStartupState() << LL_ENDL;
return TRUE;
}
diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp
index 047538a32a..eedb829b48 100755
--- a/indra/newview/llstatusbar.cpp
+++ b/indra/newview/llstatusbar.cpp
@@ -200,6 +200,7 @@ BOOL LLStatusBar::postBuild()
sgp.stat.count_stat_float(&LLStatViewer::ACTIVE_MESSAGE_DATA_RECEIVED);
sgp.units("Kbps");
sgp.precision(0);
+ sgp.per_sec(true);
mSGBandwidth = LLUICtrlFactory::create<LLStatGraph>(sgp);
addChild(mSGBandwidth);
x -= SIM_STAT_WIDTH + 2;
diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp
index c12753acb0..a426669b5e 100755
--- a/indra/newview/lltexturectrl.cpp
+++ b/indra/newview/lltexturectrl.cpp
@@ -118,7 +118,7 @@ public:
/*virtual*/ void onClose(bool app_settings);
// New functions
- void setImageID( const LLUUID& image_asset_id);
+ void setImageID( const LLUUID& image_asset_id, bool set_selection = true);
void updateImageStats();
const LLUUID& getAssetID() { return mImageAssetID; }
const LLUUID& findItemID(const LLUUID& asset_id, BOOL copyable_only);
@@ -232,7 +232,7 @@ LLFloaterTexturePicker::~LLFloaterTexturePicker()
{
}
-void LLFloaterTexturePicker::setImageID(const LLUUID& image_id)
+void LLFloaterTexturePicker::setImageID(const LLUUID& image_id, bool set_selection /*=true*/)
{
if( mImageAssetID != image_id && mActive)
{
@@ -253,6 +253,10 @@ void LLFloaterTexturePicker::setImageID(const LLUUID& image_id)
getChild<LLUICtrl>("apply_immediate_check")->setValue(FALSE);
mNoCopyTextureSelected = TRUE;
}
+ }
+
+ if (set_selection)
+ {
mInventoryPanel->setSelection(item_id, TAKE_FOCUS_NO);
}
}
@@ -461,7 +465,10 @@ BOOL LLFloaterTexturePicker::postBuild()
// don't put keyboard focus on selected item, because the selection callback
// will assume that this was user input
- mInventoryPanel->setSelection(findItemID(mImageAssetID, FALSE), TAKE_FOCUS_NO);
+ if(!mImageAssetID.isNull())
+ {
+ mInventoryPanel->setSelection(findItemID(mImageAssetID, FALSE), TAKE_FOCUS_NO);
+ }
}
mModeSelector = getChild<LLRadioGroup>("mode_selection");
@@ -820,7 +827,7 @@ void LLFloaterTexturePicker::onSelectionChange(const std::deque<LLFolderViewItem
{
mNoCopyTextureSelected = TRUE;
}
- setImageID(itemp->getAssetUUID());
+ setImageID(itemp->getAssetUUID(),false);
mViewModel->setDirty(); // *TODO: shouldn't we be using setValue() here?
if (user_action && mCanPreview)
{
diff --git a/indra/newview/lltextureview.cpp b/indra/newview/lltextureview.cpp
index 4f0413a2e4..b7786bcdd7 100755
--- a/indra/newview/lltextureview.cpp
+++ b/indra/newview/lltextureview.cpp
@@ -501,7 +501,7 @@ private:
void LLGLTexMemBar::draw()
{
S32Megabytes bound_mem = LLViewerTexture::sBoundTextureMemory;
- S32Megabytes max_bound_mem = LLViewerTexture::sMaxBoundTextureMem;
+ S32Megabytes max_bound_mem = LLViewerTexture::sMaxBoundTextureMemory;
S32Megabytes total_mem = LLViewerTexture::sTotalTextureMemory;
S32Megabytes max_total_mem = LLViewerTexture::sMaxTotalTextureMem;
F32 discard_bias = LLViewerTexture::sDesiredDiscardBias;
diff --git a/indra/newview/lltoast.cpp b/indra/newview/lltoast.cpp
index 1b5b44423f..63ede7f8ac 100755
--- a/indra/newview/lltoast.cpp
+++ b/indra/newview/lltoast.cpp
@@ -234,6 +234,8 @@ void LLToast::closeToast()
{
mOnDeleteToastSignal(this);
+ setSoundFlags(SILENT);
+
closeFloater();
}
diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp
index 8fd0eb5931..c82894a5cc 100755
--- a/indra/newview/lltoastalertpanel.cpp
+++ b/indra/newview/lltoastalertpanel.cpp
@@ -266,6 +266,11 @@ LLToastAlertPanel::LLToastAlertPanel( LLNotificationPtr notification, bool modal
mLineEditor->setMaxTextChars(edit_text_max_chars);
mLineEditor->setText(edit_text_contents);
+ if("SaveOutfitAs" == mNotification->getName())
+ {
+ mLineEditor->setPrevalidate(&LLTextValidate::validateASCII);
+ }
+
// decrease limit of line editor of teleport offer dialog to avoid truncation of
// location URL in invitation message, see EXT-6891
if ("OfferTeleport" == mNotification->getName())
diff --git a/indra/newview/lltoolbrush.cpp b/indra/newview/lltoolbrush.cpp
index 56f0f8be25..e3eb8ba7af 100755
--- a/indra/newview/lltoolbrush.cpp
+++ b/indra/newview/lltoolbrush.cpp
@@ -52,7 +52,7 @@
#include "llworld.h"
#include "llappviewer.h"
#include "llparcel.h"
-
+#include "roles_constants.h"
#include "llglheaders.h"
const std::string REGION_BLOCKS_TERRAFORM_MSG = "This region does not allow terraforming.\n"
@@ -239,9 +239,9 @@ void LLToolBrushLand::modifyLandInSelectionGlobal()
iter != mLastAffectedRegions.end(); ++iter)
{
LLViewerRegion* regionp = *iter;
- if (!canTerraform(regionp))
+ if (!canTerraformRegion(regionp))
{
- alertNoTerraform(regionp);
+ alertNoTerraformRegion(regionp);
return;
}
}
@@ -376,12 +376,17 @@ BOOL LLToolBrushLand::handleMouseDown(S32 x, S32 y, MASK mask)
LLRegionPosition region_position( spot );
LLViewerRegion* regionp = region_position.getRegion();
- if (!canTerraform(regionp))
+ if (!canTerraformRegion(regionp))
{
- alertNoTerraform(regionp);
+ alertNoTerraformRegion(regionp);
return TRUE;
}
+ if (!canTerraformParcel(regionp))
+ {
+ alertNoTerraformParcel();
+ }
+
LLVector3 pos_region = region_position.getPositionRegion();
U32 grids = regionp->getLand().mGridsPerEdge;
S32 i = llclamp( (S32)pos_region.mV[VX], 0, (S32)grids );
@@ -408,6 +413,16 @@ BOOL LLToolBrushLand::handleHover( S32 x, S32 y, MASK mask )
mMouseY = y;
mGotHover = TRUE;
gViewerWindow->setCursor(UI_CURSOR_TOOLLAND);
+
+ LLVector3d spot;
+ if( gViewerWindow->mousePointOnLandGlobal( mMouseX, mMouseY, &spot ) )
+ {
+
+ spot.mdV[VX] = floor( spot.mdV[VX] + 0.5 );
+ spot.mdV[VY] = floor( spot.mdV[VY] + 0.5 );
+
+ LLViewerParcelMgr::getInstance()->setHoverParcel(spot);
+ }
return TRUE;
}
@@ -653,7 +668,7 @@ void LLToolBrushLand::redo()
}*/
// static
-bool LLToolBrushLand::canTerraform(LLViewerRegion* regionp) const
+bool LLToolBrushLand::canTerraformRegion(LLViewerRegion* regionp) const
{
if (!regionp) return false;
if (regionp->canManageEstate()) return true;
@@ -661,7 +676,22 @@ bool LLToolBrushLand::canTerraform(LLViewerRegion* regionp) const
}
// static
-void LLToolBrushLand::alertNoTerraform(LLViewerRegion* regionp)
+bool LLToolBrushLand::canTerraformParcel(LLViewerRegion* regionp) const
+{
+ LLParcel* selected_parcel = LLViewerParcelMgr::getInstance()->getHoverParcel();
+ bool is_terraform_allowed = false;
+ if (selected_parcel)
+ {
+ BOOL owner_release = LLViewerParcelMgr::isParcelOwnedByAgent(selected_parcel, GP_LAND_ALLOW_EDIT_LAND);
+ is_terraform_allowed = ( gAgent.canManageEstate() || (selected_parcel->getOwnerID() == regionp->getOwner()) || owner_release);
+ }
+
+ return is_terraform_allowed;
+}
+
+
+// static
+void LLToolBrushLand::alertNoTerraformRegion(LLViewerRegion* regionp)
{
if (!regionp) return;
@@ -671,6 +701,19 @@ void LLToolBrushLand::alertNoTerraform(LLViewerRegion* regionp)
}
+// static
+void LLToolBrushLand::alertNoTerraformParcel()
+{
+ LLParcel* selected_parcel = LLViewerParcelMgr::getInstance()->getHoverParcel();
+ if (selected_parcel)
+ {
+ LLSD args;
+ args["PARCEL"] = selected_parcel->getName();
+ LLNotificationsUtil::add("ParcelNoTerraforming", args);
+ }
+
+}
+
///============================================================================
/// Local function definitions
///============================================================================
diff --git a/indra/newview/lltoolbrush.h b/indra/newview/lltoolbrush.h
index 1c7f198900..2ec6911de9 100755
--- a/indra/newview/lltoolbrush.h
+++ b/indra/newview/lltoolbrush.h
@@ -81,10 +81,14 @@ protected:
const LLVector3& pos_world);
// Does region allow terraform, or are we a god?
- bool canTerraform(LLViewerRegion* regionp) const;
+ bool canTerraformRegion(LLViewerRegion* regionp) const;
+
+ bool canTerraformParcel(LLViewerRegion* regionp) const;
// Modal dialog that you can't terraform the region
- void alertNoTerraform(LLViewerRegion* regionp);
+ void alertNoTerraformRegion(LLViewerRegion* regionp);
+
+ void alertNoTerraformParcel();
protected:
F32 mStartingZ;
diff --git a/indra/newview/lltoolcomp.cpp b/indra/newview/lltoolcomp.cpp
index b75d6b3dcb..4bda9072d0 100755
--- a/indra/newview/lltoolcomp.cpp
+++ b/indra/newview/lltoolcomp.cpp
@@ -126,12 +126,20 @@ void LLToolComposite::handleSelect()
mSelected = TRUE;
}
+void LLToolComposite::handleDeselect()
+{
+ mCur->handleDeselect();
+ mCur = mDefault;
+ mSelected = FALSE;
+}
+
//----------------------------------------------------------------------------
// LLToolCompInspect
//----------------------------------------------------------------------------
LLToolCompInspect::LLToolCompInspect()
-: LLToolComposite(std::string("Inspect"))
+: LLToolComposite(std::string("Inspect")),
+ mIsToolCameraActive(FALSE)
{
mSelectRect = new LLToolSelectRect(this);
mDefault = mSelectRect;
@@ -146,42 +154,87 @@ LLToolCompInspect::~LLToolCompInspect()
BOOL LLToolCompInspect::handleMouseDown(S32 x, S32 y, MASK mask)
{
- mMouseDown = TRUE;
- gViewerWindow->pickAsync(x, y, mask, pickCallback);
- return TRUE;
+ BOOL handled = FALSE;
+
+ if (mCur == LLToolCamera::getInstance())
+ {
+ handled = mCur->handleMouseDown(x, y, mask);
+ }
+ else
+ {
+ mMouseDown = TRUE;
+ gViewerWindow->pickAsync(x, y, mask, pickCallback);
+ handled = TRUE;
+ }
+
+ return handled;
+}
+
+BOOL LLToolCompInspect::handleMouseUp(S32 x, S32 y, MASK mask)
+{
+ BOOL handled = LLToolComposite::handleMouseUp(x, y, mask);
+ mIsToolCameraActive = getCurrentTool() == LLToolCamera::getInstance();
+ return handled;
}
void LLToolCompInspect::pickCallback(const LLPickInfo& pick_info)
{
LLViewerObject* hit_obj = pick_info.getObject();
+ LLToolCompInspect * tool_inspectp = LLToolCompInspect::getInstance();
- if (!LLToolCompInspect::getInstance()->mMouseDown)
+ if (!tool_inspectp->mMouseDown)
{
// fast click on object, but mouse is already up...just do select
- LLToolCompInspect::getInstance()->mSelectRect->handleObjectSelection(pick_info, gSavedSettings.getBOOL("EditLinkedParts"), FALSE);
+ tool_inspectp->mSelectRect->handleObjectSelection(pick_info, gSavedSettings.getBOOL("EditLinkedParts"), FALSE);
return;
}
- if( hit_obj )
- {
- if (LLSelectMgr::getInstance()->getSelection()->getObjectCount())
- {
- LLEditMenuHandler::gEditMenuHandler = LLSelectMgr::getInstance();
- }
- LLToolCompInspect::getInstance()->setCurrentTool( LLToolCompInspect::getInstance()->mSelectRect );
- LLToolCompInspect::getInstance()->mSelectRect->handlePick( pick_info );
+ LLSelectMgr * mgr_selectp = LLSelectMgr::getInstance();
+ if( hit_obj && mgr_selectp->getSelection()->getObjectCount()) {
+ LLEditMenuHandler::gEditMenuHandler = mgr_selectp;
+ }
+
+ tool_inspectp->setCurrentTool( tool_inspectp->mSelectRect );
+ tool_inspectp->mIsToolCameraActive = FALSE;
+ tool_inspectp->mSelectRect->handlePick( pick_info );
+}
+
+BOOL LLToolCompInspect::handleDoubleClick(S32 x, S32 y, MASK mask)
+{
+ return TRUE;
+}
+
+BOOL LLToolCompInspect::handleKey(KEY key, MASK mask)
+{
+ BOOL handled = FALSE;
+ if(KEY_ALT == key)
+ {
+ setCurrentTool(LLToolCamera::getInstance());
+ mIsToolCameraActive = TRUE;
+ handled = TRUE;
}
else
{
- LLToolCompInspect::getInstance()->setCurrentTool( LLToolCompInspect::getInstance()->mSelectRect );
- LLToolCompInspect::getInstance()->mSelectRect->handlePick( pick_info );
+ handled = LLToolComposite::handleKey(key, mask);
}
+
+ return handled;
}
-BOOL LLToolCompInspect::handleDoubleClick(S32 x, S32 y, MASK mask)
+void LLToolCompInspect::onMouseCaptureLost()
{
- return TRUE;
+ LLToolComposite::onMouseCaptureLost();
+ mIsToolCameraActive = FALSE;
+}
+
+void LLToolCompInspect::keyUp(KEY key, MASK mask)
+{
+ if (KEY_ALT == key && mCur == LLToolCamera::getInstance())
+ {
+ setCurrentTool(mDefault);
+ mIsToolCameraActive = FALSE;
+ }
}
//----------------------------------------------------------------------------
diff --git a/indra/newview/lltoolcomp.h b/indra/newview/lltoolcomp.h
index bbb5ed5797..e75d3c22e2 100755
--- a/indra/newview/lltoolcomp.h
+++ b/indra/newview/lltoolcomp.h
@@ -62,7 +62,7 @@ public:
virtual BOOL clipMouseWhenDown() { return mCur->clipMouseWhenDown(); }
virtual void handleSelect();
- virtual void handleDeselect() { mCur->handleDeselect(); mCur = mDefault; mSelected = FALSE; }
+ virtual void handleDeselect();
virtual void render() { mCur->render(); }
virtual void draw() { mCur->draw(); }
@@ -78,9 +78,10 @@ public:
{ mCur->localPointToScreen(local_x, local_y, screen_x, screen_y); }
BOOL isSelecting();
+ LLTool* getCurrentTool() { return mCur; }
+
protected:
void setCurrentTool( LLTool* new_tool );
- LLTool* getCurrentTool() { return mCur; }
// In hover handler, call this to auto-switch tools
void setToolFromMask( MASK mask, LLTool *normal );
@@ -108,9 +109,18 @@ public:
// Overridden from LLToolComposite
virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
+ virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask);
virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
+ virtual BOOL handleKey(KEY key, MASK mask);
+ virtual void onMouseCaptureLost();
+ void keyUp(KEY key, MASK mask);
static void pickCallback(const LLPickInfo& pick_info);
+
+ BOOL isToolCameraActive() const { return mIsToolCameraActive; }
+
+private:
+ BOOL mIsToolCameraActive;
};
//-----------------------------------------------------------------------
diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp
index eabf6f0497..8561d265de 100755
--- a/indra/newview/lltooldraganddrop.cpp
+++ b/indra/newview/lltooldraganddrop.cpp
@@ -513,6 +513,7 @@ void LLToolDragAndDrop::onMouseCaptureLost()
mSource = SOURCE_AGENT;
mSourceID.setNull();
mObjectID.setNull();
+ mCustomMsg.clear();
}
BOOL LLToolDragAndDrop::handleMouseUp( S32 x, S32 y, MASK mask )
@@ -556,6 +557,12 @@ ECursorType LLToolDragAndDrop::acceptanceToCursor( EAcceptance acceptance )
mCursor = UI_CURSOR_NOLOCKED;
break;
+ case ACCEPT_NO_CUSTOM:
+ mToolTipMsg = mCustomMsg;
+ mCursor = UI_CURSOR_NO;
+ break;
+
+
case ACCEPT_NO:
mCursor = UI_CURSOR_NO;
break;
@@ -630,6 +637,7 @@ BOOL LLToolDragAndDrop::handleToolTip(S32 x, S32 y, MASK mask)
void LLToolDragAndDrop::handleDeselect()
{
mToolTipMsg.clear();
+ mCustomMsg.clear();
LLToolTipMgr::instance().blockToolTips();
}
@@ -2164,6 +2172,23 @@ EAcceptance LLToolDragAndDrop::dad3dWearCategory(
// TODO: investigate wearables may not be loaded at this point EXT-8231
}
+ U32 max_items = gSavedSettings.getU32("WearFolderLimit");
+ LLInventoryModel::cat_array_t cats;
+ LLInventoryModel::item_array_t items;
+ LLFindWearablesEx not_worn(/*is_worn=*/ false, /*include_body_parts=*/ false);
+ gInventory.collectDescendentsIf(category->getUUID(),
+ cats,
+ items,
+ LLInventoryModel::EXCLUDE_TRASH,
+ not_worn);
+ if (items.size() > max_items)
+ {
+ LLStringUtil::format_map_t args;
+ args["AMOUNT"] = llformat("%d", max_items);
+ mCustomMsg = LLTrans::getString("TooltipTooManyWearables",args);
+ return ACCEPT_NO_CUSTOM;
+ }
+
if(mSource == SOURCE_AGENT)
{
const LLUUID trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_TRASH);
diff --git a/indra/newview/lltooldraganddrop.h b/indra/newview/lltooldraganddrop.h
index 99b794ce58..de501ea32a 100755
--- a/indra/newview/lltooldraganddrop.h
+++ b/indra/newview/lltooldraganddrop.h
@@ -149,6 +149,7 @@ protected:
BOOL mDrop;
S32 mCurItemIndex;
std::string mToolTipMsg;
+ std::string mCustomMsg;
enddrag_signal_t mEndDragSignal;
diff --git a/indra/newview/lltoolfocus.cpp b/indra/newview/lltoolfocus.cpp
index ee4ec112f8..58073d1186 100755
--- a/indra/newview/lltoolfocus.cpp
+++ b/indra/newview/lltoolfocus.cpp
@@ -53,6 +53,7 @@
#include "llmorphview.h"
#include "llfloaterreg.h"
#include "llfloatercamera.h"
+#include "llmenugl.h"
// Globals
BOOL gCameraBtnZoom = TRUE;
@@ -75,6 +76,7 @@ LLToolCamera::LLToolCamera()
mOutsideSlopX(FALSE),
mOutsideSlopY(FALSE),
mValidClickPoint(FALSE),
+ mValidSelection(FALSE),
mMouseSteering(FALSE),
mMouseUpX(0),
mMouseUpY(0),
@@ -91,6 +93,8 @@ void LLToolCamera::handleSelect()
if (gFloaterTools)
{
gFloaterTools->setStatusText("camera");
+ // in case we start from tools floater, we count any selection as valid
+ mValidSelection = gFloaterTools->getVisible();
}
}
@@ -98,6 +102,14 @@ void LLToolCamera::handleSelect()
void LLToolCamera::handleDeselect()
{
// gAgent.setLookingAtAvatar(FALSE);
+
+ // Make sure that temporary selection won't pass anywhere except pie tool.
+ MASK override_mask = gKeyboard ? gKeyboard->currentMask(TRUE) : 0;
+ if (!mValidSelection && (override_mask != MASK_NONE || (gFloaterTools && gFloaterTools->getVisible())))
+ {
+ LLMenuGL::sMenuContainer->hideMenus();
+ LLSelectMgr::getInstance()->validateSelection();
+ }
}
BOOL LLToolCamera::handleMouseDown(S32 x, S32 y, MASK mask)
diff --git a/indra/newview/lltoolfocus.h b/indra/newview/lltoolfocus.h
index b1ac42e33f..d23eb2cce6 100755
--- a/indra/newview/lltoolfocus.h
+++ b/indra/newview/lltoolfocus.h
@@ -65,6 +65,7 @@ protected:
BOOL mOutsideSlopX;
BOOL mOutsideSlopY;
BOOL mValidClickPoint;
+ BOOL mValidSelection;
BOOL mMouseSteering;
S32 mMouseUpX; // needed for releaseMouse()
S32 mMouseUpY;
diff --git a/indra/newview/lltoolgrab.cpp b/indra/newview/lltoolgrab.cpp
index 493c970141..fa6694b93b 100755
--- a/indra/newview/lltoolgrab.cpp
+++ b/indra/newview/lltoolgrab.cpp
@@ -56,6 +56,7 @@
#include "llviewerregion.h"
#include "llvoavatarself.h"
#include "llworld.h"
+#include "llmenugl.h"
const S32 SLOP_DIST_SQ = 4;
@@ -83,6 +84,7 @@ LLToolGrab::LLToolGrab( LLToolComposite* composite )
mLastFace(0),
mSpinGrabbing( FALSE ),
mSpinRotation(),
+ mClickedInMouselook( FALSE ),
mHideBuildHighlight(FALSE)
{ }
@@ -97,6 +99,8 @@ void LLToolGrab::handleSelect()
{
// viewer can crash during startup if we don't check.
gFloaterTools->setStatusText("grab");
+ // in case we start from tools floater, we count any selection as valid
+ mValidSelection = gFloaterTools->getVisible();
}
gGrabBtnVertical = FALSE;
gGrabBtnSpin = FALSE;
@@ -109,6 +113,14 @@ void LLToolGrab::handleDeselect()
setMouseCapture( FALSE );
}
+ // Make sure that temporary(invalid) selection won't pass anywhere except pie tool.
+ MASK override_mask = gKeyboard ? gKeyboard->currentMask(TRUE) : 0;
+ if (!mValidSelection && (override_mask != MASK_NONE || (gFloaterTools && gFloaterTools->getVisible())))
+ {
+ LLMenuGL::sMenuContainer->hideMenus();
+ LLSelectMgr::getInstance()->validateSelection();
+ }
+
}
BOOL LLToolGrab::handleDoubleClick(S32 x, S32 y, MASK mask)
@@ -136,6 +148,7 @@ BOOL LLToolGrab::handleMouseDown(S32 x, S32 y, MASK mask)
// can grab transparent objects (how touch event propagates, scripters rely on this)
gViewerWindow->pickAsync(x, y, mask, pickCallback, TRUE);
}
+ mClickedInMouselook = gAgentCamera.cameraMouselook();
return TRUE;
}
@@ -926,13 +939,21 @@ BOOL LLToolGrab::handleMouseUp(S32 x, S32 y, MASK mask)
{
setMouseCapture( FALSE );
}
+
mMode = GRAB_INACTIVE;
- // HACK: Make some grabs temporary
- if (gGrabTransientTool)
+ if(mClickedInMouselook && !gAgentCamera.cameraMouselook())
{
- gBasicToolset->selectTool( gGrabTransientTool );
- gGrabTransientTool = NULL;
+ mClickedInMouselook = FALSE;
+ }
+ else
+ {
+ // HACK: Make some grabs temporary
+ if (gGrabTransientTool)
+ {
+ gBasicToolset->selectTool( gGrabTransientTool );
+ gGrabTransientTool = NULL;
+ }
}
//gAgent.setObjectTracking(gSavedSettings.getBOOL("TrackFocusObject"));
diff --git a/indra/newview/lltoolgrab.h b/indra/newview/lltoolgrab.h
index 06a3b662c8..4e22732124 100755
--- a/indra/newview/lltoolgrab.h
+++ b/indra/newview/lltoolgrab.h
@@ -119,6 +119,7 @@ private:
BOOL mHasMoved; // has mouse moved off center at all?
BOOL mOutsideSlop; // has mouse moved outside center 5 pixels?
BOOL mDeselectedThisClick;
+ BOOL mValidSelection;
S32 mLastFace;
LLVector2 mLastUVCoords;
@@ -133,6 +134,8 @@ private:
LLQuaternion mSpinRotation;
BOOL mHideBuildHighlight;
+
+ BOOL mClickedInMouselook;
};
extern BOOL gGrabBtnVertical;
diff --git a/indra/newview/lltoolmgr.cpp b/indra/newview/lltoolmgr.cpp
index aa55caf7ec..175227173f 100755
--- a/indra/newview/lltoolmgr.cpp
+++ b/indra/newview/lltoolmgr.cpp
@@ -34,6 +34,7 @@
//#include "llfirstuse.h"
// tools and manipulators
+#include "llfloaterinspect.h"
#include "lltool.h"
#include "llmanipscale.h"
#include "llselectmgr.h"
@@ -218,7 +219,20 @@ LLTool* LLToolMgr::getCurrentTool()
}
if (cur_tool)
{
- cur_tool->handleSelect();
+ if ( LLToolCompInspect::getInstance()->isToolCameraActive()
+ && prev_tool == LLToolCamera::getInstance()
+ && cur_tool == LLToolPie::getInstance() )
+ {
+ LLFloaterInspect * inspect_instance = LLFloaterReg::getTypedInstance<LLFloaterInspect>("inspect");
+ if(inspect_instance && inspect_instance->getVisible())
+ {
+ setTransientTool(LLToolCompInspect::getInstance());
+ }
+ }
+ else
+ {
+ cur_tool->handleSelect();
+ }
}
}
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index 6881ec4563..e4353aafaa 100755
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -439,8 +439,12 @@ ECursorType LLToolPie::cursorFromObject(LLViewerObject* object)
break;
case CLICK_ACTION_BUY:
if ( mClickActionBuyEnabled )
- {
- cursor = UI_CURSOR_TOOLBUY;
+ {
+ LLSelectNode* node = LLSelectMgr::getInstance()->getHoverNode();
+ if (!node || node->mSaleInfo.isForSale())
+ {
+ cursor = UI_CURSOR_TOOLBUY;
+ }
}
break;
case CLICK_ACTION_OPEN:
@@ -544,6 +548,7 @@ BOOL LLToolPie::handleHover(S32 x, S32 y, MASK mask)
mHoverPick = gViewerWindow->pickImmediate(x, y, FALSE);
LLViewerObject *parent = NULL;
LLViewerObject *object = mHoverPick.getObject();
+ LLSelectMgr::getInstance()->setHoverObject(object, mHoverPick.mObjectFace);
if (object)
{
parent = object->getRootEdit();
@@ -1306,7 +1311,16 @@ void LLToolPie::handleDeselect()
}
// remove temporary selection for pie menu
LLSelectMgr::getInstance()->setHoverObject(NULL);
- LLSelectMgr::getInstance()->validateSelection();
+
+ // Menu may be still up during transfer to different tool.
+ // toolfocus and toolgrab should retain menu, they will clear it if needed
+ MASK override_mask = gKeyboard ? gKeyboard->currentMask(TRUE) : 0;
+ if (gMenuHolder && (!gMenuHolder->getVisible() || (override_mask & (MASK_ALT | MASK_CONTROL)) == 0))
+ {
+ // in most cases menu is useless without correct selection, so either keep both or discard both
+ gMenuHolder->hideMenus();
+ LLSelectMgr::getInstance()->validateSelection();
+ }
}
LLTool* LLToolPie::getOverrideTool(MASK mask)
@@ -1686,6 +1700,12 @@ BOOL LLToolPie::handleRightClickPick()
}
}
+ // non UI object - put focus back "in world"
+ if (gFocusMgr.getKeyboardFocus())
+ {
+ gFocusMgr.setKeyboardFocus(NULL);
+ }
+
LLTool::handleRightMouseDown(x, y, mask);
// We handled the event.
return TRUE;
diff --git a/indra/newview/lltoolselect.cpp b/indra/newview/lltoolselect.cpp
index 0a9153eecb..812abe9dbd 100755
--- a/indra/newview/lltoolselect.cpp
+++ b/indra/newview/lltoolselect.cpp
@@ -36,6 +36,7 @@
#include "llmanip.h"
#include "llmenugl.h"
#include "llselectmgr.h"
+#include "llviewermediafocus.h"
#include "lltoolmgr.h"
#include "llfloaterscriptdebug.h"
#include "llviewercamera.h"
@@ -110,6 +111,21 @@ LLObjectSelectionHandle LLToolSelect::handleObjectSelection(const LLPickInfo& pi
{
BOOL already_selected = object->isSelected();
+ if (already_selected &&
+ object->getNumTEs() > 0 &&
+ !LLSelectMgr::getInstance()->getSelection()->contains(object,SELECT_ALL_TES))
+ {
+ const LLTextureEntry* tep = object->getTE(pick.mObjectFace);
+ if (tep && !tep->isSelected() && !LLViewerMediaFocus::getInstance()->getFocusedObjectID().isNull())
+ {
+ // we were interacting with media and clicked on non selected face, drop media focus
+ LLViewerMediaFocus::getInstance()->clearFocus();
+ // selection was removed and zoom preserved by clearFocus(), continue with regular selection
+ already_selected = false;
+ extend_select = true;
+ }
+ }
+
if ( extend_select )
{
if ( already_selected )
diff --git a/indra/newview/llurldispatcher.cpp b/indra/newview/llurldispatcher.cpp
index 615064c782..78268944fc 100755
--- a/indra/newview/llurldispatcher.cpp
+++ b/indra/newview/llurldispatcher.cpp
@@ -278,13 +278,13 @@ public:
tokens[2].asReal(),
tokens[3].asReal());
}
-
- LLSD args;
- args["LOCATION"] = tokens[0];
// Region names may be %20 escaped.
std::string region_name = LLURI::unescape(tokens[0]);
+ LLSD args;
+ args["LOCATION"] = region_name;
+
LLSD payload;
payload["region_name"] = region_name;
payload["callback_url"] = LLSLURL(region_name, coords).getSLURLString();
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index 4e491f257d..e19fe9ca75 100755
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -76,6 +76,7 @@
#include "llfloaterinspect.h"
#include "llfloaterinventory.h"
#include "llfloaterjoystick.h"
+#include "llfloaterlagmeter.h"
#include "llfloaterland.h"
#include "llfloaterlandholdings.h"
#include "llfloatermap.h"
@@ -237,6 +238,7 @@ void LLViewerFloaterReg::registerFloaters()
LLNotificationsUI::registerFloater();
LLFloaterDisplayNameUtil::registerFloater();
+ LLFloaterReg::add("lagmeter", "floater_lagmeter.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterLagMeter>);
LLFloaterReg::add("land_holdings", "floater_land_holdings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterLandHoldings>);
LLFloaterReg::add("mem_leaking", "floater_mem_leaking.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterMemLeak>);
diff --git a/indra/newview/llviewerkeyboard.cpp b/indra/newview/llviewerkeyboard.cpp
index 160478788c..a4a05587d3 100755
--- a/indra/newview/llviewerkeyboard.cpp
+++ b/indra/newview/llviewerkeyboard.cpp
@@ -88,18 +88,25 @@ void agent_push_down( EKeystate s )
gAgent.moveUp(-1);
}
+static void agent_check_temporary_run(LLAgent::EDoubleTapRunMode mode)
+{
+ if (gAgent.mDoubleTapRunMode == mode &&
+ gAgent.getRunning() &&
+ !gAgent.getAlwaysRun())
+ {
+ // Turn off temporary running.
+ gAgent.clearRunning();
+ gAgent.sendWalkRun(gAgent.getRunning());
+ }
+}
+
static void agent_handle_doubletap_run(EKeystate s, LLAgent::EDoubleTapRunMode mode)
{
if (KEYSTATE_UP == s)
{
- if (gAgent.mDoubleTapRunMode == mode &&
- gAgent.getRunning() &&
- !gAgent.getAlwaysRun())
- {
- // Turn off temporary running.
- gAgent.clearRunning();
- gAgent.sendWalkRun(gAgent.getRunning());
- }
+ // Note: in case shift is already released, slide left/right run
+ // will be released in agent_turn_left()/agent_turn_right()
+ agent_check_temporary_run(mode);
}
else if (gSavedSettings.getBOOL("AllowTapTapHoldRun") &&
KEYSTATE_DOWN == s &&
@@ -162,7 +169,7 @@ void agent_push_backward( EKeystate s )
{
camera_move_backward(s);
}
- else if (!gAgent.backwardGrabbed() && gAgentAvatarp->isSitting())
+ else if (!gAgent.backwardGrabbed() && gAgentAvatarp->isSitting() && gSavedSettings.getBOOL("LeaveMouselook"))
{
gAgentCamera.changeCameraToThirdPerson();
}
@@ -218,7 +225,12 @@ void agent_turn_left( EKeystate s )
}
else
{
- if (KEYSTATE_UP == s) return;
+ if (KEYSTATE_UP == s)
+ {
+ // Check temporary running. In case user released 'left' key with shift already released.
+ agent_check_temporary_run(LLAgent::DOUBLETAP_SLIDELEFT);
+ return;
+ }
F32 time = gKeyboard->getCurKeyElapsedTime();
gAgent.moveYaw( LLFloaterMove::getYawRate( time ) );
}
@@ -241,7 +253,12 @@ void agent_turn_right( EKeystate s )
}
else
{
- if (KEYSTATE_UP == s) return;
+ if (KEYSTATE_UP == s)
+ {
+ // Check temporary running. In case user released 'right' key with shift already released.
+ agent_check_temporary_run(LLAgent::DOUBLETAP_SLIDERIGHT);
+ return;
+ }
F32 time = gKeyboard->getCurKeyElapsedTime();
gAgent.moveYaw( -LLFloaterMove::getYawRate( time ) );
}
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 8c9429c05d..38aaff9279 100755
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -64,6 +64,7 @@
#include "llfloaterinventory.h"
#include "llfloaterimcontainer.h"
#include "llfloaterland.h"
+#include "llfloaterimnearbychat.h"
#include "llfloaterpathfindingcharacters.h"
#include "llfloaterpathfindinglinksets.h"
#include "llfloaterpay.h"
@@ -92,6 +93,7 @@
#include "llparcel.h"
#include "llrootview.h"
#include "llsceneview.h"
+#include "llscenemonitor.h"
#include "llselectmgr.h"
#include "llspellcheckmenuhandler.h"
#include "llstatusbar.h"
@@ -533,6 +535,10 @@ class LLAdvancedToggleConsole : public view_listener_t
{
toggle_visibility( (void*)gSceneView);
}
+ else if ("scene monitor" == console_type)
+ {
+ toggle_visibility( (void*)gSceneMonitorView);
+ }
return true;
}
@@ -559,6 +565,10 @@ class LLAdvancedCheckConsole : public view_listener_t
{
new_value = get_visibility( (void*) gSceneView);
}
+ else if ("scene monitor" == console_type)
+ {
+ new_value = get_visibility( (void*) gSceneMonitorView);
+ }
return new_value;
}
@@ -5660,6 +5670,25 @@ void toggle_debug_menus(void*)
// gExportDialog = LLUploadDialog::modalUploadDialog("Exporting selected objects...");
// }
//
+
+class LLCommunicateNearbyChat : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLFloaterIMContainer* im_box = LLFloaterIMContainer::getInstance();
+ bool nearby_visible = LLFloaterReg::getTypedInstance<LLFloaterIMNearbyChat>("nearby_chat")->isInVisibleChain();
+ if(nearby_visible && im_box->getSelectedSession() == LLUUID() && im_box->getConversationListItemSize() > 1)
+ {
+ im_box->selectNextorPreviousConversation(false);
+ }
+ else
+ {
+ LLFloaterReg::toggleInstanceOrBringToFront("nearby_chat");
+ }
+ return true;
+ }
+};
+
class LLWorldSetHomeLocation : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
@@ -6176,7 +6205,7 @@ class LLPromptShowURL : public view_listener_t
std::string alert = param.substr(0, offset);
std::string url = param.substr(offset+1);
- if(gSavedSettings.getBOOL("UseExternalBrowser"))
+ if (LLWeb::useExternalBrowser(url))
{
LLSD payload;
payload["url"] = url;
@@ -7796,7 +7825,7 @@ void handle_web_content_test(const LLSD& param)
void handle_show_url(const LLSD& param)
{
std::string url = param.asString();
- if(gSavedSettings.getBOOL("UseExternalBrowser"))
+ if (LLWeb::useExternalBrowser(url))
{
LLWeb::loadURLExternal(url);
}
@@ -8233,9 +8262,9 @@ class LLWorldEnableEnvSettings : public view_listener_t
bool result = false;
std::string tod = userdata.asString();
- if (tod == "region")
+ if (LLEnvManagerNew::instance().getUseRegionSettings())
{
- return LLEnvManagerNew::instance().getUseRegionSettings();
+ return (tod == "region");
}
if (LLEnvManagerNew::instance().getUseFixedSky())
@@ -8578,6 +8607,9 @@ void initialize_menus()
// Me > Movement
view_listener_t::addMenu(new LLAdvancedAgentFlyingInfo(), "Agent.getFlying");
+ //Communicate Nearby chat
+ view_listener_t::addMenu(new LLCommunicateNearbyChat(), "Communicate.NearbyChat");
+
// Communicate > Voice morphing > Subscribe...
commit.add("Communicate.VoiceMorphing.Subscribe", boost::bind(&handle_voice_morphing_subscribe));
LLVivoxVoiceClient * voice_clientp = LLVivoxVoiceClient::getInstance();
diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp
index 80f47ecab2..b2a37694fe 100755
--- a/indra/newview/llviewermenufile.cpp
+++ b/indra/newview/llviewermenufile.cpp
@@ -477,8 +477,10 @@ class LLFileEnableCloseWindow : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
- bool new_value = NULL != gFloaterView->getFrontmostClosableFloater();
- return new_value;
+ bool frontmost_fl_exists = (NULL != gFloaterView->getFrontmostClosableFloater());
+ bool frontmost_snapshot_fl_exists = (NULL != gSnapshotFloaterView->getFrontmostClosableFloater());
+
+ return frontmost_fl_exists || frontmost_snapshot_fl_exists;
}
};
@@ -486,7 +488,21 @@ class LLFileCloseWindow : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
- LLFloater::closeFrontmostFloater();
+ bool frontmost_fl_exists = (NULL != gFloaterView->getFrontmostClosableFloater());
+ LLFloater* snapshot_floater = gSnapshotFloaterView->getFrontmostClosableFloater();
+
+ if(snapshot_floater && (!frontmost_fl_exists || snapshot_floater->hasFocus()))
+ {
+ snapshot_floater->closeFloater();
+ if (gFocusMgr.getKeyboardFocus() == NULL)
+ {
+ gFloaterView->focusFrontFloater();
+ }
+ }
+ else
+ {
+ LLFloater::closeFrontmostFloater();
+ }
return true;
}
};
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 332d04a1f4..44eb4361f1 100755
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -3767,6 +3767,15 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args);
}
+ // don't call notification for debug messages from not owned objects
+ if (chat.mChatType == CHAT_TYPE_DEBUG_MSG)
+ {
+ if (gAgentID != chat.mOwnerID)
+ {
+ return;
+ }
+ }
+
LLSD msg_notify = LLSD(LLSD::emptyMap());
msg_notify["session_id"] = LLUUID();
msg_notify["from_id"] = chat.mFromID;
@@ -5822,7 +5831,7 @@ bool handle_teleport_access_blocked(LLSD& llsdBlock, const std::string & notific
tp_failure_notification = LLNotificationsUtil::add(notificationID+"_PreferencesOutOfSync", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_callback);
returnValue = true;
}
- }
+ }
} // End of special handling for "TeleportEntryAccessBlocked"
else
{ // Normal case, no message munging
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index 80592f01ce..33b442815d 100755
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -2274,7 +2274,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
}
}
- if ((new_rot != getRotation())
+ if ((new_rot.isNotEqualEps(getRotation(), F_ALMOST_ZERO))
|| (new_angv != old_angv))
{
if (new_rot != mPreviousRotation)
@@ -2792,8 +2792,8 @@ void LLViewerObject::dirtyInventory()
mInventory->clear(); // will deref and delete entries
delete mInventory;
mInventory = NULL;
- mInventoryDirty = TRUE;
}
+ mInventoryDirty = TRUE;
}
void LLViewerObject::registerInventoryListener(LLVOInventoryListener* listener, void* user_data)
@@ -2830,12 +2830,15 @@ void LLViewerObject::clearInventoryListeners()
void LLViewerObject::requestInventory()
{
- mInventoryDirty = FALSE;
+ if(mInventoryDirty && mInventory && !mInventoryCallbacks.empty())
+ {
+ mInventory->clear(); // will deref and delete entries
+ delete mInventory;
+ mInventory = NULL;
+ mInventoryDirty = FALSE; //since we are going to request it now
+ }
if(mInventory)
{
- //mInventory->clear() // will deref and delete it
- //delete mInventory;
- //mInventory = NULL;
doInventoryCallback();
}
// throw away duplicate requests
@@ -6190,6 +6193,17 @@ const LLUUID &LLViewerObject::extractAttachmentItemID()
return getAttachmentItemID();
}
+const std::string& LLViewerObject::getAttachmentItemName()
+{
+ static std::string empty;
+ LLInventoryItem *item = gInventory.getItem(getAttachmentItemID());
+ if (isAttachment() && item)
+ {
+ return item->getName();
+ }
+ return empty;
+}
+
//virtual
LLVOAvatar* LLViewerObject::getAvatar() const
{
diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h
index bab107cc57..22ac4ce0db 100755
--- a/indra/newview/llviewerobject.h
+++ b/indra/newview/llviewerobject.h
@@ -170,6 +170,8 @@ public:
void setOnActiveList(BOOL on_active) { mOnActiveList = on_active; }
virtual BOOL isAttachment() const { return FALSE; }
+ const std::string& getAttachmentItemName();
+
virtual LLVOAvatar* getAvatar() const; //get the avatar this object is attached to, or NULL if object is not an attachment
virtual BOOL isHUDAttachment() const { return FALSE; }
virtual BOOL isTempAttachment() const;
diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp
index cdb08f4707..7c94442f09 100755
--- a/indra/newview/llviewerparcelmgr.cpp
+++ b/indra/newview/llviewerparcelmgr.cpp
@@ -117,6 +117,7 @@ LLViewerParcelMgr::LLViewerParcelMgr()
mHoverRequestResult(0),
mHoverWestSouth(),
mHoverEastNorth(),
+ mTeleportInProgressPosition(),
mRenderCollision(FALSE),
mRenderSelection(TRUE),
mCollisionBanned(0),
@@ -1320,12 +1321,6 @@ void LLViewerParcelMgr::setHoverParcel(const LLVector3d& pos)
static U32 last_west, last_south;
- // only request parcel info when tooltip is shown
- if (!gSavedSettings.getBOOL("ShowLandHoverTip"))
- {
- return;
- }
-
// only request parcel info if position has changed outside of the
// last parcel grid step
U32 west_parcel_step = (U32) floor( pos.mdV[VX] / PARCEL_GRID_STEP_METERS );
@@ -1585,7 +1580,15 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use
if (instance->mTeleportInProgress)
{
instance->mTeleportInProgress = FALSE;
- instance->mTeleportFinishedSignal(gAgent.getPositionGlobal(), false);
+ if(instance->mTeleportInProgressPosition.isNull())
+ {
+ //initial update
+ instance->mTeleportFinishedSignal(gAgent.getPositionGlobal(), false);
+ }
+ else
+ {
+ instance->mTeleportFinishedSignal(instance->mTeleportInProgressPosition, false);
+ }
}
}
}
@@ -2494,6 +2497,7 @@ void LLViewerParcelMgr::onTeleportFinished(bool local, const LLVector3d& new_pos
// Non-local teleport (inter-region or between different parcels of the same region).
// The agent parcel data has not been updated yet.
// Let's wait for the update and then emit the signal.
+ mTeleportInProgressPosition = new_pos;
mTeleportInProgress = TRUE;
}
}
diff --git a/indra/newview/llviewerparcelmgr.h b/indra/newview/llviewerparcelmgr.h
index 58d398e141..b5b269abdf 100755
--- a/indra/newview/llviewerparcelmgr.h
+++ b/indra/newview/llviewerparcelmgr.h
@@ -335,6 +335,7 @@ private:
std::vector<LLParcelObserver*> mObservers;
BOOL mTeleportInProgress;
+ LLVector3d mTeleportInProgressPosition;
teleport_finished_signal_t mTeleportFinishedSignal;
teleport_failed_signal_t mTeleportFailedSignal;
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index ba89aafc84..4e2eef39d6 100755
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -88,7 +88,7 @@ F32 LLViewerTexture::sDesiredDiscardBias = 0.f;
F32 LLViewerTexture::sDesiredDiscardScale = 1.1f;
S32Bytes LLViewerTexture::sBoundTextureMemory;
S32Bytes LLViewerTexture::sTotalTextureMemory;
-S32Megabytes LLViewerTexture::sMaxBoundTextureMem;
+S32Megabytes LLViewerTexture::sMaxBoundTextureMemory;
S32Megabytes LLViewerTexture::sMaxTotalTextureMem;
S32Bytes LLViewerTexture::sMaxDesiredTextureMem;
S8 LLViewerTexture::sCameraMovingDiscardBias = 0;
@@ -534,11 +534,11 @@ void LLViewerTexture::updateClass(const F32 velocity, const F32 angular_velocity
sBoundTextureMemory = LLImageGL::sBoundTextureMemory;
sTotalTextureMemory = LLImageGL::sGlobalTextureMemory;
- sMaxBoundTextureMem = gTextureList.getMaxResidentTexMem();
+ sMaxBoundTextureMemory = gTextureList.getMaxResidentTexMem();
sMaxTotalTextureMem = gTextureList.getMaxTotalTextureMem();
sMaxDesiredTextureMem = sMaxTotalTextureMem; //in Bytes, by default and when total used texture memory is small.
- if (sBoundTextureMemory >= sMaxBoundTextureMem ||
+ if (sBoundTextureMemory >= sMaxBoundTextureMemory ||
sTotalTextureMemory >= sMaxTotalTextureMem)
{
//when texture memory overflows, lower down the threshold to release the textures more aggressively.
@@ -558,7 +558,7 @@ void LLViewerTexture::updateClass(const F32 velocity, const F32 angular_velocity
sEvaluationTimer.reset();
}
else if (sDesiredDiscardBias > 0.0f &&
- sBoundTextureMemory < sMaxBoundTextureMem * texmem_lower_bound_scale &&
+ sBoundTextureMemory < sMaxBoundTextureMemory * texmem_lower_bound_scale &&
sTotalTextureMemory < sMaxTotalTextureMem * texmem_lower_bound_scale)
{
// If we are using less texture memory than we should,
@@ -576,7 +576,7 @@ void LLViewerTexture::updateClass(const F32 velocity, const F32 angular_velocity
sCameraMovingBias = llmax(0.2f * camera_moving_speed, 2.0f * camera_angular_speed - 1);
sCameraMovingDiscardBias = (S8)(sCameraMovingBias);
- LLViewerTexture::sFreezeImageScalingDown = (sBoundTextureMemory < 0.75f * sMaxBoundTextureMem * texmem_middle_bound_scale) &&
+ LLViewerTexture::sFreezeImageScalingDown = (sBoundTextureMemory < 0.75f * sMaxBoundTextureMemory * texmem_middle_bound_scale) &&
(sTotalTextureMemory < 0.75f * sMaxTotalTextureMem * texmem_middle_bound_scale);
}
@@ -3074,7 +3074,7 @@ void LLViewerLODTexture::processTextureStats()
scaleDown();
}
// Limit the amount of GL memory bound each frame
- else if ( sBoundTextureMemory > sMaxBoundTextureMem * texmem_middle_bound_scale &&
+ else if ( sBoundTextureMemory > sMaxBoundTextureMemory * texmem_middle_bound_scale &&
(!getBoundRecently() || mDesiredDiscardLevel >= mCachedRawDiscardLevel))
{
scaleDown();
diff --git a/indra/newview/llviewertexture.h b/indra/newview/llviewertexture.h
index 307204da60..05912404e4 100755
--- a/indra/newview/llviewertexture.h
+++ b/indra/newview/llviewertexture.h
@@ -210,7 +210,7 @@ public:
static F32 sDesiredDiscardScale;
static S32Bytes sBoundTextureMemory;
static S32Bytes sTotalTextureMemory;
- static S32Megabytes sMaxBoundTextureMem;
+ static S32Megabytes sMaxBoundTextureMemory;
static S32Megabytes sMaxTotalTextureMem;
static S32Bytes sMaxDesiredTextureMem ;
static S8 sCameraMovingDiscardBias;
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 4d263c118b..9dcd0b81e0 100755
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -1392,6 +1392,13 @@ BOOL LLViewerWindow::handleTranslatedKeyUp(KEY key, MASK mask)
// Let the voice chat code check for its PTT key. Note that this never affects event processing.
LLVoiceClient::getInstance()->keyUp(key, mask);
+ // Let the inspect tool code check for ALT key to set LLToolSelectRect active instead LLToolCamera
+ LLToolCompInspect * tool_inspectp = LLToolCompInspect::getInstance();
+ if (LLToolMgr::getInstance()->getCurrentTool() == tool_inspectp)
+ {
+ tool_inspectp->keyUp(key, mask);
+ }
+
return FALSE;
}
@@ -1962,7 +1969,7 @@ void LLViewerWindow::initWorldUI()
// Force gFloaterTools to initialize
LLFloaterReg::getInstance("build");
- LLFloaterReg::hideInstance("build");
+
// Status bar
LLPanel* status_bar_container = getRootView()->getChild<LLPanel>("status_bar_container");
@@ -3216,6 +3223,8 @@ void LLViewerWindow::updateUI()
}
append_xui_tooltip(tooltip_view, params);
+ params.styled_message.add().text("\n");
+
screen_sticky_rect.intersectWith(tooltip_view->calcScreenRect());
params.sticky_rect = screen_sticky_rect;
@@ -3265,7 +3274,7 @@ void LLViewerWindow::updateUI()
updateLayout();
- saveLastMouse(mCurrentMousePoint);
+ mLastMousePoint = mCurrentMousePoint;
// cleanup unused selections when no modal dialogs are open
if (LLModalDialog::activeCount() == 0)
@@ -3505,8 +3514,6 @@ void LLViewerWindow::saveLastMouse(const LLCoordGL &point)
// Store last mouse location.
// If mouse leaves window, pretend last point was on edge of window
- mLastMousePoint = mCurrentMousePoint;
-
if (point.mX < 0)
{
mCurrentMousePoint.mX = 0;
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 9f42776d78..904d08ac73 100755
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -2068,7 +2068,7 @@ void LLVOAvatar::idleUpdate(LLAgent &agent, const F64 &time)
}
if (!(gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_AVATAR))
- && !(gSavedSettings.getBOOL("DisableAllRenderTypes")))
+ && !(gSavedSettings.getBOOL("DisableAllRenderTypes")) && !isSelf())
{
return;
}
@@ -4884,6 +4884,12 @@ BOOL LLVOAvatar::processSingleAnimationStateChange( const LLUUID& anim_id, BOOL
{
sitDown(FALSE);
}
+ if ((anim_id == ANIM_AGENT_DO_NOT_DISTURB) && gAgent.isDoNotDisturb())
+ {
+ // re-assert DND tag animation
+ gAgent.sendAnimationRequest(ANIM_AGENT_DO_NOT_DISTURB, ANIM_REQUEST_START);
+ return result;
+ }
stopMotion(anim_id);
result = TRUE;
}
@@ -5058,9 +5064,9 @@ LLJoint *LLVOAvatar::getJoint( const std::string &name )
return jointp;
}
//-----------------------------------------------------------------------------
-// resetJointPositionsToDefault
+// resetJointPositionsOnDetach
//-----------------------------------------------------------------------------
-void LLVOAvatar::resetJointPositionsToDefault( void )
+void LLVOAvatar::resetJointPositionsOnDetach(const std::string& attachment_name)
{
//Subsequent joints are relative to pelvis
avatar_joint_list_t::iterator iter = mSkeleton.begin();
@@ -5072,17 +5078,16 @@ void LLVOAvatar::resetJointPositionsToDefault( void )
{
LLJoint* pJoint = (*iter);
//Reset joints except for pelvis
- if ( pJoint && pJoint != pJointPelvis && pJoint->doesJointNeedToBeReset() )
+ if ( pJoint && pJoint != pJointPelvis)
{
pJoint->setId( LLUUID::null );
- pJoint->restoreOldXform();
+ pJoint->removeAttachmentPosOverride(attachment_name);
}
else
- if ( pJoint && pJoint == pJointPelvis && pJoint->doesJointNeedToBeReset() )
+ if ( pJoint && pJoint == pJointPelvis)
{
pJoint->setId( LLUUID::null );
pJoint->setPosition( LLVector3( 0.0f, 0.0f, 0.0f) );
- pJoint->setJointResetFlag( false );
}
}
@@ -5625,7 +5630,7 @@ const LLViewerJointAttachment *LLVOAvatar::attachObject(LLViewerObject *viewer_o
}
//-----------------------------------------------------------------------------
-// attachObject()
+// getNumAttachments()
//-----------------------------------------------------------------------------
U32 LLVOAvatar::getNumAttachments() const
{
@@ -5746,7 +5751,8 @@ void LLVOAvatar::cleanupAttachedMesh( LLViewerObject* pVO )
&& pSkinData->mJointNames.size() > JOINT_COUNT_REQUIRED_FOR_FULLRIG // full rig
&& pSkinData->mAlternateBindMatrix.size() > 0 )
{
- LLVOAvatar::resetJointPositionsToDefault();
+ const std::string& attachment_name = pVO->getAttachmentItemName();
+ LLVOAvatar::resetJointPositionsOnDetach(attachment_name);
//Need to handle the repositioning of the cam, updating rig data etc during outfit editing
//This handles the case where we detach a replacement rig.
if ( gAgentCamera.cameraCustomizeAvatar() )
@@ -7676,6 +7682,17 @@ void LLVOAvatar::dumpArchetypeXML(const std::string& prefix, bool group_by_weara
}
}
+ avatar_joint_list_t::iterator iter = mSkeleton.begin();
+ avatar_joint_list_t::iterator end = mSkeleton.end();
+ for (; iter != end; ++iter)
+ {
+ LLJoint* pJoint = (*iter);
+ const LLVector3& pos = pJoint->getPosition();
+ const LLVector3& scale = pJoint->getScale();
+ apr_file_printf( file, "\t\t<joint name=\"%s\" position=\"%f %f %f\" scale=\"%f %f %f\"/>\n",
+ pJoint->getName().c_str(), pos[0], pos[1], pos[2], scale[0], scale[1], scale[2]);
+ }
+
apr_file_printf( file, "\t</archetype>\n" );
apr_file_printf( file, "\n</linden_genepool>\n" );
diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h
index 42ff7bff92..66a357ff62 100755
--- a/indra/newview/llvoavatar.h
+++ b/indra/newview/llvoavatar.h
@@ -199,7 +199,7 @@ public:
virtual LLJoint* getJoint(const std::string &name);
- void resetJointPositionsToDefault( void );
+ void resetJointPositionsOnDetach(const std::string& attachment_name);
/*virtual*/ const LLUUID& getID() const;
/*virtual*/ void addDebugText(const std::string& text);
diff --git a/indra/newview/llvoicechannel.cpp b/indra/newview/llvoicechannel.cpp
index 3c3dc33772..426ca332e4 100755
--- a/indra/newview/llvoicechannel.cpp
+++ b/indra/newview/llvoicechannel.cpp
@@ -280,14 +280,14 @@ void LLVoiceChannel::deactivate()
if (callStarted())
{
setState(STATE_HUNG_UP);
-
+
//Default mic is OFF when leaving voice calls
- if (gSavedSettings.getBOOL("AutoDisengageMic") &&
+ if (gSavedSettings.getBOOL("AutoDisengageMic") &&
sCurrentVoiceChannel == this &&
LLVoiceClient::getInstance()->getUserPTTState())
{
gSavedSettings.setBOOL("PTTCurrentlyEnabled", true);
- LLVoiceClient::getInstance()->inputUserControlState(true);
+ LLVoiceClient::getInstance()->setUserPTTState(false);
}
}
LLVoiceClient::getInstance()->removeObserver(this);
@@ -725,6 +725,8 @@ void LLVoiceChannelProximal::handleStatusChange(EStatusType status)
// do not notify user when leaving proximal channel
return;
case STATUS_VOICE_DISABLED:
+ LLVoiceClient::getInstance()->setUserPTTState(false);
+ gAgent.setVoiceConnected(false);
//skip showing "Voice not available at your current location" when agent voice is disabled (EXT-4749)
if(LLVoiceClient::getInstance()->voiceEnabled() && LLVoiceClient::getInstance()->isVoiceWorking())
{
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp
index 2d195be0eb..962cdf0268 100755
--- a/indra/newview/llvoiceclient.cpp
+++ b/indra/newview/llvoiceclient.cpp
@@ -36,6 +36,7 @@
#include "llsdserialize.h"
#include "llui.h"
#include "llkeyboard.h"
+#include "llagent.h"
const F32 LLVoiceClient::OVERDRIVEN_POWER_LEVEL = 0.7f;
@@ -642,7 +643,7 @@ void LLVoiceClient::keyDown(KEY key, MASK mask)
return;
}
- if(!mPTTIsMiddleMouse)
+ if(!mPTTIsMiddleMouse && LLAgent::isActionAllowed("speak"))
{
bool down = (mPTTKey != KEY_NONE)
&& gKeyboard->getKeyDown(mPTTKey);
@@ -661,12 +662,9 @@ void LLVoiceClient::keyUp(KEY key, MASK mask)
}
void LLVoiceClient::middleMouseState(bool down)
{
- if(mPTTIsMiddleMouse)
+ if(mPTTIsMiddleMouse && LLAgent::isActionAllowed("speak"))
{
- if(mPTTIsMiddleMouse)
- {
- inputUserControlState(down);
- }
+ inputUserControlState(down);
}
}
diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp
index 7420f2d1ca..b6aecb4aaa 100755
--- a/indra/newview/llvoicevivox.cpp
+++ b/indra/newview/llvoicevivox.cpp
@@ -3225,7 +3225,7 @@ void LLVivoxVoiceClient::mediaStreamUpdatedEvent(
session->mErrorStatusCode = statusCode;
break;
}
-
+
switch(state)
{
case streamStateIdle:
@@ -5489,7 +5489,8 @@ void LLVivoxVoiceClient::notifyStatusObservers(LLVoiceClientStatusObserver::ESta
// skipped to avoid speak button blinking
if ( status != LLVoiceClientStatusObserver::STATUS_JOINING
- && status != LLVoiceClientStatusObserver::STATUS_LEFT_CHANNEL)
+ && status != LLVoiceClientStatusObserver::STATUS_LEFT_CHANNEL
+ && status != LLVoiceClientStatusObserver::STATUS_VOICE_DISABLED)
{
bool voice_status = LLVoiceClient::getInstance()->voiceEnabled() && LLVoiceClient::getInstance()->isVoiceWorking();
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index a83e2e020e..9d16ce5a7b 100755
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -2040,7 +2040,18 @@ S32 LLVOVolume::setTEMaterialID(const U8 te, const LLMaterialID& pMaterialID)
S32 LLVOVolume::setTEMaterialParams(const U8 te, const LLMaterialPtr pMaterialParams)
{
- S32 res = LLViewerObject::setTEMaterialParams(te, pMaterialParams);
+ S32 res = 0;
+
+ if (pMaterialParams && getTEImage(te) && 3 == getTEImage(te)->getComponents() && pMaterialParams->getDiffuseAlphaMode())
+ {
+ LLViewerObject::setTEMaterialID(te, LLMaterialID::null);
+ res = LLViewerObject::setTEMaterialParams(te, NULL);
+ }
+ else
+ {
+ res = LLViewerObject::setTEMaterialParams(te, pMaterialParams);
+ }
+
LL_DEBUGS("MaterialTEs") << "te " << (S32)te << " material " << ((pMaterialParams) ? pMaterialParams->asLLSD() : LLSD("null")) << " res " << res
<< ( LLSelectMgr::getInstance()->getSelection()->contains(const_cast<LLVOVolume*>(this), te) ? " selected" : " not selected" )
<< LL_ENDL;
@@ -4328,7 +4339,7 @@ void LLVolumeGeometryManager::registerFace(LLSpatialGroup* group, LLFace* facep,
draw_info->mBump = bump;
draw_info->mShiny = shiny;
- float alpha[4] =
+ static const float alpha[4] =
{
0.00f,
0.25f,
@@ -4626,7 +4637,8 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
const LLVector3& jointPos = pSkinData->mAlternateBindMatrix[i].getTranslation();
//Set the joint position
- pJoint->storeCurrentXform( jointPos );
+ const std::string& attachment_name = drawablep->getVObj()->getAttachmentItemName();
+ pJoint->addAttachmentPosOverride( jointPos, attachment_name );
//If joint is a pelvis then handle old/new pelvis to foot values
if ( lookingForJoint == "mPelvis" )
@@ -5652,7 +5664,7 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFac
if (material_pass)
{
- U32 pass[] =
+ static const U32 pass[] =
{
LLRenderPass::PASS_MATERIAL,
LLRenderPass::PASS_ALPHA, //LLRenderPass::PASS_MATERIAL_ALPHA,
diff --git a/indra/newview/llweb.cpp b/indra/newview/llweb.cpp
index 665671a38f..0312972a22 100755
--- a/indra/newview/llweb.cpp
+++ b/indra/newview/llweb.cpp
@@ -50,6 +50,8 @@
#include "llviewerwindow.h"
#include "llnotificationsutil.h"
+#include <boost/regex.hpp>
+
bool on_load_url_external_response(const LLSD& notification, const LLSD& response, bool async );
@@ -87,7 +89,8 @@ void LLWeb::loadURL(const std::string& url, const std::string& target, const std
// Force load in the internal browser, as if with a blank target.
loadURLInternal(url, "", uuid);
}
- else if (gSavedSettings.getBOOL("UseExternalBrowser") || (target == "_external"))
+
+ else if (useExternalBrowser(url) || (target == "_external"))
{
loadURLExternal(url);
}
@@ -225,3 +228,19 @@ std::string LLWeb::expandURLSubstitutions(const std::string &url,
return LLWeb::escapeURL(expanded_url);
}
+
+//static
+bool LLWeb::useExternalBrowser(const std::string &url)
+{
+ if (gSavedSettings.getU32("PreferredBrowserBehavior") == BROWSER_EXTERNAL_ONLY)
+ {
+ return true;
+ }
+ else if (gSavedSettings.getU32("PreferredBrowserBehavior") == BROWSER_INT_LL_EXT_OTHERS)
+ {
+ boost::regex pattern = boost::regex("\\b(lindenlab.com|secondlife.com)\\b", boost::regex::perl|boost::regex::icase);
+ boost::match_results<std::string::const_iterator> matches;
+ return !(boost::regex_search(url, matches, pattern));
+ }
+ return false;
+}
diff --git a/indra/newview/llweb.h b/indra/newview/llweb.h
index 0b95f664d6..7c90badbfe 100755
--- a/indra/newview/llweb.h
+++ b/indra/newview/llweb.h
@@ -40,6 +40,13 @@
class LLWeb
{
public:
+ enum PreferredBrowser
+ {
+ BROWSER_EXTERNAL_ONLY = 0,
+ BROWSER_INT_LL_EXT_OTHERS = 1,
+ BROWSER_INTERNAL_ONLY = 2
+ };
+
static void initClass();
/// Load the given url in the operating system's web browser, async if we want to return immediately
@@ -57,6 +64,7 @@ public:
/// Expands various strings like [LANG], [VERSION], etc. in a URL
static std::string expandURLSubstitutions(const std::string &url,
const LLSD &default_subs);
+ static bool useExternalBrowser(const std::string &url);
};
#endif
diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp
index a770352f86..7cb53a0706 100755
--- a/indra/newview/llworldmapview.cpp
+++ b/indra/newview/llworldmapview.cpp
@@ -1694,6 +1694,8 @@ BOOL LLWorldMapView::handleHover( S32 x, S32 y, MASK mask )
sPanY += delta_y;
sTargetPanX = sPanX;
sTargetPanY = sPanY;
+
+ gViewerWindow->moveCursorToCenter();
}
// doesn't matter, cursor should be hidden
diff --git a/indra/newview/skins/default/xui/da/floater_lagmeter.xml b/indra/newview/skins/default/xui/da/floater_lagmeter.xml
new file mode 100644
index 0000000000..149d174c34
--- /dev/null
+++ b/indra/newview/skins/default/xui/da/floater_lagmeter.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="LAG METER">
+ <floater.string name="max_title_msg">
+ Lag måler
+ </floater.string>
+ <floater.string name="max_width_px">
+ 360
+ </floater.string>
+ <floater.string name="min_title_msg">
+ Lag
+ </floater.string>
+ <floater.string name="min_width_px">
+ 90
+ </floater.string>
+ <floater.string name="client_text_msg">
+ Klient
+ </floater.string>
+ <floater.string name="client_frame_rate_critical_fps">
+ 10
+ </floater.string>
+ <floater.string name="client_frame_rate_warning_fps">
+ 15
+ </floater.string>
+ <floater.string name="client_frame_time_window_bg_msg">
+ Normal, vindue i baggrund
+ </floater.string>
+ <floater.string name="client_frame_time_critical_msg">
+ Klients billeder/sek under [CLIENT_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="client_frame_time_warning_msg">
+ Klients billeder/sek mellem [CLIENT_FRAME_RATE_CRITICAL] og [CLIENT_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string name="client_frame_time_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string name="client_draw_distance_cause_msg">
+ Mulig årsag: &apos;Vis afstand&apos; sat for højt i grafik indstillinger
+ </floater.string>
+ <floater.string name="client_texture_loading_cause_msg">
+ Mulig årsag: Billeder hentes
+ </floater.string>
+ <floater.string name="client_texture_memory_cause_msg">
+ Mulig årsag: For mange billeder i hukommelse
+ </floater.string>
+ <floater.string name="client_complex_objects_cause_msg">
+ Mulig årsag: For mange komplekse objekter i scenariet
+ </floater.string>
+ <floater.string name="network_text_msg">
+ Netværk
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_pct">
+ 10
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_pct">
+ 5
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_msg">
+ Forbindelsen mister over [NETWORK_PACKET_LOSS_CRITICAL]% pakker
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_msg">
+ Forbindelsen mister [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]% pakker
+ </floater.string>
+ <floater.string name="network_performance_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string name="network_ping_critical_ms">
+ 600
+ </floater.string>
+ <floater.string name="network_ping_warning_ms">
+ 300
+ </floater.string>
+ <floater.string name="network_ping_critical_msg">
+ Forbindelsens ping tider er over [NETWORK_PING_CRITICAL] ms
+ </floater.string>
+ <floater.string name="network_ping_warning_msg">
+ Forbindelsens ping tider er [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+ </floater.string>
+ <floater.string name="network_packet_loss_cause_msg">
+ Muligvis dårlig forbindelse eller &apos;båndbredde&apos; sat for højt i netværksopsætning.
+ </floater.string>
+ <floater.string name="network_ping_cause_msg">
+ Muligvis dårlig forbindelse eller fil delings program.
+ </floater.string>
+ <floater.string name="server_text_msg">
+ Server
+ </floater.string>
+ <floater.string name="server_frame_rate_critical_fps">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_rate_warning_fps">
+ 30
+ </floater.string>
+ <floater.string name="server_single_process_max_time_ms">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_time_critical_msg">
+ Simulator framerate er under [SERVER_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="server_frame_time_warning_msg">
+ Simulator framerate er mellem [SERVER_FRAME_RATE_CRITICAL] og [SERVER_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string name="server_frame_time_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string name="server_physics_cause_msg">
+ Mulig årsag: For mange fysiske objekter
+ </floater.string>
+ <floater.string name="server_scripts_cause_msg">
+ Mulig årsag: For mange objekter med script
+ </floater.string>
+ <floater.string name="server_net_cause_msg">
+ Mulig årsag: For meget netværks trafik
+ </floater.string>
+ <floater.string name="server_agent_cause_msg">
+ Mulig årsag: For mange avatarer i bevægelse i regionen
+ </floater.string>
+ <floater.string name="server_images_cause_msg">
+ Mulig årsag: For mange billed udregninger
+ </floater.string>
+ <floater.string name="server_generic_cause_msg">
+ Mulig årsag: Simulator belastning for stor
+ </floater.string>
+ <floater.string name="smaller_label">
+ &gt;&gt;
+ </floater.string>
+ <floater.string name="bigger_label">
+ &lt;&lt;
+ </floater.string>
+ <button label="" label_selected="" name="client_lagmeter" tool_tip="Status for klient lag"/>
+ <text name="client">
+ Klient
+ </text>
+ <text name="client_text">
+ Normal
+ </text>
+ <button label="" label_selected="" name="network_lagmeter" tool_tip="Network lag status"/>
+ <text name="network">
+ Netværk
+ </text>
+ <text name="network_text">
+ Normal
+ </text>
+ <button label="" label_selected="" name="server_lagmeter" tool_tip="Status for server lag"/>
+ <text name="server">
+ Server
+ </text>
+ <text name="server_text">
+ Normal
+ </text>
+ <button label="&gt;&gt;" name="minimize" tool_tip="Ændre størrelse"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_lagmeter.xml b/indra/newview/skins/default/xui/de/floater_lagmeter.xml
new file mode 100644
index 0000000000..45ff37c147
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_lagmeter.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="LAG METER">
+ <floater.string name="max_title_msg">
+ Lag-Anzeige
+ </floater.string>
+ <floater.string name="max_width_px">
+ 350
+ </floater.string>
+ <floater.string name="min_title_msg">
+ Lag
+ </floater.string>
+ <floater.string name="min_width_px">
+ 90
+ </floater.string>
+ <floater.string name="client_text_msg">
+ Client
+ </floater.string>
+ <floater.string name="client_frame_rate_critical_fps">
+ 10
+ </floater.string>
+ <floater.string name="client_frame_rate_warning_fps">
+ 15
+ </floater.string>
+ <floater.string name="client_frame_time_window_bg_msg">
+ Normal, Fenster im Hintergrund
+ </floater.string>
+ <floater.string name="client_frame_time_critical_msg">
+ Client-Frame-Rate unter [CLIENT_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="client_frame_time_warning_msg">
+ Client-Frame-Rate zwischen [CLIENT_FRAME_RATE_CRITICAL] und [CLIENT_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string name="client_frame_time_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string name="client_draw_distance_cause_msg">
+ Mögliche Ursache: Sichtweite zu groß
+ </floater.string>
+ <floater.string name="client_texture_loading_cause_msg">
+ Mögliche Ursache: Bilder werden geladen
+ </floater.string>
+ <floater.string name="client_texture_memory_cause_msg">
+ Mögliche Ursache: Zu viele Bilder im Speicher
+ </floater.string>
+ <floater.string name="client_complex_objects_cause_msg">
+ Mögliche Ursache: Zu viele komplexe Objekte in der Szene
+ </floater.string>
+ <floater.string name="network_text_msg">
+ Netzwerk
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_pct">
+ 10
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_pct">
+ 5
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_msg">
+ Paketverlust der Verbindung übersteigt [NETWORK_PACKET_LOSS_CRITICAL]%
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_msg">
+ Paketverlust der Verbindung liegt bei [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]%
+ </floater.string>
+ <floater.string name="network_performance_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string name="network_ping_critical_ms">
+ 600
+ </floater.string>
+ <floater.string name="network_ping_warning_ms">
+ 300
+ </floater.string>
+ <floater.string name="network_ping_critical_msg">
+ Ping-Zeit der Verbindung übersteigt [NETWORK_PING_CRITICAL] ms
+ </floater.string>
+ <floater.string name="network_ping_warning_msg">
+ Ping-Zeit der Verbindung liegt bei [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+ </floater.string>
+ <floater.string name="network_packet_loss_cause_msg">
+ Möglicherweise schlechte Verbindung oder zu hoher Wert für „Bandbreite“.
+ </floater.string>
+ <floater.string name="network_ping_cause_msg">
+ Möglicherweise schlechte Verbindung oder File-Sharing-Anwendung.
+ </floater.string>
+ <floater.string name="server_text_msg">
+ Server
+ </floater.string>
+ <floater.string name="server_frame_rate_critical_fps">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_rate_warning_fps">
+ 30
+ </floater.string>
+ <floater.string name="server_single_process_max_time_ms">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_time_critical_msg">
+ Simulator-Frame-Rate liegt unter [SERVER_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="server_frame_time_warning_msg">
+ Simulator-Frame-Rate liegt zwischen [SERVER_FRAME_RATE_CRITICAL] und [SERVER_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string name="server_frame_time_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string name="server_physics_cause_msg">
+ Mögliche Ursache: Zu viele physische Objekte
+ </floater.string>
+ <floater.string name="server_scripts_cause_msg">
+ Mögliche Ursache: Zu viele geskriptete Objekte
+ </floater.string>
+ <floater.string name="server_net_cause_msg">
+ Mögliche Ursache: Zu viel Netzwerktraffic
+ </floater.string>
+ <floater.string name="server_agent_cause_msg">
+ Mögliche Ursache: Zu viele Personen in Bewegung in der Region
+ </floater.string>
+ <floater.string name="server_images_cause_msg">
+ Mögliche Ursache: Zu viele Bildberechnungen
+ </floater.string>
+ <floater.string name="server_generic_cause_msg">
+ Mögliche Ursache: Zu hohe Simulator-Last
+ </floater.string>
+ <floater.string name="smaller_label">
+ &gt;&gt;
+ </floater.string>
+ <floater.string name="bigger_label">
+ &lt;&lt;
+ </floater.string>
+ <button name="client_lagmeter" tool_tip="Client-Lag-Status"/>
+ <text name="client">
+ Client
+ </text>
+ <text name="client_text">
+ Normal
+ </text>
+ <button name="network_lagmeter" tool_tip="Netzwerk-Lag-Status"/>
+ <text name="network">
+ Netzwerk
+ </text>
+ <text name="network_text">
+ Normal
+ </text>
+ <button name="server_lagmeter" tool_tip="Server-Lag-Status"/>
+ <text name="server">
+ Server
+ </text>
+ <text name="server_text">
+ Normal
+ </text>
+ <button label="&gt;&gt; " name="minimize" tool_tip="Fenstergröße ändern"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_region_restarting.xml b/indra/newview/skins/default/xui/de/floater_region_restarting.xml
new file mode 100644
index 0000000000..890391c508
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_region_restarting.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="region_restarting" title="REGION WIRD NEU GESTARTET">
+ <string name="RegionName">
+ Die Region, in der Sie sich gerade befinden ([NAME]), wird gleich neu gestartet.
+
+Wenn Sie in dieser Region bleiben, werden Sie abgemeldet.
+ </string>
+ <string name="RestartSeconds">
+ Sekunden bis Neustart
+[SECONDS]
+ </string>
+ <panel name="layout_panel_1">
+ <text name="region_name">
+ Die Region, in der Sie sich gerade befinden (-längster Regionsname-), wird gleich neu gestartet.
+
+Wenn Sie in dieser Region bleiben, werden Sie abgemeldet.
+ </text>
+ <text name="restart_seconds">
+ Sekunden bis Neustart
+ 32767
+ </text>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_scene_load_stats.xml b/indra/newview/skins/default/xui/de/floater_scene_load_stats.xml
new file mode 100644
index 0000000000..dff462a594
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_scene_load_stats.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Scene Load Statistics" title="STATISTIKEN ZUM LADEN VON SZENEN">
+ <button label="Anhalten" name="playpause"/>
+ <scroll_container name="statistics_scroll">
+ <container_view name="statistics_view">
+ <stat_view label="Standard" name="basic">
+ <stat_bar label="Frame-Pixel-Differenz" name="frame difference"/>
+ <stat_bar label="Empfangene UDP-Daten" name="bandwidth"/>
+ <stat_bar label="Paketverlust" name="packet_loss"/>
+ </stat_view>
+ <stat_view label="Erweitert" name="advanced">
+ <stat_view label="Darstellung" name="render">
+ <stat_bar label="Objektanzahl" name="objs"/>
+ <stat_bar label="Neue Objekte" name="newobjs"/>
+ <stat_bar label="Objektcache-Trefferrate" name="object_cache_hits"/>
+ </stat_view>
+ <stat_view label="Textur" name="texture">
+ <stat_bar label="Cache-Trefferrate" name="texture_cache_hits"/>
+ <stat_bar label="Cache-Leselatenz" name="texture_cache_read_latency"/>
+ <stat_bar label="Anzahl" name="numimagesstat"/>
+ <stat_bar label="Rohanzahl" name="numrawimagesstat"/>
+ </stat_view>
+ <stat_view label="Netzwerk" name="network">
+ <stat_bar label="Paketeingang" name="packetsinstat"/>
+ <stat_bar label="Paketausgang" name="packetsoutstat"/>
+ <stat_bar label="Objekte" name="objectdatareceived"/>
+ <stat_bar label="Textur" name="texturedatareceived"/>
+ <stat_bar label="Asset" name="assetudpdatareceived"/>
+ <stat_bar label="Ebenen" name="layersdatareceived"/>
+ <stat_bar label="Tatsächlicher Eingang" name="messagedatain"/>
+ <stat_bar label="Tatsächlicher Ausgang" name="messagedataout"/>
+ <stat_bar label="Ausstehende Vorgänge im VFS" name="vfspendingoperations"/>
+ </stat_view>
+ </stat_view>
+ <stat_view label="Simulator" name="sim">
+ <stat_bar label="Objekte" name="simobjects"/>
+ <stat_bar label="Aktive Objekte" name="simactiveobjects"/>
+ <stat_bar label="Aktive Skripts" name="simactivescripts"/>
+ <stat_bar label="Paketeingang" name="siminpps"/>
+ <stat_bar label="Paketausgang" name="simoutpps"/>
+ <stat_bar label="Ausstehende Downloads" name="simpendingdownloads"/>
+ <stat_bar label="Ausstehende Uploads" name="simpendinguploads"/>
+ <stat_bar label="Gesamtanzahl nicht bestätigter Bytes" name="simtotalunackedbytes"/>
+ <stat_view label="Zeit (ms)" name="simperf">
+ <stat_bar label="Gesamt-Framezeit" name="simframemsec"/>
+ <stat_bar label="Nettozeit" name="simnetmsec"/>
+ <stat_bar label="Physikzeit" name="simsimphysicsmsec"/>
+ <stat_bar label="Simulationszeit" name="simsimothermsec"/>
+ <stat_bar label="Agentenzeit" name="simagentmsec"/>
+ <stat_bar label="Bilderzeit" name="simimagesmsec"/>
+ <stat_bar label="Skriptzeit" name="simscriptmsec"/>
+ <stat_bar label="Verbleib. Zeit" name="simsparemsec"/>
+ <stat_view label="Zeitdetails (ms)" name="timedetails">
+ <stat_bar label="Physikschritt" name="simsimphysicsstepmsec"/>
+ <stat_bar label="Phys. Formen aktualisieren" name="simsimphysicsshapeupdatemsec"/>
+ <stat_bar label="Physik – andere" name="simsimphysicsothermsec"/>
+ <stat_bar label="Schlafzeit" name="simsleepmsec"/>
+ <stat_bar label="Pump IO" name="simpumpiomsec"/>
+ </stat_view>
+ </stat_view>
+ </stat_view>
+ </container_view>
+ </scroll_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_stats.xml b/indra/newview/skins/default/xui/de/floater_stats.xml
index f3239f73c7..f4a9acddec 100755
--- a/indra/newview/skins/default/xui/de/floater_stats.xml
+++ b/indra/newview/skins/default/xui/de/floater_stats.xml
@@ -4,17 +4,20 @@
<container_view name="statistics_view" width="280">
<stat_view label="Basic" name="basic">
<stat_bar label="FPS" name="fps"/>
- <stat_bar label="Bandbreite" name="bandwidth"/>
+ <stat_bar label="Empfangene UDP-Daten" name="bandwidth"/>
<stat_bar label="Paketverlust" name="packet_loss"/>
<stat_bar label="Ping Sim" name="ping"/>
</stat_view>
<stat_view label="Erweitert" name="advanced">
<stat_view label="Darstellung" name="render">
- <stat_bar label="Pro Frame gezeichnete KTris" name="ktrisframe"/>
- <stat_bar label="Pro Sek. gezeichnete KTris" name="ktrissec"/>
+ <stat_bar label="KTris pro Frame" name="ktrisframe"/>
+ <stat_bar label="KTris pro Sekunden" name="ktrissec"/>
<stat_bar label="Objektanzahl" name="objs"/>
<stat_bar label="Neue Objekte" name="newobjs"/>
<stat_bar label="Objektcache-Trefferrate" name="object_cache_hits"/>
+ <stat_bar label="Durchgeführte Okklusionsabfragen" name="occlusion_queries"/>
+ <stat_bar label="Okkludierte Objekte" name="occluded"/>
+ <stat_bar label="Nicht okkludierte Objekte" name="unoccluded"/>
</stat_view>
<stat_view label="Textur" name="texture">
<stat_bar label="Cache-Trefferrate" name="texture_cache_hits"/>
@@ -26,15 +29,32 @@
<stat_bar label="Rohsp" name="rawmemstat"/>
<stat_bar label="Zugeteilter Sp" name="glboundmemstat"/>
</stat_view>
+ <stat_view label="Speichernutzung" name="memory">
+ <stat_bar label="LLTrace" name="LLTrace"/>
+ <stat_bar label="UI" name="LLView"/>
+ <stat_bar label="Schriftarten" name="LLFontFreetype"/>
+ <stat_bar label="Inventar" name="LLInventoryObject"/>
+ <stat_bar label="Viewer-Objekte" name="LLViewerObject"/>
+ <stat_bar label="Octree-Gruppendaten" name="LLViewerOctreeGroup"/>
+ <stat_bar label="Octree-Daten" name="LLViewerOctreeEntry"/>
+ <stat_bar label="Viewer-Objekt-Cache" name="LLVOCacheEntry"/>
+ <stat_bar label="Zeichnungsobjekte" name="LLDrawable"/>
+ <stat_bar label="Gesichtsdaten" name="LLFace"/>
+ <stat_bar label="Zeichnungsinfos" name="LLDrawInfo"/>
+ <stat_bar label="Texturdaten" name="LLTexture"/>
+ <stat_bar label="Bilddaten" name="LLImage"/>
+ <stat_bar label="GL-Bilddaten" name="LLImageGL"/>
+ <stat_bar label="Vertex-Buffer" name="LLVertexBuffer"/>
+ </stat_view>
<stat_view label="Netzwerk" name="network">
<stat_bar label="Paketeingang" name="packetsinstat"/>
<stat_bar label="Paketausgang" name="packetsoutstat"/>
- <stat_bar label="Objekte" name="objectkbitstat"/>
- <stat_bar label="Textur" name="texturekbitstat"/>
- <stat_bar label="Bestand" name="assetkbitstat"/>
- <stat_bar label="Ebenen" name="layerskbitstat"/>
- <stat_bar label="Tatsächlicher Eingang" name="actualinkbitstat"/>
- <stat_bar label="Tatsächlicher Ausgang" name="actualoutkbitstat"/>
+ <stat_bar label="Objekte" name="objectdatareceived"/>
+ <stat_bar label="Textur" name="texturedatareceived"/>
+ <stat_bar label="Asset" name="assetudpdatareceived"/>
+ <stat_bar label="Ebenen" name="layersdatareceived"/>
+ <stat_bar label="Tatsächlicher Eingang" name="messagedatain"/>
+ <stat_bar label="Tatsächlicher Ausgang" name="messagedataout"/>
<stat_bar label="Ausstehende Vorgänge im VFS" name="vfspendingoperations"/>
</stat_view>
</stat_view>
@@ -64,8 +84,8 @@
<stat_bar label="Paketausgang" name="simoutpps"/>
<stat_bar label="Ausstehende Downloads" name="simpendingdownloads"/>
<stat_bar label="Ausstehende Uploads" name="simpendinguploads"/>
- <stat_bar label="Gesamtanzahl „Unacked&quot; Bytes" name="simtotalunackedbytes"/>
- <stat_view label="Zeit (ms)" name="simperf">
+ <stat_bar label="Gesamtmenge unbestätigter Daten" name="simtotalunackedbytes"/>
+ <stat_view label="Zeit" name="simperf">
<stat_bar label="Gesamtzeit Frame" name="simframemsec"/>
<stat_bar label="Netto-Zeit" name="simnetmsec"/>
<stat_bar label="Physik-Zeit" name="simsimphysicsmsec"/>
@@ -74,7 +94,7 @@
<stat_bar label="Bilder-Zeit" name="simimagesmsec"/>
<stat_bar label="Skript-Zeit" name="simscriptmsec"/>
<stat_bar label="Verbleib. Zeit" name="simsparemsec"/>
- <stat_view label="Zeitdetails (ms)" name="timedetails">
+ <stat_view label="Zeitdetails" name="timedetails">
<stat_bar label="Physik-Schritt" name="simsimphysicsstepmsec"/>
<stat_bar label="Phys. Formen aktualisieren" name="simsimphysicsshapeupdatemsec"/>
<stat_bar label="Physik – andere" name="simsimphysicsothermsec"/>
diff --git a/indra/newview/skins/default/xui/de/menu_avatar_icon.xml b/indra/newview/skins/default/xui/de/menu_avatar_icon.xml
index c036cf5515..ad47f1d37d 100755
--- a/indra/newview/skins/default/xui/de/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/de/menu_avatar_icon.xml
@@ -2,6 +2,7 @@
<menu name="Avatar Icon Menu">
<menu_item_call label="Profil anzeigen" name="Show Profile"/>
<menu_item_call label="IM senden..." name="Send IM"/>
+ <menu_item_call label="Teleport anfordern" name="Request Teleport"/>
<menu_item_call label="Freund hinzufügen..." name="Add Friend"/>
<menu_item_call label="Freund entfernen..." name="Remove Friend"/>
</menu>
diff --git a/indra/newview/skins/default/xui/de/menu_inventory.xml b/indra/newview/skins/default/xui/de/menu_inventory.xml
index cd2fca313e..d838f736f8 100755
--- a/indra/newview/skins/default/xui/de/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/de/menu_inventory.xml
@@ -70,6 +70,7 @@
<menu_item_call label="Wiedergeben/Abspielen" name="Sound Play"/>
<menu_item_call label="SLurl kopieren" name="url_copy"/>
<menu_item_call label="Landmarken-Info" name="About Landmark"/>
+ <menu_item_call label="Auf Karte anzeigen" name="show_on_map"/>
<menu_item_call label="Inworld abspielen" name="Animation Play"/>
<menu_item_call label="Lokal abspielen" name="Animation Audition"/>
<menu_item_call label="Instant Message senden" name="Send Instant Message"/>
diff --git a/indra/newview/skins/default/xui/de/menu_login.xml b/indra/newview/skins/default/xui/de/menu_login.xml
index 62358cc5a8..329ea20179 100755
--- a/indra/newview/skins/default/xui/de/menu_login.xml
+++ b/indra/newview/skins/default/xui/de/menu_login.xml
@@ -5,7 +5,15 @@
<menu_item_call label="[APP_NAME] schließen" name="Quit"/>
</menu>
<menu label="Hilfe" name="Help">
- <menu_item_call label="[SECOND_LIFE]-Hilfe" name="Second Life Help"/>
+ <menu_item_call label="Anweisungen..." name="How To"/>
+ <menu_item_call label="Kurzanleitung" name="Quickstart"/>
+ <menu_item_call label="Knowledge Base" name="Knowledge Base"/>
+ <menu_item_call label="Wiki" name="Wiki"/>
+ <menu_item_call label="Community-Foren" name="Community Forums"/>
+ <menu_item_call label="Support-Portal" name="Support portal"/>
+ <menu_item_call label="[SECOND_LIFE]-Neuigkeiten" name="Second Life News"/>
+ <menu_item_call label="[SECOND_LIFE]-Blogs" name="Second Life Blogs"/>
+ <menu_item_call label="Fehler melden" name="Report Bug"/>
<menu_item_call label="INFO ÜBER [APP_NAME]" name="About Second Life"/>
</menu>
<menu_item_check label="Debug-Menü anzeigen" name="Show Debug Menu"/>
diff --git a/indra/newview/skins/default/xui/de/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/de/menu_teleport_history_item.xml
index ff8fb0b181..1d7e3059c0 100755
--- a/indra/newview/skins/default/xui/de/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/de/menu_teleport_history_item.xml
@@ -2,5 +2,5 @@
<context_menu name="Teleport History Item Context Menu">
<menu_item_call label="Teleportieren" name="Teleport"/>
<menu_item_call label="Weitere Informationen" name="More Information"/>
- <menu_item_call label="In Zwischenablage kopieren" name="CopyToClipboard"/>
+ <menu_item_call label="SLurl kopieren" name="CopyToClipboard"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_viewer.xml b/indra/newview/skins/default/xui/de/menu_viewer.xml
index be5d4891d7..8e15e128a6 100755
--- a/indra/newview/skins/default/xui/de/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/de/menu_viewer.xml
@@ -72,11 +72,11 @@
<menu_item_check label="Menü „Erweitert“" name="Show Advanced Menu"/>
</menu>
<menu label="Sonne" name="Sun">
- <menu_item_call label="Sonnenaufgang" name="Sunrise"/>
- <menu_item_call label="Mittag" name="Noon"/>
- <menu_item_call label="Sonnenuntergang" name="Sunset"/>
- <menu_item_call label="Mitternacht" name="Midnight"/>
- <menu_item_call label="Regionseinstellungen verwenden" name="Use Region Settings"/>
+ <menu_item_check label="Sonnenaufgang" name="Sunrise"/>
+ <menu_item_check label="Mittag" name="Noon"/>
+ <menu_item_check label="Sonnenuntergang" name="Sunset"/>
+ <menu_item_check label="Mitternacht" name="Midnight"/>
+ <menu_item_check label="Regionseinstellungen verwenden" name="Use Region Settings"/>
</menu>
<menu label="Umwelt-Editor" name="Environment Editor">
<menu_item_call label="Umwelt-Einstellungen..." name="Environment Settings"/>
@@ -165,8 +165,6 @@
</menu>
<menu label="Hilfe" name="Help">
<menu_item_call label="Anweisungen..." name="How To"/>
- <menu_item_call label="[SECOND_LIFE]-Hilfe" name="Second Life Help"/>
- <menu_item_call label="Benutzerhandbuch" name="User’s guide"/>
<menu_item_call label="Knowledge Base" name="Knowledge Base"/>
<menu_item_call label="Wiki" name="Wiki"/>
<menu_item_call label="Community-Foren" name="Community Forums"/>
@@ -188,6 +186,7 @@
<menu label="Performance Tools" name="Performance Tools">
<menu_item_call label="Lag-Anzeige" name="Lag Meter"/>
<menu_item_check label="Statistikleiste" name="Statistics Bar"/>
+ <menu_item_call label="Statistiken zum Laden von Szenen" name="Scene Load Statistics"/>
<menu_item_check label="Zuggewicht für Avatare anzeigen" name="Avatar Rendering Cost"/>
</menu>
<menu label="Hervorhebung und Sichtbarkeit" name="Highlighting and Visibility">
@@ -250,6 +249,7 @@
<menu_item_check label="Schnelle Timer" name="Fast Timers"/>
<menu_item_check label="Speicher" name="Memory"/>
<menu_item_check label="Szenestatistiken" name="Scene Statistics"/>
+ <menu_item_check label="Monitor zum Laden von Szenen" name="Scene Loading Monitor"/>
<menu_item_call label="Debug-Konsole für Texturabruffehler" name="Texture Fetch Debug Console"/>
<menu_item_call label="Info zu Region in Fenster Fehler beseitigen" name="Region Info to Debug Console"/>
<menu_item_call label="Gruppeninfo in Fenster Fehler beseitigen" name="Group Info to Debug Console"/>
@@ -286,6 +286,7 @@
<menu_item_check label="Periodic Slow Frame" name="Periodic Slow Frame"/>
<menu_item_check label="Frame-Test" name="Frame Test"/>
<menu_item_call label="Rahmenprofil" name="Frame Profile"/>
+ <menu_item_call label="Benchmark" name="Benchmark"/>
</menu>
<menu label="Metadaten darstellen" name="Render Metadata">
<menu_item_check label="Bonding Boxes" name="Bounding Boxes"/>
@@ -304,6 +305,7 @@
<menu_item_check label="Konstruktionswarteschlange" name="Build Queue"/>
<menu_item_check label="Lichter" name="Lights"/>
<menu_item_check label="Gelenkpunkte" name="Collision Skeleton"/>
+ <menu_item_check label="Gelenke" name="Joints"/>
<menu_item_check label="Raycast" name="Raycast"/>
<menu_item_check label="Windvektoren" name="Wind Vectors"/>
<menu_item_check label="Komplexität beim Rendern" name="rendercomplexity"/>
@@ -336,6 +338,7 @@
<menu_item_check label="Angehängte Lichter rendern" name="Render Attached Lights"/>
<menu_item_check label="Angehängte Partikel rendern" name="Render Attached Particles"/>
<menu_item_check label="Leucht-Objekte schweben lassen" name="Hover Glow Objects"/>
+ <menu_item_call label="Cache sofort leeren" name="Cache Clear"/>
</menu>
<menu label="Netzwerk" name="Network">
<menu_item_check label="Agent pausieren" name="AgentPause"/>
@@ -368,7 +371,6 @@
<menu_item_call label="Fokus ausgeben" name="Dump Focus Holder"/>
<menu_item_call label="Ausgewählte Objektinfo drucken" name="Print Selected Object Info"/>
<menu_item_call label="Agent-Info drucken" name="Print Agent Info"/>
- <menu_item_check label="Regions-Debug-Konsole" name="Region Debug Console"/>
<menu_item_check label="Fehler in SelectMgr beseitigen" name="Debug SelectMgr"/>
<menu_item_check label="Fehler in Klicks beseitigen" name="Debug Clicks"/>
<menu_item_check label="Debug-Ansichten" name="Debug Views"/>
diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml
index b3ae98f633..c728402e89 100755
--- a/indra/newview/skins/default/xui/de/notifications.xml
+++ b/indra/newview/skins/default/xui/de/notifications.xml
@@ -114,13 +114,13 @@ Weitere Informationen finden Sie im [[MARKETPLACE_IMPORTS_URL] Fehlerprotokoll].
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="OutboxImportFailed">
- Übertragung fehlgeschlagen
+ Übertragung fehlgeschlagen mit Fehler „[ERROR_CODE]“
Aufgrund eines System- oder Netzwerkfehlers wurden keine Ordner an den Marktplatz übertragen. Versuchen Sie es später erneut.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="OutboxInitFailed">
- Marktplatzinitialisierung fehlgeschlagen
+ Marktplatzinitialisierung fehlgeschlagen mit Fehler „[ERROR_CODE]“
Marktplatzinitialisierung aufgrund eines System- oder Netzwerkfehlers fehlgeschlagen. Versuchen Sie es später erneut.
<usetemplate name="okbutton" yestext="OK"/>
@@ -1744,6 +1744,10 @@ womit Sie die Höchstgrenze von [LIMIT] überschreiten.
Sind Sie sicher, dass Sie zu &lt;nolink&gt;[LOCATION]&lt;/nolink&gt; teleportieren möchten?
<usetemplate ignoretext="Bestätigen, dass ich zu einer Landmarke teleportieren möchte" name="okcancelignore" notext="Abbrechen" yestext="Teleportieren"/>
</notification>
+ <notification name="TeleportViaSLAPP">
+ Möchten Sie wirklich zu &lt;nolink&gt;[LOCATION]&lt;/nolink&gt; teleportieren?
+ <usetemplate ignoretext="Bestätigen, dass ich via SLAPP teleportieren möchte" name="okcancelignore" notext="Abbrechen" yestext="Teleportieren"/>
+ </notification>
<notification name="TeleportToPick">
Nach [PICK] teleportieren?
<usetemplate ignoretext="Bestätigen, dass ich zu einer Position in Auswahl teleportieren möchte" name="okcancelignore" notext="Abbrechen" yestext="Teleportieren"/>
@@ -1954,6 +1958,9 @@ Tausende Regionen werden verändert und der Spaceserver wird dadurch stark belas
<notification name="ProblemAddingEstateManager">
Es gibt Probleme beim Hinzufügen eines neuen Grundbesitzverwalters. Bei mindestens einem Grundbesitz ist die Verwalterliste voll.
</notification>
+ <notification name="ProblemAddingEstateBanManager">
+ Grundbesitzer oder Grundstücksverwalter kann nicht auf die Bannliste gesetzt werden.
+ </notification>
<notification name="ProblemAddingEstateGeneric">
Problem beim Hinzufügen zu dieser Grundbesitzliste. Bei mindestens einem Grundbesitz ist die Liste voll.
</notification>
@@ -3038,13 +3045,13 @@ Details finden Sie in der Protokolldatei.
Regionsfähigkeit „[CAPABILITY]“ konnte nicht abgerufen werden.
</notification>
<notification name="ShareItemsConfirmation">
- Möchten Sie wirklich die folgenden Objekte:
+ Möchten Sie wirklich die folgenden Artikel:
&lt;nolink&gt;[ITEMS]&lt;/nolink&gt;
-für folgende Einwohner freigeben:
+mit den folgenden Einwohnern teilen:
-[RESIDENTS]
+&lt;nolink&gt;[RESIDENTS]&lt;/nolink&gt;
<usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
</notification>
<notification name="ShareFolderConfirmation">
@@ -3056,7 +3063,7 @@ Möchten Sie wirklich die folgenden Artikel:
mit den folgenden Einwohnern teilen:
-[RESIDENTS]
+&lt;nolink&gt;[RESIDENTS]&lt;/nolink&gt;
<usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
</notification>
<notification name="ItemsShared">
@@ -3510,10 +3517,6 @@ Warten Sie kurz und versuchen Sie es noch einmal.
<notification name="EjectComingSoon">
Sie nicht hier nicht mehr zugelassen und haben [EJECT_TIME] Sekunden Zeit, um zu gehen.
</notification>
- <notification name="NoEnterServerFull">
- Sie können diese Region nicht betreten, da
-der Server voll ist.
- </notification>
<notification name="SaveBackToInvDisabled">
Erneutes Speichern im Inventar ist deaktiviert.
</notification>
@@ -3703,6 +3706,9 @@ der Server voll ist.
<notification name="LinkFailedTooMuchPhysics">
Objekt verwendet zu viele Physikressourcen – seine Dynamik wurde deaktiviert.
</notification>
+ <notification name="EstateManagerFailedllTeleportHome">
+ Das Objekt „[OBJECT_NAME]“ auf [SLURL] kann Grundstücksverwalter nicht nach Hause teleportieren.
+ </notification>
<notification name="TeleportedHomeByObjectOnParcel">
Sie wurden vom Objekt „[OBJECT_NAME]“ auf der Parzelle „[PARCEL_NAME]“ nach Hause teleportiert
</notification>
@@ -3893,13 +3899,18 @@ der Server voll ist.
Auswahl enthält nicht genügend gemietete Parzellen zum Zusammenlegen.
</notification>
<notification name="CantDivideLandMultipleParcelsSelected">
- Land kann nicht geteilt werden.\nMehr als eine Parzelle ist ausgewählt.\nWählen Sie ein kleineres Stück Land aus.
+ Land kann nicht geteilt werden.
+Mehr als eine Parzelle ist ausgewählt.
+Wählen Sie eine kleinere Landfläche aus.
</notification>
<notification name="CantDivideLandCantFindParcel">
- Land kann nicht geteilt werden.\nParzelle nicht auffindbar.\nMelden Sie das Problem über „Hilfe“ -&gt; „Fehler melden“...
+ Land kann nicht geteilt werden.
+Parzelle kann nicht gefunden werden.
+Bitte melden Sie den Fehler über „Hilfe“ -&gt; „Fehler melden“.
</notification>
<notification name="CantDivideLandWholeParcelSelected">
- Land kann nicht geteilt werden. Die gesamte Parzelle ist ausgewählt.\nWählen Sie ein kleineres Stück Land aus.
+ Land kann nicht geteilt werden. Die gesamte Parzelle ist ausgewählt.
+Wählen Sie eine kleinere Landfläche aus.
</notification>
<notification name="LandHasBeenDivided">
Land wurde geteilt.
@@ -4039,4 +4050,8 @@ der Server voll ist.
Dateien können nicht verschoben werden. Vorheriger Pfad wurde wiederhergestellt.
<usetemplate ignoretext="Dateien können nicht verschoben werden. Vorheriger Pfad wurde wiederhergestellt." name="okignore" yestext="OK"/>
</notification>
+ <notification name="ChatHistoryIsBusyAlert">
+ Chatverlaufsdatei ist noch mit vorheriger Operation beschäftigt. Versuchen Sie es in ein paar Minuten noch einmal oder chatten Sie mit einer anderen Person.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
</notifications>
diff --git a/indra/newview/skins/default/xui/de/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/de/panel_group_info_sidetray.xml
index bf4d44af52..1775394ecd 100755
--- a/indra/newview/skins/default/xui/de/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_info_sidetray.xml
@@ -20,7 +20,7 @@
<layout_panel name="group_accordions">
<accordion name="groups_accordion">
<accordion_tab name="group_general_tab" title="Allgemein"/>
- <accordion_tab name="group_roles_tab" title="Rollen"/>
+ <accordion_tab name="group_roles_tab" title="Rollen und Mitglieder"/>
<accordion_tab name="group_notices_tab" title="Mitteilungen"/>
<accordion_tab name="group_land_tab" title="Land/Kapital"/>
</accordion>
diff --git a/indra/newview/skins/default/xui/de/panel_group_roles.xml b/indra/newview/skins/default/xui/de/panel_group_roles.xml
index f297d32a91..20f61817a3 100755
--- a/indra/newview/skins/default/xui/de/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_roles.xml
@@ -21,6 +21,7 @@ um mehrere Mitglieder auszuwählen.
<name_list.columns label="Mitglied" name="name" relative_width="0.30"/>
<name_list.columns label="Übereignung" name="donated" relative_width="0.33"/>
<name_list.columns label="Status" name="online"/>
+ <name_list.columns label="Titel" name="title"/>
</name_list>
<button label="Einladen" name="member_invite"/>
<button label="Hinauswerfen" name="member_eject"/>
diff --git a/indra/newview/skins/default/xui/de/panel_region_debug.xml b/indra/newview/skins/default/xui/de/panel_region_debug.xml
index a03a0b8b7b..d4b0ed907e 100755
--- a/indra/newview/skins/default/xui/de/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_debug.xml
@@ -7,11 +7,8 @@
unbekannt
</text>
<check_box label="Skripts deaktivieren" name="disable_scripts_check" tool_tip="Skripts in dieser Region deaktivieren"/>
- <button label="?" name="disable_scripts_help"/>
<check_box label="Kollisionen deaktivieren" name="disable_collisions_check" tool_tip="Nicht-Avatar-Kollisionen in dieser Region deaktivieren"/>
- <button label="?" name="disable_collisions_help"/>
<check_box label="Physik deaktivieren" name="disable_physics_check" tool_tip="Physik in dieser Region deaktivieren"/>
- <button label="?" name="disable_physics_help"/>
<button label="Übernehmen" name="apply_btn"/>
<text name="objret_text_lbl" width="110">
Objekt zurückgeben
@@ -31,10 +28,8 @@
<check_box label="In jeder Region auf diesem Grundbesitz" name="return_estate_wide" tool_tip="Es werden die Objekte in allen Regionen dieses Grundbesitzes zurückgegeben"/>
<button label="Zurückgeben" name="return_btn" width="90"/>
<button label="Top-Kollisionsobjekte..." name="top_colliders_btn" tool_tip="Liste der Objekte mit den meisten potenziellen Kollisionen"/>
- <button label="?" name="top_colliders_help"/>
- <button label="Top-Skripts..." name="top_scripts_btn" tool_tip="Zeigt eine Liste der Objekte an, die die meiste Zeit benötigen, um Skripts auszuführen."/>
- <button label="?" name="top_scripts_help"/>
<button label="Region neu starten" name="restart_btn" tool_tip="2-Minuten-Countdown und Region neu starten"/>
- <button label="?" name="restart_help"/>
+ <button label="Top-Skripts..." name="top_scripts_btn" tool_tip="Zeigt eine Liste der Objekte an, die die meiste Zeit benötigen, um Skripts auszuführen."/>
<button label="Neustart abbrechen" name="cancel_restart_btn" tool_tip="Regionsneustart abbrechen"/>
+ <button label="Regions-Debug-Konsole" name="region_debug_console_btn" tool_tip="Regions-Debug-Konsole öffnen"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_region_general.xml b/indra/newview/skins/default/xui/de/panel_region_general.xml
index f383be992b..6324e90029 100755
--- a/indra/newview/skins/default/xui/de/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_general.xml
@@ -20,12 +20,12 @@
</text>
<check_box label="Terraformen blockieren" name="block_terraform_check"/>
<check_box label="Fliegen blockieren" name="block_fly_check"/>
+ <check_box label="Überfliegen von Parzellen blockieren" name="block_fly_over_check" tool_tip="Zugangsprüfungen nach oben ausdehnen, um Überfliegen einer Parzelle zu verhindern"/>
<check_box label="Schaden zulassen" name="allow_damage_check"/>
<check_box label="Stoßen beschränken" name="restrict_pushobject"/>
<check_box label="Landwiederverkauf zulassen" name="allow_land_resell_check"/>
<check_box label="Landumverteilung zulassen" name="allow_parcel_changes_check"/>
<check_box label="Landanzeige in Suche blockieren" name="block_parcel_search_check" tool_tip="Diese Region und ihre Parzellen in Suchergebnissen anzeigen"/>
- <check_box label="Netzobjekte zulassen" name="mesh_rez_enabled_check" tool_tip="Anderen das Rezzen von Netzobjekten in dieser Region gestatten"/>
<spinner label="Avatar-Limit" name="agent_limit_spin"/>
<spinner label="Objektbonus" name="object_bonus_spin"/>
<text label="Inhaltseinstufung" name="access_text">
diff --git a/indra/newview/skins/default/xui/de/sidepanel_inventory.xml b/indra/newview/skins/default/xui/de/sidepanel_inventory.xml
index 2585c5dc90..94c3c75254 100755
--- a/indra/newview/skins/default/xui/de/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/de/sidepanel_inventory.xml
@@ -28,12 +28,12 @@
<button label="Profil" name="info_btn" tool_tip="Objektprofil anzeigen"/>
</layout_panel>
<layout_panel name="share_btn_lp">
- <button label="Teilen" name="share_btn" tool_tip="Inventarobjekt teilen"/>
+ <button label="Freigeben" name="share_btn" tool_tip="Inventarobjekt freigeben"/>
</layout_panel>
<layout_panel name="shop_btn_lp">
<button label="Einkaufen" name="shop_btn" tool_tip="Marktplatz-Webseite öffnen"/>
<button label="Anziehen" name="wear_btn" tool_tip="Ausgewähltes Outfit tragen"/>
- <button label="Wiedergeben" name="play_btn"/>
+ <button label="Spielen" name="play_btn"/>
<button label="Teleportieren" name="teleport_btn" tool_tip="Zu ausgewähltem Standort teleportieren"/>
</layout_panel>
</layout_stack>
diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml
index 082febd709..95657ba14e 100755
--- a/indra/newview/skins/default/xui/de/strings.xml
+++ b/indra/newview/skins/default/xui/de/strings.xml
@@ -37,6 +37,45 @@
<string name="StartupRequireDriverUpdate">
Grafikinitialisierung fehlgeschlagen. Bitte aktualisieren Sie Ihren Grafiktreiber.
</string>
+ <string name="AboutHeader">
+ [APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL])
+[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
+ </string>
+ <string name="AboutCompiler">
+ Kompiliert mit [COMPILER], Version [COMPILER_VERSION]
+ </string>
+ <string name="AboutPosition">
+ Sie befinden sich an [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1] in [REGION] auf &lt;nolink&gt;[HOSTNAME]&lt;/nolink&gt; ([HOSTIP])
+SLURL: &lt;nolink&gt;[SLURL]&lt;/nolink&gt;
+(globale Koordinaten [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1])
+[SERVER_VERSION]
+[SERVER_RELEASE_NOTES_URL]
+ </string>
+ <string name="AboutSystem">
+ CPU: [CPU]
+Speicher: [MEMORY_MB] MB
+Betriebssystemversion: [OS_VERSION]
+Grafikkartenhersteller: [GRAPHICS_CARD_VENDOR]
+Grafikkarte: [GRAPHICS_CARD]
+ </string>
+ <string name="AboutDriver">
+ Windows-Grafiktreiberversion: [GRAPHICS_DRIVER_VERSION]
+ </string>
+ <string name="AboutLibs">
+ OpenGL-Version: [OPENGL_VERSION]
+
+libcurl-Version: [LIBCURL_VERSION]
+J2C-Decoderversion: [J2C_VERSION]
+Audiotreiberversion: [AUDIO_DRIVER_VERSION]
+Qt-Webkit-Version: [QT_WEBKIT_VERSION]
+Voice-Server-Version: [VOICE_VERSION]
+ </string>
+ <string name="AboutTraffic">
+ Paketverlust: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1] %)
+ </string>
+ <string name="ErrorFetchingServerReleaseNotesURL">
+ Fehler beim Abrufen der URL für die Server-Versionshinweise.
+ </string>
<string name="ProgressRestoring">
Wird wiederhergestellt...
</string>
@@ -937,15 +976,15 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
<string name="ControlYourCamera">
Kamerasteuerung
</string>
+ <string name="TeleportYourAgent">
+ Sie teleportieren
+ </string>
<string name="NotConnected">
Nicht verbunden
</string>
<string name="AgentNameSubst">
(Sie)
</string>
- <string name="TeleportYourAgent">
- Sie teleportieren
- </string>
<string name="JoinAnExperience">
Bei einem Erlebnis mitmachen
</string>
@@ -1267,8 +1306,7 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
<string name="InventoryNoTexture">
Sie haben keine Kopie dieser Textur in Ihrem Inventar.
</string>
- <string name="Unconstrained">keines</string>
- <string name="InventoryInboxNoItems">
+ <string name="InventoryInboxNoItems">
Einkäufe aus dem Marktplatz erscheinen hier. Sie können diese dann zur Verwendung in Ihr Inventar ziehen.
</string>
<string name="MarketplaceURL">
@@ -1300,6 +1338,18 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
<string name="InventoryOutboxNoItems">
Ziehen Sie Ordner in dien Bereich und klicken Sie auf „In Marktplatz übertragen“, um sie im [[MARKETPLACE_DASHBOARD_URL] Marktplatz] zum Verkauf anzubieten.
</string>
+ <string name="InventoryOutboxInitializingTitle">
+ Marktplatz wird initialisiert.
+ </string>
+ <string name="InventoryOutboxInitializing">
+ Wir greifen auf Ihr Konto im [[MARKETPLACE_CREATE_STORE_URL] Marktplatz-Laden] zu.
+ </string>
+ <string name="InventoryOutboxErrorTitle">
+ Marktplatzfehler.
+ </string>
+ <string name="InventoryOutboxError">
+ Der [[MARKETPLACE_CREATE_STORE_URL] Marktplatz-Laden] gibt Fehler zurück.
+ </string>
<string name="Marketplace Error None">
Keine Fehler
</string>
@@ -1327,6 +1377,9 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
<string name="Open landmarks">
Landmarken öffnen
</string>
+ <string name="Unconstrained">
+ Variabel
+ </string>
<string name="no_transfer" value=" (kein Transferieren)"/>
<string name="no_modify" value=" (kein Bearbeiten)"/>
<string name="no_copy" value=" (kein Kopieren)"/>
@@ -1727,6 +1780,9 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
<string name="CompileQueueDownloadedCompiling">
Heruntergeladen, wird kompiliert
</string>
+ <string name="CompileQueueServiceUnavailable">
+ Kein Skriptkompilierungsdienst verfügbar
+ </string>
<string name="CompileQueueScriptNotFound">
Skript wurde auf Server nicht gefunden.
</string>
diff --git a/indra/newview/skins/default/xui/en/floater_im_session.xml b/indra/newview/skins/default/xui/en/floater_im_session.xml
index dad81aca4f..c64ee5565a 100755
--- a/indra/newview/skins/default/xui/en/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/en/floater_im_session.xml
@@ -209,7 +209,7 @@
default_tab_group="3"
tab_group="2"
name="right_part_holder"
- min_width="230">
+ min_width="207">
<layout_stack
animate="true"
follows="all"
diff --git a/indra/newview/skins/default/xui/en/floater_joystick.xml b/indra/newview/skins/default/xui/en/floater_joystick.xml
index 259acccb68..3dfdf8e1a5 100755
--- a/indra/newview/skins/default/xui/en/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/en/floater_joystick.xml
@@ -4,7 +4,7 @@
height="500"
layout="topleft"
name="Joystick"
- help_topic="joystick"
+ help_topic="Viewerhelp:Joystick_Configuration"
title="JOYSTICK CONFIGURATION"
width="569">
<floater.string
diff --git a/indra/newview/skins/default/xui/en/floater_lagmeter.xml b/indra/newview/skins/default/xui/en/floater_lagmeter.xml
new file mode 100644
index 0000000000..b24c745bdd
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_lagmeter.xml
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ legacy_header_height="18"
+ height="170"
+ layout="topleft"
+ name="floater_lagmeter"
+ help_topic="floater_lagmeter"
+ save_rect="true"
+ title="LAG METER"
+ width="350">
+ <floater.string
+ name="max_title_msg">
+ Lag Meter
+ </floater.string>
+ <floater.string
+ name="max_width_px">
+ 360
+ </floater.string>
+ <floater.string
+ name="min_title_msg">
+ Lag
+ </floater.string>
+ <floater.string
+ name="min_width_px">
+ 90
+ </floater.string>
+ <floater.string
+ name="client_text_msg">
+ Client
+ </floater.string>
+ <floater.string
+ name="client_frame_rate_critical_fps">
+ 10
+ </floater.string>
+ <floater.string
+ name="client_frame_rate_warning_fps">
+ 15
+ </floater.string>
+ <floater.string
+ name="client_frame_time_window_bg_msg">
+ Normal, window in background
+ </floater.string>
+ <floater.string
+ name="client_frame_time_critical_msg">
+ Client frame rate below [CLIENT_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string
+ name="client_frame_time_warning_msg">
+ Client frame rate between [CLIENT_FRAME_RATE_CRITICAL] and [CLIENT_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string
+ name="client_frame_time_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string
+ name="client_draw_distance_cause_msg">
+ Possible cause: Draw distance set too high
+ </floater.string>
+ <floater.string
+ name="client_texture_loading_cause_msg">
+ Possible cause: Images loading
+ </floater.string>
+ <floater.string
+ name="client_texture_memory_cause_msg">
+ Possible cause: Too many images in memory
+ </floater.string>
+ <floater.string
+ name="client_complex_objects_cause_msg">
+ Possible cause: Too many complex objects in scene
+ </floater.string>
+ <floater.string
+ name="network_text_msg">
+ Network
+ </floater.string>
+ <floater.string
+ name="network_packet_loss_critical_pct">
+ 10
+ </floater.string>
+ <floater.string
+ name="network_packet_loss_warning_pct">
+ 5
+ </floater.string>
+ <floater.string
+ name="network_packet_loss_critical_msg">
+ Connection is dropping over [NETWORK_PACKET_LOSS_CRITICAL]% of packets
+ </floater.string>
+ <floater.string
+ name="network_packet_loss_warning_msg">
+ Connection is dropping [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]% of packets
+ </floater.string>
+ <floater.string
+ name="network_performance_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string
+ name="network_ping_critical_ms">
+ 600
+ </floater.string>
+ <floater.string
+ name="network_ping_warning_ms">
+ 300
+ </floater.string>
+ <floater.string
+ name="network_ping_critical_msg">
+ Connection ping time is over [NETWORK_PING_CRITICAL] ms
+ </floater.string>
+ <floater.string
+ name="network_ping_warning_msg">
+ Connection ping time is [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+ </floater.string>
+ <floater.string
+ name="network_packet_loss_cause_msg">
+ Possible bad connection or &apos;Bandwidth&apos; pref too high.
+ </floater.string>
+ <floater.string
+ name="network_ping_cause_msg">
+ Possible bad connection or file-sharing app.
+ </floater.string>
+ <floater.string
+ name="server_text_msg">
+ Server
+ </floater.string>
+ <floater.string
+ name="server_frame_rate_critical_fps">
+ 20
+ </floater.string>
+ <floater.string
+ name="server_frame_rate_warning_fps">
+ 30
+ </floater.string>
+ <floater.string
+ name="server_single_process_max_time_ms">
+ 20
+ </floater.string>
+ <floater.string
+ name="server_frame_time_critical_msg">
+ Simulator framerate below [SERVER_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string
+ name="server_frame_time_warning_msg">
+ Simulator framerate between [SERVER_FRAME_RATE_CRITICAL] and [SERVER_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string
+ name="server_frame_time_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string
+ name="server_physics_cause_msg">
+ Possible Cause: Too many physical objects
+ </floater.string>
+ <floater.string
+ name="server_scripts_cause_msg">
+ Possible Cause: Too many scripted objects
+ </floater.string>
+ <floater.string
+ name="server_net_cause_msg">
+ Possible Cause: Too much network traffic
+ </floater.string>
+ <floater.string
+ name="server_agent_cause_msg">
+ Possible Cause: Too many moving people in region
+ </floater.string>
+ <floater.string
+ name="server_images_cause_msg">
+ Possible Cause: Too many image calculations
+ </floater.string>
+ <floater.string
+ name="server_generic_cause_msg">
+ Possible Cause: Simulator load too heavy
+ </floater.string>
+ <floater.string
+ name="smaller_label">
+ &gt;&gt;
+ </floater.string>
+ <floater.string
+ name="bigger_label">
+ &lt;&lt;
+ </floater.string>
+ <button
+ follows="top|left"
+ height="16"
+ image_selected="lag_status_good.tga"
+ image_unselected="lag_status_good.tga"
+ layout="topleft"
+ left="8"
+ name="client_lagmeter"
+ tab_stop="false"
+ tool_tip="Client lag status"
+ top="24"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_pad="3"
+ name="client"
+ top_delta="0"
+ width="128">
+ Client
+ </text>
+ <text
+ invisiblity_control="LagMeterShrunk"
+ type="string"
+ length="1"
+ bottom="40"
+ follows="left|top"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="110"
+ name="client_text"
+ right="-10">
+ Normal
+ </text>
+ <text
+ invisiblity_control="LagMeterShrunk"
+ bottom="56"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="40"
+ name="client_lag_cause"
+ right="-32" />
+ <button
+ follows="top|left"
+ height="16"
+ image_selected="lag_status_good.tga"
+ image_unselected="lag_status_good.tga"
+ layout="topleft"
+ left="8"
+ name="network_lagmeter"
+ tab_stop="false"
+ tool_tip="Network lag status"
+ top="64"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_pad="3"
+ name="network"
+ top_delta="0"
+ width="128">
+ Network
+ </text>
+ <text
+ invisiblity_control="LagMeterShrunk"
+ type="string"
+ length="1"
+ bottom="80"
+ follows="left|top"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="110"
+ name="network_text"
+ right="-10">
+ Normal
+ </text>
+ <text
+ invisiblity_control="LagMeterShrunk"
+ bottom="96"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="40"
+ name="network_lag_cause"
+ right="-32" />
+ <button
+ follows="top|left"
+ height="16"
+ image_selected="lag_status_good.tga"
+ image_unselected="lag_status_good.tga"
+ layout="topleft"
+ left="8"
+ name="server_lagmeter"
+ tab_stop="false"
+ tool_tip="Server lag status"
+ top="104"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_pad="3"
+ name="server"
+ top_delta="0"
+ width="60">
+ Server
+ </text>
+ <text
+ invisiblity_control="LagMeterShrunk"
+ type="string"
+ length="1"
+ bottom="120"
+ follows="left|top"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="110"
+ name="server_text"
+ right="-10">
+ Normal
+ </text>
+ <text
+ invisiblity_control="LagMeterShrunk"
+ bottom="136"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="40"
+ name="server_lag_cause"
+ right="-32" />
+ <button
+ follows="left|top"
+ height="20"
+ label="&gt;&gt;"
+ layout="topleft"
+ left="10"
+ name="minimize"
+ tool_tip="Toggle floater size"
+ top_delta="24"
+ width="40">
+ <button.commit_callback
+ function="LagMeter.ClickShrink" />
+ </button>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_openobject.xml b/indra/newview/skins/default/xui/en/floater_openobject.xml
index f526970ad0..912db80bcc 100755
--- a/indra/newview/skins/default/xui/en/floater_openobject.xml
+++ b/indra/newview/skins/default/xui/en/floater_openobject.xml
@@ -3,10 +3,10 @@
legacy_header_height="18"
can_resize="true"
default_tab_group="1"
- height="350"
+ height="370"
layout="topleft"
- min_height="160"
- min_width="270"
+ min_height="190"
+ min_width="285"
name="objectcontents"
help_topic="objectcontents"
save_rect="true"
@@ -31,36 +31,81 @@
background_visible="false"
draw_border="false"
follows="all"
- height="276"
+ height="240"
layout="topleft"
left="10"
name="object_contents"
top_pad="0"
width="284" />
+ <view_border
+ bevel_style="none"
+ follows="bottom|left"
+ height="50"
+ highlight_light_color="0.6 0.6 0.6"
+ layout="topleft"
+ left="10"
+ name="border"
+ top_pad="5"
+ width="270"/>
+ <text
+ follows="bottom|left"
+ height="15"
+ layout="topleft"
+ left="15"
+ name="border_note"
+ text_color="White"
+ top_delta="5">
+ Copy to inventory and wear
+ </text>
+ <button
+ follows="bottom|left"
+ height="23"
+ label="Add to outfit"
+ label_selected="Add to outfit"
+ layout="topleft"
+ left="15"
+ name="copy_and_wear_button"
+ top_pad="3"
+ width="135">
+ <button.commit_callback
+ function="OpenObject.MoveAndWear" />
+ </button>
+ <button
+ follows="bottom|left"
+ height="23"
+ label="Replace outfit"
+ label_selected="Replace outfit"
+ layout="topleft"
+ left_pad="5"
+ name="copy_and_replace_button"
+ width="120">
+ <button.commit_callback
+ function="OpenObject.ReplaceOutfit" />
+ </button>
<button
follows="bottom|left"
height="23"
- label="Copy To Inventory"
- label_selected="Copy To Inventory"
+ label="Only copy to inventory"
+ label_selected="Only copy to inventory"
layout="topleft"
- left="20"
+ left="15"
name="copy_to_inventory_button"
tab_group="1"
- top_pad="5"
- width="120">
+ top_pad="9"
+ width="135">
<button.commit_callback
function="OpenObject.MoveToInventory" />
</button>
<button
follows="bottom|left"
height="23"
- label="Copy And Wear"
- label_selected="Copy And Wear"
+ label="Cancel"
+ label_selected="Cancel"
layout="topleft"
- left_pad="10"
- name="copy_and_wear_button"
+ left_pad="5"
+ name="cancel_button"
width="120">
<button.commit_callback
- function="OpenObject.MoveAndWear" />
+ function="OpenObject.Cancel" />
</button>
</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_pay.xml b/indra/newview/skins/default/xui/en/floater_pay.xml
index 41a7134b1d..9d91f801a6 100755
--- a/indra/newview/skins/default/xui/en/floater_pay.xml
+++ b/indra/newview/skins/default/xui/en/floater_pay.xml
@@ -2,12 +2,12 @@
<floater
legacy_header_height="18"
can_minimize="false"
- height="200"
+ height="186"
layout="topleft"
name="Give Money"
help_topic="give_money"
save_rect="true"
- width="250">
+ width="261">
<string
name="payee_group">
Pay Group
@@ -21,88 +21,129 @@
type="string"
length="1"
follows="left|top"
- font="SansSerifSmall"
height="16"
layout="topleft"
left="10"
- name="payee_name"
- top="25"
- use_ellipses="true"
- width="230">
- Test Name That Is Extremely Long To Check Clipping
+ top="24"
+ name="paying_text"
+ width="180">
+ You are paying:
</text>
- <button
- height="23"
- label="L$1"
- label_selected="L$1"
- layout="topleft"
- left="35"
- name="fastpay 1"
- top_pad="8"
- width="80" />
- <button
- height="23"
- label="L$5"
- label_selected="L$5"
- layout="topleft"
- left_pad="15"
- name="fastpay 5"
- width="80" />
- <button
- height="23"
- label="L$10"
- label_selected="L$10"
- layout="topleft"
- left="35"
- name="fastpay 10"
- top_pad="8"
- width="80" />
- <button
- height="23"
- label="L$20"
- label_selected="L$20"
- layout="topleft"
- left_pad="15"
- name="fastpay 20"
- width="80" />
<text
type="string"
length="1"
follows="left|top"
- height="18"
+ font="SansSerifSmall"
+ height="16"
layout="topleft"
- left="35"
- name="amount text"
- top_pad="8"
+ left="10"
+ top_pad="5"
+ name="payee_name"
+ use_ellipses="true"
width="180">
- Or, choose amount:
+ Test Name That Is Extremely Long To Check Clipping
</text>
- <line_editor
- border_style="line"
- follows="left|top|right"
- height="19"
- top_pad="0"
- layout="topleft"
- left="130"
- max_length_bytes="9"
- name="amount"
- width="80" />
- <button
- enabled="false"
- height="23"
- label="Pay"
- label_selected="Pay"
- layout="topleft"
- left="20"
- name="pay btn"
- top_pad="15"
- width="100" />
- <button
- height="23"
- label="Cancel"
- label_selected="Cancel"
+ <panel
+ border_thickness="0"
+ height="104"
+ label="Search"
layout="topleft"
+ left="0"
+ top_pad="10"
+ help_topic="avatarpicker"
+ name="PatternsPanel"
+ width="120">
+ <button
+ height="23"
+ label="Pay L$ 1"
+ label_selected="Pay L$ 1"
+ layout="topleft"
+ left="10"
+ top="0"
+ name="fastpay 1"
+ width="110" />
+ <button
+ height="23"
+ label="Pay L$ 5"
+ label_selected="Pay L$ 5"
+ layout="topleft"
+ left="10"
+ top_pad="4"
+ name="fastpay 5"
+ width="110" />
+ <button
+ height="23"
+ label="Pay L$ 10"
+ label_selected="Pay L$ 10"
+ layout="topleft"
+ left="10"
+ top_pad="4"
+ name="fastpay 10"
+ width="110" />
+ <button
+ height="23"
+ label="Pay L$ 20"
+ label_selected="Pay L$ 20"
+ layout="topleft"
+ left="10"
+ top_pad="4"
+ name="fastpay 20"
+ width="110" />
+ </panel>
+ <view_border
+ bevel_style="in"
+ width="1"
+ height="104"
left_pad="10"
- name="cancel btn"
- width="100" />
+ layout="topleft" />
+ <panel
+ border_thickness="0"
+ height="104"
+ label="Search"
+ layout="topleft"
+ left_pad="0"
+ name="InputPanel"
+ width="120">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="18"
+ layout="topleft"
+ left="10"
+ top="0"
+ name="amount text"
+ width="110">
+ Other amount:
+ </text>
+ <line_editor
+ border_style="line"
+ follows="left|top|right"
+ height="19"
+ layout="topleft"
+ left="10"
+ top_pad="0"
+ max_length_bytes="9"
+ name="amount"
+ width="90" />
+ <button
+ enabled="false"
+ height="23"
+ label="Pay"
+ label_selected="Pay"
+ layout="topleft"
+ left="10"
+ top_pad="17"
+ name="pay btn"
+ width="110" />
+ <button
+ height="23"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ left="10"
+ top_pad="4"
+ name="cancel btn"
+ width="110" />
+ </panel>
</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_pay_object.xml b/indra/newview/skins/default/xui/en/floater_pay_object.xml
index d3a35c2051..f1e27b918e 100755
--- a/indra/newview/skins/default/xui/en/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/en/floater_pay_object.xml
@@ -2,12 +2,12 @@
<floater
legacy_header_height="18"
can_minimize="false"
- height="225"
+ height="228"
layout="topleft"
name="Give Money"
help_topic="give_money"
save_rect="true"
- width="250">
+ width="261">
<string
name="payee_group">
Pay Group
@@ -16,12 +16,25 @@
name="payee_resident">
Pay Resident
</string>
+
<text
+ type="string"
+ length="1"
follows="left|top"
height="16"
layout="topleft"
left="10"
- top_pad="24"
+ top="24"
+ name="paying_text"
+ width="180">
+ You are paying:
+ </text>
+ <text
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ top_pad="5"
name="payee_name"
use_ellipses="true"
width="225">
@@ -40,7 +53,7 @@
width="180">
Via object:
</text>
- <icon
+ <icon
height="16"
width="16"
image_name="Inv_Object"
@@ -64,78 +77,107 @@
width="188">
My awesome object with a really damn long name
</text>
- <button
- height="23"
- label="L$1"
- label_selected="L$1"
- layout="topleft"
- left="25"
- name="fastpay 1"
- top_pad="8"
- width="80" />
- <button
- height="23"
- label="L$5"
- label_selected="L$5"
- layout="topleft"
- left_pad="15"
- name="fastpay 5"
- width="80" />
- <button
- height="23"
- label="L$10"
- label_selected="L$10"
- layout="topleft"
- left="25"
- name="fastpay 10"
- top_pad="8"
- width="80" />
- <button
- height="23"
- label="L$20"
- label_selected="L$20"
+ <panel
+ border_thickness="0"
+ height="104"
+ label="Search"
layout="topleft"
- left_pad="15"
- name="fastpay 20"
- width="80" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="14"
- layout="topleft"
- left="25"
- name="amount text"
- top_pad="8"
- width="180">
- Or, choose amount:
- </text>
- <line_editor
- border_style="line"
- follows="left|top|right"
- height="21"
- top_pad="0"
- layout="topleft"
- left="120"
- max_length_bytes="9"
- name="amount"
- width="80" />
- <button
- enabled="false"
- height="23"
- label="Pay"
- label_selected="Pay"
- layout="topleft"
- left="10"
- name="pay btn"
- top_pad="5"
- width="100" />
- <button
- height="23"
- label="Cancel"
- label_selected="Cancel"
+ left="0"
+ top_pad="10"
+ help_topic="avatarpicker"
+ name="PatternsPanel"
+ width="120">
+ <button
+ height="23"
+ label="Pay L$ 1"
+ label_selected="Pay L$ 1"
+ layout="topleft"
+ left="10"
+ top="0"
+ name="fastpay 1"
+ width="110" />
+ <button
+ height="23"
+ label="Pay L$ 5"
+ label_selected="Pay L$ 5"
+ layout="topleft"
+ left="10"
+ top_pad="4"
+ name="fastpay 5"
+ width="110" />
+ <button
+ height="23"
+ label="Pay L$ 10"
+ label_selected="Pay L$ 10"
+ layout="topleft"
+ left="10"
+ top_pad="4"
+ name="fastpay 10"
+ width="110" />
+ <button
+ height="23"
+ label="Pay L$ 20"
+ label_selected="Pay L$ 20"
+ layout="topleft"
+ left="10"
+ top_pad="4"
+ name="fastpay 20"
+ width="110" />
+ </panel>
+ <view_border
+ bevel_style="in"
+ width="1"
+ height="104"
+ left_pad="10"
+ layout="topleft" />
+ <panel
+ border_thickness="0"
+ height="104"
+ label="Search"
layout="topleft"
- left_pad="5"
- name="cancel btn"
- width="100" />
+ left_pad="0"
+ name="InputPanel"
+ width="120">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="18"
+ layout="topleft"
+ left="10"
+ top="0"
+ name="amount text"
+ width="180">
+ Other amount:
+ </text>
+ <line_editor
+ border_style="line"
+ follows="left|top|right"
+ height="19"
+ layout="topleft"
+ left="10"
+ top_pad="0"
+ max_length_bytes="9"
+ name="amount"
+ width="90" />
+ <button
+ enabled="false"
+ height="23"
+ label="Pay"
+ label_selected="Pay"
+ layout="topleft"
+ left="10"
+ top_pad="17"
+ name="pay btn"
+ width="110" />
+ <button
+ height="23"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ left="10"
+ top_pad="4"
+ name="cancel btn"
+ width="110" />
+ </panel>
</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_report_abuse.xml b/indra/newview/skins/default/xui/en/floater_report_abuse.xml
index c50c8c02fe..af62c7a9bc 100755
--- a/indra/newview/skins/default/xui/en/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/en/floater_report_abuse.xml
@@ -253,7 +253,7 @@
name="Land__Encroachment__Objects_textures"
value="63" />
<combo_box.item
- label="Wagering or Gambling"
+ label="Gaming Policy Violation"
name="Wagering_gambling"
value="67" />
</combo_box>
diff --git a/indra/newview/skins/default/xui/en/floater_snapshot.xml b/indra/newview/skins/default/xui/en/floater_snapshot.xml
index f0a175902b..76adaad57c 100755
--- a/indra/newview/skins/default/xui/en/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/en/floater_snapshot.xml
@@ -8,6 +8,7 @@
height="455"
layout="topleft"
name="Snapshot"
+ single_instance="true"
help_topic="snapshot"
save_rect="true"
save_visibility="false"
diff --git a/indra/newview/skins/default/xui/en/floater_stats.xml b/indra/newview/skins/default/xui/en/floater_stats.xml
index bee570d5d0..c9a6e1c9c3 100755
--- a/indra/newview/skins/default/xui/en/floater_stats.xml
+++ b/indra/newview/skins/default/xui/en/floater_stats.xml
@@ -267,7 +267,9 @@
stat="simsimskippedsilhouettesteps"
unit_label="/sec"/>
<stat_bar name="simsimpctsteppedcharacters"
+ label="Characters Updated"
stat="simsimpctsteppedcharacters"
+ unit_label="%"
decimal_digits="1"/>
</stat_view>
<stat_bar name="siminpps"
diff --git a/indra/newview/skins/default/xui/en/menu_inventory.xml b/indra/newview/skins/default/xui/en/menu_inventory.xml
index 6fa45d7d66..7099db63ab 100755
--- a/indra/newview/skins/default/xui/en/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/en/menu_inventory.xml
@@ -531,7 +531,7 @@
name="Sound Play">
<menu_item_call.on_click
function="Inventory.DoToSelected"
- parameter="open" />
+ parameter="sound_play" />
</menu_item_call>
<menu_item_separator
layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index c8fcda9858..560f81a6fd 100755
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -251,8 +251,7 @@
function="Floater.Visible"
parameter="nearby_chat" />
<menu_item_check.on_click
- function="Floater.ToggleOrBringToFront"
- parameter="nearby_chat" />
+ function="Communicate.NearbyChat"/>
</menu_item_check>
<menu_item_check
label="Speak"
@@ -377,13 +376,16 @@
function="SideTray.PanelPeopleTab"
parameter="nearby_panel" />
</menu_item_check>
- <menu_item_call
+ <menu_item_check
label="Block List"
name="Block List">
- <menu_item_call.on_click
+ <menu_item_check.on_check
+ function="SideTray.CheckPanelPeopleTab"
+ parameter="blocked_panel" />
+ <menu_item_check.on_click
function="SideTray.PanelPeopleTab"
parameter="blocked_panel" />
- </menu_item_call>
+ </menu_item_check>
<menu_item_separator/>
<menu_item_check
name="Do Not Disturb"
@@ -1222,7 +1224,7 @@
name="Grid Options"
shortcut="control|shift|B">
<menu_item_call.on_click
- function="Floater.Show"
+ function="Floater.Toggle"
parameter="build_options" />
<menu_item_call.on_enable
function="Tools.EnableToolNotPie" />
@@ -2103,6 +2105,18 @@
parameter="notifications_console" />
</menu_item_call>
<menu_item_check
+ label="Region Debug Console"
+ name="Region Debug Console"
+ shortcut="control|shift|`"
+ use_mac_ctrl="true">
+ <menu_item_check.on_check
+ function="Floater.Visible"
+ parameter="region_debug_console" />
+ <menu_item_check.on_click
+ function="Floater.Toggle"
+ parameter="region_debug_console" />
+ </menu_item_check>
+ <menu_item_check
label="Fast Timers"
name="Fast Timers"
shortcut="control|shift|9"
diff --git a/indra/newview/skins/default/xui/en/mime_types.xml b/indra/newview/skins/default/xui/en/mime_types.xml
index a585069faa..f5f2223330 100755
--- a/indra/newview/skins/default/xui/en/mime_types.xml
+++ b/indra/newview/skins/default/xui/en/mime_types.xml
@@ -101,6 +101,27 @@
true
</allow_looping>
</widgetset>
+ <widgetset name="none">
+ <label name="none_label">
+ No Content
+ </label>
+ <default_type>
+ none/none
+ </default_type>
+ <icon>
+ icn_media_web.tga
+ </icon>
+ <tooltip name="none_tooltip">
+ No media here
+ </tooltip>
+ <playtip name="none_playtip" />
+ <allow_resize>
+ false
+ </allow_resize>
+ <allow_looping>
+ false
+ </allow_looping>
+ </widgetset>
<scheme name="rtsp">
<label name="rtsp_label">
Real Time Streaming
diff --git a/indra/newview/skins/default/xui/en/mime_types_linux.xml b/indra/newview/skins/default/xui/en/mime_types_linux.xml
index e95b371d00..84aeaf3b54 100755
--- a/indra/newview/skins/default/xui/en/mime_types_linux.xml
+++ b/indra/newview/skins/default/xui/en/mime_types_linux.xml
@@ -101,6 +101,27 @@
true
</allow_looping>
</widgetset>
+ <widgetset name="none">
+ <label name="none_label">
+ No Content
+ </label>
+ <default_type>
+ none/none
+ </default_type>
+ <icon>
+ icn_media_web.tga
+ </icon>
+ <tooltip name="none_tooltip">
+ No media here
+ </tooltip>
+ <playtip name="none_playtip" />
+ <allow_resize>
+ false
+ </allow_resize>
+ <allow_looping>
+ false
+ </allow_looping>
+ </widgetset>
<scheme name="rtsp">
<label name="rtsp_label">
Real Time Streaming
diff --git a/indra/newview/skins/default/xui/en/mime_types_mac.xml b/indra/newview/skins/default/xui/en/mime_types_mac.xml
index 7931e55c0a..90230f12dd 100755
--- a/indra/newview/skins/default/xui/en/mime_types_mac.xml
+++ b/indra/newview/skins/default/xui/en/mime_types_mac.xml
@@ -101,6 +101,27 @@
true
</allow_looping>
</widgetset>
+ <widgetset name="none">
+ <label name="none_label">
+ No Content
+ </label>
+ <default_type>
+ none/none
+ </default_type>
+ <icon>
+ icn_media_web.tga
+ </icon>
+ <tooltip name="none_tooltip">
+ No media here
+ </tooltip>
+ <playtip name="none_playtip" />
+ <allow_resize>
+ false
+ </allow_resize>
+ <allow_looping>
+ false
+ </allow_looping>
+ </widgetset>
<scheme name="rtsp">
<label name="rtsp_label">
Real Time Streaming
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 2c7dbc3c18..ea1bc66236 100755
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -1427,6 +1427,14 @@ Graphics Quality can be raised in Preferences &gt; Graphics.
The region [REGION] does not allow terraforming.
<tag>fail</tag>
</notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ParcelNoTerraforming"
+ type="notify">
+You are not allowed to terraform parcel [PARCEL].
+ <tag>fail</tag>
+ </notification>
<notification
icon="alertmodal.tga"
@@ -3807,6 +3815,28 @@ You have left the group [group_name].
</notification>
<notification
+ icon="aler.tga"
+ name="GroupDepartError"
+ type="alert">
+Unable to leave group: [reason].
+ <tag>reason</tag>
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ name="GroupDepart"
+ type="alert">
+You have left the group [group_name].
+ <tag>group_name</tag>
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
icon="alert.tga"
name="ConfirmKick"
type="alert">
@@ -5216,6 +5246,19 @@ Warning: The &apos;Pay object&apos; click action has been set, but it will only
<notification
icon="alertmodal.tga"
+ name="PayConfirmation"
+ type="alertmodal">
+ Confirm that you want to pay L$[AMOUNT] to [TARGET].
+ <tag>confirm</tag>
+ <usetemplate
+ ignoretext="Confirm before paying (sums over L$200)"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="Pay"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
name="OpenObjectCannotCopy"
type="alertmodal">
There are no items in this object that you are allowed to copy.
@@ -5417,6 +5460,14 @@ Do you want to replace it with the selected object?
</notification>
<notification
+ icon="alertmodal.tga"
+ name="TooManyWearables"
+ type="alertmodal">
+ You can't wear a folder containing more than [AMOUNT] items. You can change this limit in Advanced > Show Debug Settings > WearFolderLimit.
+ <tag>fail</tag>
+ </notification>
+
+ <notification
icon="alert.tga"
label="Do Not Disturb Mode Warning"
name="DoNotDisturbModePay"
@@ -7021,11 +7072,11 @@ If you stay in this region you will be logged out.
name="LoadWebPage"
show_toast="false"
type="notify">
-Load web page [URL]?
+Load web page [URL] ?
[MESSAGE]
-From object: &lt;nolink&gt;[OBJECTNAME]&lt;/nolink&gt;, owner: [NAME]?
+From object: &lt;nolink&gt;[OBJECTNAME]&lt;/nolink&gt;, owner: [NAME]
<tag>confirm</tag>
<form name="form">
<button
@@ -7921,7 +7972,16 @@ You uploaded a [RESOLUTION] baked texture for '[BODYREGION]' after [TIME] second
( [EXISTENCE] seconds alive )
You locally updated a [RESOLUTION] baked texture for '[BODYREGION]' after [TIME] seconds.
</notification>
-
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotUploadTexture"
+ type="alertmodal">
+Unable to upload texture.
+[REASON]
+ <tag>fail</tag>
+ </notification>
+
<notification
icon="alertmodal.tga"
name="LivePreviewUnavailable"
diff --git a/indra/newview/skins/default/xui/en/panel_place_profile.xml b/indra/newview/skins/default/xui/en/panel_place_profile.xml
index 30239d6d01..0dd75b1b55 100755
--- a/indra/newview/skins/default/xui/en/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_place_profile.xml
@@ -295,14 +295,14 @@
value="SampleParcel, Name Long (145, 228, 26)"
width="285" />
<expandable_text
- follows="left|top|right"
+ follows="left|top"
height="50"
layout="topleft"
left="5"
name="description"
top_pad="10"
value="Du waltz die spritz"
- width="300" />
+ width="285" />
<text
follows="left|top"
height="14"
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
index dd4533ae74..1e9a1aa27c 100755
--- a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
@@ -106,7 +106,7 @@
width="300">
Web:
</text>
- <radio_group
+ <!-- <radio_group
control_name="UseExternalBrowser"
draw_border="false"
follows="top|left"
@@ -136,6 +136,48 @@
tool_tip="Use the built-in web browser for help, web links, etc. This browser opens as a new window inside [APP_NAME]."
top_delta="20"
width="480" />
+ </radio_group> -->
+
+ <radio_group
+ control_name="PreferredBrowserBehavior"
+ draw_border="false"
+ follows="left|top"
+ height="60"
+ layout="topleft"
+ left_delta="50"
+ name="preferred_browser_behavior"
+ top_pad="0"
+ width="480">
+ <radio_item
+ height="20"
+ label="Use my browser (Chrome, Firefox, IE) for all links"
+ layout="topleft"
+ left="0"
+ name="internal"
+ value="0"
+ tool_tip="Use the default system web browser for help, web links, etc. Not recommended if running full screen."
+ top="0"
+ width="480" />
+ <radio_item
+ height="20"
+ label="Use built-in browser for Second Life links only"
+ layout="topleft"
+ left_delta="0"
+ name="external"
+ value="1"
+ tool_tip="Use the default system web browser for help, web links, etc. Builtin browser will be used only for LindenLab/SecondLife links."
+ top_delta="20"
+ width="480" />
+ <radio_item
+ height="20"
+ label="Use built-in browser for all links"
+ layout="topleft"
+ left="0"
+ name="internal"
+ value="2"
+ tool_tip="Use the built-in web browser for help, web links, etc. This browser opens as a new window inside [APP_NAME]."
+ top_delta="20"
+ width="480" />
</radio_group>
<check_box
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 5fbc539a06..5dcb8e2cdf 100755
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -233,6 +233,7 @@ Please try logging in again in a minute.</string>
<string name="TooltipFlagNoScripts">No Scripts</string>
<string name="TooltipLand">Land:</string>
<string name="TooltipMustSingleDrop">Only a single item can be dragged here</string>
+ <string name="TooltipTooManyWearables">You can't wear a folder containing more than [AMOUNT] items. You can change this limit in Advanced > Show Debug Settings > WearFolderLimit.</string>
<string name="TooltipPrice" value="L$[AMOUNT]: "/>
<string name="TooltipOutboxDragToWorld">You can not rez items in your merchant outbox</string>
diff --git a/indra/newview/skins/default/xui/es/floater_lagmeter.xml b/indra/newview/skins/default/xui/es/floater_lagmeter.xml
new file mode 100644
index 0000000000..227689a194
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_lagmeter.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="MEDIDOR DEL LAG">
+ <floater.string name="max_title_msg">
+ Medidor del lag
+ </floater.string>
+ <floater.string name="max_width_px">
+ 360
+ </floater.string>
+ <floater.string name="min_title_msg">
+ Lag
+ </floater.string>
+ <floater.string name="min_width_px">
+ 90
+ </floater.string>
+ <floater.string name="client_text_msg">
+ Cliente
+ </floater.string>
+ <floater.string name="client_frame_rate_critical_fps">
+ 10
+ </floater.string>
+ <floater.string name="client_frame_rate_warning_fps">
+ 15
+ </floater.string>
+ <floater.string name="client_frame_time_window_bg_msg">
+ Normal, ventana en segundo plano
+ </floater.string>
+ <floater.string name="client_frame_time_critical_msg">
+ Frames del cliente valorados por debajo de [CLIENT_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="client_frame_time_warning_msg">
+ Frames del cliente valorados entre [CLIENT_FRAME_RATE_CRITICAL] y [CLIENT_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string name="client_frame_time_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string name="client_draw_distance_cause_msg">
+ Posible causa: distancia de dibujo fijada muy alta
+ </floater.string>
+ <floater.string name="client_texture_loading_cause_msg">
+ Posible causa: imágenes cargándose
+ </floater.string>
+ <floater.string name="client_texture_memory_cause_msg">
+ Posible causa: demasiadas imágenes en la memoria
+ </floater.string>
+ <floater.string name="client_complex_objects_cause_msg">
+ Posible causa: demasiados objetos complejos en la escena
+ </floater.string>
+ <floater.string name="network_text_msg">
+ Red
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_pct">
+ 10
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_pct">
+ 5
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_msg">
+ La conexión deja caer más del [NETWORK_PACKET_LOSS_CRITICAL]% de los paquetes
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_msg">
+ La conexión deja caer [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]% de los paquetes
+ </floater.string>
+ <floater.string name="network_performance_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string name="network_ping_critical_ms">
+ 600
+ </floater.string>
+ <floater.string name="network_ping_warning_ms">
+ 300
+ </floater.string>
+ <floater.string name="network_ping_critical_msg">
+ El tiempo de conexión -ping- supera los [NETWORK_PING_CRITICAL] ms
+ </floater.string>
+ <floater.string name="network_ping_warning_msg">
+ El tiempo de conexión -ping- es de [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+ </floater.string>
+ <floater.string name="network_packet_loss_cause_msg">
+ Quizá una mala conexión o un ancho de banda fijado demasiado alto.
+ </floater.string>
+ <floater.string name="network_ping_cause_msg">
+ Quizá una mala conexión o una aplicación de archivos compartidos.
+ </floater.string>
+ <floater.string name="server_text_msg">
+ Servidor
+ </floater.string>
+ <floater.string name="server_frame_rate_critical_fps">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_rate_warning_fps">
+ 30
+ </floater.string>
+ <floater.string name="server_single_process_max_time_ms">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_time_critical_msg">
+ Frecuencia (framerate) por debajo de [SERVER_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="server_frame_time_warning_msg">
+ Frecuencia (framerate) entre [SERVER_FRAME_RATE_CRITICAL] y [SERVER_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string name="server_frame_time_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string name="server_physics_cause_msg">
+ Posible causa: demasiados objetos físicos
+ </floater.string>
+ <floater.string name="server_scripts_cause_msg">
+ Posible causa: demasiados objetos con script
+ </floater.string>
+ <floater.string name="server_net_cause_msg">
+ Posible causa: demasiado tráfico en la red
+ </floater.string>
+ <floater.string name="server_agent_cause_msg">
+ Posible causa: demasiada gente moviéndose en la región
+ </floater.string>
+ <floater.string name="server_images_cause_msg">
+ Posible causa: demasiados cálculos de imáganes
+ </floater.string>
+ <floater.string name="server_generic_cause_msg">
+ Posible causa: carga del simulador muy pesada
+ </floater.string>
+ <floater.string name="smaller_label">
+ &gt;&gt;
+ </floater.string>
+ <floater.string name="bigger_label">
+ &lt;&lt;
+ </floater.string>
+ <button label="" label_selected="" name="client_lagmeter" tool_tip="Estado del lag del cliente"/>
+ <text name="client">
+ Cliente
+ </text>
+ <text font="SansSerifSmall" name="client_text">
+ Normal
+ </text>
+ <text left="30" name="client_lag_cause" right="-10"/>
+ <button label="" label_selected="" name="network_lagmeter" tool_tip="Estado del lag de la red"/>
+ <text name="network">
+ Red
+ </text>
+ <text font="SansSerifSmall" name="network_text">
+ Normal
+ </text>
+ <text left="30" name="network_lag_cause" right="-10"/>
+ <button label="" label_selected="" name="server_lagmeter" tool_tip="Estado del lag del servidor"/>
+ <text name="server">
+ Servidor
+ </text>
+ <text font="SansSerifSmall" name="server_text">
+ Normal
+ </text>
+ <text left="30" name="server_lag_cause" right="-32"/>
+ <button label="&gt;&gt;" name="minimize" tool_tip="Cambia el tamaño de la ventana"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_region_restarting.xml b/indra/newview/skins/default/xui/es/floater_region_restarting.xml
new file mode 100644
index 0000000000..d55c8eff17
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_region_restarting.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="region_restarting" title="REGIÓN REINICIANDO">
+ <string name="RegionName">
+ La región en la que te encuentras ([NAME]) se va a reiniciar.
+
+Si permaneces en esta región serás desconectado.
+ </string>
+ <string name="RestartSeconds">
+ Segundos hasta el reinicio
+[SECONDS]
+ </string>
+ <panel name="layout_panel_1">
+ <text name="region_name">
+ La región en la que te encuentras (-el nombre de región más largo-) se va a reiniciar.
+
+Si permaneces en esta región serás desconectado.
+ </text>
+ <text name="restart_seconds">
+ Segundos hasta el reinicio
+ 32767
+ </text>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_scene_load_stats.xml b/indra/newview/skins/default/xui/es/floater_scene_load_stats.xml
new file mode 100644
index 0000000000..f625d5257c
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_scene_load_stats.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Scene Load Statistics" title="ESTADÍSTICAS DE CARGA DE ESCENA">
+ <button label="Pausa" name="playpause"/>
+ <scroll_container name="statistics_scroll">
+ <container_view name="statistics_view">
+ <stat_view label="Básica" name="basic">
+ <stat_bar label="Diferencia de píxeles de fotograma" name="frame difference"/>
+ <stat_bar label="Datos de UDP recibidos" name="bandwidth"/>
+ <stat_bar label="Pérdida de paquetes" name="packet_loss"/>
+ </stat_view>
+ <stat_view label="Avanzado" name="advanced">
+ <stat_view label="Renderización" name="render">
+ <stat_bar label="Objetos en total" name="objs"/>
+ <stat_bar label="Objetos nuevos" name="newobjs"/>
+ <stat_bar label="Índice de aciertos de caché de objetos" name="object_cache_hits"/>
+ </stat_view>
+ <stat_view label="Textura" name="texture">
+ <stat_bar label="Índice de aciertos de caché" name="texture_cache_hits"/>
+ <stat_bar label="Latencia de lectura de caché" name="texture_cache_read_latency"/>
+ <stat_bar label="Número" name="numimagesstat"/>
+ <stat_bar label="Raw: número" name="numrawimagesstat"/>
+ </stat_view>
+ <stat_view label="Red" name="network">
+ <stat_bar label="Paquetes salientes" name="packetsinstat"/>
+ <stat_bar label="Paquetes entrantes" name="packetsoutstat"/>
+ <stat_bar label="Objetos" name="objectdatareceived"/>
+ <stat_bar label="Textura" name="texturedatareceived"/>
+ <stat_bar label="Asset" name="assetudpdatareceived"/>
+ <stat_bar label="Capas" name="layersdatareceived"/>
+ <stat_bar label="Entrando ahora" name="messagedatain"/>
+ <stat_bar label="Saliendo ahora" name="messagedataout"/>
+ <stat_bar label="Operaciones VFS pendientes" name="vfspendingoperations"/>
+ </stat_view>
+ </stat_view>
+ <stat_view label="Simulador" name="sim">
+ <stat_bar label="Objetos" name="simobjects"/>
+ <stat_bar label="Objetos activos" name="simactiveobjects"/>
+ <stat_bar label="Scripts activos" name="simactivescripts"/>
+ <stat_bar label="Paquetes salientes" name="siminpps"/>
+ <stat_bar label="Paquetes entrantes" name="simoutpps"/>
+ <stat_bar label="Descargas pendientes" name="simpendingdownloads"/>
+ <stat_bar label="Subidas pendientes" name="simpendinguploads"/>
+ <stat_bar label="Total de bytes no reconocidos" name="simtotalunackedbytes"/>
+ <stat_view label="Tiempo (ms)" name="simperf">
+ <stat_bar label="Tiempo total de los frames" name="simframemsec"/>
+ <stat_bar label="Tiempo de red" name="simnetmsec"/>
+ <stat_bar label="Physics Time" name="simsimphysicsmsec"/>
+ <stat_bar label="Tiempo de la simulación" name="simsimothermsec"/>
+ <stat_bar label="Tiempo de los agentes" name="simagentmsec"/>
+ <stat_bar label="Tiempo de las imágenes" name="simimagesmsec"/>
+ <stat_bar label="Tiempo de los scripts" name="simscriptmsec"/>
+ <stat_bar label="Tiempo libre" name="simsparemsec"/>
+ <stat_view label="Datos de tiempo (ms)" name="timedetails">
+ <stat_bar label="Paso de física" name="simsimphysicsstepmsec"/>
+ <stat_bar label="Actualizar formas físicas" name="simsimphysicsshapeupdatemsec"/>
+ <stat_bar label="Otros (Física)" name="simsimphysicsothermsec"/>
+ <stat_bar label="Tiempo de suspensión" name="simsleepmsec"/>
+ <stat_bar label="Bombea E/S" name="simpumpiomsec"/>
+ </stat_view>
+ </stat_view>
+ </stat_view>
+ </container_view>
+ </scroll_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_stats.xml b/indra/newview/skins/default/xui/es/floater_stats.xml
index 00601920f2..7ecf5fafae 100755
--- a/indra/newview/skins/default/xui/es/floater_stats.xml
+++ b/indra/newview/skins/default/xui/es/floater_stats.xml
@@ -4,17 +4,20 @@
<container_view name="statistics_view">
<stat_view label="Básico" name="basic">
<stat_bar label="FPS" name="fps"/>
- <stat_bar label="Ancho de banda" name="bandwidth"/>
+ <stat_bar label="Datos de UDP recibidos" name="bandwidth"/>
<stat_bar label="Pérdida de paquetes" name="packet_loss"/>
<stat_bar label="Ping del Sim" name="ping"/>
</stat_view>
<stat_view label="Avanzado" name="advanced">
<stat_view label="Renderización" name="render">
- <stat_bar label="KTris generados por fotograma" name="ktrisframe"/>
- <stat_bar label="KTris generados por segundo" name="ktrissec"/>
+ <stat_bar label="KTris por fotograma" name="ktrisframe"/>
+ <stat_bar label="KTris por segundo" name="ktrissec"/>
<stat_bar label="Objetos en total" name="objs"/>
<stat_bar label="Objetos nuevos" name="newobjs"/>
<stat_bar label="Índice de aciertos de caché de objetos" name="object_cache_hits"/>
+ <stat_bar label="Consultas de oclusión realizadas" name="occlusion_queries"/>
+ <stat_bar label="Objetos ocluidos" name="occluded"/>
+ <stat_bar label="Objeto no ocluido" name="unoccluded"/>
</stat_view>
<stat_view label="Textura" name="texture">
<stat_bar label="Índice de aciertos de caché" name="texture_cache_hits"/>
@@ -26,15 +29,32 @@
<stat_bar label="Raw Mem" name="rawmemstat"/>
<stat_bar label="Bound Mem" name="glboundmemstat"/>
</stat_view>
+ <stat_view label="Memoria utilizada" name="memory">
+ <stat_bar label="LLTrace" name="LLTrace"/>
+ <stat_bar label="UI" name="LLView"/>
+ <stat_bar label="Fuentes" name="LLFontFreetype"/>
+ <stat_bar label="Inventario" name="LLInventoryObject"/>
+ <stat_bar label="Objetos del visor" name="LLViewerObject"/>
+ <stat_bar label="Datos de grupo de árbol octal" name="LLViewerOctreeGroup"/>
+ <stat_bar label="Datos de árbol octal" name="LLViewerOctreeEntry"/>
+ <stat_bar label="Caché de objetos del visor" name="LLVOCacheEntry"/>
+ <stat_bar label="Objetos dibujables" name="LLDrawable"/>
+ <stat_bar label="Datos de cara" name="LLFace"/>
+ <stat_bar label="Información de dibujo" name="LLDrawInfo"/>
+ <stat_bar label="Datos de textura" name="LLTexture"/>
+ <stat_bar label="Datos de imagen" name="LLImage"/>
+ <stat_bar label="Datos de imagen GL" name="LLImageGL"/>
+ <stat_bar label="Memorias intermedias de vértice" name="LLVertexBuffer"/>
+ </stat_view>
<stat_view label="Red" name="network">
<stat_bar label="Paquetes salientes" name="packetsinstat"/>
<stat_bar label="Paquetes entrantes" name="packetsoutstat"/>
- <stat_bar label="Objetos" name="objectkbitstat"/>
- <stat_bar label="Textura" name="texturekbitstat"/>
- <stat_bar label="Asset" name="assetkbitstat"/>
- <stat_bar label="Capas" name="layerskbitstat"/>
- <stat_bar label="Entrando ahora" name="actualinkbitstat"/>
- <stat_bar label="Saliendo ahora" name="actualoutkbitstat"/>
+ <stat_bar label="Objetos" name="objectdatareceived"/>
+ <stat_bar label="Textura" name="texturedatareceived"/>
+ <stat_bar label="Asset" name="assetudpdatareceived"/>
+ <stat_bar label="Capas" name="layersdatareceived"/>
+ <stat_bar label="Entrando ahora" name="messagedatain"/>
+ <stat_bar label="Saliendo ahora" name="messagedataout"/>
<stat_bar label="Operaciones VFS pendientes" name="vfspendingoperations"/>
</stat_view>
</stat_view>
@@ -53,7 +73,8 @@
<stat_bar label="Pasos de silueta omitidos" name="simsimskippedsilhouettesteps"/>
<stat_bar label="Personajes actualizados" name="simsimpctsteppedcharacters"/>
</stat_view>
- <stat_view label="Tiempo (ms)" name="simperf">
+ <stat_bar label="Total de datos no reconocidos" name="simtotalunackedbytes"/>
+ <stat_view label="Tiempo" name="simperf">
<stat_bar label="Tiempo total de los frames" name="simframemsec"/>
<stat_bar label="Tiempo de red" name="simnetmsec"/>
<stat_bar label="Physics Time" name="simsimphysicsmsec"/>
@@ -62,7 +83,7 @@
<stat_bar label="Tiempo de las imágenes" name="simimagesmsec"/>
<stat_bar label="Tiempo de los scripts" name="simscriptmsec"/>
<stat_bar label="Tiempo libre" name="simsparemsec"/>
- <stat_view label="Datos de tiempo (ms)" name="timedetails">
+ <stat_view label="Detalles de tiempo" name="timedetails">
<stat_bar label="Paso de física" name="simsimphysicsstepmsec"/>
<stat_bar label="Actualizar formas físicas" name="simsimphysicsshapeupdatemsec"/>
<stat_bar label="Otros (Física)" name="simsimphysicsothermsec"/>
diff --git a/indra/newview/skins/default/xui/es/menu_avatar_icon.xml b/indra/newview/skins/default/xui/es/menu_avatar_icon.xml
index fe7331a108..e3299b0a6b 100755
--- a/indra/newview/skins/default/xui/es/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/es/menu_avatar_icon.xml
@@ -2,6 +2,7 @@
<menu name="Avatar Icon Menu">
<menu_item_call label="Ver el perfil" name="Show Profile"/>
<menu_item_call label="Enviar un MI..." name="Send IM"/>
+ <menu_item_call label="Petición de teleporte" name="Request Teleport"/>
<menu_item_call label="Añadir como amigo..." name="Add Friend"/>
<menu_item_call label="Quitar de los amigos..." name="Remove Friend"/>
</menu>
diff --git a/indra/newview/skins/default/xui/es/menu_inventory.xml b/indra/newview/skins/default/xui/es/menu_inventory.xml
index 803d3f1331..cd5bc7917d 100755
--- a/indra/newview/skins/default/xui/es/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/es/menu_inventory.xml
@@ -69,6 +69,7 @@
<menu_item_call label="Escuchar" name="Sound Play"/>
<menu_item_call label="Copiar la SLurl" name="url_copy"/>
<menu_item_call label="Acerca del hito" name="About Landmark"/>
+ <menu_item_call label="Mostrar en el mapa" name="show_on_map"/>
<menu_item_call label="Escuchar en el mundo" name="Animation Play"/>
<menu_item_call label="Ejecutarla para usted" name="Animation Audition"/>
<menu_item_call label="Enviar un mensaje instantáneo" name="Send Instant Message"/>
diff --git a/indra/newview/skins/default/xui/es/menu_login.xml b/indra/newview/skins/default/xui/es/menu_login.xml
index 2286d0527a..336572f0cb 100755
--- a/indra/newview/skins/default/xui/es/menu_login.xml
+++ b/indra/newview/skins/default/xui/es/menu_login.xml
@@ -5,7 +5,15 @@
<menu_item_call label="Salir de [APP_NAME]" name="Quit"/>
</menu>
<menu label="Ayuda" name="Help">
- <menu_item_call label="Ayuda de [SECOND_LIFE]" name="Second Life Help"/>
+ <menu_item_call label="Cómo..." name="How To"/>
+ <menu_item_call label="Guía rápida" name="Quickstart"/>
+ <menu_item_call label="Base de Conocimientos" name="Knowledge Base"/>
+ <menu_item_call label="Wiki" name="Wiki"/>
+ <menu_item_call label="Foros comunitarios" name="Community Forums"/>
+ <menu_item_call label="Portal de soporte" name="Support portal"/>
+ <menu_item_call label="Noticias de [SECOND_LIFE]" name="Second Life News"/>
+ <menu_item_call label="Blogs de [SECOND_LIFE]" name="Second Life Blogs"/>
+ <menu_item_call label="Informar de un fallo" name="Report Bug"/>
<menu_item_call label="Acerca de [APP_NAME]" name="About Second Life"/>
</menu>
<menu_item_check label="Mostrar el menú &apos;Debug&apos;" name="Show Debug Menu"/>
diff --git a/indra/newview/skins/default/xui/es/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/es/menu_teleport_history_item.xml
index c482907812..1ff555b727 100755
--- a/indra/newview/skins/default/xui/es/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/es/menu_teleport_history_item.xml
@@ -2,5 +2,5 @@
<context_menu name="Teleport History Item Context Menu">
<menu_item_call label="Teleportar" name="Teleport"/>
<menu_item_call label="Más información" name="More Information"/>
- <menu_item_call label="Copiar al portapapeles" name="CopyToClipboard"/>
+ <menu_item_call label="Copiar la SLurl" name="CopyToClipboard"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_viewer.xml b/indra/newview/skins/default/xui/es/menu_viewer.xml
index e4fe871683..d5208f3d8f 100755
--- a/indra/newview/skins/default/xui/es/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/es/menu_viewer.xml
@@ -71,11 +71,11 @@
<menu_item_check label="Menú Avanzado" name="Show Advanced Menu"/>
</menu>
<menu label="Sol" name="Sun">
- <menu_item_call label="Amanecer" name="Sunrise"/>
- <menu_item_call label="Mediodía" name="Noon"/>
- <menu_item_call label="Atardecer" name="Sunset"/>
- <menu_item_call label="Medianoche" name="Midnight"/>
- <menu_item_call label="Usar configuración de región" name="Use Region Settings"/>
+ <menu_item_check label="Amanecer" name="Sunrise"/>
+ <menu_item_check label="Mediodía" name="Noon"/>
+ <menu_item_check label="Atardecer" name="Sunset"/>
+ <menu_item_check label="Medianoche" name="Midnight"/>
+ <menu_item_check label="Usar configuración de región" name="Use Region Settings"/>
</menu>
<menu label="Editor de entorno" name="Environment Editor">
<menu_item_call label="Configuración del entorno..." name="Environment Settings"/>
@@ -164,8 +164,6 @@
</menu>
<menu label="Ayuda" name="Help">
<menu_item_call label="Cómo..." name="How To"/>
- <menu_item_call label="Ayuda de [SECOND_LIFE]" name="Second Life Help"/>
- <menu_item_call label="Guía del usuario" name="User’s guide"/>
<menu_item_call label="Base de Conocimientos" name="Knowledge Base"/>
<menu_item_call label="Wiki" name="Wiki"/>
<menu_item_call label="Foros comunitarios" name="Community Forums"/>
@@ -187,6 +185,7 @@
<menu label="Herramientas de rendimiento" name="Performance Tools">
<menu_item_call label="Medidor de lag" name="Lag Meter"/>
<menu_item_check label="Estadísticas" name="Statistics Bar"/>
+ <menu_item_call label="Estadísticas de carga de escenas" name="Scene Load Statistics"/>
<menu_item_check label="Mostrar el peso del dibujo de los avatares" name="Avatar Rendering Cost"/>
</menu>
<menu label="Realzado y Visibilidad" name="Highlighting and Visibility">
@@ -248,6 +247,7 @@
<menu_item_check label="Fast Timers" name="Fast Timers"/>
<menu_item_check label="Memory" name="Memory"/>
<menu_item_check label="Datos de la escena" name="Scene Statistics"/>
+ <menu_item_check label="Monitor de carga de escenas" name="Scene Loading Monitor"/>
<menu_item_call label="Consola de depuración de obtención de texturas" name="Texture Fetch Debug Console"/>
<menu_item_call label="Region Info to Debug Console" name="Region Info to Debug Console"/>
<menu_item_check label="Camera" name="Camera"/>
@@ -279,6 +279,7 @@
<menu_item_check label="Randomize Framerate" name="Randomize Framerate"/>
<menu_item_check label="Frame Test" name="Frame Test"/>
<menu_item_call label="Perfil del fotograma" name="Frame Profile"/>
+ <menu_item_call label="Criterio de referencia" name="Benchmark"/>
</menu>
<menu label="Render Metadata" name="Render Metadata">
<menu_item_check label="Normales" name="Normals"/>
@@ -286,6 +287,7 @@
<menu_item_check label="Actualizar el tipo" name="Update Type"/>
<menu_item_check label="Información sobre el nivel de detalle" name="LOD Info"/>
<menu_item_check label="Crear cola" name="Build Queue"/>
+ <menu_item_check label="Articulaciones" name="Joints"/>
<menu_item_check label="Vectores de viento" name="Wind Vectors"/>
<menu_item_check label="Complejidad del renderizado" name="rendercomplexity"/>
<menu_item_check label="Bytes de adjunto" name="attachment bytes"/>
@@ -311,6 +313,7 @@
<menu_item_check label="Render Attached Lights" name="Render Attached Lights"/>
<menu_item_check label="Render Attached Particles" name="Render Attached Particles"/>
<menu_item_check label="Hover Glow Objects" name="Hover Glow Objects"/>
+ <menu_item_call label="Limpiar caché inmediatamente" name="Cache Clear"/>
</menu>
<menu label="Red" name="Network">
<menu_item_check label="Pause Avatar" name="AgentPause"/>
@@ -326,7 +329,6 @@
<menu_item_call label="Prueba de navegadores de medios" name="Web Browser Test"/>
<menu_item_call label="Navegador de contenido web" name="Web Content Browser"/>
<menu_item_call label="Print Selected Object Info" name="Print Selected Object Info"/>
- <menu_item_check label="Consola de depuración de región" name="Region Debug Console"/>
<menu_item_check label="Debug Clicks" name="Debug Clicks"/>
<menu_item_check label="Debug Mouse Events" name="Debug Mouse Events"/>
</menu>
diff --git a/indra/newview/skins/default/xui/es/notifications.xml b/indra/newview/skins/default/xui/es/notifications.xml
index d4451ad251..ae421cdfd0 100755
--- a/indra/newview/skins/default/xui/es/notifications.xml
+++ b/indra/newview/skins/default/xui/es/notifications.xml
@@ -114,15 +114,15 @@ Puedes consultar más información en el [[MARKETPLACE_IMPORTS_URL] registro de
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="OutboxImportFailed">
- Error de transferencia
+ Error de la transferencia: &apos;[ERROR_CODE]&apos;
-No se han enviado carpetas al Mercado a causa de un error del sistema o de la red. Vuelve a intentarlo más tarde.
+No se han enviado carpetas al Mercado a causa de un error del sistema o de la red. Vuelve a intentarlo más tarde.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="OutboxInitFailed">
- Error al inicializar el mercado
+ Error de inicialización del Mercado: &apos;[ERROR_CODE]&apos;
-La inicialización del mercado ha fallado por un error del sistema o de la red. Vuelve a intentarlo más tarde.
+La inicialización del mercado ha fallado por un error del sistema o de la red. Vuelve a intentarlo más tarde.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="CompileQueueSaveText">
@@ -1739,6 +1739,10 @@ excediendo el límite de [LIMIT].
¿Seguro que quieres teleportarte a &lt;nolink&gt;[LOCATION]&lt;/nolink&gt;?
<usetemplate ignoretext="Confirmar que quiero teleportarme a un hito" name="okcancelignore" notext="Cancelar" yestext="Teleportar"/>
</notification>
+ <notification name="TeleportViaSLAPP">
+ ¿Seguro que quieres teleportarte a &lt;nolink&gt;[LOCATION]&lt;/nolink&gt;?
+ <usetemplate ignoretext="Confirmar el teleporte mediante SLAPP" name="okcancelignore" notext="Cancelar" yestext="Teleportarte"/>
+ </notification>
<notification name="TeleportToPick">
¿Teleportarte a [PICK]?
<usetemplate ignoretext="Confirmar el teleporte a una localización de los Destacados" name="okcancelignore" notext="Cancelar" yestext="Teleportar"/>
@@ -1949,6 +1953,9 @@ Se cambiarán miles de regiones, y se provocará un colapso en el espacio del se
<notification name="ProblemAddingEstateManager">
Hay problemas al añadir un administrador nuevo del estado. Uno o más estados deben de tener llena la lista de administradores.
</notification>
+ <notification name="ProblemAddingEstateBanManager">
+ No se puede añadir el administrador o propietario de un estado a la lista de expulsados.
+ </notification>
<notification name="ProblemAddingEstateGeneric">
Hay problemas al añadir a la lista del estado. Uno o más estados deben de tener llena la lista.
</notification>
@@ -3028,9 +3035,9 @@ Consulta los detalles en el archivo de registro.
&lt;nolink&gt;[ITEMS]&lt;/nolink&gt;
-Con los siguientes residentes:
+Con los siguientes Residentes:
-[RESIDENTS]
+&lt;nolink&gt;[RESIDENTS]&lt;/nolink&gt;
<usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
</notification>
<notification name="ShareFolderConfirmation">
@@ -3042,7 +3049,7 @@ Con los siguientes residentes:
Con los siguientes Residentes:
-[RESIDENTS]
+&lt;nolink&gt;[RESIDENTES]&lt;/nolink&gt;
<usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Aceptar"/>
</notification>
<notification name="ItemsShared">
@@ -3495,10 +3502,6 @@ Prueba otra vez dentro de un minuto.
<notification name="EjectComingSoon">
Te han expulsado de aquí y tienes [EJECT_TIME] segundos para salir.
</notification>
- <notification name="NoEnterServerFull">
- No puedes entrar en esta región porque
-el servidor está lleno.
- </notification>
<notification name="SaveBackToInvDisabled">
Se ha deshabilitado Devolver el objeto a mi inventario.
</notification>
@@ -3688,6 +3691,9 @@ el servidor está lleno.
<notification name="LinkFailedTooMuchPhysics">
El objeto utiliza una cantidad excesiva de recursos de física; se ha desactivado su dinámica.
</notification>
+ <notification name="EstateManagerFailedllTeleportHome">
+ El objeto &apos;[OBJECT_NAME]&apos; de [SLURL] no puede teleportar a los administradores del estado a la base.
+ </notification>
<notification name="TeleportedHomeByObjectOnParcel">
Has sido teleportado al origen por el objeto &apos;[OBJECT_NAME]&apos; de la parcela &apos;[PARCEL_NAME]&apos;
</notification>
@@ -3878,13 +3884,18 @@ el servidor está lleno.
La selección no contiene suficientes parcelas alquiladas para unirlas.
</notification>
<notification name="CantDivideLandMultipleParcelsSelected">
- No se puede dividir el terreno.\nHay varias parcelas seleccionadas.\nPrueba a seleccionar un terreno más pequeño.
+ No se puede dividir el terreno.
+Hay varias parcelas seleccionadas.
+Prueba a seleccionar un terreno más pequeño.
</notification>
<notification name="CantDivideLandCantFindParcel">
- No se puede dividir el terreno.\nNo se encuentra la parcela.\nAvísanos con Ayuda -&gt; Notificar fallo...
+ No se puede dividir el terreno.
+No se encuentra la parcela.
+Notifícalo con Ayuda -&gt; Informar de un fallo...
</notification>
<notification name="CantDivideLandWholeParcelSelected">
- No se puede dividir el terreno. Está seleccionada la parcela completa.\nPrueba a seleccionar un terreno más pequeño.
+ No se puede dividir el terreno. Esta seleccionada una parcela completa.
+Prueba a seleccionar un terreno más pequeño.
</notification>
<notification name="LandHasBeenDivided">
El terreno se ha dividido.
@@ -4024,4 +4035,8 @@ el servidor está lleno.
No se pueden mover los archivos. Ruta anterior restaurada.
<usetemplate ignoretext="No se pueden mover los archivos. Ruta anterior restaurada." name="okignore" yestext="OK"/>
</notification>
+ <notification name="ChatHistoryIsBusyAlert">
+ El archivo de historial de chat todavía está realizando la operación anterior. Repite la operación dentro de unos minutos o inicia un chat con otra persona.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
</notifications>
diff --git a/indra/newview/skins/default/xui/es/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/es/panel_group_info_sidetray.xml
index 09c4eec4d9..18eaa834da 100755
--- a/indra/newview/skins/default/xui/es/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_info_sidetray.xml
@@ -20,7 +20,7 @@
<layout_panel name="group_accordions">
<accordion name="groups_accordion">
<accordion_tab name="group_general_tab" title="General"/>
- <accordion_tab name="group_roles_tab" title="Roles"/>
+ <accordion_tab name="group_roles_tab" title="Miembros y Roles"/>
<accordion_tab name="group_notices_tab" title="Avisos"/>
<accordion_tab name="group_land_tab" title="Terreno/Bienes"/>
</accordion>
diff --git a/indra/newview/skins/default/xui/es/panel_group_roles.xml b/indra/newview/skins/default/xui/es/panel_group_roles.xml
index 390b4e2e9d..ced40cca43 100755
--- a/indra/newview/skins/default/xui/es/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_roles.xml
@@ -20,6 +20,7 @@ Seleccione varios nombres manteniendo pulsada la tecla Ctrl y pulsando en cada u
<name_list.columns label="Miembro" name="name"/>
<name_list.columns label="Donaciones" name="donated"/>
<name_list.columns label="Estatus" name="online"/>
+ <name_list.columns label="Cargo" name="title"/>
</name_list>
<button label="Invitar" name="member_invite"/>
<button label="Expulsar" name="member_eject"/>
diff --git a/indra/newview/skins/default/xui/es/panel_region_debug.xml b/indra/newview/skins/default/xui/es/panel_region_debug.xml
index 71bdba1a25..f6676967f5 100755
--- a/indra/newview/skins/default/xui/es/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/es/panel_region_debug.xml
@@ -7,11 +7,8 @@
desconocida
</text>
<check_box label="Desactivar los scripts" name="disable_scripts_check" tool_tip="Descativar todos los scripts en esta región"/>
- <button label="?" left="215" name="disable_scripts_help"/>
<check_box label="Desactivar las colisiones" name="disable_collisions_check" tool_tip="Desactiva las colisiones (no las de avatares) en esta región"/>
- <button label="?" left="215" name="disable_collisions_help"/>
<check_box label="Desactivar las propiedades físicas" name="disable_physics_check" tool_tip="Desactiva toda la física en esta región"/>
- <button label="?" left="215" name="disable_physics_help"/>
<button label="Aplicar" name="apply_btn"/>
<text name="objret_text_lbl" width="130">
Devolver el objeto
@@ -31,10 +28,8 @@
<check_box label="En cada región de este estado" name="return_estate_wide" tool_tip="Devolver los objetos de todas las regiones que forman este estado"/>
<button label="Devolver" name="return_btn"/>
<button label="Listar los objetos que colisionan..." name="top_colliders_btn" tool_tip="Lista de los objetos con más posibles colisiones potenciales" width="280"/>
- <button label="?" left="297" name="top_colliders_help"/>
- <button label="Listar los scripts según su uso..." name="top_scripts_btn" tool_tip="Lista de los objetos que más tiempo emplean ejecutando scripts" width="280"/>
- <button label="?" left="297" name="top_scripts_help"/>
<button label="Reiniciar la región" name="restart_btn" tool_tip="Cuenta atrás de 2 minutos y reiniciar la región"/>
- <button label="?" name="restart_help"/>
+ <button label="Listar los scripts según su uso..." name="top_scripts_btn" tool_tip="Lista de los objetos que más tiempo emplean ejecutando scripts" width="280"/>
<button label="Cancelar reinicio" name="cancel_restart_btn" tool_tip="Cancelar el reinicio de región"/>
+ <button label="Consola de depuración de región" name="region_debug_console_btn" tool_tip="Abrir consola de depuración de región"/>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_region_general.xml b/indra/newview/skins/default/xui/es/panel_region_general.xml
index 453d1fe43c..82149e1c7c 100755
--- a/indra/newview/skins/default/xui/es/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/es/panel_region_general.xml
@@ -20,12 +20,12 @@
</text>
<check_box label="No permitir modificar el terreno" name="block_terraform_check"/>
<check_box label="Prohibir volar" name="block_fly_check"/>
+ <check_box label="Bloquear el vuelo sobre parcelas" name="block_fly_over_check" tool_tip="Extender las comprobaciones de acceso en vertical para impedir el vuelo sobre una parcela"/>
<check_box label="Permitir el daño" name="allow_damage_check"/>
<check_box label="Impedir los &apos;empujones&apos;" name="restrict_pushobject"/>
<check_box label="Permitir la reventa del terreno" name="allow_land_resell_check"/>
<check_box label="Permitir unir/dividir el terreno" name="allow_parcel_changes_check"/>
<check_box label="Bloquear el mostrar el terreno en la búsqueda" name="block_parcel_search_check" tool_tip="Permitir que la gente vea esta región y sus parcelas en los resultados de la búsqueda."/>
- <check_box label="Permitir objetos de red" name="mesh_rez_enabled_check" tool_tip="Permitir que los usuarios creen objetos de red en esta región"/>
<spinner label="Nº máximo de avatares" label_width="120" name="agent_limit_spin" width="180"/>
<spinner label="Plus de objetos" label_width="120" name="object_bonus_spin" width="180"/>
<text label="Calificación" name="access_text">
diff --git a/indra/newview/skins/default/xui/es/sidepanel_inventory.xml b/indra/newview/skins/default/xui/es/sidepanel_inventory.xml
index 9ce14c856f..1e25a4a4a2 100755
--- a/indra/newview/skins/default/xui/es/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/es/sidepanel_inventory.xml
@@ -14,7 +14,7 @@
<text name="inbox_fresh_new_count">
[NUM] nuevos
</text>
- <panel tool_tip="Drag and drop items to your inventory to manage and use them">
+ <panel name="inbox_inventory_placeholder_panel" tool_tip="Arrastra y coloca los artículos en tu inventario para poder utilizarlos">
<text name="inbox_inventory_placeholder">
Aquí se entregarán las compras realizadas en el mercado.
</text>
@@ -33,8 +33,8 @@
<layout_panel name="shop_btn_lp">
<button label="Comprar" name="shop_btn" tool_tip="Abrir la página web del mercado"/>
<button label="Ponerme" name="wear_btn" tool_tip="Ponerme el vestuario seleccionado"/>
- <button label="Play" name="play_btn"/>
- <button label="Teleporte" name="teleport_btn" tool_tip="Teleportar a la zona elegida"/>
+ <button label="Jugar" name="play_btn"/>
+ <button label="Teleportarte" name="teleport_btn" tool_tip="Teleportar a la zona elegida"/>
</layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml
index 2b91c542ad..544a70028b 100755
--- a/indra/newview/skins/default/xui/es/strings.xml
+++ b/indra/newview/skins/default/xui/es/strings.xml
@@ -28,6 +28,45 @@
<string name="StartupRequireDriverUpdate">
Error de inicialización de gráficos. Actualiza tu controlador de gráficos.
</string>
+ <string name="AboutHeader">
+ [APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL])
+[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
+ </string>
+ <string name="AboutCompiler">
+ Compilado con [COMPILER], versión [COMPILER_VERSION]
+ </string>
+ <string name="AboutPosition">
+ Estás en la posición [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1], de [REGION], alojada en &lt;nolink&gt;[HOSTNAME]&lt;/nolink&gt; ([HOSTIP])
+SLURL: &lt;nolink&gt;[SLURL]&lt;/nolink&gt;
+(coordenadas globales [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1])
+[SERVER_VERSION]
+[SERVER_RELEASE_NOTES_URL]
+ </string>
+ <string name="AboutSystem">
+ CPU: [CPU]
+Memoria: [MEMORY_MB] MB
+Versión del Sistema Operativo: [OS_VERSION]
+Fabricante de la tarjeta gráfica: [GRAPHICS_CARD_VENDOR]
+Tarjeta gráfica: [GRAPHICS_CARD]
+ </string>
+ <string name="AboutDriver">
+ Versión de Windows Graphics Driver: [GRAPHICS_DRIVER_VERSION]
+ </string>
+ <string name="AboutLibs">
+ Versión de OpenGL: [OPENGL_VERSION]
+
+Versión de libcurl: [LIBCURL_VERSION]
+Versión de J2C Decoder: [J2C_VERSION]
+Versión de Audio Driver: [AUDIO_DRIVER_VERSION]
+Versión de Qt Webkit: [QT_WEBKIT_VERSION]
+Versión del servidor de voz: [VOICE_VERSION]
+ </string>
+ <string name="AboutTraffic">
+ Paquetes perdidos: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
+ </string>
+ <string name="ErrorFetchingServerReleaseNotesURL">
+ Error al obtener la URL de las notas de la versión del servidor.
+ </string>
<string name="ProgressRestoring">
Restaurando...
</string>
@@ -922,12 +961,12 @@ Intenta iniciar sesión de nuevo en unos instantes.
<string name="ControlYourCamera">
Controlar su cámara
</string>
- <string name="AgentNameSubst">
- (Tú)
- </string>
<string name="TeleportYourAgent">
Teleportarte
</string>
+ <string name="AgentNameSubst">
+ (Tú)
+ </string>
<string name="JoinAnExperience">
Únete a una experiencia
</string>
@@ -1252,8 +1291,7 @@ Intenta iniciar sesión de nuevo en unos instantes.
<string name="InventoryInboxNoItems">
Aquí aparecerán algunos de los objetos que recibas, como los regalos Premium. Después puedes arrastrarlos a tu inventario.
</string>
- <string name="Unconstrained">Sin restricciones</string>
- <string name="MarketplaceURL">
+ <string name="MarketplaceURL">
https://marketplace.[MARKETPLACE_DOMAIN_NAME]/
</string>
<string name="MarketplaceURL_CreateStore">
@@ -1282,6 +1320,18 @@ Intenta iniciar sesión de nuevo en unos instantes.
<string name="InventoryOutboxNoItems">
Arrastra carpetas a esta sección y pulsa en &quot;Enviar al Mercado&quot; para incluirlas en la lista de venta del [[MARKETPLACE_DASHBOARD_URL] Mercado].
</string>
+ <string name="InventoryOutboxInitializingTitle">
+ Inicializando el Mercado.
+ </string>
+ <string name="InventoryOutboxInitializing">
+ Estamos accediendo a tu cuenta de la [[MARKETPLACE_CREATE_STORE_URL] tienda del Mercado].
+ </string>
+ <string name="InventoryOutboxErrorTitle">
+ Errores del Mercado.
+ </string>
+ <string name="InventoryOutboxError">
+ La [[MARKETPLACE_CREATE_STORE_URL] tienda del Mercado] devuelve errores.
+ </string>
<string name="Marketplace Error None">
Sin errores
</string>
@@ -1309,6 +1359,9 @@ Intenta iniciar sesión de nuevo en unos instantes.
<string name="Open landmarks">
Abrir hitos
</string>
+ <string name="Unconstrained">
+ Sin restricciones
+ </string>
<string name="no_transfer" value="(no transferible)"/>
<string name="no_modify" value="(no modificable)"/>
<string name="no_copy" value="(no copiable)"/>
@@ -1703,6 +1756,9 @@ Intenta iniciar sesión de nuevo en unos instantes.
<string name="CompileQueueDownloadedCompiling">
Descargado, compilándolo
</string>
+ <string name="CompileQueueServiceUnavailable">
+ El servicio de compilación de scripts no está disponible
+ </string>
<string name="CompileQueueScriptNotFound">
No se encuentra el script en el servidor.
</string>
diff --git a/indra/newview/skins/default/xui/fr/floater_lagmeter.xml b/indra/newview/skins/default/xui/fr/floater_lagmeter.xml
new file mode 100644
index 0000000000..39a861d8bd
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/floater_lagmeter.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="MESURE DU LAG">
+ <floater.string name="max_title_msg">
+ Mesure du lag
+ </floater.string>
+ <floater.string name="max_width_px">
+ 360
+ </floater.string>
+ <floater.string name="min_title_msg">
+ Lag
+ </floater.string>
+ <floater.string name="min_width_px">
+ 90
+ </floater.string>
+ <floater.string name="client_text_msg">
+ Client
+ </floater.string>
+ <floater.string name="client_frame_rate_critical_fps">
+ 10
+ </floater.string>
+ <floater.string name="client_frame_rate_warning_fps">
+ 15
+ </floater.string>
+ <floater.string name="client_frame_time_window_bg_msg">
+ Normal, fenêtre en arrière-plan
+ </floater.string>
+ <floater.string name="client_frame_time_critical_msg">
+ Taux de défilement [CLIENT_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="client_frame_time_warning_msg">
+ Taux de défilement entre [CLIENT_FRAME_RATE_CRITICAL] et [CLIENT_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string name="client_frame_time_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string name="client_draw_distance_cause_msg">
+ Cause possible : limite d&apos;affichage trop élevée
+ </floater.string>
+ <floater.string name="client_texture_loading_cause_msg">
+ Cause possible : images en cours de chargement
+ </floater.string>
+ <floater.string name="client_texture_memory_cause_msg">
+ Cause possible : trop d&apos;images en mémoire
+ </floater.string>
+ <floater.string name="client_complex_objects_cause_msg">
+ Cause possible : trop d&apos;objets complexes
+ </floater.string>
+ <floater.string name="network_text_msg">
+ Réseau
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_pct">
+ 10
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_pct">
+ 5
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_msg">
+ La connexion perd plus de [NETWORK_PACKET_LOSS_CRITICAL] % de paquets
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_msg">
+ La connexion perd entre [NETWORK_PACKET_LOSS_WARNING] % et [NETWORK_PACKET_LOSS_CRITICAL] % de paquets
+ </floater.string>
+ <floater.string name="network_performance_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string name="network_ping_critical_ms">
+ 600
+ </floater.string>
+ <floater.string name="network_ping_warning_ms">
+ 300
+ </floater.string>
+ <floater.string name="network_ping_critical_msg">
+ Connexion ping > [NETWORK_PING_CRITICAL] ms
+ </floater.string>
+ <floater.string name="network_ping_warning_msg">
+ Connexion ping entre [NETWORK_PING_WARNING] et [NETWORK_PING_CRITICAL] ms
+ </floater.string>
+ <floater.string name="network_packet_loss_cause_msg">
+ Mauvaise connexion possible ou réglage de la bande passante trop élevé.
+ </floater.string>
+ <floater.string name="network_ping_cause_msg">
+ Mauvaise connexion possible ou app. de partage des fichiers
+ </floater.string>
+ <floater.string name="server_text_msg">
+ Serveur
+ </floater.string>
+ <floater.string name="server_frame_rate_critical_fps">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_rate_warning_fps">
+ 30
+ </floater.string>
+ <floater.string name="server_single_process_max_time_ms">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_time_critical_msg">
+ Défilement du simulateur &lt; [SERVER_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="server_frame_time_warning_msg">
+ Défilement simulateur entre [SERVER_FRAME_RATE_CRITICAL] et [SERVER_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string name="server_frame_time_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string name="server_physics_cause_msg">
+ Cause possible : trop d&apos;objets physiques
+ </floater.string>
+ <floater.string name="server_scripts_cause_msg">
+ Cause possible : trop d&apos;objets scriptés
+ </floater.string>
+ <floater.string name="server_net_cause_msg">
+ Cause possible : trop de trafic réseau
+ </floater.string>
+ <floater.string name="server_agent_cause_msg">
+ Cause possible : trop de personnes en mouvement
+ </floater.string>
+ <floater.string name="server_images_cause_msg">
+ Cause possible : trop de calculs d&apos;images
+ </floater.string>
+ <floater.string name="server_generic_cause_msg">
+ Cause possible : charge simulateur trop lourde
+ </floater.string>
+ <floater.string name="smaller_label">
+ &gt;&gt;
+ </floater.string>
+ <floater.string name="bigger_label">
+ &lt;&lt;
+ </floater.string>
+ <button name="client_lagmeter" tool_tip="Statut du lag client"/>
+ <text name="client">
+ Client
+ </text>
+ <text name="client_text">
+ Normal
+ </text>
+ <button name="network_lagmeter" tool_tip="Statut du lag réseau"/>
+ <text name="network">
+ Réseau
+ </text>
+ <text name="network_text">
+ Normal
+ </text>
+ <button name="server_lagmeter" tool_tip="Statut du lag serveur"/>
+ <text name="server">
+ Serveur
+ </text>
+ <text name="server_text">
+ Normal
+ </text>
+ <button label="&gt;&gt;" name="minimize" tool_tip="Activer/désactiver la taille du floater"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_region_restarting.xml b/indra/newview/skins/default/xui/fr/floater_region_restarting.xml
new file mode 100644
index 0000000000..3a56a83c22
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/floater_region_restarting.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="region_restarting" title="REDÉMARRAGE DE LA RÉGION">
+ <string name="RegionName">
+ La région dans laquelle vous vous trouvez actuellement ([NAME]) est sur le point de redémarrer.
+
+Si vous restez dans cette région, vous serez déconnecté(e).
+ </string>
+ <string name="RestartSeconds">
+ Secondes avant le redémarrage
+[SECONDS]
+ </string>
+ <panel name="layout_panel_1">
+ <text name="region_name">
+ La région dans laquelle vous vous trouvez actuellement (-le nom de région le plus long-) est sur le point de redémarrer.
+
+Si vous restez dans cette région, vous serez déconnecté(e).
+ </text>
+ <text name="restart_seconds">
+ Secondes avant le redémarrage
+ 32767
+ </text>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_scene_load_stats.xml b/indra/newview/skins/default/xui/fr/floater_scene_load_stats.xml
new file mode 100644
index 0000000000..62830054bf
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/floater_scene_load_stats.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Scene Load Statistics" title="STATISTIQUES DE CHARGEMENT DE SCÈNE">
+ <button label="Pauser" name="playpause"/>
+ <scroll_container name="statistics_scroll">
+ <container_view name="statistics_view">
+ <stat_view label="Basique" name="basic">
+ <stat_bar label="Différence en pixels entre les images" name="frame difference"/>
+ <stat_bar label="Données UDP reçues" name="bandwidth"/>
+ <stat_bar label="Perte de paquets" name="packet_loss"/>
+ </stat_view>
+ <stat_view label="Avancé" name="advanced">
+ <stat_view label="Rendu" name="render">
+ <stat_bar label="Total des objets" name="objs"/>
+ <stat_bar label="Nouveaux objets" name="newobjs"/>
+ <stat_bar label="Taux de réussite du cache des objets" name="object_cache_hits"/>
+ </stat_view>
+ <stat_view label="Texture" name="texture">
+ <stat_bar label="Taux de réussite du cache" name="texture_cache_hits"/>
+ <stat_bar label="Latence de lecture du cache" name="texture_cache_read_latency"/>
+ <stat_bar label="Nombre" name="numimagesstat"/>
+ <stat_bar label="Nombre brut" name="numrawimagesstat"/>
+ </stat_view>
+ <stat_view label="Réseau" name="network">
+ <stat_bar label="Paquets en entrée" name="packetsinstat"/>
+ <stat_bar label="Paquets en sortie" name="packetsoutstat"/>
+ <stat_bar label="Objets" name="objectdatareceived"/>
+ <stat_bar label="Texture" name="texturedatareceived"/>
+ <stat_bar label="Actif" name="assetudpdatareceived"/>
+ <stat_bar label="Couches" name="layersdatareceived"/>
+ <stat_bar label="Arrivés" name="messagedatain"/>
+ <stat_bar label="Sortis" name="messagedataout"/>
+ <stat_bar label="Opérations VFS en attente" name="vfspendingoperations"/>
+ </stat_view>
+ </stat_view>
+ <stat_view label="Simulateur" name="sim">
+ <stat_bar label="Objets" name="simobjects"/>
+ <stat_bar label="Objets actifs" name="simactiveobjects"/>
+ <stat_bar label="Scripts actifs" name="simactivescripts"/>
+ <stat_bar label="Paquets en entrée" name="siminpps"/>
+ <stat_bar label="Paquets en sortie" name="simoutpps"/>
+ <stat_bar label="Téléchargements en attente" name="simpendingdownloads"/>
+ <stat_bar label="Chargements en attente" name="simpendinguploads"/>
+ <stat_bar label="Total d&apos;octets non reconnus" name="simtotalunackedbytes"/>
+ <stat_view label="Temps (ms)" name="simperf">
+ <stat_bar label="Durée totale de l&apos;image" name="simframemsec"/>
+ <stat_bar label="Durée nette" name="simnetmsec"/>
+ <stat_bar label="Durée physique" name="simsimphysicsmsec"/>
+ <stat_bar label="Durée de la simulation" name="simsimothermsec"/>
+ <stat_bar label="Durée des avatars" name="simagentmsec"/>
+ <stat_bar label="Durée des images" name="simimagesmsec"/>
+ <stat_bar label="Durée des scripts" name="simscriptmsec"/>
+ <stat_bar label="Temps d&apos;inactivité" name="simsparemsec"/>
+ <stat_view label="Détails de la durée (ms)" name="timedetails">
+ <stat_bar label="Étape propr. physiques" name="simsimphysicsstepmsec"/>
+ <stat_bar label="Mettre à jour les formes phys" name="simsimphysicsshapeupdatemsec"/>
+ <stat_bar label="Propriétés physiques Autre" name="simsimphysicsothermsec"/>
+ <stat_bar label="Temps de sommeil" name="simsleepmsec"/>
+ <stat_bar label="ES pompe" name="simpumpiomsec"/>
+ </stat_view>
+ </stat_view>
+ </stat_view>
+ </container_view>
+ </scroll_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_stats.xml b/indra/newview/skins/default/xui/fr/floater_stats.xml
index d6bd187956..5cad6258ec 100755
--- a/indra/newview/skins/default/xui/fr/floater_stats.xml
+++ b/indra/newview/skins/default/xui/fr/floater_stats.xml
@@ -4,7 +4,7 @@
<container_view name="statistics_view">
<stat_view label="De base" name="basic">
<stat_bar label="FPS" name="fps"/>
- <stat_bar label="Bande passante" name="bandwidth"/>
+ <stat_bar label="Données UDP reçues" name="bandwidth"/>
<stat_bar label="Perte de paquets" name="packet_loss"/>
<stat_bar label="Ping sim" name="ping"/>
</stat_view>
@@ -15,6 +15,9 @@
<stat_bar label="Objets totaux" name="objs"/>
<stat_bar label="Nouveaux objets" name="newobjs"/>
<stat_bar label="Taux de réussite du cache des objets" name="object_cache_hits"/>
+ <stat_bar label="Requêtes d&apos;occlusion effectuées" name="occlusion_queries"/>
+ <stat_bar label="Objets occlus" name="occluded"/>
+ <stat_bar label="Objets non occlus" name="unoccluded"/>
</stat_view>
<stat_view label="Texture" name="texture">
<stat_bar label="Taux de réussite du cache" name="texture_cache_hits"/>
@@ -26,15 +29,32 @@
<stat_bar label="Mém brute" name="rawmemstat"/>
<stat_bar label="Mém liée" name="glboundmemstat"/>
</stat_view>
+ <stat_view label="Utilisation de la mémoire" name="memory">
+ <stat_bar label="LLTrace" name="LLTrace"/>
+ <stat_bar label="Interface" name="LLView"/>
+ <stat_bar label="Polices" name="LLFontFreetype"/>
+ <stat_bar label="Inventaire" name="LLInventoryObject"/>
+ <stat_bar label="Objets du client" name="LLViewerObject"/>
+ <stat_bar label="Données de groupe Octree" name="LLViewerOctreeGroup"/>
+ <stat_bar label="Données Octree" name="LLViewerOctreeEntry"/>
+ <stat_bar label="Cache des objets du client" name="LLVOCacheEntry"/>
+ <stat_bar label="Dessinables" name="LLDrawable"/>
+ <stat_bar label="Données de visage" name="LLFace"/>
+ <stat_bar label="Informations de tracé" name="LLDrawInfo"/>
+ <stat_bar label="Données de texture" name="LLTexture"/>
+ <stat_bar label="Données d&apos;image" name="LLImage"/>
+ <stat_bar label="Données d&apos;image GL" name="LLImageGL"/>
+ <stat_bar label="Tampon des sommets" name="LLVertexBuffer"/>
+ </stat_view>
<stat_view label="Réseau" name="network">
<stat_bar label="Paquets en entrée" name="packetsinstat"/>
<stat_bar label="Paquets en sortie" name="packetsoutstat"/>
- <stat_bar label="Objets" name="objectkbitstat"/>
- <stat_bar label="Texture" name="texturekbitstat"/>
- <stat_bar label="Actif" name="assetkbitstat"/>
- <stat_bar label="Couches" name="layerskbitstat"/>
- <stat_bar label="Arrivés" name="actualinkbitstat"/>
- <stat_bar label="Sortis" name="actualoutkbitstat"/>
+ <stat_bar label="Objets" name="objectdatareceived"/>
+ <stat_bar label="Texture" name="texturedatareceived"/>
+ <stat_bar label="Actif" name="assetudpdatareceived"/>
+ <stat_bar label="Couches" name="layersdatareceived"/>
+ <stat_bar label="Arrivés" name="messagedatain"/>
+ <stat_bar label="Sortis" name="messagedataout"/>
<stat_bar label="Opérations VFS en attente" name="vfspendingoperations"/>
</stat_view>
</stat_view>
@@ -64,8 +84,8 @@
<stat_bar label="Paquets en sortie" name="simoutpps"/>
<stat_bar label="Téléchargements en attente" name="simpendingdownloads"/>
<stat_bar label="Chargements en attente" name="simpendinguploads"/>
- <stat_bar label="Total Unacked Bytes" name="simtotalunackedbytes"/>
- <stat_view label="Temps (ms)" name="simperf">
+ <stat_bar label="Total de données non reconnues" name="simtotalunackedbytes"/>
+ <stat_view label="Durée" name="simperf">
<stat_bar label="Durée totale de l&apos;image" name="simframemsec"/>
<stat_bar label="Durée nette" name="simnetmsec"/>
<stat_bar label="Durée sim (physique)" name="simsimphysicsmsec"/>
@@ -74,7 +94,7 @@
<stat_bar label="Durée des images" name="simimagesmsec"/>
<stat_bar label="Durée des scripts" name="simscriptmsec"/>
<stat_bar label="Temps d&apos;inactivité" name="simsparemsec"/>
- <stat_view label="Détails Temps (ms)" name="timedetails">
+ <stat_view label="Détails de la durée" name="timedetails">
<stat_bar label="Etape propr. physiques" name="simsimphysicsstepmsec"/>
<stat_bar label="Mettre à jour les formes phys" name="simsimphysicsshapeupdatemsec"/>
<stat_bar label="Propriétés physiques Autre" name="simsimphysicsothermsec"/>
diff --git a/indra/newview/skins/default/xui/fr/menu_avatar_icon.xml b/indra/newview/skins/default/xui/fr/menu_avatar_icon.xml
index 3bac25c79b..072ac0a6ae 100755
--- a/indra/newview/skins/default/xui/fr/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/fr/menu_avatar_icon.xml
@@ -2,6 +2,7 @@
<menu name="Avatar Icon Menu">
<menu_item_call label="Voir le profil" name="Show Profile"/>
<menu_item_call label="Envoyer IM..." name="Send IM"/>
+ <menu_item_call label="Demander téléportation" name="Request Teleport"/>
<menu_item_call label="Devenir amis..." name="Add Friend"/>
<menu_item_call label="Supprimer cet ami..." name="Remove Friend"/>
</menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_inventory.xml b/indra/newview/skins/default/xui/fr/menu_inventory.xml
index 627d3068c3..87b11bdaa5 100755
--- a/indra/newview/skins/default/xui/fr/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/menu_inventory.xml
@@ -70,6 +70,7 @@
<menu_item_call label="Jouer" name="Sound Play"/>
<menu_item_call label="Copier la SLurl" name="url_copy"/>
<menu_item_call label="À propos du repère" name="About Landmark"/>
+ <menu_item_call label="Voir sur la carte" name="show_on_map"/>
<menu_item_call label="Jouer dans Second Life" name="Animation Play"/>
<menu_item_call label="Jouer localement" name="Animation Audition"/>
<menu_item_call label="Envoyer un message instantané" name="Send Instant Message"/>
diff --git a/indra/newview/skins/default/xui/fr/menu_login.xml b/indra/newview/skins/default/xui/fr/menu_login.xml
index 7b1e106474..5e9969627d 100755
--- a/indra/newview/skins/default/xui/fr/menu_login.xml
+++ b/indra/newview/skins/default/xui/fr/menu_login.xml
@@ -5,7 +5,15 @@
<menu_item_call label="Quitter [APP_NAME]" name="Quit"/>
</menu>
<menu label="Aide" name="Help">
- <menu_item_call label="Aide de [SECOND_LIFE]" name="Second Life Help"/>
+ <menu_item_call label="Aide rapide..." name="How To"/>
+ <menu_item_call label="Démarrage rapide" name="Quickstart"/>
+ <menu_item_call label="Base de connaissances" name="Knowledge Base"/>
+ <menu_item_call label="Wiki" name="Wiki"/>
+ <menu_item_call label="Forums de la communauté" name="Community Forums"/>
+ <menu_item_call label="Portail d&apos;assistance" name="Support portal"/>
+ <menu_item_call label="Actualités [SECOND_LIFE]" name="Second Life News"/>
+ <menu_item_call label="Blogs [SECOND_LIFE]" name="Second Life Blogs"/>
+ <menu_item_call label="Signaler un bug" name="Report Bug"/>
<menu_item_call label="À propos de [APP_NAME]" name="About Second Life"/>
</menu>
<menu_item_check label="Afficher le menu de débogage" name="Show Debug Menu"/>
diff --git a/indra/newview/skins/default/xui/fr/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/fr/menu_teleport_history_item.xml
index fb4582dbce..ba8ed9b3f8 100755
--- a/indra/newview/skins/default/xui/fr/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/fr/menu_teleport_history_item.xml
@@ -2,5 +2,5 @@
<context_menu name="Teleport History Item Context Menu">
<menu_item_call label="Téléporter" name="Teleport"/>
<menu_item_call label="Plus d&apos;informations" name="More Information"/>
- <menu_item_call label="Copier dans le presse-papiers" name="CopyToClipboard"/>
+ <menu_item_call label="Copier la SLurl" name="CopyToClipboard"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_viewer.xml b/indra/newview/skins/default/xui/fr/menu_viewer.xml
index 5d0026ace0..4ff834420e 100755
--- a/indra/newview/skins/default/xui/fr/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/fr/menu_viewer.xml
@@ -72,11 +72,11 @@
<menu_item_check label="Menu Avancé" name="Show Advanced Menu"/>
</menu>
<menu label="Luminosité" name="Sun">
- <menu_item_call label="Aube" name="Sunrise"/>
- <menu_item_call label="Milieu de journée" name="Noon"/>
- <menu_item_call label="Coucher de soleil" name="Sunset"/>
- <menu_item_call label="Minuit" name="Midnight"/>
- <menu_item_call label="Utiliser les réglages de la région" name="Use Region Settings"/>
+ <menu_item_check label="Aube" name="Sunrise"/>
+ <menu_item_check label="Milieu de journée" name="Noon"/>
+ <menu_item_check label="Coucher de soleil" name="Sunset"/>
+ <menu_item_check label="Minuit" name="Midnight"/>
+ <menu_item_check label="Utiliser les réglages de la région" name="Use Region Settings"/>
</menu>
<menu label="Éditeur d&apos;environnement" name="Environment Editor">
<menu_item_call label="Paramètres d&apos;environnement..." name="Environment Settings"/>
@@ -165,8 +165,6 @@
</menu>
<menu label="Aide" name="Help">
<menu_item_call label="Aide rapide..." name="How To"/>
- <menu_item_call label="Aide de [SECOND_LIFE]" name="Second Life Help"/>
- <menu_item_call label="Guide de l&apos;utilisateur" name="User’s guide"/>
<menu_item_call label="Base de connaissances" name="Knowledge Base"/>
<menu_item_call label="Wiki" name="Wiki"/>
<menu_item_call label="Forums de la communauté" name="Community Forums"/>
@@ -188,6 +186,7 @@
<menu label="Outils de performance" name="Performance Tools">
<menu_item_call label="Mesure du lag" name="Lag Meter"/>
<menu_item_check label="Barre de statistiques" name="Statistics Bar"/>
+ <menu_item_call label="Statistiques de chargement de scène" name="Scene Load Statistics"/>
<menu_item_check label="Afficher le poids de dessin pour les avatars" name="Avatar Rendering Cost"/>
</menu>
<menu label="Surbrillance et visibilité" name="Highlighting and Visibility">
@@ -250,6 +249,7 @@
<menu_item_check label="Chronos" name="Fast Timers"/>
<menu_item_check label="Mémoire" name="Memory"/>
<menu_item_check label="Statistiques de la scène" name="Scene Statistics"/>
+ <menu_item_check label="Moniteur de chargement de scène" name="Scene Loading Monitor"/>
<menu_item_call label="Console de débogage de la récupération des textures" name="Texture Fetch Debug Console"/>
<menu_item_call label="Infos de région vers la console de débogage" name="Region Info to Debug Console"/>
<menu_item_call label="Infos de groupe vers la console de débogage" name="Group Info to Debug Console"/>
@@ -286,6 +286,7 @@
<menu_item_check label="Cadre lent périodique" name="Periodic Slow Frame"/>
<menu_item_check label="Test cadre" name="Frame Test"/>
<menu_item_call label="Profil du cadre" name="Frame Profile"/>
+ <menu_item_call label="Référence" name="Benchmark"/>
</menu>
<menu label="Métadonnées de rendu" name="Render Metadata">
<menu_item_check label="Cadres" name="Bounding Boxes"/>
@@ -304,6 +305,7 @@
<menu_item_check label="File d&apos;attente pour la construction" name="Build Queue"/>
<menu_item_check label="Lumières" name="Lights"/>
<menu_item_check label="Squelette de collision" name="Collision Skeleton"/>
+ <menu_item_check label="Articulations" name="Joints"/>
<menu_item_check label="Rayons" name="Raycast"/>
<menu_item_check label="Vecteurs de vent" name="Wind Vectors"/>
<menu_item_check label="Complexité du rendu" name="rendercomplexity"/>
@@ -336,6 +338,7 @@
<menu_item_check label="Rendu des lumières jointes" name="Render Attached Lights"/>
<menu_item_check label="Rendu des particules jointes" name="Render Attached Particles"/>
<menu_item_check label="Objets en surbrillance avec le pointeur" name="Hover Glow Objects"/>
+ <menu_item_call label="Vider le cache immédiatement" name="Cache Clear"/>
</menu>
<menu label="Réseau" name="Network">
<menu_item_check label="Pauser l&apos;avatar" name="AgentPause"/>
@@ -368,7 +371,6 @@
<menu_item_call label="Dump Focus Holder" name="Dump Focus Holder"/>
<menu_item_call label="Imprimer les infos sur l&apos;objet sélectionné" name="Print Selected Object Info"/>
<menu_item_call label="Imprimer les infos sur l&apos;avatar" name="Print Agent Info"/>
- <menu_item_check label="Console de débogage de région" name="Region Debug Console"/>
<menu_item_check label="Débogage SelectMgr" name="Debug SelectMgr"/>
<menu_item_check label="Débogage clics" name="Debug Clicks"/>
<menu_item_check label="Débogage des vues" name="Debug Views"/>
diff --git a/indra/newview/skins/default/xui/fr/notifications.xml b/indra/newview/skins/default/xui/fr/notifications.xml
index c295a6f5a7..af46d34b61 100755
--- a/indra/newview/skins/default/xui/fr/notifications.xml
+++ b/indra/newview/skins/default/xui/fr/notifications.xml
@@ -114,15 +114,15 @@ Pour plus d&apos;informations, consultez le [[MARKETPLACE_IMPORTS_URL] journal d
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="OutboxImportFailed">
- Échec de transfert
+ Échec du transfert avec l&apos;erreur « [ERROR_CODE] »
-Aucun dossier n&apos;a été envoyé vers la Place du marché en raison d&apos;une erreur système ou réseau. Veuillez réessayer ultérieurement.
+Aucun dossier n&apos;a été envoyé vers la Place du marché en raison d&apos;une erreur système ou réseau. Réessayez ultérieurement.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="OutboxInitFailed">
- Échec d&apos;initialisation de la Place du marché
+ Échec de l&apos;initialisation de la Place du marché avec l&apos;erreur « [ERROR_CODE] »
-L&apos;initialisation de la Place du marché a échoué en raison d&apos;une erreur système ou réseau. Veuillez réessayer ultérieurement.
+L&apos;initialisation de la Place du marché a échoué en raison d&apos;une erreur système ou réseau. Réessayez ultérieurement.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="CompileQueueSaveText">
@@ -1729,6 +1729,10 @@ or ce nombre dépasse la limite autorisée fixée à [LIMIT].
Souhaitez-vous vraiment vous téléporter vers &lt;nolink&gt;[LOCATION]&lt;/nolink&gt; ?
<usetemplate ignoretext="Confirmer que je veux me téléporter à un repère" name="okcancelignore" notext="Annuler" yestext="Téléporter"/>
</notification>
+ <notification name="TeleportViaSLAPP">
+ Voulez-vous vraiment vous téléporter jusqu&apos;à &lt;nolink&gt;[LOCATION]&lt;/nolink&gt; ?
+ <usetemplate ignoretext="Confirmer que je veux me téléporter en utilisant SLAPP" name="okcancelignore" notext="Annuler" yestext="Téléporter"/>
+ </notification>
<notification name="TeleportToPick">
Vous téléporter vers [PICK] ?
<usetemplate ignoretext="Confirmer que je veux me téléporter à un endroit dans mes Favoris" name="okcancelignore" notext="Annuler" yestext="Téléporter"/>
@@ -1939,6 +1943,9 @@ Cette action modifiera des milliers de régions et sera difficile à digérer po
<notification name="ProblemAddingEstateManager">
Problèmes lors de l&apos;ajout d&apos;un nouveau gérant de domaine. Il est possible qu&apos;au moins un des domaines ait une liste de gérants complète.
</notification>
+ <notification name="ProblemAddingEstateBanManager">
+ Impossible d&apos;ajouter le propriétaire ou le gérant du domaine à la liste des résidents bannis.
+ </notification>
<notification name="ProblemAddingEstateGeneric">
Problème lors de l&apos;ajout à la liste de ce domaine. Il est possible qu&apos;au moins un des domaines ait une liste complète.
</notification>
@@ -3029,7 +3036,7 @@ Voir le fichier journal pour plus de détails.
avec les résidents suivants :
-[RESIDENTS] ?
+&lt;nolink&gt;[RESIDENTS]&lt;/nolink&gt;
<usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
</notification>
<notification name="ShareFolderConfirmation">
@@ -3041,7 +3048,7 @@ Voulez-vous vraiment partager les articles suivants :
avec les résidents suivants :
-[RESIDENTS] ?
+&lt;nolink&gt;[RESIDENTS]&lt;/nolink&gt;
<usetemplate name="okcancelbuttons" notext="Annuler" yestext="Ok"/>
</notification>
<notification name="ItemsShared">
@@ -3496,10 +3503,6 @@ Veuillez réessayer dans une minute.
<notification name="EjectComingSoon">
Votre présence ici n&apos;est plus autorisée et vous disposez de [EJECT_TIME] secondes pour partir.
</notification>
- <notification name="NoEnterServerFull">
- Vous ne pouvez pas pénétrer dans cette région car
-le serveur est plein.
- </notification>
<notification name="SaveBackToInvDisabled">
Le réenregistrement dans l&apos;inventaire a été désactivé.
</notification>
@@ -3689,6 +3692,9 @@ le serveur est plein.
<notification name="LinkFailedTooMuchPhysics">
Cet objet utilise trop de ressources physiques - sa dynamique a été désactivée.
</notification>
+ <notification name="EstateManagerFailedllTeleportHome">
+ L&apos;objet « [OBJECT_NAME] » à [SLURL] ne peut pas téléporter les gérants de domaines chez eux.
+ </notification>
<notification name="TeleportedHomeByObjectOnParcel">
Vous avez été téléporté chez vous par l&apos;objet [OBJECT_NAME] sur la parcelle [PARCEL_NAME].
</notification>
@@ -3879,13 +3885,18 @@ le serveur est plein.
Pas suffisamment de parcelles louées dans la sélection pour effectuer la fusion.
</notification>
<notification name="CantDivideLandMultipleParcelsSelected">
- Division du terrain impossible.\nPlusieurs parcelles sont sélectionnées.\nVeuillez sélectionner un terrain plus petit.
+ Division du terrain impossible.
+Plusieurs parcelles sont sélectionnées.
+Veuillez sélectionner un terrain plus petit.
</notification>
<notification name="CantDivideLandCantFindParcel">
- Division du terrain impossible.\nParcelle introuvable.\nSignalez-le en allant à Aide -&gt; Signaler un bug...
+ Division du terrain impossible.
+Parcelle introuvable.
+Veuillez utiliser Aide &gt; Signaler un bug pour signaler le problème...
</notification>
<notification name="CantDivideLandWholeParcelSelected">
- Division du terrain impossible. Toute la parcelle est sélectionnée.\nVeuillez sélectionner un terrain plus petit.
+ Division du terrain impossible. La parcelle entière est sélectionnée.
+Veuillez sélectionner un terrain plus petit.
</notification>
<notification name="LandHasBeenDivided">
Le terrain a été divisé.
@@ -4025,4 +4036,8 @@ le serveur est plein.
Impossible de déplacer les fichiers. Chemin précédent rétabli.
<usetemplate ignoretext="Impossible de déplacer les fichiers. Chemin précédent rétabli." name="okignore" yestext="OK"/>
</notification>
+ <notification name="ChatHistoryIsBusyAlert">
+ Le fichier d&apos;historique des chats est occupé à traiter l&apos;opération précédente. Réessayez dans quelques minutes ou choisissez une autre personne pour le chat.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
</notifications>
diff --git a/indra/newview/skins/default/xui/fr/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/fr/panel_group_info_sidetray.xml
index 047cd692e8..7c3b852de1 100755
--- a/indra/newview/skins/default/xui/fr/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_info_sidetray.xml
@@ -20,7 +20,7 @@
<layout_panel name="group_accordions">
<accordion name="groups_accordion">
<accordion_tab name="group_general_tab" title="Général"/>
- <accordion_tab name="group_roles_tab" title="Rôles"/>
+ <accordion_tab name="group_roles_tab" title="Rôles et membres"/>
<accordion_tab name="group_notices_tab" title="Notices"/>
<accordion_tab name="group_land_tab" title="Terrain/Actifs"/>
</accordion>
diff --git a/indra/newview/skins/default/xui/fr/panel_group_roles.xml b/indra/newview/skins/default/xui/fr/panel_group_roles.xml
index 0bd2e0bdab..71ee70d68b 100755
--- a/indra/newview/skins/default/xui/fr/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_roles.xml
@@ -20,6 +20,7 @@ Pour sélectionner plusieurs membres, cliquez sur leurs noms en maintenant la to
<name_list.columns label="Membre" name="name"/>
<name_list.columns label="Donation" name="donated"/>
<name_list.columns label="Statut" name="online"/>
+ <name_list.columns label="Titre" name="title"/>
</name_list>
<button label="Inviter" name="member_invite"/>
<button label="Expulser" name="member_eject"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_region_debug.xml b/indra/newview/skins/default/xui/fr/panel_region_debug.xml
index 98ae250215..d21695e9aa 100755
--- a/indra/newview/skins/default/xui/fr/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/fr/panel_region_debug.xml
@@ -7,11 +7,8 @@
(inconnue)
</text>
<check_box label="Désactiver les scripts" name="disable_scripts_check" tool_tip="Désactiver tous les scripts dans cette région"/>
- <button label="?" name="disable_scripts_help"/>
<check_box label="Désactiver les collisions" name="disable_collisions_check" tool_tip="Désactiver les collisions entre non-avatars dans cette région"/>
- <button label="?" name="disable_collisions_help"/>
<check_box label="Désactiver la physique" name="disable_physics_check" tool_tip="Désactiver tous les effets liés à la physique dans cette région"/>
- <button label="?" name="disable_physics_help"/>
<button bottom_delta="-38" label="Appliquer" name="apply_btn"/>
<text bottom_delta="-42" name="objret_text_lbl" width="260">
Renvoi de l&apos;objet
@@ -31,10 +28,8 @@
<check_box label="Dans toutes les régions de ce domaine" name="return_estate_wide" tool_tip="Renvoyer les objets dans toutes les régions qui constituent ce domaine"/>
<button label="Renvoyer" name="return_btn"/>
<button label="Collisions les plus consommatrices" name="top_colliders_btn" tool_tip="Liste des objets avec le plus de collisions potentielles" width="320"/>
- <button label="?" left="337" name="top_colliders_help"/>
- <button label="Scripts les plus consommateurs" name="top_scripts_btn" tool_tip="Liste des objets passant le plus de temps à exécuter des scripts" width="320"/>
- <button label="?" left="337" name="top_scripts_help"/>
<button label="Redémarrer la région" name="restart_btn" tool_tip="Redémarrer la région au bout de 2 minutes" width="160"/>
- <button label="?" left="177" name="restart_help"/>
+ <button label="Scripts les plus consommateurs" name="top_scripts_btn" tool_tip="Liste des objets passant le plus de temps à exécuter des scripts" width="320"/>
<button label="Annuler le redémarrage" name="cancel_restart_btn" tool_tip="Annuler le redémarrage de la région." width="160"/>
+ <button label="Console de débogage de région" name="region_debug_console_btn" tool_tip="Ouvrir la console de débogage de région"/>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_region_general.xml b/indra/newview/skins/default/xui/fr/panel_region_general.xml
index 234d316069..e9dcd6ab5a 100755
--- a/indra/newview/skins/default/xui/fr/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_region_general.xml
@@ -20,12 +20,12 @@
</text>
<check_box label="Interdire le terraformage" name="block_terraform_check"/>
<check_box label="Interdire le vol" name="block_fly_check"/>
+ <check_box label="Bloquer le survol des parcelles" name="block_fly_over_check" tool_tip="Étendre les vérifications d&apos;accès vers le haut pour empêcher le survol d&apos;une parcelle"/>
<check_box label="Autoriser les dégâts" name="allow_damage_check"/>
<check_box label="Interdire les bousculades" name="restrict_pushobject"/>
<check_box label="Autoriser la revente de terrain" name="allow_land_resell_check"/>
<check_box label="Autoriser la fusion/division" name="allow_parcel_changes_check"/>
<check_box label="Ne pas afficher dans la recherche" name="block_parcel_search_check" tool_tip="Afficher cette région et ses parcelles dans les résultats de recherche"/>
- <check_box label="Autoriser les objets de maillage" name="mesh_rez_enabled_check" tool_tip="Laisser les gens rezzer des objets de maillage dans cette région."/>
<spinner label="Nombre maximum d&apos;avatars" label_width="160" name="agent_limit_spin" width="240"/>
<spinner label="Bonus objet" label_width="160" name="object_bonus_spin" width="240"/>
<text label="Maturité" name="access_text">
diff --git a/indra/newview/skins/default/xui/fr/sidepanel_inventory.xml b/indra/newview/skins/default/xui/fr/sidepanel_inventory.xml
index ec7dd8c095..372d61263f 100755
--- a/indra/newview/skins/default/xui/fr/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/sidepanel_inventory.xml
@@ -31,10 +31,10 @@
<button label="Partager" name="share_btn" tool_tip="Partager un article de l&apos;inventaire"/>
</layout_panel>
<layout_panel name="shop_btn_lp">
- <button label="Acheter" name="shop_btn" tool_tip="Accéder à la place du marché sur le Web"/>
+ <button label="Faire des achats" name="shop_btn" tool_tip="Accéder à la Place du marché sur le Web"/>
<button label="Porter" name="wear_btn" tool_tip="Porter la tenue sélectionnée"/>
- <button label="Lire" name="play_btn"/>
- <button label="Téléportation" name="teleport_btn" tool_tip="Me téléporter jusqu&apos;à la zone sélectionnée"/>
+ <button label="Jouer" name="play_btn"/>
+ <button label="Téléporter" name="teleport_btn" tool_tip="Me téléporter jusqu&apos;à la zone sélectionnée"/>
</layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml
index b8721420cb..bca134eef3 100755
--- a/indra/newview/skins/default/xui/fr/strings.xml
+++ b/indra/newview/skins/default/xui/fr/strings.xml
@@ -37,6 +37,45 @@
<string name="StartupRequireDriverUpdate">
Échec d&apos;initialisation des graphiques. Veuillez mettre votre pilote graphique à jour.
</string>
+ <string name="AboutHeader">
+ [APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL])
+[[VIEWER_RELEASE_NOTES_URL] [Notes de version]]
+ </string>
+ <string name="AboutCompiler">
+ Compilé avec [COMPILER] version [COMPILER_VERSION]
+ </string>
+ <string name="AboutPosition">
+ Vous êtes à [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1] dans [REGION], se trouvant à &lt;nolink&gt;[HOSTNAME]&lt;/nolink&gt; ([HOSTIP])
+SLURL : &lt;nolink&gt;[SLURL]&lt;/nolink&gt;
+(coordonnées globales [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1])
+[SERVER_VERSION]
+[SERVER_RELEASE_NOTES_URL]
+ </string>
+ <string name="AboutSystem">
+ CPU : [CPU]
+Mémoire : [MEMORY_MB] Mo
+Version OS : [OS_VERSION]
+Distributeur de cartes graphiques : [GRAPHICS_CARD_VENDOR]
+Carte graphique : [GRAPHICS_CARD]
+ </string>
+ <string name="AboutDriver">
+ Version Windows Graphics Driver : [GRAPHICS_DRIVER_VERSION]
+ </string>
+ <string name="AboutLibs">
+ Version OpenGL : [OPENGL_VERSION]
+
+Version libcurl : [LIBCURL_VERSION]
+Version J2C Decoder : [J2C_VERSION]
+Version Audio Driver : [AUDIO_DRIVER_VERSION]
+Version Qt Webkit : [QT_WEBKIT_VERSION]
+Version serveur vocal : [VOICE_VERSION]
+ </string>
+ <string name="AboutTraffic">
+ Paquets perdus : [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
+ </string>
+ <string name="ErrorFetchingServerReleaseNotesURL">
+ Erreur lors de la récupération de l&apos;URL des notes de version du serveur.
+ </string>
<string name="ProgressRestoring">
Restauration...
</string>
@@ -937,15 +976,15 @@ Veuillez réessayer de vous connecter dans une minute.
<string name="ControlYourCamera">
Contrôler votre caméra
</string>
+ <string name="TeleportYourAgent">
+ Vous téléporter
+ </string>
<string name="NotConnected">
Pas connecté(e)
</string>
<string name="AgentNameSubst">
(Vous)
</string>
- <string name="TeleportYourAgent">
- Vous téléporter
- </string>
<string name="JoinAnExperience">
Rejoindre une expérience
</string>
@@ -1270,8 +1309,7 @@ Veuillez réessayer de vous connecter dans une minute.
<string name="InventoryInboxNoItems">
Les achats que vous avez effectués sur la Place du marché s&apos;affichent ici. Vous pouvez alors les faire glisser vers votre inventaire afin de les utiliser.
</string>
- <string name="Unconstrained">Sans contraintes</string>
- <string name="MarketplaceURL">
+ <string name="MarketplaceURL">
https://marketplace.[MARKETPLACE_DOMAIN_NAME]/
</string>
<string name="MarketplaceURL_CreateStore">
@@ -1300,6 +1338,18 @@ Veuillez réessayer de vous connecter dans une minute.
<string name="InventoryOutboxNoItems">
Pour mettre des dossiers en vente sur la [[MARKETPLACE_DASHBOARD_URL] Place du marché], faites-les glisser vers cette zone et cliquez sur &quot;Envoyer vers la Place du marché&quot;.
</string>
+ <string name="InventoryOutboxInitializingTitle">
+ Initialisation de la Place du marché...
+ </string>
+ <string name="InventoryOutboxInitializing">
+ Nous sommes en train d&apos;accéder à votre compte dans la [[MARKETPLACE_CREATE_STORE_URL] boutique de la Place du marché].
+ </string>
+ <string name="InventoryOutboxErrorTitle">
+ Erreurs de la Place du marché.
+ </string>
+ <string name="InventoryOutboxError">
+ La [[MARKETPLACE_CREATE_STORE_URL] boutique de la Place du marché] renvoie des erreurs.
+ </string>
<string name="Marketplace Error None">
Aucune erreur
</string>
@@ -1327,6 +1377,9 @@ Veuillez réessayer de vous connecter dans une minute.
<string name="Open landmarks">
Ouvrir les repères
</string>
+ <string name="Unconstrained">
+ Sans contraintes
+ </string>
<string name="no_transfer" value=" (pas de transfert)"/>
<string name="no_modify" value=" (pas de modification)"/>
<string name="no_copy" value=" (pas de copie)"/>
@@ -1727,6 +1780,9 @@ Veuillez réessayer de vous connecter dans une minute.
<string name="CompileQueueDownloadedCompiling">
Téléchargé, compilation en cours
</string>
+ <string name="CompileQueueServiceUnavailable">
+ Service de compilation de script indisponible.
+ </string>
<string name="CompileQueueScriptNotFound">
Script introuvable sur le serveur.
</string>
diff --git a/indra/newview/skins/default/xui/it/floater_lagmeter.xml b/indra/newview/skins/default/xui/it/floater_lagmeter.xml
new file mode 100644
index 0000000000..f7b2b1ab4a
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_lagmeter.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="MISURATORE LAG">
+ <floater.string name="max_title_msg">
+ Misuratore del lag
+ </floater.string>
+ <floater.string name="max_width_px">
+ 360
+ </floater.string>
+ <floater.string name="min_title_msg">
+ Lag
+ </floater.string>
+ <floater.string name="min_width_px">
+ 90
+ </floater.string>
+ <floater.string name="client_text_msg">
+ Programma in locale
+ </floater.string>
+ <floater.string name="client_frame_rate_critical_fps">
+ 10
+ </floater.string>
+ <floater.string name="client_frame_rate_warning_fps">
+ 15
+ </floater.string>
+ <floater.string name="client_frame_time_window_bg_msg">
+ Normale, finestra sullo sfondo
+ </floater.string>
+ <floater.string name="client_frame_time_critical_msg">
+ Velocità dei frame al di sotto di [CLIENT_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="client_frame_time_warning_msg">
+ Velocità dei frame tra [CLIENT_FRAME_RATE_CRITICAL] e [CLIENT_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string name="client_frame_time_normal_msg">
+ Normale
+ </floater.string>
+ <floater.string name="client_draw_distance_cause_msg">
+ Possibile causa: Campo visivo impostato troppo alto
+ </floater.string>
+ <floater.string name="client_texture_loading_cause_msg">
+ Possibile causa: Caricamento immagini
+ </floater.string>
+ <floater.string name="client_texture_memory_cause_msg">
+ Possibile causa: Troppe immagini in memoria
+ </floater.string>
+ <floater.string name="client_complex_objects_cause_msg">
+ Possibile causa: Troppi oggetti complessi intorno
+ </floater.string>
+ <floater.string name="network_text_msg">
+ Network
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_pct">
+ 10
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_pct">
+ 5
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_msg">
+ La connessione sta calando al di sotto del [NETWORK_PACKET_LOSS_CRITICAL]% di pacchetti
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_msg">
+ La connessione sta calando tra il [NETWORK_PACKET_LOSS_WARNING]% e il [NETWORK_PACKET_LOSS_CRITICAL]% di pacchetti
+ </floater.string>
+ <floater.string name="network_performance_normal_msg">
+ Normale
+ </floater.string>
+ <floater.string name="network_ping_critical_ms">
+ 600
+ </floater.string>
+ <floater.string name="network_ping_warning_ms">
+ 300
+ </floater.string>
+ <floater.string name="network_ping_critical_msg">
+ Il tempo di ping della connessione è al di sopra di [NETWORK_PING_CRITICAL] ms
+ </floater.string>
+ <floater.string name="network_ping_warning_msg">
+ Il tempo di ping della connessione è tra [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+ </floater.string>
+ <floater.string name="network_packet_loss_cause_msg">
+ Possibile cattiva connessione o la larghezza di banda impostata nelle preferenze troppo alta.
+ </floater.string>
+ <floater.string name="network_ping_cause_msg">
+ Possibile cattiva connessione o l&apos;apertura di un programma di scambio files.
+ </floater.string>
+ <floater.string name="server_text_msg">
+ Server
+ </floater.string>
+ <floater.string name="server_frame_rate_critical_fps">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_rate_warning_fps">
+ 30
+ </floater.string>
+ <floater.string name="server_single_process_max_time_ms">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_time_critical_msg">
+ Velocità dei frame al di sotto di [SERVER_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="server_frame_time_warning_msg">
+ Velocità dei frame tra [SERVER_FRAME_RATE_CRITICAL] e [SERVER_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string name="server_frame_time_normal_msg">
+ Normale
+ </floater.string>
+ <floater.string name="server_physics_cause_msg">
+ Possibile causa: troppi oggetti fisici
+ </floater.string>
+ <floater.string name="server_scripts_cause_msg">
+ Possibile causa: troppi oggetti scriptati
+ </floater.string>
+ <floater.string name="server_net_cause_msg">
+ Possibile causa: eccessivo traffico sulla rete
+ </floater.string>
+ <floater.string name="server_agent_cause_msg">
+ Possibile causa: troppi residenti in movimento nella regione
+ </floater.string>
+ <floater.string name="server_images_cause_msg">
+ Possibile causa: troppe elaborazioni di immagini
+ </floater.string>
+ <floater.string name="server_generic_cause_msg">
+ Possibile causa: carico eccessivo del simulatore
+ </floater.string>
+ <floater.string name="smaller_label">
+ &gt;&gt;
+ </floater.string>
+ <floater.string name="bigger_label">
+ &lt;&lt;
+ </floater.string>
+ <button label="" label_selected="" name="client_lagmeter" tool_tip="Stato del lag del programma in locale"/>
+ <text name="client">
+ Client
+ </text>
+ <text font="SansSerifSmall" left="145" name="client_text">
+ Normale
+ </text>
+ <text left="30" name="client_lag_cause" right="-10"/>
+ <button label="" label_selected="" name="network_lagmeter" tool_tip="Stato del lag del network"/>
+ <text name="network">
+ Rete
+ </text>
+ <text font="SansSerifSmall" name="network_text">
+ Normale
+ </text>
+ <text left="30" name="network_lag_cause" right="-10"/>
+ <button label="" label_selected="" name="server_lagmeter" tool_tip="Stato del lag del server"/>
+ <text name="server">
+ Server
+ </text>
+ <text font="SansSerifSmall" name="server_text">
+ Normale
+ </text>
+ <text left="30" name="server_lag_cause" right="-32"/>
+ <button label="&gt;&gt;" name="minimize" tool_tip="Cambia dimensioni floater"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_region_restarting.xml b/indra/newview/skins/default/xui/it/floater_region_restarting.xml
new file mode 100644
index 0000000000..d4497288e0
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_region_restarting.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="region_restarting" title="RIAVVIO REGIONE IN CORSO">
+ <string name="RegionName">
+ La regione in cui ti trovi ([NAME]) verrà riavviata tra breve.
+
+Se rimani in questa regione verrai scollegato da Second Life.
+ </string>
+ <string name="RestartSeconds">
+ Secondi prima del riavvio
+[SECONDS]
+ </string>
+ <panel name="layout_panel_1">
+ <text name="region_name">
+ La regione in cui ti trovi (il nome di regione più lungo) verrà riavviata tra breve.
+
+Se rimani in questa regione verrai scollegato da Second Life.
+ </text>
+ <text name="restart_seconds">
+ Secondi prima del riavvio
+ 32767
+ </text>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_scene_load_stats.xml b/indra/newview/skins/default/xui/it/floater_scene_load_stats.xml
new file mode 100644
index 0000000000..ca18812eb7
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_scene_load_stats.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Scene Load Statistics" title="STATISTICHE CARICAMENTO SCENA">
+ <button label="In pausa" name="playpause"/>
+ <scroll_container name="statistics_scroll">
+ <container_view name="statistics_view">
+ <stat_view label="Di base" name="basic">
+ <stat_bar label="Differenza pixel tra fotogrammi" name="frame difference"/>
+ <stat_bar label="Dati UDP ricevuti" name="bandwidth"/>
+ <stat_bar label="Perdita pacchetti" name="packet_loss"/>
+ </stat_view>
+ <stat_view label="Avanzata" name="advanced">
+ <stat_view label="Render" name="render">
+ <stat_bar label="Totale oggetti" name="objs"/>
+ <stat_bar label="Nuovi oggetti" name="newobjs"/>
+ <stat_bar label="Hit rate della cache per l&apos;oggetto" name="object_cache_hits"/>
+ </stat_view>
+ <stat_view label="Texture" name="texture">
+ <stat_bar label="Hit rate della cache" name="texture_cache_hits"/>
+ <stat_bar label="Latenza di lettura della cache" name="texture_cache_read_latency"/>
+ <stat_bar label="Conteggio" name="numimagesstat"/>
+ <stat_bar label="Conteggio grezzo" name="numrawimagesstat"/>
+ </stat_view>
+ <stat_view label="Rete" name="network">
+ <stat_bar label="Pacchetti in ingresso" name="packetsinstat"/>
+ <stat_bar label="Pacchetti in uscita" name="packetsoutstat"/>
+ <stat_bar label="Oggetti" name="objectdatareceived"/>
+ <stat_bar label="Texture" name="texturedatareceived"/>
+ <stat_bar label="Risorsa" name="assetudpdatareceived"/>
+ <stat_bar label="Livelli" name="layersdatareceived"/>
+ <stat_bar label="Effettivi in ingresso" name="messagedatain"/>
+ <stat_bar label="Effettivi in uscita" name="messagedataout"/>
+ <stat_bar label="Operazioni VFS in sospeso" name="vfspendingoperations"/>
+ </stat_view>
+ </stat_view>
+ <stat_view label="Simulatore" name="sim">
+ <stat_bar label="Oggetti" name="simobjects"/>
+ <stat_bar label="Oggetti attivi" name="simactiveobjects"/>
+ <stat_bar label="Script attivi" name="simactivescripts"/>
+ <stat_bar label="Pacchetti in ingresso" name="siminpps"/>
+ <stat_bar label="Pacchetti in uscita" name="simoutpps"/>
+ <stat_bar label="Download in attesa" name="simpendingdownloads"/>
+ <stat_bar label="Caricamenti in attesa" name="simpendinguploads"/>
+ <stat_bar label="Numero totale byte non confermati (Unacked)" name="simtotalunackedbytes"/>
+ <stat_view label="Tempo (ms)" name="simperf">
+ <stat_bar label="Tempo totale Frame" name="simframemsec"/>
+ <stat_bar label="Tempo netto" name="simnetmsec"/>
+ <stat_bar label="Tempo motore fisico" name="simsimphysicsmsec"/>
+ <stat_bar label="Tempo simulazione" name="simsimothermsec"/>
+ <stat_bar label="Tempo agente" name="simagentmsec"/>
+ <stat_bar label="Tempo immagini" name="simimagesmsec"/>
+ <stat_bar label="Tempo script" name="simscriptmsec"/>
+ <stat_bar label="Tempo libero" name="simsparemsec"/>
+ <stat_view label="Dettagli tempo (ms)" name="timedetails">
+ <stat_bar label="Passaggio fisica" name="simsimphysicsstepmsec"/>
+ <stat_bar label="Aggiorna forme fisica" name="simsimphysicsshapeupdatemsec"/>
+ <stat_bar label="Altro fisica" name="simsimphysicsothermsec"/>
+ <stat_bar label="Tempo pausa" name="simsleepmsec"/>
+ <stat_bar label="IO pompa" name="simpumpiomsec"/>
+ </stat_view>
+ </stat_view>
+ </stat_view>
+ </container_view>
+ </scroll_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_stats.xml b/indra/newview/skins/default/xui/it/floater_stats.xml
index 825b2ce57a..1d850516b7 100755
--- a/indra/newview/skins/default/xui/it/floater_stats.xml
+++ b/indra/newview/skins/default/xui/it/floater_stats.xml
@@ -4,17 +4,20 @@
<container_view name="statistics_view">
<stat_view label="Di base" name="basic">
<stat_bar label="FPS" name="fps"/>
- <stat_bar label="Larghezza banda" name="bandwidth"/>
+ <stat_bar label="Dati UDP ricevuti" name="bandwidth"/>
<stat_bar label="Perdita pacchetti" name="packet_loss"/>
<stat_bar label="Tempo Ping Sim" name="ping"/>
</stat_view>
<stat_view label="Avanzata" name="advanced">
<stat_view label="Render" name="render">
- <stat_bar label="KTris disegnato per fotogramma" name="ktrisframe"/>
- <stat_bar label="KTris disegnato per secondo" name="ktrissec"/>
+ <stat_bar label="KTris per fotogramma" name="ktrisframe"/>
+ <stat_bar label="KTris per secondo" name="ktrissec"/>
<stat_bar label="Totale oggetti" name="objs"/>
<stat_bar label="Nuovi oggetti" name="newobjs"/>
<stat_bar label="Hit rate della cache per l&apos;oggetto" name="object_cache_hits"/>
+ <stat_bar label="Occlusion query eseguite" name="occlusion_queries"/>
+ <stat_bar label="Oggetti in occlusion" name="occluded"/>
+ <stat_bar label="Oggetti non in occlusion" name="unoccluded"/>
</stat_view>
<stat_view label="Texture" name="texture">
<stat_bar label="Hit rate della cache" name="texture_cache_hits"/>
@@ -26,15 +29,32 @@
<stat_bar label="Memoria complessiva" name="rawmemstat"/>
<stat_bar label="Memoria impegnata" name="glboundmemstat"/>
</stat_view>
+ <stat_view label="Utilizzo memoria" name="memory">
+ <stat_bar label="LLTrace" name="LLTrace"/>
+ <stat_bar label="Interfaccia utente" name="LLView"/>
+ <stat_bar label="Font" name="LLFontFreetype"/>
+ <stat_bar label="Inventario" name="LLInventoryObject"/>
+ <stat_bar label="Oggetti Viewer" name="LLViewerObject"/>
+ <stat_bar label="Dati gruppo octree" name="LLViewerOctreeGroup"/>
+ <stat_bar label="Dati octree" name="LLViewerOctreeEntry"/>
+ <stat_bar label="Cache oggetti Viewer" name="LLVOCacheEntry"/>
+ <stat_bar label="Disegnabili" name="LLDrawable"/>
+ <stat_bar label="Dati viso" name="LLFace"/>
+ <stat_bar label="Info disegno" name="LLDrawInfo"/>
+ <stat_bar label="Dati texture" name="LLTexture"/>
+ <stat_bar label="Dati immagine" name="LLImage"/>
+ <stat_bar label="Dati immagine GL" name="LLImageGL"/>
+ <stat_bar label="Buffer vertici" name="LLVertexBuffer"/>
+ </stat_view>
<stat_view label="Rete" name="network">
<stat_bar label="Pacchetti in ingresso" name="packetsinstat"/>
<stat_bar label="Pacchetti in uscita" name="packetsoutstat"/>
- <stat_bar label="Oggetti" name="objectkbitstat"/>
- <stat_bar label="Texture" name="texturekbitstat"/>
- <stat_bar label="Risorse server" name="assetkbitstat"/>
- <stat_bar label="Layer" name="layerskbitstat"/>
- <stat_bar label="Effettivi in ingresso" name="actualinkbitstat"/>
- <stat_bar label="Effettivi in uscita" name="actualoutkbitstat"/>
+ <stat_bar label="Oggetti" name="objectdatareceived"/>
+ <stat_bar label="Texture" name="texturedatareceived"/>
+ <stat_bar label="Risorsa" name="assetudpdatareceived"/>
+ <stat_bar label="Livelli" name="layersdatareceived"/>
+ <stat_bar label="Effettivi in ingresso" name="messagedatain"/>
+ <stat_bar label="Effettivi in uscita" name="messagedataout"/>
<stat_bar label="Operazioni VFS in sospeso" name="vfspendingoperations"/>
</stat_view>
</stat_view>
@@ -53,7 +73,8 @@
<stat_bar label="Passaggi silhouette saltati" name="simsimskippedsilhouettesteps"/>
<stat_bar label="Personaggi aggiornati" name="simsimpctsteppedcharacters"/>
</stat_view>
- <stat_view label="Tempo (ms)" name="simperf">
+ <stat_bar label="Totale dati non confermati (unacked)" name="simtotalunackedbytes"/>
+ <stat_view label="Orario" name="simperf">
<stat_bar label="Tempo totale Frame" name="simframemsec"/>
<stat_bar label="Tempo netto" name="simnetmsec"/>
<stat_bar label="Tempo motore fisico" name="simsimphysicsmsec"/>
@@ -62,7 +83,7 @@
<stat_bar label="Tempo immagini" name="simimagesmsec"/>
<stat_bar label="Tempo script" name="simscriptmsec"/>
<stat_bar label="Tempo libero" name="simsparemsec"/>
- <stat_view label="Dettagli tempo (ms)" name="timedetails">
+ <stat_view label="Dettagli orario" name="timedetails">
<stat_bar label="Passaggio fisica" name="simsimphysicsstepmsec"/>
<stat_bar label="Aggiorna forme fisica" name="simsimphysicsshapeupdatemsec"/>
<stat_bar label="Altro fisica" name="simsimphysicsothermsec"/>
diff --git a/indra/newview/skins/default/xui/it/menu_avatar_icon.xml b/indra/newview/skins/default/xui/it/menu_avatar_icon.xml
index b93b695300..215eb836c8 100755
--- a/indra/newview/skins/default/xui/it/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/it/menu_avatar_icon.xml
@@ -2,6 +2,7 @@
<menu name="Avatar Icon Menu">
<menu_item_call label="Vedi profilo" name="Show Profile"/>
<menu_item_call label="Manda IM..." name="Send IM"/>
+ <menu_item_call label="Richiedi teleport" name="Request Teleport"/>
<menu_item_call label="Aggiungi come amico..." name="Add Friend"/>
<menu_item_call label="Togli amicizia..." name="Remove Friend"/>
</menu>
diff --git a/indra/newview/skins/default/xui/it/menu_inventory.xml b/indra/newview/skins/default/xui/it/menu_inventory.xml
index b31e35771d..c8042f4253 100755
--- a/indra/newview/skins/default/xui/it/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/it/menu_inventory.xml
@@ -70,6 +70,7 @@
<menu_item_call label="Esegui" name="Sound Play"/>
<menu_item_call label="Copia SLurl" name="url_copy"/>
<menu_item_call label="Informazioni sul punto di riferimento" name="About Landmark"/>
+ <menu_item_call label="Mostra sulla mappa" name="show_on_map"/>
<menu_item_call label="Riproduci in Second Life" name="Animation Play"/>
<menu_item_call label="Esegui localmente" name="Animation Audition"/>
<menu_item_call label="Invia un Instant Message" name="Send Instant Message"/>
diff --git a/indra/newview/skins/default/xui/it/menu_login.xml b/indra/newview/skins/default/xui/it/menu_login.xml
index 35053ec499..126089aa6a 100755
--- a/indra/newview/skins/default/xui/it/menu_login.xml
+++ b/indra/newview/skins/default/xui/it/menu_login.xml
@@ -5,7 +5,15 @@
<menu_item_call label="Esci da [APP_NAME]" name="Quit"/>
</menu>
<menu label="Aiuto" name="Help">
- <menu_item_call label="Aiuto di [SECOND_LIFE]" name="Second Life Help"/>
+ <menu_item_call label="Istruzioni..." name="How To"/>
+ <menu_item_call label="Guida introduttiva" name="Quickstart"/>
+ <menu_item_call label="Base di conoscenza" name="Knowledge Base"/>
+ <menu_item_call label="Wiki" name="Wiki"/>
+ <menu_item_call label="Forum della comunità" name="Community Forums"/>
+ <menu_item_call label="Portale assistenza" name="Support portal"/>
+ <menu_item_call label="[SECOND_LIFE] Notizie" name="Second Life News"/>
+ <menu_item_call label="[SECOND_LIFE] Blog" name="Second Life Blogs"/>
+ <menu_item_call label="Segnala bug" name="Report Bug"/>
<menu_item_call label="Informazioni su [APP_NAME]" name="About Second Life"/>
</menu>
<menu_item_check label="Mostra menu Debug" name="Show Debug Menu"/>
diff --git a/indra/newview/skins/default/xui/it/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/it/menu_teleport_history_item.xml
index 81053fbd65..31236895fa 100755
--- a/indra/newview/skins/default/xui/it/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/it/menu_teleport_history_item.xml
@@ -2,5 +2,5 @@
<context_menu name="Teleport History Item Context Menu">
<menu_item_call label="Teleport" name="Teleport"/>
<menu_item_call label="Maggiori informazioni" name="More Information"/>
- <menu_item_call label="Copia negli appunti" name="CopyToClipboard"/>
+ <menu_item_call label="Copia SLurl" name="CopyToClipboard"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_viewer.xml b/indra/newview/skins/default/xui/it/menu_viewer.xml
index 52247d6c9c..3e6589927d 100755
--- a/indra/newview/skins/default/xui/it/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/it/menu_viewer.xml
@@ -72,11 +72,11 @@
<menu_item_check label="Menu Avanzato" name="Show Advanced Menu"/>
</menu>
<menu label="Sole" name="Sun">
- <menu_item_call label="Alba" name="Sunrise"/>
- <menu_item_call label="Mezzogiorno" name="Noon"/>
- <menu_item_call label="Tramonto" name="Sunset"/>
- <menu_item_call label="Mezzanotte" name="Midnight"/>
- <menu_item_call label="Usa impostazioni regione" name="Use Region Settings"/>
+ <menu_item_check label="Alba" name="Sunrise"/>
+ <menu_item_check label="Mezzogiorno" name="Noon"/>
+ <menu_item_check label="Tramonto" name="Sunset"/>
+ <menu_item_check label="Mezzanotte" name="Midnight"/>
+ <menu_item_check label="Usa impostazioni regione" name="Use Region Settings"/>
</menu>
<menu label="Editor ambiente" name="Environment Editor">
<menu_item_call label="Impostazioni ambiente..." name="Environment Settings"/>
@@ -165,8 +165,6 @@
</menu>
<menu label="Aiuto" name="Help">
<menu_item_call label="Istruzioni..." name="How To"/>
- <menu_item_call label="Aiuto di [SECOND_LIFE]" name="Second Life Help"/>
- <menu_item_call label="Guida dell&apos;utente" name="User’s guide"/>
<menu_item_call label="Base di conoscenza" name="Knowledge Base"/>
<menu_item_call label="Wiki" name="Wiki"/>
<menu_item_call label="Forum della comunità" name="Community Forums"/>
@@ -188,6 +186,7 @@
<menu label="Strumenti di performance" name="Performance Tools">
<menu_item_call label="Misuratore lag" name="Lag Meter"/>
<menu_item_check label="Barra statistiche" name="Statistics Bar"/>
+ <menu_item_call label="Statistiche caricamento scena" name="Scene Load Statistics"/>
<menu_item_check label="Mostra peso visualizzazione per avatar" name="Avatar Rendering Cost"/>
</menu>
<menu label="Evidenziazione e visibilità" name="Highlighting and Visibility">
@@ -249,6 +248,7 @@
<menu_item_check label="Timer veloci" name="Fast Timers"/>
<menu_item_check label="Memoria" name="Memory"/>
<menu_item_check label="Statistiche scena" name="Scene Statistics"/>
+ <menu_item_check label="Monitoraggio caricamento scena" name="Scene Loading Monitor"/>
<menu_item_call label="Console di debug recupero texture" name="Texture Fetch Debug Console"/>
<menu_item_call label="Informazioni regione sulla console di debug" name="Region Info to Debug Console"/>
<menu_item_check label="Fotocamera" name="Camera"/>
@@ -280,6 +280,7 @@
<menu_item_check label="Veloc. di visualizzazione casuale" name="Randomize Framerate"/>
<menu_item_check label="Test frame" name="Frame Test"/>
<menu_item_call label="Profilo frame" name="Frame Profile"/>
+ <menu_item_call label="Benchmark" name="Benchmark"/>
</menu>
<menu label="Render Metadata" name="Render Metadata">
<menu_item_check label="Normali" name="Normals"/>
@@ -287,6 +288,7 @@
<menu_item_check label="Aggiorna tipo" name="Update Type"/>
<menu_item_check label="Info livello dettaglio" name="LOD Info"/>
<menu_item_check label="Crea coda" name="Build Queue"/>
+ <menu_item_check label="Giunti" name="Joints"/>
<menu_item_check label="Vettori vento" name="Wind Vectors"/>
<menu_item_check label="Complessità rendering" name="rendercomplexity"/>
<menu_item_check label="Byte collegamento" name="attachment bytes"/>
@@ -312,6 +314,7 @@
<menu_item_check label="Rendering delle luci unite" name="Render Attached Lights"/>
<menu_item_check label="Rendering particelle unite" name="Render Attached Particles"/>
<menu_item_check label="Gli oggetti brillano quando sono sotto il cursore" name="Hover Glow Objects"/>
+ <menu_item_call label="Pulisci cache immediatamente" name="Cache Clear"/>
</menu>
<menu label="Rete" name="Network">
<menu_item_check label="Metti in pausa" name="AgentPause"/>
@@ -327,7 +330,6 @@
<menu_item_call label="Test browser multimedia" name="Web Browser Test"/>
<menu_item_call label="Browser contenuto Web" name="Web Content Browser"/>
<menu_item_call label="Stampa informazioni oggetto selezionato" name="Print Selected Object Info"/>
- <menu_item_check label="Console di debug regione" name="Region Debug Console"/>
<menu_item_check label="Debug clic" name="Debug Clicks"/>
<menu_item_check label="Debug eventi mouse" name="Debug Mouse Events"/>
</menu>
diff --git a/indra/newview/skins/default/xui/it/notifications.xml b/indra/newview/skins/default/xui/it/notifications.xml
index 96b8c96595..45c89ecd7a 100755
--- a/indra/newview/skins/default/xui/it/notifications.xml
+++ b/indra/newview/skins/default/xui/it/notifications.xml
@@ -114,13 +114,13 @@ Per ulteriori informazioni consulta il [[MARKETPLACE_IMPORTS_URL] registro error
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="OutboxImportFailed">
- Trasferimento non riuscito
+ Trasferimento non riuscito, errore &apos;[ERROR_CODE]&apos;
Nessuna cartella è stata inviata a Marketplace, a causa di un errore di sistema o di rete. Riprova più tardi.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="OutboxInitFailed">
- Inizializzazione Marketplace non riuscita
+ Inizializzazione Marketplace non riuscita, errore &apos;[ERROR_CODE]&apos;
L&apos;inizializzazione con il Marketplace non ha avuto successo a causa di un errore di sistema o di rete. Riprova più tardi.
<usetemplate name="okbutton" yestext="OK"/>
@@ -1734,6 +1734,10 @@ più del limite [LIMIT].
Sei sicuro di volere il teleport a &lt;nolink&gt;[LOCATION]&lt;/nolink&gt;?
<usetemplate ignoretext="Conferma il teleport verso un punto di riferimento" name="okcancelignore" notext="Annulla" yestext="Teleportati"/>
</notification>
+ <notification name="TeleportViaSLAPP">
+ Sei sicuro di volere il teleport a &lt;nolink&gt;[LOCATION]&lt;/nolink&gt;?
+ <usetemplate ignoretext="Confermo di voler usare il teleport tramite SLAPP" name="okcancelignore" notext="Annulla" yestext="Teleport"/>
+ </notification>
<notification name="TeleportToPick">
Teleport a [PICK]?
<usetemplate ignoretext="Conferma che voglio il teleport verso l&apos;ubicazione nei Luoghi preferiti" name="okcancelignore" notext="Annulla" yestext="Teleport"/>
@@ -1944,6 +1948,9 @@ Cambierà migliaia di regioni e produrrà seri problemi ai vari server.
<notification name="ProblemAddingEstateManager">
Si sono riscontrati problemi nell&apos;aggiungere un nuovo manager della proprietà. Una o più proprietà potrebbero avere la lista dei manager piena.
</notification>
+ <notification name="ProblemAddingEstateBanManager">
+ Impossibile aggiungere il gestore o il proprietario della proprietà alla lista degli espulsi.
+ </notification>
<notification name="ProblemAddingEstateGeneric">
Si sono riscontrati problemi nell&apos;aggiunta a questo elenco della proprietà. Una o più proprietà potrebbe avere una lista piena.
</notification>
@@ -3028,13 +3035,13 @@ Per informazioni dettagliate, vedi il file del registro.
Non è stata ottenuta la capacità della regione &apos;[CAPABILITY]&apos;.
</notification>
<notification name="ShareItemsConfirmation">
- Sei sicuro di volere condividere gli oggetti
+ Sei sicuro di volere condividere gli oggetti seguenti:
-&lt;nolink&gt;[MSG]&lt;/nolink&gt;
+&lt;nolink&gt;[ITEMS]&lt;/nolink&gt;
-Con i seguenti residenti?
+Con i seguenti residenti:
-[RESIDENTS]
+&lt;nolink&gt;[RESIDENTS]&lt;/nolink&gt;
<usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
</notification>
<notification name="ShareFolderConfirmation">
@@ -3046,7 +3053,7 @@ Sei sicuro di volere condividere gli oggetti seguenti:
Con i seguenti residenti:
-[RESIDENTS]
+&lt;nolink&gt;[RESIDENTS]&lt;/nolink&gt;
<usetemplate name="okcancelbuttons" notext="Annulla" yestext="Ok"/>
</notification>
<notification name="ItemsShared">
@@ -3502,10 +3509,6 @@ Riprova tra un minuto.
<notification name="EjectComingSoon">
Non sei più benvenuto qui e hai [EJECT_TIME] secondi per andartene.
</notification>
- <notification name="NoEnterServerFull">
- Non puoi entrare in questa regione perché
-il server è pieno.
- </notification>
<notification name="SaveBackToInvDisabled">
Opzione Salva nell&apos;inventario disattivata
</notification>
@@ -3695,6 +3698,9 @@ il server è pieno.
<notification name="LinkFailedTooMuchPhysics">
L&apos;oggetto usa troppe risorse per la fisica -- le sue dinamiche sono state disattivate.
</notification>
+ <notification name="EstateManagerFailedllTeleportHome">
+ L&apos;oggetto &apos;[OBJECT_NAME]&apos; a [SLURL] non può eseguire il teleport del gestore della proprietà alla sua casa.
+ </notification>
<notification name="TeleportedHomeByObjectOnParcel">
Sei stato teleportato nella posizione iniziale dall&apos;oggetto &apos;[OBJECT_NAME]&apos; del lotto &apos;[PARCEL_NAME]&apos;
</notification>
@@ -3885,13 +3891,18 @@ il server è pieno.
Non sono stati selezionati abbastanza lotti affittati da collegare.
</notification>
<notification name="CantDivideLandMultipleParcelsSelected">
- Terreno non divisibile.\nHai selezionato più di un lotto.\nProva a selezionare una quantità di terreno più piccola.
+ Impossibile suddividere il terreno.
+È stato selezionato più di un lotto.
+Prova a selezionare un pezzo di terreno più piccolo.
</notification>
<notification name="CantDivideLandCantFindParcel">
- impossibile suddividere il terreno.\nimpossibile trovare il lotto.\nInvia una segnalazione con Aiuto -&gt; Segnala bug...
+ Impossibile suddividere il terreno.
+Lotto non trovato.
+Invia una segnalazione con Aiuto -&gt; Segnala Bug...
</notification>
<notification name="CantDivideLandWholeParcelSelected">
- Impossibile suddividere il terreno. È stato selezionato l&apos;intero lotto.\nProva a selezionare un pezzo di terreno più piccolo.
+ Impossibile suddividere il terreno. È stato selezionato un intero lotto.
+Prova a selezionare un pezzo di terreno più piccolo.
</notification>
<notification name="LandHasBeenDivided">
Il terreno è stato diviso.
@@ -4031,4 +4042,8 @@ il server è pieno.
Impossibile spostare i file. Il percorso precedente è stato ripristinato.
<usetemplate ignoretext="Impossibile spostare i file. Il percorso precedente è stato ripristinato." name="okignore" yestext="OK"/>
</notification>
+ <notification name="ChatHistoryIsBusyAlert">
+ Il file della cronologia del file sta ancora eseguendo l&apos;operazione precedente. Riprova nuovamente tra qualche minuto oppure chatta con un&apos;altra persona.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
</notifications>
diff --git a/indra/newview/skins/default/xui/it/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/it/panel_group_info_sidetray.xml
index 34ee3c2dca..138edc3a26 100755
--- a/indra/newview/skins/default/xui/it/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_info_sidetray.xml
@@ -20,7 +20,7 @@
<layout_panel name="group_accordions">
<accordion name="groups_accordion">
<accordion_tab name="group_general_tab" title="Generale"/>
- <accordion_tab name="group_roles_tab" title="Ruoli"/>
+ <accordion_tab name="group_roles_tab" title="Ruoli e membri"/>
<accordion_tab name="group_notices_tab" title="Avvisi"/>
<accordion_tab name="group_land_tab" title="Terra/Beni"/>
</accordion>
diff --git a/indra/newview/skins/default/xui/it/panel_group_roles.xml b/indra/newview/skins/default/xui/it/panel_group_roles.xml
index 478b35e628..79e9cd73d2 100755
--- a/indra/newview/skins/default/xui/it/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_roles.xml
@@ -21,6 +21,7 @@ cliccando sui loro nomi.
<name_list.columns label="Socio" name="name"/>
<name_list.columns label="Donazioni" name="donated"/>
<name_list.columns label="Stato" name="online"/>
+ <name_list.columns label="Titolo" name="title"/>
</name_list>
<button label="Invita" name="member_invite"/>
<button label="Espelli" name="member_eject"/>
diff --git a/indra/newview/skins/default/xui/it/panel_region_debug.xml b/indra/newview/skins/default/xui/it/panel_region_debug.xml
index aba60d03aa..88c056bf5e 100755
--- a/indra/newview/skins/default/xui/it/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_debug.xml
@@ -7,11 +7,8 @@
sconosciuta
</text>
<check_box label="Disabilita gli script" name="disable_scripts_check" tool_tip="Disabilita tutti gli script in questa regione"/>
- <button label="?" name="disable_scripts_help"/>
<check_box label="Disabilita le collisioni" name="disable_collisions_check" tool_tip="Disabilita tutte le collisioni non di avatar in questa regione"/>
- <button label="?" name="disable_collisions_help"/>
<check_box label="Disabilita la fisica" name="disable_physics_check" tool_tip="Disabilita tutta la fisica dei corpi in questa regione"/>
- <button label="?" name="disable_physics_help"/>
<button label="Applica" name="apply_btn"/>
<text name="objret_text_lbl" width="130">
Restituisci oggetti
@@ -31,10 +28,8 @@
<check_box label="In tutte le regioni di questa proprietà" name="return_estate_wide" tool_tip="Restituisci tutti gli oggetti nelle varie regioni che costituiscono l&apos;insieme dei possedimenti terrieri"/>
<button label="Restituisci" name="return_btn"/>
<button label="Visualizza l&apos;elenco dei maggiori collidenti..." name="top_colliders_btn" tool_tip="Elenco degli oggetti che stanno potenzialmente subendo le maggiori collisioni" width="280"/>
- <button label="?" left="297" name="top_colliders_help"/>
- <button label="Visualizza l&apos;elenco degli script più pesanti..." name="top_scripts_btn" tool_tip="Elenco degli oggetti che impiegano più tempo a far girare gli script" width="280"/>
- <button label="?" left="297" name="top_scripts_help"/>
<button label="Riavvia la regione" name="restart_btn" tool_tip="Dai 2 minuti di tempo massimo e fai riavviare la regione"/>
- <button label="?" name="restart_help"/>
+ <button label="Visualizza l&apos;elenco degli script più pesanti..." name="top_scripts_btn" tool_tip="Elenco degli oggetti che impiegano più tempo a far girare gli script" width="280"/>
<button label="Annulla riavvio" name="cancel_restart_btn" tool_tip="Annulla riavvio regione"/>
+ <button label="Console di debug regione" name="region_debug_console_btn" tool_tip="Apri console di debug regione"/>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_region_general.xml b/indra/newview/skins/default/xui/it/panel_region_general.xml
index c550e005ae..3e2f593d2f 100755
--- a/indra/newview/skins/default/xui/it/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_general.xml
@@ -20,12 +20,12 @@
</text>
<check_box label="Proibisci la modifica del terreno" name="block_terraform_check"/>
<check_box label="Impedisci il volo" name="block_fly_check"/>
+ <check_box label="Blocca il volo sul lotto" name="block_fly_over_check" tool_tip="Espandi il controllo dell&apos;accesso in alto per impedire il volo sopra un lotto"/>
<check_box label="Abilita i danni" name="allow_damage_check"/>
<check_box label="Limita gli urti" name="restrict_pushobject"/>
<check_box label="Abilita la rivendita del terreno" name="allow_land_resell_check"/>
<check_box label="Abilita unione/suddivisione del terreno" name="allow_parcel_changes_check"/>
<check_box label="Proibisci che il terreno appaia nelle ricerche" name="block_parcel_search_check" tool_tip="Permetti che le persone vedano questa regione e le sue suddivisioni nei risultati delle ricerche"/>
- <check_box label="Consenti oggetti con reticolo" name="mesh_rez_enabled_check" tool_tip="Permetti alle persone di rezzare oggetti con reticolo su questa regione"/>
<spinner label="Limite massimo di avatar" label_width="135" name="agent_limit_spin" width="190"/>
<spinner label="Bonus di oggetti" label_width="135" name="object_bonus_spin" width="190"/>
<text label="Maturità" name="access_text" width="120">
diff --git a/indra/newview/skins/default/xui/it/sidepanel_inventory.xml b/indra/newview/skins/default/xui/it/sidepanel_inventory.xml
index 907857bf5a..2f00a023bb 100755
--- a/indra/newview/skins/default/xui/it/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/it/sidepanel_inventory.xml
@@ -33,7 +33,7 @@
<layout_panel name="shop_btn_lp">
<button label="Acquisti" name="shop_btn" tool_tip="Apri pagina web di Marketplace"/>
<button label="Indossa" name="wear_btn" tool_tip="Indossa il vestiario selezionato"/>
- <button label="Riproduci" name="play_btn"/>
+ <button label="Gioca" name="play_btn"/>
<button label="Teleport" name="teleport_btn" tool_tip="Teleport alla zona selezionata"/>
</layout_panel>
</layout_stack>
diff --git a/indra/newview/skins/default/xui/it/strings.xml b/indra/newview/skins/default/xui/it/strings.xml
index 86d7f75b83..3835907f01 100755
--- a/indra/newview/skins/default/xui/it/strings.xml
+++ b/indra/newview/skins/default/xui/it/strings.xml
@@ -34,6 +34,45 @@
<string name="StartupRequireDriverUpdate">
Inizializzazione grafica non riuscita. Aggiorna il driver della scheda grafica!
</string>
+ <string name="AboutHeader">
+ [APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL])
+[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
+ </string>
+ <string name="AboutCompiler">
+ Generato con [COMPILER] versione [COMPILER_VERSION]
+ </string>
+ <string name="AboutPosition">
+ Tu sei a [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1] in [REGION] che si trova a &lt;nolink&gt;[HOSTNAME]&lt;/nolink&gt; ([HOSTIP])
+SLURL: &lt;nolink&gt;[SLURL]&lt;/nolink&gt;
+(coordinate globali [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1])
+[SERVER_VERSION]
+[SERVER_RELEASE_NOTES_URL]
+ </string>
+ <string name="AboutSystem">
+ CPU: [CPU]
+Memoria: [MEMORY_MB] MB
+Versione sistema operativo: [OS_VERSION]
+Venditore scheda grafica: [GRAPHICS_CARD_VENDOR]
+Scheda grafica: [GRAPHICS_CARD]
+ </string>
+ <string name="AboutDriver">
+ Versione driver Windows per grafica: [GRAPHICS_DRIVER_VERSION]
+ </string>
+ <string name="AboutLibs">
+ Versione OpenGL: [OPENGL_VERSION]
+
+Versione libcurl: [LIBCURL_VERSION]
+Versione J2C Decoder: [J2C_VERSION]
+Versione Driver audio: [AUDIO_DRIVER_VERSION]
+Versione Qt Webkit: [QT_WEBKIT_VERSION]
+Versione Server voice: [VOICE_VERSION]
+ </string>
+ <string name="AboutTraffic">
+ Pacchetti perduti: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
+ </string>
+ <string name="ErrorFetchingServerReleaseNotesURL">
+ Errore nel recupero URL note rilascio versione
+ </string>
<string name="ProgressRestoring">
Ripristino in corso...
</string>
@@ -931,12 +970,12 @@ Prova ad accedere nuovamente tra un minuto.
<string name="ControlYourCamera">
Controllare la tua fotocamera
</string>
- <string name="AgentNameSubst">
- (Tu)
- </string>
<string name="TeleportYourAgent">
Teleportarti
</string>
+ <string name="AgentNameSubst">
+ (Tu)
+ </string>
<string name="JoinAnExperience">
Partecipa a un&apos;esperienza
</string>
@@ -1261,8 +1300,7 @@ Prova ad accedere nuovamente tra un minuto.
<string name="InventoryInboxNoItems">
Gli acquissti dal mercato verranno mostrati qui. Potrai quindi trascinarli nel tuo inventario per usarli.
</string>
- <string name="Unconstrained">Libero</string>
- <string name="MarketplaceURL">
+ <string name="MarketplaceURL">
https://marketplace.[MARKETPLACE_DOMAIN_NAME]/
</string>
<string name="MarketplaceURL_CreateStore">
@@ -1291,6 +1329,18 @@ Prova ad accedere nuovamente tra un minuto.
<string name="InventoryOutboxNoItems">
Trascina le cartelle in questa area e clicca su &quot;Invia a Marketplace&quot; per metterle in vendita su [[MARKETPLACE_DASHBOARD_URL] Marketplace].
</string>
+ <string name="InventoryOutboxInitializingTitle">
+ Inizializzazione Marketplace.in corso
+ </string>
+ <string name="InventoryOutboxInitializing">
+ Stiamo eseguendo l&apos;accesso al tuo account sul [[MARKETPLACE_CREATE_STORE_URL] negozio Marketplace].
+ </string>
+ <string name="InventoryOutboxErrorTitle">
+ Errori in Marketplace.
+ </string>
+ <string name="InventoryOutboxError">
+ Il [[MARKETPLACE_CREATE_STORE_URL] negozio nel Marketplace] ha riportato errori.
+ </string>
<string name="Marketplace Error None">
Nessun errore
</string>
@@ -1318,6 +1368,9 @@ Prova ad accedere nuovamente tra un minuto.
<string name="Open landmarks">
Apri luoghi di riferimento
</string>
+ <string name="Unconstrained">
+ Libero
+ </string>
<string name="no_transfer" value="(nessun trasferimento)"/>
<string name="no_modify" value="(nessuna modifica)"/>
<string name="no_copy" value="(nessuna copia)"/>
@@ -1712,6 +1765,9 @@ Prova ad accedere nuovamente tra un minuto.
<string name="CompileQueueDownloadedCompiling">
Scaricato, in compilazione
</string>
+ <string name="CompileQueueServiceUnavailable">
+ Il servizio di compilazione degli script non è disponibile
+ </string>
<string name="CompileQueueScriptNotFound">
Script non trovato sul server.
</string>
diff --git a/indra/newview/skins/default/xui/ja/floater_lagmeter.xml b/indra/newview/skins/default/xui/ja/floater_lagmeter.xml
new file mode 100644
index 0000000000..e3546cd837
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_lagmeter.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="ラグメーター">
+ <floater.string name="max_title_msg">
+ ラグ メーター
+ </floater.string>
+ <floater.string name="max_width_px">
+ 350
+ </floater.string>
+ <floater.string name="min_title_msg">
+ ラグ
+ </floater.string>
+ <floater.string name="min_width_px">
+ 90
+ </floater.string>
+ <floater.string name="client_text_msg">
+ クライアント
+ </floater.string>
+ <floater.string name="client_frame_rate_critical_fps">
+ 10
+ </floater.string>
+ <floater.string name="client_frame_rate_warning_fps">
+ 15
+ </floater.string>
+ <floater.string name="client_frame_time_window_bg_msg">
+ ノーマル、ウィンドウは背景に
+ </floater.string>
+ <floater.string name="client_frame_time_critical_msg">
+ クライアント フレームレート < [CLIENT_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="client_frame_time_warning_msg">
+ クライアント フレームレート: [CLIENT_FRAME_RATE_CRITICAL] ~ [CLIENT_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string name="client_frame_time_normal_msg">
+ ノーマル
+ </floater.string>
+ <floater.string name="client_draw_distance_cause_msg">
+ 考えられる原因: 描画距離の設定が大きすぎる
+ </floater.string>
+ <floater.string name="client_texture_loading_cause_msg">
+ 考えられる原因: 画像のロード中
+ </floater.string>
+ <floater.string name="client_texture_memory_cause_msg">
+ 考えられる原因: メモリ内の画像数が多すぎる
+ </floater.string>
+ <floater.string name="client_complex_objects_cause_msg">
+ 考えられる原因: 画面に含まれる複雑なオブジェクトが多すぎる
+ </floater.string>
+ <floater.string name="network_text_msg">
+ ネットワーク
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_pct">
+ 10
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_pct">
+ 5
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_msg">
+ 接続でドロップされるパケットの割合: > [NETWORK_PACKET_LOSS_CRITICAL]
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_msg">
+ 接続でドロップされるパケットの割合:[NETWORK_PACKET_LOSS_WARNING] ~ [NETWORK_PACKET_LOSS_CRITICAL]
+ </floater.string>
+ <floater.string name="network_performance_normal_msg">
+ ノーマル
+ </floater.string>
+ <floater.string name="network_ping_critical_ms">
+ 600
+ </floater.string>
+ <floater.string name="network_ping_warning_ms">
+ 300
+ </floater.string>
+ <floater.string name="network_ping_critical_msg">
+ 接続の ping 時間: > [NETWORK_PING_CRITICAL] ミリ秒
+ </floater.string>
+ <floater.string name="network_ping_warning_msg">
+ 接続の ping 時間: [NETWORK_PING_WARNING] ~ [NETWORK_PING_CRITICAL] ミリ秒
+ </floater.string>
+ <floater.string name="network_packet_loss_cause_msg">
+ 接続不良になっているか、帯域幅設定が高すぎます。
+ </floater.string>
+ <floater.string name="network_ping_cause_msg">
+ 接続不良になっているか、ファイル共有アプリケーションに問題があります。
+ </floater.string>
+ <floater.string name="server_text_msg">
+ サーバー
+ </floater.string>
+ <floater.string name="server_frame_rate_critical_fps">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_rate_warning_fps">
+ 30
+ </floater.string>
+ <floater.string name="server_single_process_max_time_ms">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_time_critical_msg">
+ シミュレーターのフレームレート: < [SERVER_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="server_frame_time_warning_msg">
+ シミュレーターのフレームレート: [SERVER_FRAME_RATE_CRITICAL] ~ [SERVER_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string name="server_frame_time_normal_msg">
+ ノーマル
+ </floater.string>
+ <floater.string name="server_physics_cause_msg">
+ 考えられる原因: 物理的オブジェクトが多すぎる
+ </floater.string>
+ <floater.string name="server_scripts_cause_msg">
+ 考えられる原因: スクリプトを含むオブジェクトが多すぎる
+ </floater.string>
+ <floater.string name="server_net_cause_msg">
+ 考えられる原因: ネットワーク トラフィック過大
+ </floater.string>
+ <floater.string name="server_agent_cause_msg">
+ 考えられる原因: 地域内にて動いているアバターが多すぎる
+ </floater.string>
+ <floater.string name="server_images_cause_msg">
+ 考えられる原因: 画像計算が多すぎる
+ </floater.string>
+ <floater.string name="server_generic_cause_msg">
+ 考えられる原因: シミュレーターの過負荷
+ </floater.string>
+ <floater.string name="smaller_label">
+ &gt;&gt;
+ </floater.string>
+ <floater.string name="bigger_label">
+ &lt;&lt;
+ </floater.string>
+ <button name="client_lagmeter" tool_tip="クライアント ラグ ステータス"/>
+ <text name="client">
+ クライアント
+ </text>
+ <text name="client_text">
+ ノーマル
+ </text>
+ <button name="network_lagmeter" tool_tip="ネットワーク ラグ ステータス"/>
+ <text name="network">
+ ネットワーク
+ </text>
+ <text name="network_text">
+ ノーマル
+ </text>
+ <button name="server_lagmeter" tool_tip="サーバー ラグ ステータス"/>
+ <text name="server">
+ サーバー
+ </text>
+ <text name="server_text">
+ ノーマル
+ </text>
+ <button label="&gt;&gt; " name="minimize" tool_tip="フローターのサイズをトグル"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_region_restarting.xml b/indra/newview/skins/default/xui/ja/floater_region_restarting.xml
new file mode 100644
index 0000000000..e9ba9d230d
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_region_restarting.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="region_restarting" title="リージョンの再起動">
+ <string name="RegionName">
+ 今 ([NAME]) がいるリージョンを再起動しようとしています。
+
+このままここにいるとログアウトされます。
+ </string>
+ <string name="RestartSeconds">
+ 再起動までの秒数
+[SECONDS]
+ </string>
+ <panel name="layout_panel_1">
+ <text name="region_name">
+ 今 (-最長リージョン名-) がいるリージョンを再起動しようとしています。
+
+このままここにいるとログアウトされます。
+ </text>
+ <text name="restart_seconds">
+ 再起動までの秒数
+ 32767
+ </text>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_scene_load_stats.xml b/indra/newview/skins/default/xui/ja/floater_scene_load_stats.xml
new file mode 100644
index 0000000000..f6edce026f
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_scene_load_stats.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Scene Load Statistics" title="シーン ロード統計情報">
+ <button label="一時停止" name="playpause"/>
+ <scroll_container name="statistics_scroll">
+ <container_view name="statistics_view">
+ <stat_view label="ベーシック" name="basic">
+ <stat_bar label="フレーム ピクセル差" name="frame difference"/>
+ <stat_bar label="UDP データを受け取りました" name="bandwidth"/>
+ <stat_bar label="パケットロス" name="packet_loss"/>
+ </stat_view>
+ <stat_view label="アドバンス" name="advanced">
+ <stat_view label="描画" name="render">
+ <stat_bar label="オブジェクト合計" name="objs"/>
+ <stat_bar label="新規オブジェクト" name="newobjs"/>
+ <stat_bar label="オブジェクト キャッシュ ヒット率" name="object_cache_hits"/>
+ </stat_view>
+ <stat_view label="テクスチャ" name="texture">
+ <stat_bar label="キャッシュ ヒット率" name="texture_cache_hits"/>
+ <stat_bar label="キャッシュ読み込み遅延" name="texture_cache_read_latency"/>
+ <stat_bar label="カウント" name="numimagesstat"/>
+ <stat_bar label="Raw カウント" name="numrawimagesstat"/>
+ </stat_view>
+ <stat_view label="ネットワーク" name="network">
+ <stat_bar label="パケットイン" name="packetsinstat"/>
+ <stat_bar label="パケットアウト" name="packetsoutstat"/>
+ <stat_bar label="オブジェクト" name="objectdatareceived"/>
+ <stat_bar label="テクスチャ" name="texturedatareceived"/>
+ <stat_bar label="資産" name="assetudpdatareceived"/>
+ <stat_bar label="レイヤー" name="layersdatareceived"/>
+ <stat_bar label="実際の受信" name="messagedatain"/>
+ <stat_bar label="実際の送信" name="messagedataout"/>
+ <stat_bar label="VFS 保留中の操作" name="vfspendingoperations"/>
+ </stat_view>
+ </stat_view>
+ <stat_view label="シミュレーター" name="sim">
+ <stat_bar label="オブジェクト" name="simobjects"/>
+ <stat_bar label="アクティブなオブジェクト" name="simactiveobjects"/>
+ <stat_bar label="アクティブなスクリプト" name="simactivescripts"/>
+ <stat_bar label="パケットイン" name="siminpps"/>
+ <stat_bar label="パケットアウト" name="simoutpps"/>
+ <stat_bar label="保留中のダウンロード" name="simpendingdownloads"/>
+ <stat_bar label="保留中のアップロード" name="simpendinguploads"/>
+ <stat_bar label="未送信バイト合計" name="simtotalunackedbytes"/>
+ <stat_view label="時間(ms)" name="simperf">
+ <stat_bar label="フレーム時間合計" name="simframemsec"/>
+ <stat_bar label="総時間数" name="simnetmsec"/>
+ <stat_bar label="物理的作用時間" name="simsimphysicsmsec"/>
+ <stat_bar label="シミュレーション時間" name="simsimothermsec"/>
+ <stat_bar label="エージェント時間" name="simagentmsec"/>
+ <stat_bar label="イメージ時間" name="simimagesmsec"/>
+ <stat_bar label="スクリプト時間" name="simscriptmsec"/>
+ <stat_bar label="余暇" name="simsparemsec"/>
+ <stat_view label="時間の詳細(ms)" name="timedetails">
+ <stat_bar label="物理効果の単位" name="simsimphysicsstepmsec"/>
+ <stat_bar label="物理形状を更新" name="simsimphysicsshapeupdatemsec"/>
+ <stat_bar label="他の物理効果" name="simsimphysicsothermsec"/>
+ <stat_bar label="スリープ時間" name="simsleepmsec"/>
+ <stat_bar label="ポンプ I/O" name="simpumpiomsec"/>
+ </stat_view>
+ </stat_view>
+ </stat_view>
+ </container_view>
+ </scroll_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_stats.xml b/indra/newview/skins/default/xui/ja/floater_stats.xml
index 1922e4841a..2b3b51f3b7 100755
--- a/indra/newview/skins/default/xui/ja/floater_stats.xml
+++ b/indra/newview/skins/default/xui/ja/floater_stats.xml
@@ -4,17 +4,20 @@
<container_view name="statistics_view">
<stat_view label="ベーシック" name="basic">
<stat_bar label="FPS" name="fps"/>
- <stat_bar label="帯域幅" name="bandwidth"/>
+ <stat_bar label="UDP データを受け取りました" name="bandwidth"/>
<stat_bar label="パケットロス" name="packet_loss"/>
<stat_bar label="Pingシム" name="ping"/>
</stat_view>
<stat_view label="アドバンス" name="advanced">
<stat_view label="描画" name="render">
- <stat_bar label="フレームごとの KTris 描画" name="ktrisframe"/>
- <stat_bar label="秒ごとの KTris 描画" name="ktrissec"/>
+ <stat_bar label="KTris (フレームごと)" name="ktrisframe"/>
+ <stat_bar label="KTris (秒ごと)" name="ktrissec"/>
<stat_bar label="オブジェクト合計" name="objs"/>
<stat_bar label="新規オブジェクト" name="newobjs"/>
<stat_bar label="オブジェクトキャッシュヒット率" name="object_cache_hits"/>
+ <stat_bar label="閉鎖クエリ実行" name="occlusion_queries"/>
+ <stat_bar label="閉鎖オブジェクト" name="occluded"/>
+ <stat_bar label="非閉鎖オブジェクト" name="unoccluded"/>
</stat_view>
<stat_view label="テクスチャ" name="texture">
<stat_bar label="キャッシュヒット率" name="texture_cache_hits"/>
@@ -26,15 +29,32 @@
<stat_bar label="Raw メモリ" name="rawmemstat"/>
<stat_bar label="統合メモリ" name="glboundmemstat"/>
</stat_view>
+ <stat_view label="メモリ使用量" name="memory">
+ <stat_bar label="LLTrace" name="LLTrace"/>
+ <stat_bar label="UI" name="LLView"/>
+ <stat_bar label="フォント" name="LLFontFreetype"/>
+ <stat_bar label="インベントリ" name="LLInventoryObject"/>
+ <stat_bar label="ビューワ オブジェクト" name="LLViewerObject"/>
+ <stat_bar label="Octree グループ データ" name="LLViewerOctreeGroup"/>
+ <stat_bar label="Octree データ" name="LLViewerOctreeEntry"/>
+ <stat_bar label="ビューワ オブジェクト キャッシュ" name="LLVOCacheEntry"/>
+ <stat_bar label="描画可能オブジェクト" name="LLDrawable"/>
+ <stat_bar label="顔データ" name="LLFace"/>
+ <stat_bar label="描画情報" name="LLDrawInfo"/>
+ <stat_bar label="テクスチャ データ" name="LLTexture"/>
+ <stat_bar label="画像データ" name="LLImage"/>
+ <stat_bar label="GL 画像データ" name="LLImageGL"/>
+ <stat_bar label="頂点バッファ" name="LLVertexBuffer"/>
+ </stat_view>
<stat_view label="ネットワーク" name="network">
<stat_bar label="パケットイン" name="packetsinstat"/>
<stat_bar label="パケットアウト" name="packetsoutstat"/>
- <stat_bar label="オブジェクト" name="objectkbitstat"/>
- <stat_bar label="テクスチャ" name="texturekbitstat"/>
- <stat_bar label="アセット" name="assetkbitstat"/>
- <stat_bar label="レイヤー" name="layerskbitstat"/>
- <stat_bar label="実際の受信" name="actualinkbitstat"/>
- <stat_bar label="実際の送信" name="actualoutkbitstat"/>
+ <stat_bar label="オブジェクト" name="objectdatareceived"/>
+ <stat_bar label="テクスチャ" name="texturedatareceived"/>
+ <stat_bar label="資産" name="assetudpdatareceived"/>
+ <stat_bar label="レイヤー" name="layersdatareceived"/>
+ <stat_bar label="実際の受信" name="messagedatain"/>
+ <stat_bar label="実際の送信" name="messagedataout"/>
<stat_bar label="VFS 保留中の操作" name="vfspendingoperations"/>
</stat_view>
</stat_view>
@@ -64,8 +84,8 @@
<stat_bar label="パケットアウト" name="simoutpps"/>
<stat_bar label="保留中のダウンロード" name="simpendingdownloads"/>
<stat_bar label="保留中のアップロード" name="simpendinguploads"/>
- <stat_bar label="未送信バイト合計" name="simtotalunackedbytes"/>
- <stat_view label="時間(ms)" name="simperf">
+ <stat_bar label="合計未承認データ" name="simtotalunackedbytes"/>
+ <stat_view label="時間" name="simperf">
<stat_bar label="フレーム時間合計" name="simframemsec"/>
<stat_bar label="総時間数" name="simnetmsec"/>
<stat_bar label="物理的作用時間" name="simsimphysicsmsec"/>
@@ -74,7 +94,7 @@
<stat_bar label="イメージ時間" name="simimagesmsec"/>
<stat_bar label="スクリプト時間" name="simscriptmsec"/>
<stat_bar label="余暇" name="simsparemsec"/>
- <stat_view label="時間の詳細(ms)" name="timedetails">
+ <stat_view label="時間の詳細" name="timedetails">
<stat_bar label="物理効果の単位" name="simsimphysicsstepmsec"/>
<stat_bar label="物理形状を更新" name="simsimphysicsshapeupdatemsec"/>
<stat_bar label="他の物理効果" name="simsimphysicsothermsec"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml b/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml
index b04f602134..80ce080e39 100755
--- a/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml
@@ -2,6 +2,7 @@
<menu name="Avatar Icon Menu">
<menu_item_call label="プロフィールの表示" name="Show Profile"/>
<menu_item_call label="IMを送信..." name="Send IM"/>
+ <menu_item_call label="テレポートをリクエスト" name="Request Teleport"/>
<menu_item_call label="フレンドを追加..." name="Add Friend"/>
<menu_item_call label="フレンドを削除..." name="Remove Friend"/>
</menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_inventory.xml b/indra/newview/skins/default/xui/ja/menu_inventory.xml
index 106b09453a..8d6c983aa7 100755
--- a/indra/newview/skins/default/xui/ja/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inventory.xml
@@ -70,6 +70,7 @@
<menu_item_call label="再生する" name="Sound Play"/>
<menu_item_call label="SLurl をコピー" name="url_copy"/>
<menu_item_call label="ランドマークの情報" name="About Landmark"/>
+ <menu_item_call label="地図に表示" name="show_on_map"/>
<menu_item_call label="インワールドで再生する" name="Animation Play"/>
<menu_item_call label="ローカルで再生する" name="Animation Audition"/>
<menu_item_call label="インスタントメッセージを送信する" name="Send Instant Message"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_login.xml b/indra/newview/skins/default/xui/ja/menu_login.xml
index 3918732fa8..cd8bd52f91 100755
--- a/indra/newview/skins/default/xui/ja/menu_login.xml
+++ b/indra/newview/skins/default/xui/ja/menu_login.xml
@@ -5,7 +5,15 @@
<menu_item_call label="[APP_NAME] を終了" name="Quit"/>
</menu>
<menu label="ヘルプ" name="Help">
- <menu_item_call label="[SECOND_LIFE] ヘルプ" name="Second Life Help"/>
+ <menu_item_call label="ハウツー..." name="How To"/>
+ <menu_item_call label="クイックスタート" name="Quickstart"/>
+ <menu_item_call label="ナレッジベース" name="Knowledge Base"/>
+ <menu_item_call label="Wiki" name="Wiki"/>
+ <menu_item_call label="コミュニティ フォーラム" name="Community Forums"/>
+ <menu_item_call label="日本語サポートページ" name="Support portal"/>
+ <menu_item_call label="[SECOND_LIFE] ニュース" name="Second Life News"/>
+ <menu_item_call label="[SECOND_LIFE] ブログ" name="Second Life Blogs"/>
+ <menu_item_call label="バグを報告する" name="Report Bug"/>
<menu_item_call label="[APP_NAME] について" name="About Second Life"/>
</menu>
<menu_item_check label="デバッグメニューを表示する" name="Show Debug Menu"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/ja/menu_teleport_history_item.xml
index 66bc32214f..61642048b8 100755
--- a/indra/newview/skins/default/xui/ja/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/ja/menu_teleport_history_item.xml
@@ -2,5 +2,5 @@
<context_menu name="Teleport History Item Context Menu">
<menu_item_call label="テレポート" name="Teleport"/>
<menu_item_call label="もっと詳しく" name="More Information"/>
- <menu_item_call label="クリップボードにコピー" name="CopyToClipboard"/>
+ <menu_item_call label="SLurl をコピー" name="CopyToClipboard"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml
index b1ec62115c..b151915ae4 100755
--- a/indra/newview/skins/default/xui/ja/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml
@@ -72,11 +72,11 @@
<menu_item_check label="アドバンスメニュー" name="Show Advanced Menu"/>
</menu>
<menu label="太陽" name="Sun">
- <menu_item_call label="日の出" name="Sunrise"/>
- <menu_item_call label="正午" name="Noon"/>
- <menu_item_call label="日没" name="Sunset"/>
- <menu_item_call label="真夜中" name="Midnight"/>
- <menu_item_call label="リージョンの設定を使用" name="Use Region Settings"/>
+ <menu_item_check label="日の出" name="Sunrise"/>
+ <menu_item_check label="正午" name="Noon"/>
+ <menu_item_check label="日没" name="Sunset"/>
+ <menu_item_check label="真夜中" name="Midnight"/>
+ <menu_item_check label="リージョンの設定を使用" name="Use Region Settings"/>
</menu>
<menu label="自然環境エディター" name="Environment Editor">
<menu_item_call label="自然環境の設定..." name="Environment Settings"/>
@@ -165,8 +165,6 @@
</menu>
<menu label="ヘルプ" name="Help">
<menu_item_call label="ハウツー..." name="How To"/>
- <menu_item_call label="[SECOND_LIFE] ヘルプ" name="Second Life Help"/>
- <menu_item_call label="ユーザーガイド" name="User’s guide"/>
<menu_item_call label="ナレッジベース" name="Knowledge Base"/>
<menu_item_call label="Wiki" name="Wiki"/>
<menu_item_call label="コミュニティフォーラム" name="Community Forums"/>
@@ -188,6 +186,7 @@
<menu label="パフォーマンスツール" name="Performance Tools">
<menu_item_call label="ラグ計測器" name="Lag Meter"/>
<menu_item_check label="統計バー" name="Statistics Bar"/>
+ <menu_item_call label="シーン ロード統計情報" name="Scene Load Statistics"/>
<menu_item_check label="アバターの描画ウェイトを表示" name="Avatar Rendering Cost"/>
</menu>
<menu label="ハイライトと目に見えるもの" name="Highlighting and Visibility">
@@ -250,6 +249,7 @@
<menu_item_check label="ファーストタイマー" name="Fast Timers"/>
<menu_item_check label="メモリ" name="Memory"/>
<menu_item_check label="風景の統計" name="Scene Statistics"/>
+ <menu_item_check label="シーン ローディング モニター" name="Scene Loading Monitor"/>
<menu_item_call label="テクスチャ取得デバッグコンソール" name="Texture Fetch Debug Console"/>
<menu_item_call label="リージョン情報をデバッグコンソールへ" name="Region Info to Debug Console"/>
<menu_item_call label="グループ情報をデバッグコンソールへ" name="Group Info to Debug Console"/>
@@ -286,6 +286,7 @@
<menu_item_check label="定期的に遅いフレームを挿入する" name="Periodic Slow Frame"/>
<menu_item_check label="フレームテスト" name="Frame Test"/>
<menu_item_call label="フレームプロフィール" name="Frame Profile"/>
+ <menu_item_call label="ベンチマーク" name="Benchmark"/>
</menu>
<menu label="メタデータのレンダー" name="Render Metadata">
<menu_item_check label="バウンディングボックス" name="Bounding Boxes"/>
@@ -304,6 +305,7 @@
<menu_item_check label="制作キュー" name="Build Queue"/>
<menu_item_check label="光" name="Lights"/>
<menu_item_check label="骨組みの衝突判定" name="Collision Skeleton"/>
+ <menu_item_check label="ジョイント" name="Joints"/>
<menu_item_check label="レイキャスト" name="Raycast"/>
<menu_item_check label="風のベクトル" name="Wind Vectors"/>
<menu_item_check label="描画の詳細度" name="rendercomplexity"/>
@@ -336,6 +338,7 @@
<menu_item_check label="装着された光源を描画する" name="Render Attached Lights"/>
<menu_item_check label="取り付けられたパーティクルを描画する" name="Render Attached Particles"/>
<menu_item_check label="マウスオーバーで強調表示する" name="Hover Glow Objects"/>
+ <menu_item_call label="キャッシュをすぐにクリア" name="Cache Clear"/>
</menu>
<menu label="ネットワーク" name="Network">
<menu_item_check label="エージェントを一時停止する" name="AgentPause"/>
@@ -368,7 +371,6 @@
<menu_item_call label="フォーカスホールダーをダンプ" name="Dump Focus Holder"/>
<menu_item_call label="選択したオブジェクト情報をプリント" name="Print Selected Object Info"/>
<menu_item_call label="エージェント情報をプリント" name="Print Agent Info"/>
- <menu_item_check label="地域デバッグコンソール" name="Region Debug Console"/>
<menu_item_check label="SelectMgr のデバッグ" name="Debug SelectMgr"/>
<menu_item_check label="ダブルクリック" name="Debug Clicks"/>
<menu_item_check label="デバッグ表示" name="Debug Views"/>
diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml
index f1c916bf53..518f82daaf 100755
--- a/indra/newview/skins/default/xui/ja/notifications.xml
+++ b/indra/newview/skins/default/xui/ja/notifications.xml
@@ -113,13 +113,13 @@
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="OutboxImportFailed">
- 転送に失敗
+ &apos;[ERROR_CODE]&apos; エラーで転送できませんでした
システムまたはネットワークのエラーのため、フォルダはマーケットプレイスに送信されませんでした。後でもう一度お試しください。
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="OutboxInitFailed">
- マーケットプレイスの初期化に失敗
+ &apos;[ERROR_CODE]&apos; エラーでマーケットプレイスを初期化できませんでした
システムまたはネットワークのエラーのため、マーケットプレイスの初期化に失敗しました。後でもう一度お試しください。
<usetemplate name="okbutton" yestext="OK"/>
@@ -1768,6 +1768,10 @@ http://wiki.secondlife.com/wiki/Setting_your_display_name を参照してくだ
このまま &lt;nolink&gt;[LOCATION]&lt;/nolink&gt; にテレポートしますか?
<usetemplate ignoretext="ランドマークにテレポートしたいかどうかの確認" name="okcancelignore" notext="キャンセル" yestext="テレポート"/>
</notification>
+ <notification name="TeleportViaSLAPP">
+ このまま &lt;nolink&gt;[LOCATION]&lt;/nolink&gt; にテレポートしますか?
+ <usetemplate ignoretext="SLAPP でテレポートすることを確認" name="okcancelignore" notext="取り消し" yestext="テレポート"/>
+ </notification>
<notification name="TeleportToPick">
[PICK] にテレポートしますか?
<usetemplate ignoretext="ピックの場所にテレポートしたいかどうかの確認" name="okcancelignore" notext="キャンセル" yestext="テレポート"/>
@@ -1979,6 +1983,9 @@ http://wiki.secondlife.com/wiki/Setting_your_display_name を参照してくだ
新しい不動産マネージャーの追加に関する問題:
いずれかの不動産のマネージャーリストが満杯になっています。
</notification>
+ <notification name="ProblemAddingEstateBanManager">
+ 不動産所有者または管理者を禁止リストに追加できません。
+ </notification>
<notification name="ProblemAddingEstateGeneric">
不動産リストの追加に関する問題:
いずれかの不動産のリストが満杯になっています。
@@ -3072,9 +3079,9 @@ M キーを押して変更します。
&lt;nolink&gt;[ITEMS]&lt;/nolink&gt;
-次の住人と共有しますか?
+次の住人と共有:
-[RESIDENTS]
+&lt;nolink&gt;[RESIDENTS]&lt;/nolink&gt;
<usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
</notification>
<notification name="ShareFolderConfirmation">
@@ -3086,7 +3093,7 @@ M キーを押して変更します。
次の住人と共有:
-[RESIDENTS]
+&lt;nolink&gt;[RESIDENTS]&lt;/nolink&gt;
<usetemplate name="okcancelbuttons" notext="取り消し" yestext="Ok"/>
</notification>
<notification name="ItemsShared">
@@ -3541,10 +3548,6 @@ M キーを押して変更します。
<notification name="EjectComingSoon">
ここへの入場が許可されていないため、[EJECT_TIME] 秒後に追放されます。
</notification>
- <notification name="NoEnterServerFull">
- サーバーが埋まっているため、
-このリージョンに入場することはできません。
- </notification>
<notification name="SaveBackToInvDisabled">
「「持ち物」に保存」が無効になっています。
</notification>
@@ -3729,6 +3732,9 @@ M キーを押して変更します。
<notification name="LinkFailedTooMuchPhysics">
オブジェクトが使用している物理リソースが多すぎたため、ダイナミックスが無効にされました。
</notification>
+ <notification name="EstateManagerFailedllTeleportHome">
+ [SLURL] のオブジェクト &apos;[OBJECT_NAME]&apos; で不動産マネージャーのホームをテレポートできません。
+ </notification>
<notification name="TeleportedHomeByObjectOnParcel">
区画 &apos;[PARCEL_NAME]&apos; のオブジェクト &apos;[OBJECT_NAME]&apos; によって、あなたはホームにテレポートされました。
</notification>
@@ -3919,13 +3925,18 @@ M キーを押して変更します。
選択範囲のリース区画の数が少ないため、参加できません。
</notification>
<notification name="CantDivideLandMultipleParcelsSelected">
- 土地を分割できません。\n区画が複数選択されています。\nもっと小さい土地を選択してみてください。
+ 土地を分割できません。
+複数の区画が選択されました。
+小さい区画を選択してください。
</notification>
<notification name="CantDivideLandCantFindParcel">
- 土地を分解できません。\n区画が見つかりません。\n「Help」&gt;「Reprt Bug...」でレポートを行ってください。
+ 土地を分割できません。
+区画が見つかりません。
+「ヘルプ」 -&gt; 「バグの報告」で報告してください。
</notification>
<notification name="CantDivideLandWholeParcelSelected">
- 土地を分割できません。区画全体を選択します。\n小さい土地を選択してみてください。
+ 土地を分割できません。区画全体が選択されています。
+小さい区画を選択してください。
</notification>
<notification name="LandHasBeenDivided">
土地が分割されています。
@@ -4065,4 +4076,8 @@ M キーを押して変更します。
ファイルを移動できません。以前のパスがリストアされました。
<usetemplate ignoretext="ファイルを移動できません。以前のパスがリストアされました。" name="okignore" yestext="OK"/>
</notification>
+ <notification name="ChatHistoryIsBusyAlert">
+ チャット履歴ファイルが前の操作でビジーです。2、3 分経ってからもう一度試すか、別の人とのチャットを選択してください。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
</notifications>
diff --git a/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml
index 7aa1aec6d0..ebcb36d950 100755
--- a/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="グループインベントリ" name="GroupInfo">
<panel.string name="default_needs_apply_text">
保存していない変更があります
@@ -20,7 +20,7 @@
<layout_panel name="group_accordions">
<accordion name="groups_accordion">
<accordion_tab name="group_general_tab" title="一般"/>
- <accordion_tab name="group_roles_tab" title="役割"/>
+ <accordion_tab name="group_roles_tab" title="役割 &amp; メンバー"/>
<accordion_tab name="group_notices_tab" title="通知"/>
<accordion_tab name="group_land_tab" title="土地・資産"/>
</accordion>
diff --git a/indra/newview/skins/default/xui/ja/panel_group_roles.xml b/indra/newview/skins/default/xui/ja/panel_group_roles.xml
index d40dedf566..8ca63988c3 100755
--- a/indra/newview/skins/default/xui/ja/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_roles.xml
@@ -21,6 +21,7 @@ Ctrl キーを押しながらメンバー名をクリックすると
<name_list.columns label="メンバー" name="name"/>
<name_list.columns label="寄付" name="donated"/>
<name_list.columns label="ステータス" name="online"/>
+ <name_list.columns label="職名" name="title"/>
</name_list>
<button label="招待" name="member_invite"/>
<button label="追放" name="member_eject"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_region_debug.xml b/indra/newview/skins/default/xui/ja/panel_region_debug.xml
index 169da27ce5..908af3d66a 100755
--- a/indra/newview/skins/default/xui/ja/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_debug.xml
@@ -7,11 +7,8 @@
未知
</text>
<check_box label="スクリプト無効化" name="disable_scripts_check" tool_tip="この地域のスクリプトをすべて無効にします"/>
- <button label="?" name="disable_scripts_help"/>
<check_box label="衝突を無効化" name="disable_collisions_check" tool_tip="この地域の非アバター衝突を無効にします"/>
- <button label="?" name="disable_collisions_help"/>
<check_box label="物理作用を無効化" name="disable_physics_check" tool_tip="この地域の物理作用をすべて無効にします"/>
- <button label="?" name="disable_physics_help"/>
<button label="適用" name="apply_btn"/>
<text name="objret_text_lbl" width="120">
オブジェクトの返却
@@ -31,10 +28,8 @@
<check_box label="この不動産に属するすべてのリージョンのもの" name="return_estate_wide" tool_tip="この不動産に含まれているすべての地域のオブジェクトを返却します"/>
<button label="返却" name="return_btn"/>
<button label="上部コライダー取得" name="top_colliders_btn" tool_tip="衝突する可能性が最も高いオブジェクトのリスト"/>
- <button label="?" name="top_colliders_help"/>
- <button label="上部スクリプト取得" name="top_scripts_btn" tool_tip="スクリプトの実行に最も時間を費やしているオブジェクトのリスト"/>
- <button label="?" name="top_scripts_help"/>
<button label="地域再起動" name="restart_btn" tool_tip="2分間のカウントダウン後、地域を再起動します"/>
- <button label="?" name="restart_help"/>
+ <button label="上部スクリプト取得" name="top_scripts_btn" tool_tip="スクリプトの実行に最も時間を費やしているオブジェクトのリスト"/>
<button label="再起動をキャンセル" name="cancel_restart_btn" tool_tip="リージョンの再起動をキャンセル"/>
+ <button label="地域デバッグコンソール" name="region_debug_console_btn" tool_tip="地域デバッグコンソールを開く"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_region_general.xml b/indra/newview/skins/default/xui/ja/panel_region_general.xml
index 65148cf1ee..d23007dc6b 100755
--- a/indra/newview/skins/default/xui/ja/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_general.xml
@@ -20,12 +20,12 @@
</text>
<check_box label="地形編集をブロック" name="block_terraform_check"/>
<check_box label="飛行をブロック" name="block_fly_check"/>
+ <check_box label="区画の飛行をブロック" name="block_fly_over_check" tool_tip="アクセス チェックを上方向に拡大し、区画を超える飛行を防ぎます"/>
<check_box label="ダメージを許可" name="allow_damage_check"/>
<check_box label="プッシュを制限" name="restrict_pushobject"/>
<check_box label="土地の再販を許可" name="allow_land_resell_check"/>
<check_box label="土地の統合・分割を許可" name="allow_parcel_changes_check"/>
<check_box label="土地の検索表示をブロック" name="block_parcel_search_check" tool_tip="検索結果で、この地域と区画を表示するかどうかの設定です"/>
- <check_box label="メッシュオブジェクトを許可" name="mesh_rez_enabled_check" tool_tip="このリージョンでメッシュオブジェクトの Rez を許可する"/>
<spinner label="アバター数上限" name="agent_limit_spin"/>
<spinner label="物体ボーナス" name="object_bonus_spin"/>
<text label="成人指定" name="access_text">
diff --git a/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml b/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml
index 32e84ce542..5aa0e86a5b 100755
--- a/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml
@@ -28,12 +28,12 @@
<button label="プロフィール" name="info_btn" tool_tip="オブジェクトのプロフィールを表示する"/>
</layout_panel>
<layout_panel name="share_btn_lp">
- <button label="共有" name="share_btn" tool_tip="インベントリのアイテムを共有する"/>
+ <button label="共有" name="share_btn" tool_tip="「持ち物」のアイテムを共有する"/>
</layout_panel>
<layout_panel name="shop_btn_lp">
- <button label="店" name="shop_btn" tool_tip="マーケットプレイスのサイトを開く"/>
+ <button label="ショッピング" name="shop_btn" tool_tip="マーケットプレイスのサイトを開く"/>
<button label="装着" name="wear_btn" tool_tip="選択したアウトフィットを着用する"/>
- <button label="プレイ" name="play_btn"/>
+ <button label="再生" name="play_btn"/>
<button label="テレポート" name="teleport_btn" tool_tip="該当するエリアにテレポートする"/>
</layout_panel>
</layout_stack>
diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml
index 36966d6825..88fb652399 100755
--- a/indra/newview/skins/default/xui/ja/strings.xml
+++ b/indra/newview/skins/default/xui/ja/strings.xml
@@ -37,6 +37,44 @@
<string name="StartupRequireDriverUpdate">
グラフィックを初期化できませんでした。グラフィックドライバを更新してください。
</string>
+ <string name="AboutHeader">
+ [APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL])[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
+ </string>
+ <string name="AboutCompiler">
+ コンパイラー [COMPILER] [COMPILER_VERSION] バージョン
+ </string>
+ <string name="AboutPosition">
+ あなたの現在地は、[POSITION_LOCAL_0,number,1]、[POSITION_LOCAL_1,number,1]、[POSITION_LOCAL_2,number,1] の [REGION] です。位置は &lt;nolink&gt;[HOSTNAME]&lt;/nolink&gt; です。([HOSTIP])
+SLURL:&lt;nolink&gt;[SLURL]&lt;/nolink&gt;
+(グローバル座標 [POSITION_0,number,1]、[POSITION_1,number,1]、[POSITION_2,number,1])
+[SERVER_VERSION]
+[SERVER_RELEASE_NOTES_URL]
+ </string>
+ <string name="AboutSystem">
+ CPU:[CPU]
+メモリ:[MEMORY_MB] MB
+OS バージョン:[OS_VERSION]
+グラフィックカード製造元:[GRAPHICS_CARD_VENDOR]
+グラフィックカード:[GRAPHICS_CARD]
+ </string>
+ <string name="AboutDriver">
+ Windows グラフィックドライババージョン:[GRAPHICS_DRIVER_VERSION]
+ </string>
+ <string name="AboutLibs">
+ OpenGL バージョン:[OPENGL_VERSION]
+
+libcurl バージョン:[LIBCURL_VERSION]
+J2C デコーダバージョン:[J2C_VERSION]
+オーディオドライババージョン:[AUDIO_DRIVER_VERSION]
+Qt Webkit バージョン:[QT_WEBKIT_VERSION]
+ボイスサーバーバージョン:[VOICE_VERSION]
+ </string>
+ <string name="AboutTraffic">
+ パケットロス:[PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
+ </string>
+ <string name="ErrorFetchingServerReleaseNotesURL">
+ サーバーのリリースノートの URL を取得中にエラーが発生しました。
+ </string>
<string name="ProgressRestoring">
復元中です...
</string>
@@ -937,15 +975,15 @@ support@secondlife.com にお問い合わせください。
<string name="ControlYourCamera">
カメラのコントロール
</string>
+ <string name="TeleportYourAgent">
+ あなたをテレポート
+ </string>
<string name="NotConnected">
接続されていません
</string>
<string name="AgentNameSubst">
(あなた)
</string>
- <string name="TeleportYourAgent">
- あなたをテレポート
- </string>
<string name="JoinAnExperience">
体験に参加する
</string>
@@ -1270,8 +1308,7 @@ support@secondlife.com にお問い合わせください。
<string name="InventoryInboxNoItems">
マーケットプレイスで購入した商品はここに表示されます。その後、アイテムをインベントリにドラッグすれば、それらのアイテムを使用できます。
</string>
- <string name="Unconstrained">非拘束</string>
- <string name="MarketplaceURL">
+ <string name="MarketplaceURL">
https://marketplace.[MARKETPLACE_DOMAIN_NAME]/
</string>
<string name="MarketplaceURL_CreateStore">
@@ -1300,6 +1337,18 @@ support@secondlife.com にお問い合わせください。
<string name="InventoryOutboxNoItems">
[[MARKETPLACE_DASHBOARD_URL] マーケットプレイス]に販売するアイテムを一覧するには、フォルダをこのエリアにドラッグし、「マーケットプレイスに送信」をクリックします。
</string>
+ <string name="InventoryOutboxInitializingTitle">
+ マーケットプレイスの初期化。
+ </string>
+ <string name="InventoryOutboxInitializing">
+ [[MARKETPLACE_CREATE_STORE_URL] マーケットプレイス ストア] のアカウントにアクセスしています。
+ </string>
+ <string name="InventoryOutboxErrorTitle">
+ マーケットプレイス エラー。
+ </string>
+ <string name="InventoryOutboxError">
+ [[MARKETPLACE_CREATE_STORE_URL] マーケットプレイス ストア] がエラーを返しています。
+ </string>
<string name="Marketplace Error None">
エラーなし
</string>
@@ -1327,6 +1376,9 @@ support@secondlife.com にお問い合わせください。
<string name="Open landmarks">
ランドマークを開く
</string>
+ <string name="Unconstrained">
+ 非拘束
+ </string>
<string name="no_transfer" value=" (再販・プレゼント不可)"/>
<string name="no_modify" value=" (編集不可)"/>
<string name="no_copy" value=" (コピー不可)"/>
@@ -1727,6 +1779,9 @@ support@secondlife.com にお問い合わせください。
<string name="CompileQueueDownloadedCompiling">
ダウンロード完了、コンパイル中
</string>
+ <string name="CompileQueueServiceUnavailable">
+ スクリプト コンパイル サービスを利用できません
+ </string>
<string name="CompileQueueScriptNotFound">
サーバー上にスクリプトが見つかりません。
</string>
diff --git a/indra/newview/skins/default/xui/pl/floater_lagmeter.xml b/indra/newview/skins/default/xui/pl/floater_lagmeter.xml
new file mode 100644
index 0000000000..8038550bcb
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/floater_lagmeter.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="POMIAR LAGÓW">
+ <floater.string name="max_title_msg">
+ Pomiar lagów
+ </floater.string>
+ <floater.string name="max_width_px">
+ 360
+ </floater.string>
+ <floater.string name="min_title_msg">
+ Lag
+ </floater.string>
+ <floater.string name="min_width_px">
+ 90
+ </floater.string>
+ <floater.string name="client_text_msg">
+ Klient
+ </floater.string>
+ <floater.string name="client_frame_rate_critical_fps">
+ 10
+ </floater.string>
+ <floater.string name="client_frame_rate_warning_fps">
+ 15
+ </floater.string>
+ <floater.string name="client_frame_time_window_bg_msg">
+ W normie, okno w tle
+ </floater.string>
+ <floater.string name="client_frame_time_critical_msg">
+ Ilość klatek na sekundę klienta poniżej [CLIENT_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="client_frame_time_warning_msg">
+ Ilość klatek na sekundę pomiędzy [CLIENT_FRAME_RATE_CRITICAL] i [CLIENT_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string name="client_frame_time_normal_msg">
+ W normie
+ </floater.string>
+ <floater.string name="client_draw_distance_cause_msg">
+ Przyczyna: dystans rysowania jest za wysoki
+ </floater.string>
+ <floater.string name="client_texture_loading_cause_msg">
+ Przyczyna: ładowanie obrazu
+ </floater.string>
+ <floater.string name="client_texture_memory_cause_msg">
+ Przyczyna: za dużo obrazów w pamięci
+ </floater.string>
+ <floater.string name="client_complex_objects_cause_msg">
+ Przyczyna: za dużo złożonych obiektów
+ </floater.string>
+ <floater.string name="network_text_msg">
+ Sieć
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_pct">
+ 10
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_pct">
+ 5
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_msg">
+ Utrata pakietów przekracza [NETWORK_PACKET_LOSS_CRITICAL]%
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_msg">
+ Utrata pakietów przekracza [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]%
+ </floater.string>
+ <floater.string name="network_performance_normal_msg">
+ W normie
+ </floater.string>
+ <floater.string name="network_ping_critical_ms">
+ 600
+ </floater.string>
+ <floater.string name="network_ping_warning_ms">
+ 300
+ </floater.string>
+ <floater.string name="network_ping_critical_msg">
+ Fatalny ping - [NETWORK_PING_CRITICAL] ms
+ </floater.string>
+ <floater.string name="network_ping_warning_msg">
+ Wolny ping - [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+ </floater.string>
+ <floater.string name="network_packet_loss_cause_msg">
+ Złe połączenie lub przepustowość.
+ </floater.string>
+ <floater.string name="network_ping_cause_msg">
+ Złe połączenie lub aplikacja współdzieląca pliki.
+ </floater.string>
+ <floater.string name="server_text_msg">
+ Serwer
+ </floater.string>
+ <floater.string name="server_frame_rate_critical_fps">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_rate_warning_fps">
+ 30
+ </floater.string>
+ <floater.string name="server_single_process_max_time_ms">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_time_critical_msg">
+ Ilość klatek na sekundę poniżej [SERVER_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="server_frame_time_warning_msg">
+ Ilość klatek na sekundę pomiędzy [SERVER_FRAME_RATE_CRITICAL] i [SERVER_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string name="server_frame_time_normal_msg">
+ W normie
+ </floater.string>
+ <floater.string name="server_physics_cause_msg">
+ Przyczyna: za dużo obiektów fizycznych
+ </floater.string>
+ <floater.string name="server_scripts_cause_msg">
+ Przyczyna: za dużo obieków skryptowanych
+ </floater.string>
+ <floater.string name="server_net_cause_msg">
+ Przyczyna: za duży ruch w sieci
+ </floater.string>
+ <floater.string name="server_agent_cause_msg">
+ Przyczyna: za dużo poruszających się awatarów w regionie
+ </floater.string>
+ <floater.string name="server_images_cause_msg">
+ Przyczyna: za dużo kalkulacji obrazu
+ </floater.string>
+ <floater.string name="server_generic_cause_msg">
+ Przyczyna: symulator ładuje się zbyt powoli
+ </floater.string>
+ <floater.string name="smaller_label">
+ &gt;&gt;
+ </floater.string>
+ <floater.string name="bigger_label">
+ &lt;&lt;
+ </floater.string>
+ <button label="" label_selected="" name="client_lagmeter" tool_tip="Status lagów klienta"/>
+ <text name="client">
+ Klient
+ </text>
+ <text name="client_text">
+ W normie
+ </text>
+ <button label="" label_selected="" name="network_lagmeter" tool_tip="Network lag status"/>
+ <text name="network">
+ Sieć
+ </text>
+ <text name="network_text">
+ W normie
+ </text>
+ <button label="" label_selected="" name="server_lagmeter" tool_tip="Server lag status"/>
+ <text name="server">
+ Serwer
+ </text>
+ <text name="server_text">
+ W normie
+ </text>
+ <button label="&gt;&gt;" name="minimize" tool_tip="Złącz rozmiar pliku xml"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_lagmeter.xml b/indra/newview/skins/default/xui/pt/floater_lagmeter.xml
new file mode 100644
index 0000000000..9932318293
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_lagmeter.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="LAG - Índice">
+ <floater.string name="max_title_msg">
+ Medidor de Atraso
+ </floater.string>
+ <floater.string name="max_width_px">
+ 360
+ </floater.string>
+ <floater.string name="min_title_msg">
+ Atraso
+ </floater.string>
+ <floater.string name="min_width_px">
+ 90
+ </floater.string>
+ <floater.string name="client_text_msg">
+ Cliente
+ </floater.string>
+ <floater.string name="client_frame_rate_critical_fps">
+ 10
+ </floater.string>
+ <floater.string name="client_frame_rate_warning_fps">
+ 15
+ </floater.string>
+ <floater.string name="client_frame_time_window_bg_msg">
+ Normal, janela por baixo
+ </floater.string>
+ <floater.string name="client_frame_time_critical_msg">
+ Taxa de quadros do Cliente abaixo de [CLIENT_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="client_frame_time_warning_msg">
+ Taxa de quadros do Cliente entre [CLIENT_FRAME_RATE_CRITICAL] e [CLIENT_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string name="client_frame_time_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string name="client_draw_distance_cause_msg">
+ Causa possível: Distância de desenho ajustada muito alta
+ </floater.string>
+ <floater.string name="client_texture_loading_cause_msg">
+ Causa possível: Carregamento de Imagens
+ </floater.string>
+ <floater.string name="client_texture_memory_cause_msg">
+ Causa possível: Muitas imagens na memória
+ </floater.string>
+ <floater.string name="client_complex_objects_cause_msg">
+ Causa possível: Muitos objetos complexos na cena
+ </floater.string>
+ <floater.string name="network_text_msg">
+ Rede
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_pct">
+ 10
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_pct">
+ 5
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_msg">
+ Conexão está caindo para cerca de [NETWORK_PACKET_LOSS_CRITICAL]% de pacotes
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_msg">
+ Conexão está caindo [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]% de pacotes
+ </floater.string>
+ <floater.string name="network_performance_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string name="network_ping_critical_ms">
+ 600
+ </floater.string>
+ <floater.string name="network_ping_warning_ms">
+ 300
+ </floater.string>
+ <floater.string name="network_ping_critical_msg">
+ Tempo de conexão de ping é cerca de [NETWORK_PING_CRITICAL] ms
+ </floater.string>
+ <floater.string name="network_ping_warning_msg">
+ Tempo de conexão de ping é [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+ </floater.string>
+ <floater.string name="network_packet_loss_cause_msg">
+ Possível conexão ruim ou &apos;Largura de Banda&apos; escolhida muito alta.
+ </floater.string>
+ <floater.string name="network_ping_cause_msg">
+ Possível conexão ruim ou aplicativos compartilhando arquivos.
+ </floater.string>
+ <floater.string name="server_text_msg">
+ Servidor
+ </floater.string>
+ <floater.string name="server_frame_rate_critical_fps">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_rate_warning_fps">
+ 30
+ </floater.string>
+ <floater.string name="server_single_process_max_time_ms">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_time_critical_msg">
+ Taxa de quadros abaixo de [SERVER_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="server_frame_time_warning_msg">
+ Taxa de quadros entre [SERVER_FRAME_RATE_CRITICAL] e [SERVER_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string name="server_frame_time_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string name="server_physics_cause_msg">
+ Causa possível: Muitos objetos físicos
+ </floater.string>
+ <floater.string name="server_scripts_cause_msg">
+ Causa possível: Muitos objetos com scripts
+ </floater.string>
+ <floater.string name="server_net_cause_msg">
+ Causa possível: Muito tráfego na rede
+ </floater.string>
+ <floater.string name="server_agent_cause_msg">
+ Causa possível: Muitas pessoas se movendo na região
+ </floater.string>
+ <floater.string name="server_images_cause_msg">
+ Causa possível: Muitos cálculos de imagem
+ </floater.string>
+ <floater.string name="server_generic_cause_msg">
+ Causa possível: Carga no simulador muito pesada
+ </floater.string>
+ <floater.string name="smaller_label">
+ &gt;&gt;
+ </floater.string>
+ <floater.string name="bigger_label">
+ &lt;&lt;
+ </floater.string>
+ <button label="" label_selected="" name="client_lagmeter" tool_tip="Status de atraso no Cliente"/>
+ <text name="client">
+ Cliente
+ </text>
+ <text font="SansSerifSmall" name="client_text">
+ Normal
+ </text>
+ <text left="30" name="client_lag_cause" right="-10"/>
+ <button label="" label_selected="" name="network_lagmeter" tool_tip="Status de atraso na rede"/>
+ <text name="network">
+ Rede
+ </text>
+ <text font="SansSerifSmall" name="network_text">
+ Normal
+ </text>
+ <text left="30" name="network_lag_cause" right="-10"/>
+ <button label="" label_selected="" name="server_lagmeter" tool_tip="Status de atraso no servidor"/>
+ <text name="server">
+ Servidor
+ </text>
+ <text font="SansSerifSmall" name="server_text">
+ Normal
+ </text>
+ <text left="30" name="server_lag_cause" right="-32"/>
+ <button label="&gt;&gt;" name="minimize" tool_tip="Alternar o tamanho da janela"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_region_restarting.xml b/indra/newview/skins/default/xui/pt/floater_region_restarting.xml
new file mode 100644
index 0000000000..7fd13c0d75
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_region_restarting.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="region_restarting" title="REINICIANDO REGIÃO">
+ <string name="RegionName">
+ A região na qual você está ([NAME]) está prestes a ser reiniciada.
+
+Se permanecer aqui, você será desconectado.
+ </string>
+ <string name="RestartSeconds">
+ Segundos até o reinício
+[SECONDS]
+ </string>
+ <panel name="layout_panel_1">
+ <text name="region_name">
+ A região na qual você está (-Nome mais longo da região-) está prestes a ser reiniciada.
+
+Se permanecer aqui, você será desconectado.
+ </text>
+ <text name="restart_seconds">
+ Segundos até o reinício
+ 32767
+ </text>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_scene_load_stats.xml b/indra/newview/skins/default/xui/pt/floater_scene_load_stats.xml
new file mode 100644
index 0000000000..027e1ef311
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_scene_load_stats.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Scene Load Statistics" title="ESTATÍSTICAS DE CARREGAMENTO DE CENA">
+ <button label="Pausar" name="playpause"/>
+ <scroll_container name="statistics_scroll">
+ <container_view name="statistics_view">
+ <stat_view label="Básico" name="basic">
+ <stat_bar label="Diferença de frame em pixels" name="frame difference"/>
+ <stat_bar label="Dados de UDP recebidos" name="bandwidth"/>
+ <stat_bar label="Bandwidth" name="packet_loss"/>
+ </stat_view>
+ <stat_view label="Avançado" name="advanced">
+ <stat_view label="Render" name="render">
+ <stat_bar label="Total Objects" name="objs"/>
+ <stat_bar label="New Objects" name="newobjs"/>
+ <stat_bar label="Taxa de acertos do cache do objeto" name="object_cache_hits"/>
+ </stat_view>
+ <stat_view label="Textura" name="texture">
+ <stat_bar label="Taxa de acertos do cache" name="texture_cache_hits"/>
+ <stat_bar label="Latência de leitura do cache" name="texture_cache_read_latency"/>
+ <stat_bar label="Contagem" name="numimagesstat"/>
+ <stat_bar label="Raw Count" name="numrawimagesstat"/>
+ </stat_view>
+ <stat_view label="Network" name="network">
+ <stat_bar label="Packets In" name="packetsinstat"/>
+ <stat_bar label="Packets Out" name="packetsoutstat"/>
+ <stat_bar label="Objetos" name="objectdatareceived"/>
+ <stat_bar label="Textura" name="texturedatareceived"/>
+ <stat_bar label="Asset" name="assetudpdatareceived"/>
+ <stat_bar label="Layers" name="layersdatareceived"/>
+ <stat_bar label="Actual In" name="messagedatain"/>
+ <stat_bar label="Actual Out" name="messagedataout"/>
+ <stat_bar label="Operações pendentes do VFS" name="vfspendingoperations"/>
+ </stat_view>
+ </stat_view>
+ <stat_view label="Simulator" name="sim">
+ <stat_bar label="Objetos" name="simobjects"/>
+ <stat_bar label="Active Objects" name="simactiveobjects"/>
+ <stat_bar label="Active Scripts" name="simactivescripts"/>
+ <stat_bar label="Packets In" name="siminpps"/>
+ <stat_bar label="Packets Out" name="simoutpps"/>
+ <stat_bar label="Pending Downloads" name="simpendingdownloads"/>
+ <stat_bar label="Pending Uploads" name="simpendinguploads"/>
+ <stat_bar label="Total Unacked Bytes" name="simtotalunackedbytes"/>
+ <stat_view label="Time (ms)" name="simperf">
+ <stat_bar label="Total Frame Time" name="simframemsec"/>
+ <stat_bar label="Net Time" name="simnetmsec"/>
+ <stat_bar label="Physics Time" name="simsimphysicsmsec"/>
+ <stat_bar label="Simulation Time" name="simsimothermsec"/>
+ <stat_bar label="Agent Time" name="simagentmsec"/>
+ <stat_bar label="Images Time" name="simimagesmsec"/>
+ <stat_bar label="Script Time" name="simscriptmsec"/>
+ <stat_bar label="Tempo restante" name="simsparemsec"/>
+ <stat_view label="Detalhes de tempo (ms)" name="timedetails">
+ <stat_bar label="Etapa física" name="simsimphysicsstepmsec"/>
+ <stat_bar label="Atualizar formas físicas" name="simsimphysicsshapeupdatemsec"/>
+ <stat_bar label="Física - outros" name="simsimphysicsothermsec"/>
+ <stat_bar label="Tempo de espera" name="simsleepmsec"/>
+ <stat_bar label="Bombear ES" name="simpumpiomsec"/>
+ </stat_view>
+ </stat_view>
+ </stat_view>
+ </container_view>
+ </scroll_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_stats.xml b/indra/newview/skins/default/xui/pt/floater_stats.xml
index be53624145..ef3307f54a 100755
--- a/indra/newview/skins/default/xui/pt/floater_stats.xml
+++ b/indra/newview/skins/default/xui/pt/floater_stats.xml
@@ -4,17 +4,20 @@
<container_view name="statistics_view">
<stat_view label="Básico" name="basic">
<stat_bar label="FPS" name="fps"/>
- <stat_bar label="Bandwidth" name="bandwidth"/>
+ <stat_bar label="Dados de UDP recebidos" name="bandwidth"/>
<stat_bar label="Bandwidth" name="packet_loss"/>
<stat_bar label="Ping Sim" name="ping"/>
</stat_view>
<stat_view label="Avançado" name="advanced">
<stat_view label="Render" name="render">
- <stat_bar label="KTris desenhados por quadro" name="ktrisframe"/>
- <stat_bar label="KTris desenhados por segundo" name="ktrissec"/>
+ <stat_bar label="KTris por quadro" name="ktrisframe"/>
+ <stat_bar label="KTris por segundo" name="ktrissec"/>
<stat_bar label="Total Objects" name="objs"/>
<stat_bar label="New Objects" name="newobjs"/>
<stat_bar label="Taxa de acertos do cache do objeto" name="object_cache_hits"/>
+ <stat_bar label="Consultas de oclusão realizadas" name="occlusion_queries"/>
+ <stat_bar label="Objetos ocultos" name="occluded"/>
+ <stat_bar label="Objeto não oculto" name="unoccluded"/>
</stat_view>
<stat_view label="Texture" name="texture">
<stat_bar label="Taxa de acertos do cache" name="texture_cache_hits"/>
@@ -26,15 +29,32 @@
<stat_bar label="Raw Mem" name="rawmemstat"/>
<stat_bar label="Bound Mem" name="glboundmemstat"/>
</stat_view>
+ <stat_view label="Uso de memória" name="memory">
+ <stat_bar label="LLTrace" name="LLTrace"/>
+ <stat_bar label="Interface" name="LLView"/>
+ <stat_bar label="Fontes" name="LLFontFreetype"/>
+ <stat_bar label="Inventário" name="LLInventoryObject"/>
+ <stat_bar label="Objetos do visualizador" name="LLViewerObject"/>
+ <stat_bar label="Dados do grupo de octrees" name="LLViewerOctreeGroup"/>
+ <stat_bar label="Dados da octree" name="LLViewerOctreeEntry"/>
+ <stat_bar label="Cache de objetos do visualizador" name="LLVOCacheEntry"/>
+ <stat_bar label="Drawables" name="LLDrawable"/>
+ <stat_bar label="Dados do rosto" name="LLFace"/>
+ <stat_bar label="Informações de desenho" name="LLDrawInfo"/>
+ <stat_bar label="Dados de textura" name="LLTexture"/>
+ <stat_bar label="Dados de imagem" name="LLImage"/>
+ <stat_bar label="Dados de imagem do GL" name="LLImageGL"/>
+ <stat_bar label="Buffers do Vertex" name="LLVertexBuffer"/>
+ </stat_view>
<stat_view label="Rede" name="network">
<stat_bar label="Packets In" name="packetsinstat"/>
<stat_bar label="Packets Out" name="packetsoutstat"/>
- <stat_bar label="Objects" name="objectkbitstat"/>
- <stat_bar label="Texture" name="texturekbitstat"/>
- <stat_bar label="Asset" name="assetkbitstat"/>
- <stat_bar label="Layers" name="layerskbitstat"/>
- <stat_bar label="Actual In" name="actualinkbitstat"/>
- <stat_bar label="Actual Out" name="actualoutkbitstat"/>
+ <stat_bar label="Objetos" name="objectdatareceived"/>
+ <stat_bar label="Textura" name="texturedatareceived"/>
+ <stat_bar label="Asset" name="assetudpdatareceived"/>
+ <stat_bar label="Layers" name="layersdatareceived"/>
+ <stat_bar label="Actual In" name="messagedatain"/>
+ <stat_bar label="Actual Out" name="messagedataout"/>
<stat_bar label="Operações pendentes do VFS" name="vfspendingoperations"/>
</stat_view>
</stat_view>
@@ -53,7 +73,8 @@
<stat_bar label="Etapas de silhueta ignoradas" name="simsimskippedsilhouettesteps"/>
<stat_bar label="Personagens atualizados" name="simsimpctsteppedcharacters"/>
</stat_view>
- <stat_view label="Time (ms)" name="simperf">
+ <stat_bar label="Total de dados não reconhecidos" name="simtotalunackedbytes"/>
+ <stat_view label="Hora" name="simperf">
<stat_bar label="Total Frame Time" name="simframemsec"/>
<stat_bar label="Net Time" name="simnetmsec"/>
<stat_bar label="Physics Time" name="simsimphysicsmsec"/>
@@ -62,7 +83,7 @@
<stat_bar label="Images Time" name="simimagesmsec"/>
<stat_bar label="Script Time" name="simscriptmsec"/>
<stat_bar label="Tempo restante" name="simsparemsec"/>
- <stat_view label="Detalhes de tempo (ms)" name="timedetails">
+ <stat_view label="Detalhes de hora" name="timedetails">
<stat_bar label="Etapa física" name="simsimphysicsstepmsec"/>
<stat_bar label="Atualizar formas físicas" name="simsimphysicsshapeupdatemsec"/>
<stat_bar label="Física - outros" name="simsimphysicsothermsec"/>
diff --git a/indra/newview/skins/default/xui/pt/menu_avatar_icon.xml b/indra/newview/skins/default/xui/pt/menu_avatar_icon.xml
index beba969b7e..f6211790a8 100755
--- a/indra/newview/skins/default/xui/pt/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/pt/menu_avatar_icon.xml
@@ -2,6 +2,7 @@
<menu name="Avatar Icon Menu">
<menu_item_call label="Ver perfil" name="Show Profile"/>
<menu_item_call label="Enviar MI..." name="Send IM"/>
+ <menu_item_call label="Solicitar teletransporte" name="Request Teleport"/>
<menu_item_call label="Adicionar amigo..." name="Add Friend"/>
<menu_item_call label="Remover amigo..." name="Remove Friend"/>
</menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_inventory.xml b/indra/newview/skins/default/xui/pt/menu_inventory.xml
index a3a648eb34..636b356c8b 100755
--- a/indra/newview/skins/default/xui/pt/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/pt/menu_inventory.xml
@@ -70,6 +70,7 @@
<menu_item_call label="Executar som" name="Sound Play"/>
<menu_item_call label="Copiar SLurl" name="url_copy"/>
<menu_item_call label="Sobre o marco" name="About Landmark"/>
+ <menu_item_call label="Mostrar no mapa" name="show_on_map"/>
<menu_item_call label="Executar animação" name="Animation Play"/>
<menu_item_call label="Executar áudio" name="Animation Audition"/>
<menu_item_call label="Mandar MI" name="Send Instant Message"/>
diff --git a/indra/newview/skins/default/xui/pt/menu_login.xml b/indra/newview/skins/default/xui/pt/menu_login.xml
index cd840f3137..29dae6292a 100755
--- a/indra/newview/skins/default/xui/pt/menu_login.xml
+++ b/indra/newview/skins/default/xui/pt/menu_login.xml
@@ -5,7 +5,15 @@
<menu_item_call label="Sair do [APP_NAME]" name="Quit"/>
</menu>
<menu label="Ajuda" name="Help">
- <menu_item_call label="Ajuda do [SECOND_LIFE]" name="Second Life Help"/>
+ <menu_item_call label="Como..." name="How To"/>
+ <menu_item_call label="Início rápido" name="Quickstart"/>
+ <menu_item_call label="Base de conhecimento" name="Knowledge Base"/>
+ <menu_item_call label="Wiki" name="Wiki"/>
+ <menu_item_call label="Fóruns da comunidade" name="Community Forums"/>
+ <menu_item_call label="Portal de suporte" name="Support portal"/>
+ <menu_item_call label="Notícias do [SECOND_LIFE]" name="Second Life News"/>
+ <menu_item_call label="Blogs do [SECOND_LIFE]" name="Second Life Blogs"/>
+ <menu_item_call label="Relatar bug" name="Report Bug"/>
<menu_item_call label="Sobre [APP_NAME]" name="About Second Life"/>
</menu>
<menu_item_check label="Exibir menu de depuração" name="Show Debug Menu"/>
diff --git a/indra/newview/skins/default/xui/pt/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/pt/menu_teleport_history_item.xml
index ec1e7a0950..3a2b3a8847 100755
--- a/indra/newview/skins/default/xui/pt/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/pt/menu_teleport_history_item.xml
@@ -2,5 +2,5 @@
<context_menu name="Teleport History Item Context Menu">
<menu_item_call label="Teletransportar" name="Teleport"/>
<menu_item_call label="Mais informações" name="More Information"/>
- <menu_item_call label="Copiar" name="CopyToClipboard"/>
+ <menu_item_call label="Copiar SLurl" name="CopyToClipboard"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_viewer.xml b/indra/newview/skins/default/xui/pt/menu_viewer.xml
index e6eceb5f2f..d106c47c64 100755
--- a/indra/newview/skins/default/xui/pt/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/pt/menu_viewer.xml
@@ -72,11 +72,11 @@
<menu_item_check label="Menu avançado" name="Show Advanced Menu"/>
</menu>
<menu label="Sol" name="Sun">
- <menu_item_call label="Amanhecer" name="Sunrise"/>
- <menu_item_call label="Meio-dia" name="Noon"/>
- <menu_item_call label="Pôr-do-sol" name="Sunset"/>
- <menu_item_call label="Meia-noite" name="Midnight"/>
- <menu_item_call label="Usar configurações da região" name="Use Region Settings"/>
+ <menu_item_check label="Amanhecer" name="Sunrise"/>
+ <menu_item_check label="Meio-dia" name="Noon"/>
+ <menu_item_check label="Pôr-do-sol" name="Sunset"/>
+ <menu_item_check label="Meia-noite" name="Midnight"/>
+ <menu_item_check label="Usar configurações da região" name="Use Region Settings"/>
</menu>
<menu label="Editor de ambientes" name="Environment Editor">
<menu_item_call label="Configurações do ambiente..." name="Environment Settings"/>
@@ -165,8 +165,6 @@
</menu>
<menu label="Ajuda" name="Help">
<menu_item_call label="Como..." name="How To"/>
- <menu_item_call label="[SECOND_LIFE] Ajuda" name="Second Life Help"/>
- <menu_item_call label="Guia do usuário" name="User’s guide"/>
<menu_item_call label="Base de conhecimento" name="Knowledge Base"/>
<menu_item_call label="Wiki" name="Wiki"/>
<menu_item_call label="Fóruns da comunidade" name="Community Forums"/>
@@ -188,6 +186,7 @@
<menu label="Ferramentas de desempenho" name="Performance Tools">
<menu_item_call label="Medidor de lag" name="Lag Meter"/>
<menu_item_check label="Barra de estatísticas" name="Statistics Bar"/>
+ <menu_item_call label="Estatísticas de carregamento de cena" name="Scene Load Statistics"/>
<menu_item_check label="Mostrar peso do desenho para avatares" name="Avatar Rendering Cost"/>
</menu>
<menu label="Realces e visibilidade" name="Highlighting and Visibility">
@@ -249,6 +248,7 @@
<menu_item_check label="Tempos" name="Fast Timers"/>
<menu_item_check label="Memória" name="Memory"/>
<menu_item_check label="Estatísticas da cena" name="Scene Statistics"/>
+ <menu_item_check label="Monitor de carregamento de cena" name="Scene Loading Monitor"/>
<menu_item_call label="Painel de depuração de obtenção de textura" name="Texture Fetch Debug Console"/>
<menu_item_call label="Region Info to Debug Console" name="Region Info to Debug Console"/>
<menu_item_check label="Câmera:" name="Camera"/>
@@ -280,6 +280,7 @@
<menu_item_check label="Taxa de quadros aleatória" name="Randomize Framerate"/>
<menu_item_check label="Frame Test" name="Frame Test"/>
<menu_item_call label="Perfil do quadro" name="Frame Profile"/>
+ <menu_item_call label="Benchmark" name="Benchmark"/>
</menu>
<menu label="Render Metadata" name="Render Metadata">
<menu_item_check label="Normais" name="Normals"/>
@@ -287,6 +288,7 @@
<menu_item_check label="Tipo de atualização" name="Update Type"/>
<menu_item_check label="Dados LOD" name="LOD Info"/>
<menu_item_check label="Fila de construção" name="Build Queue"/>
+ <menu_item_check label="Junções" name="Joints"/>
<menu_item_check label="Vetores de vento" name="Wind Vectors"/>
<menu_item_check label="Renderizar complexidade" name="rendercomplexity"/>
<menu_item_check label="Bytes do anexo" name="attachment bytes"/>
@@ -312,6 +314,7 @@
<menu_item_check label="Render Attached Lights" name="Render Attached Lights"/>
<menu_item_check label="Render Attached Particles" name="Render Attached Particles"/>
<menu_item_check label="Objetos iridescentes" name="Hover Glow Objects"/>
+ <menu_item_call label="Limpar cache imediatamente" name="Cache Clear"/>
</menu>
<menu label="Rede" name="Network">
<menu_item_check label="Pausar avatar" name="AgentPause"/>
@@ -327,7 +330,6 @@
<menu_item_call label="Teste de mídia do navegador" name="Web Browser Test"/>
<menu_item_call label="Navegador de conteúdo web" name="Web Content Browser"/>
<menu_item_call label="Print Selected Object Info" name="Print Selected Object Info"/>
- <menu_item_check label="Console de depuração de região" name="Region Debug Console"/>
<menu_item_check label="Debug Clicks" name="Debug Clicks"/>
<menu_item_check label="Debug Mouse Events" name="Debug Mouse Events"/>
</menu>
diff --git a/indra/newview/skins/default/xui/pt/notifications.xml b/indra/newview/skins/default/xui/pt/notifications.xml
index d5096ec858..4e6b0765cb 100755
--- a/indra/newview/skins/default/xui/pt/notifications.xml
+++ b/indra/newview/skins/default/xui/pt/notifications.xml
@@ -113,15 +113,15 @@ Consulte o [[MARKETPLACE_IMPORTS_URL] log de erros] para mais informações.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="OutboxImportFailed">
- Falha de transferência
+ Falha na transferência com o erro &apos;[ERROR_CODE]&apos;
-Nenhuma pasta enviada para o Mercado devido a um erro do sistema ou da rede. Tente novamente mais tarde.
+Nenhuma pasta foi enviada ao Marketplace devido a um erro do sistema ou da rede. Tente novamente mais tarde.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="OutboxInitFailed">
- Falha na inicialização do Mercado
+ Falha na inicialização do Marketplace com o erro &apos;[ERROR_CODE]&apos;
-Falha na inicialização do mercado devido a um erro do sistema ou da rede. Tente novamente mais tarde.
+Ocorreu uma falha na inicialização do Marketplace devido a um erro do sistema ou da rede. Tente novamente mais tarde.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="CompileQueueSaveText">
@@ -1722,6 +1722,10 @@ Por favor volte mais tarde.
Tem certeza de quer ser teletransportado para &lt;nolink&gt;[LOCATION]&lt;/nolink&gt;?
<usetemplate ignoretext="Confirmar se eu quero ser teletransportado para marcos" name="okcancelignore" notext="Cancelar" yestext="Teletransportar"/>
</notification>
+ <notification name="TeleportViaSLAPP">
+ Tem certeza de quer ser teletransportado para &lt;nolink&gt;[LOCATION]&lt;/nolink&gt;?
+ <usetemplate ignoretext="Confirmo que desejo me teleportar via SLAPP" name="okcancelignore" notext="Cancelar" yestext="Teletransportar"/>
+ </notification>
<notification name="TeleportToPick">
Teletransportar para [PICK]?
<usetemplate ignoretext="Confirmar se eu quero ser teletransportado para Destaques" name="okcancelignore" notext="Cancelar" yestext="Teletransportar"/>
@@ -1932,6 +1936,9 @@ Isto mudará milhares de regiões e fará o spaceserver soluçar.
<notification name="ProblemAddingEstateManager">
Problemas em adicionar um novo gerente da propriedade. Uma ou mais propriedades podem ter uma lista de gerentes cheia.
</notification>
+ <notification name="ProblemAddingEstateBanManager">
+ Não é possível adicionar proprietários ou gerentes de terreno à lista de bloqueio.
+ </notification>
<notification name="ProblemAddingEstateGeneric">
Problemas em adicionar a esta lista de propriedades. Uma ou mais propriedades podem ter uma lista cheia.
</notification>
@@ -3012,19 +3019,25 @@ Mais detalhes no log.
Não foi possível obter o recurso &apos;[CAPABILITY]&apos; da região.
</notification>
<notification name="ShareItemsConfirmation">
- Tem certeza de que quer compartilhar os itens abaixo?
+ Tem certeza de que deseja compartilhar os itens abaixo?
&lt;nolink&gt;[ITEMS]&lt;/nolink&gt;
Com os seguintes residentes:
-[RESIDENTS]
+&lt;nolink&gt;[RESIDENTS]&lt;/nolink&gt;
<usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
</notification>
<notification name="ShareFolderConfirmation">
- Apenas uma pasta pode ser compartilhada por vez.
+ É possível compartilhar apenas uma pasta de cada vez.
+
+Tem certeza de que deseja compartilhar os itens abaixo?
+
+&lt;nolink&gt;[ITEMS]&lt;/nolink&gt;
-Tem certeza de que quer compartilhar os itens abaixo?
+Com os seguintes residentes:
+
+&lt;nolink&gt;[RESIDENTS]&lt;/nolink&gt;
<usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
</notification>
<notification name="ItemsShared">
@@ -3478,10 +3491,6 @@ Tente novamente em instantes.
<notification name="EjectComingSoon">
Você não tem mais permissão para ficar aqui e tem [EJECT_TIME] segundos para sair.
</notification>
- <notification name="NoEnterServerFull">
- Você não pode entrar nesta região porque
-o servidor está cheio.
- </notification>
<notification name="SaveBackToInvDisabled">
Salvar no inventário foi desativado.
</notification>
@@ -3671,6 +3680,9 @@ o servidor está cheio.
<notification name="LinkFailedTooMuchPhysics">
O objeto usa muitos recursos físicos – sua dinâmica foi desativada.
</notification>
+ <notification name="EstateManagerFailedllTeleportHome">
+ O objeto &apos;[OBJECT_NAME]&apos; em [SLURL] não pode teleportar gerentes de terreno de volta para casa.
+ </notification>
<notification name="TeleportedHomeByObjectOnParcel">
Você foi teletransportado para seu início pelo objeto &apos;[OBJECT_NAME]&apos; no lote &apos;[PARCEL_NAME]&apos;
</notification>
@@ -3861,13 +3873,18 @@ o servidor está cheio.
Não há lotes alugados suficientes na seleção para reunir.
</notification>
<notification name="CantDivideLandMultipleParcelsSelected">
- Não é possível dividir o terreno.\nHá mais de um lote selecionado.\nTente selecionar um pedaço menor de terreno.
+ Não é possível dividir o terreno.
+Mais de um lote foi selecionado.
+Tente selecionar uma quantidade menor de terreno.
</notification>
<notification name="CantDivideLandCantFindParcel">
- Não é possível dividir o terreno.\nNão é possível encontrar o lote.\nComunique isso em Ajuda -&gt; Relatar bug...
+ Não é possível dividir o terreno.
+Não é possível encontrar o lote.
+Reporte em Ajuda -&gt; Relatar bug...
</notification>
<notification name="CantDivideLandWholeParcelSelected">
- Não é possível dividir o terreno. O lote inteiro está selecionado.\nTente selecionar um pedaço menor do terreno.
+ Não é possível dividir o terreno. Todo o lote foi selecionado.
+Tente selecionar uma quantidade menor de terreno.
</notification>
<notification name="LandHasBeenDivided">
O terreno foi dividido.
@@ -4007,4 +4024,8 @@ o servidor está cheio.
Não foi possível mover arquivos. Caminho anterior restaurado.
<usetemplate ignoretext="Não foi possível mover arquivos. Caminho anterior restaurado." name="okignore" yestext="OK"/>
</notification>
+ <notification name="ChatHistoryIsBusyAlert">
+ O arquivo de histórico de bate-papo está ocupado com uma operação anterior. Tente novamente em alguns minutos ou selecione outra pessoa para bater papo.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
</notifications>
diff --git a/indra/newview/skins/default/xui/pt/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/pt/panel_group_info_sidetray.xml
index 30c825723b..7d8531a482 100755
--- a/indra/newview/skins/default/xui/pt/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_info_sidetray.xml
@@ -20,7 +20,7 @@
<layout_panel name="group_accordions">
<accordion name="groups_accordion">
<accordion_tab name="group_general_tab" title="Geral"/>
- <accordion_tab name="group_roles_tab" title="Cargos"/>
+ <accordion_tab name="group_roles_tab" title="Funções e membros"/>
<accordion_tab name="group_notices_tab" title="Avisos"/>
<accordion_tab name="group_land_tab" title="Terrenos/Bens"/>
</accordion>
diff --git a/indra/newview/skins/default/xui/pt/panel_group_roles.xml b/indra/newview/skins/default/xui/pt/panel_group_roles.xml
index 11a31570d1..84d275a8f2 100755
--- a/indra/newview/skins/default/xui/pt/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_roles.xml
@@ -19,8 +19,9 @@
<name_list.columns label="Membro" name="name"/>
<name_list.columns label="Doações" name="donated"/>
<name_list.columns label="Status" name="online"/>
+ <name_list.columns label="Título" name="title"/>
</name_list>
- <button label="Convidar" name="member_invite" />
+ <button label="Convidar" name="member_invite"/>
<button label="Ejetar" name="member_eject"/>
</panel>
<panel label="CARGOS" name="roles_sub_tab">
diff --git a/indra/newview/skins/default/xui/pt/panel_region_debug.xml b/indra/newview/skins/default/xui/pt/panel_region_debug.xml
index be15d40d74..9070563fd0 100755
--- a/indra/newview/skins/default/xui/pt/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/pt/panel_region_debug.xml
@@ -7,11 +7,8 @@
desconhecido
</text>
<check_box label="Desativar scripts" name="disable_scripts_check" tool_tip="Desativar todos os scripts nesta região"/>
- <button label="?" name="disable_scripts_help"/>
<check_box label="Desativar colisões" name="disable_collisions_check" tool_tip="Desabilitar colisões de não-avatares nessa região"/>
- <button label="?" name="disable_collisions_help"/>
<check_box label="Desativar física" name="disable_physics_check" tool_tip="Desativar toda a físíca nesta região"/>
- <button label="?" name="disable_physics_help"/>
<button label="Aplicar" name="apply_btn"/>
<text name="objret_text_lbl" width="130">
Devolver objeto
@@ -31,10 +28,8 @@
<check_box label="Em todas as regiões desta propriedade" name="return_estate_wide" tool_tip="Devolver objetos em todas as regiões que constituem esta propriedade"/>
<button label="Devolver" name="return_btn"/>
<button label="Principais colidentes..." name="top_colliders_btn" tool_tip="Lista dos objetos com maior potencial de colisão" width="280"/>
- <button label="?" left="297" name="top_colliders_help"/>
- <button label="Principais scripts..." name="top_scripts_btn" tool_tip="Lista de objetos que mais passam tempo executando scripts" width="280"/>
- <button label="?" left="297" name="top_scripts_help"/>
<button label="Reiniciar a região" name="restart_btn" tool_tip="Após 2 minutos de contagem regressiva, reiniciar a região"/>
- <button label="?" name="restart_help"/>
+ <button label="Principais scripts..." name="top_scripts_btn" tool_tip="Lista de objetos que mais passam tempo executando scripts" width="280"/>
<button label="Cancelar reinício" name="cancel_restart_btn" tool_tip="Cancelar reinício da região"/>
+ <button label="Console de depuração de região" name="region_debug_console_btn" tool_tip="Abrir console de depuração de região"/>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_region_general.xml b/indra/newview/skins/default/xui/pt/panel_region_general.xml
index 4be1cd11c0..a0d4579a04 100755
--- a/indra/newview/skins/default/xui/pt/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/pt/panel_region_general.xml
@@ -20,12 +20,12 @@
</text>
<check_box label="Bloquear terraplenagem" name="block_terraform_check"/>
<check_box label="Bloquear voos" name="block_fly_check"/>
+ <check_box label="Bloquear sobrevoo no terreno" name="block_fly_over_check" tool_tip="Estender verificações de acesso para cima para evitar que voem sobre um terreno"/>
<check_box label="Permitir dano" name="allow_damage_check"/>
<check_box label="Restringir empurrões" name="restrict_pushobject"/>
<check_box label="Permitir revenda do terreno" name="allow_land_resell_check"/>
<check_box label="Permitir junção/divisão do terreno" name="allow_parcel_changes_check"/>
<check_box label="Bloquear exibição do terreno na busca" name="block_parcel_search_check" tool_tip="Permitir que as pessoas vejam esta região e seus lotes nos resultados de busca"/>
- <check_box label="Permitir objetos mesh" name="mesh_rez_enabled_check" tool_tip="Permitir que que outras pessoas renderizem objectos mesh nessa região"/>
<spinner label="Limite do agente" name="agent_limit_spin"/>
<spinner label="Bônus de objetos" name="object_bonus_spin"/>
<text label="Maturidade" name="access_text">
diff --git a/indra/newview/skins/default/xui/pt/sidepanel_inventory.xml b/indra/newview/skins/default/xui/pt/sidepanel_inventory.xml
index c44345323f..4747d14101 100755
--- a/indra/newview/skins/default/xui/pt/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/pt/sidepanel_inventory.xml
@@ -33,7 +33,7 @@
<layout_panel name="shop_btn_lp">
<button label="Comprar" name="shop_btn" tool_tip="Abrir página do Marketplace"/>
<button label="Vestir" name="wear_btn" tool_tip="Vestir visual selecionado"/>
- <button label="Tocar" name="play_btn"/>
+ <button label="Jogar" name="play_btn"/>
<button label="Teletransportar" name="teleport_btn" tool_tip="Teletransportar para a área selecionada"/>
</layout_panel>
</layout_stack>
diff --git a/indra/newview/skins/default/xui/pt/strings.xml b/indra/newview/skins/default/xui/pt/strings.xml
index 8436452228..a5a3f04f78 100755
--- a/indra/newview/skins/default/xui/pt/strings.xml
+++ b/indra/newview/skins/default/xui/pt/strings.xml
@@ -28,6 +28,45 @@
<string name="StartupRequireDriverUpdate">
Falha na inicialização dos gráficos. Atualize seu driver gráfico!
</string>
+ <string name="AboutHeader">
+ [APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL])
+[[VIEWER_RELEASE_NOTES_URL] [Notas da versão]]
+ </string>
+ <string name="AboutCompiler">
+ Construído com [COMPILER] versão [COMPILER_VERSION]
+ </string>
+ <string name="AboutPosition">
+ Você está em [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1] em [REGION] localizado em &lt;nolink&gt;[HOSTNAME]&lt;/nolink&gt; ([HOSTIP])
+SLURL: &lt;nolink&gt;[SLURL]&lt;/nolink&gt;
+(coordenadas globais [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1])
+[SERVER_VERSION]
+[SERVER_RELEASE_NOTES_URL]
+ </string>
+ <string name="AboutSystem">
+ CPU: [CPU]
+Memória: [MEMORY_MB] MBs
+Versão OS: [OS_VERSION]
+Placa de vídeo: [GRAPHICS_CARD_VENDOR]
+Placa gráfica: [GRAPHICS_CARD]
+ </string>
+ <string name="AboutDriver">
+ Versão do driver de vídeo Windows: [GRAPHICS_CARD_VENDOR]
+ </string>
+ <string name="AboutLibs">
+ Versão OpenGL: [OPENGL_VERSION]
+
+Versão libcurl: [LIBCURL_VERSION]
+Versão J2C Decoder: [J2C_VERSION]
+Versão do driver de áudio: [AUDIO_DRIVER_VERSION]
+Versão Qt Webkit: [QT_WEBKIT_VERSION]
+Versão do servidor de voz: [VOICE_VERSION]
+ </string>
+ <string name="AboutTraffic">
+ Packets Lost: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
+ </string>
+ <string name="ErrorFetchingServerReleaseNotesURL">
+ Erro ao obter URL de notas de versão do servidor.
+ </string>
<string name="ProgressRestoring">
Restaurando...
</string>
@@ -886,12 +925,12 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para
<string name="ControlYourCamera">
Controle sua camera
</string>
- <string name="AgentNameSubst">
- (Você)
- </string>
<string name="TeleportYourAgent">
Teletransportá-lo
</string>
+ <string name="AgentNameSubst">
+ (Você)
+ </string>
<string name="JoinAnExperience">
Participar de uma experiência
</string>
@@ -1216,8 +1255,7 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para
<string name="InventoryInboxNoItems">
Suas compras do Marketplace aparecerão aqui. Depois, você poderá arrastá-las para seu inventário para usá-las.
</string>
- <string name="Unconstrained">Sem limites</string>
- <string name="MarketplaceURL">
+ <string name="MarketplaceURL">
https://marketplace.[MARKETPLACE_DOMAIN_NAME]/
</string>
<string name="MarketplaceURL_CreateStore">
@@ -1246,6 +1284,18 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para
<string name="InventoryOutboxNoItems">
Arraste as pastas para estas áreas e então clique em &quot;Enviar para Mercado&quot; para listar os itens para venda no [[MARKETPLACE_DASHBOARD_URL] Mercado].
</string>
+ <string name="InventoryOutboxInitializingTitle">
+ Inicializando o Marketplace.
+ </string>
+ <string name="InventoryOutboxInitializing">
+ Estamos acessando sua conta na [loja [MARKETPLACE_CREATE_STORE_URL] do Marketplace].
+ </string>
+ <string name="InventoryOutboxErrorTitle">
+ Erros do Marketplace.
+ </string>
+ <string name="InventoryOutboxError">
+ A loja [[MARKETPLACE_CREATE_STORE_URL] no Marketplace] está retornando erros.
+ </string>
<string name="Marketplace Error None">
Sem erros
</string>
@@ -1273,6 +1323,9 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para
<string name="Open landmarks">
Marcos abertos
</string>
+ <string name="Unconstrained">
+ Sem limites
+ </string>
<string name="no_transfer" value="(não transferível)"/>
<string name="no_modify" value="(não modificável)"/>
<string name="no_copy" value="(não copiável)"/>
@@ -1667,6 +1720,9 @@ Pessoas com contas gratuitas não poderão acessar o Second Life no momento para
<string name="CompileQueueDownloadedCompiling">
Baixado, agora compilando
</string>
+ <string name="CompileQueueServiceUnavailable">
+ Serviço de compilação de scripts não disponível
+ </string>
<string name="CompileQueueScriptNotFound">
Script não encontrado no servidor.
</string>
diff --git a/indra/newview/skins/default/xui/ru/floater_lagmeter.xml b/indra/newview/skins/default/xui/ru/floater_lagmeter.xml
new file mode 100644
index 0000000000..c420006a03
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/floater_lagmeter.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="УРОВЕНЬ ЛАГОВ">
+ <floater.string name="max_title_msg">
+ Уровень лагов
+ </floater.string>
+ <floater.string name="max_width_px">
+ 360
+ </floater.string>
+ <floater.string name="min_title_msg">
+ Лаг
+ </floater.string>
+ <floater.string name="min_width_px">
+ 90
+ </floater.string>
+ <floater.string name="client_text_msg">
+ Клиент
+ </floater.string>
+ <floater.string name="client_frame_rate_critical_fps">
+ 10
+ </floater.string>
+ <floater.string name="client_frame_rate_warning_fps">
+ 15
+ </floater.string>
+ <floater.string name="client_frame_time_window_bg_msg">
+ Нормально, окно в фоне
+ </floater.string>
+ <floater.string name="client_frame_time_critical_msg">
+ Частота кадров клиента ниже [CLIENT_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="client_frame_time_warning_msg">
+ Частота кадров клиента от [CLIENT_FRAME_RATE_CRITICAL] до [CLIENT_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string name="client_frame_time_normal_msg">
+ Нормально
+ </floater.string>
+ <floater.string name="client_draw_distance_cause_msg">
+ Возможная причина: дальность отрисовки слишком велика
+ </floater.string>
+ <floater.string name="client_texture_loading_cause_msg">
+ Возможная причина: загрузка изображений
+ </floater.string>
+ <floater.string name="client_texture_memory_cause_msg">
+ Возможная причина: слишком много изображений в памяти
+ </floater.string>
+ <floater.string name="client_complex_objects_cause_msg">
+ Возможная причина: слишком много сложных объектов в сцене
+ </floater.string>
+ <floater.string name="network_text_msg">
+ Сеть
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_pct">
+ 10
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_pct">
+ 5
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_msg">
+ Сеть теряет более [NETWORK_PACKET_LOSS_CRITICAL]% пакетов
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_msg">
+ Сеть теряет [NETWORK_PACKET_LOSS_WARNING]–[NETWORK_PACKET_LOSS_CRITICAL]% пакетов
+ </floater.string>
+ <floater.string name="network_performance_normal_msg">
+ Нормально
+ </floater.string>
+ <floater.string name="network_ping_critical_ms">
+ 600
+ </floater.string>
+ <floater.string name="network_ping_warning_ms">
+ 300
+ </floater.string>
+ <floater.string name="network_ping_critical_msg">
+ Пинг соединения более [NETWORK_PING_CRITICAL] мс
+ </floater.string>
+ <floater.string name="network_ping_warning_msg">
+ Пинг соединения [NETWORK_PING_WARNING]–[NETWORK_PING_CRITICAL] мс
+ </floater.string>
+ <floater.string name="network_packet_loss_cause_msg">
+ Возможно, плохое соединение, или параметр «Ширина канала» слишком велик.
+ </floater.string>
+ <floater.string name="network_ping_cause_msg">
+ Возможно, плохое соединение или есть работающие файлообменные программы.
+ </floater.string>
+ <floater.string name="server_text_msg">
+ Сервер
+ </floater.string>
+ <floater.string name="server_frame_rate_critical_fps">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_rate_warning_fps">
+ 30
+ </floater.string>
+ <floater.string name="server_single_process_max_time_ms">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_time_critical_msg">
+ Частота кадров сервера ниже [SERVER_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="server_frame_time_warning_msg">
+ Частота кадров сервера [SERVER_FRAME_RATE_CRITICAL]–[SERVER_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string name="server_frame_time_normal_msg">
+ Нормально
+ </floater.string>
+ <floater.string name="server_physics_cause_msg">
+ Возможная причина: слишком много физических объектов
+ </floater.string>
+ <floater.string name="server_scripts_cause_msg">
+ Возможная причина: слишком много скриптовых объектов
+ </floater.string>
+ <floater.string name="server_net_cause_msg">
+ Возможная причина: слишком большой сетевой трафик
+ </floater.string>
+ <floater.string name="server_agent_cause_msg">
+ Возможная причина: слишком много людей в регионе
+ </floater.string>
+ <floater.string name="server_images_cause_msg">
+ Возможная причина: слишком много изображений
+ </floater.string>
+ <floater.string name="server_generic_cause_msg">
+ Возможная причина: сервер сильно загружен
+ </floater.string>
+ <floater.string name="smaller_label">
+ &gt;&gt;
+ </floater.string>
+ <floater.string name="bigger_label">
+ &lt;&lt;
+ </floater.string>
+ <button name="client_lagmeter" tool_tip="Уровень лагов клиента"/>
+ <text name="client">
+ Клиент
+ </text>
+ <text name="client_text">
+ Нормально
+ </text>
+ <button name="network_lagmeter" tool_tip="Уровень лагов сети"/>
+ <text name="network">
+ Сеть
+ </text>
+ <text name="network_text">
+ Нормально
+ </text>
+ <button name="server_lagmeter" tool_tip="Уровень лагов сервера"/>
+ <text name="server">
+ Сервер
+ </text>
+ <text name="server_text">
+ Нормально
+ </text>
+ <button label="&gt;&gt;" name="minimize" tool_tip="Переключение размера"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/ru/floater_region_restarting.xml b/indra/newview/skins/default/xui/ru/floater_region_restarting.xml
new file mode 100644
index 0000000000..1b4c0e33dc
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/floater_region_restarting.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="region_restarting" title="ПЕРЕЗАПУСК РЕГИОНА">
+ <string name="RegionName">
+ Регион, в котором вы находитесь ([NAME]), будет перезапущен.
+
+Если вы останетесь в этом регионе, вы выйдете из системы.
+ </string>
+ <string name="RestartSeconds">
+ Секунд до перезапуска
+[SECONDS]
+ </string>
+ <panel name="layout_panel_1">
+ <text name="region_name">
+ Регион, в котором вы находитесь (-длинное название региона-), будет перезапущен.
+
+Если вы останетесь в этом регионе, вы выйдете из системы.
+ </text>
+ <text name="restart_seconds">
+ Секунд до перезапуска
+ 32767
+ </text>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/ru/floater_scene_load_stats.xml b/indra/newview/skins/default/xui/ru/floater_scene_load_stats.xml
new file mode 100644
index 0000000000..a101e62627
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/floater_scene_load_stats.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Scene Load Statistics" title="СТАТИСТИКА ЗАГРУЗКИ СЦЕН">
+ <button label="Пауза" name="playpause"/>
+ <scroll_container name="statistics_scroll">
+ <container_view name="statistics_view">
+ <stat_view label="Основной" name="basic">
+ <stat_bar label="Разница в пикселах на кадр" name="frame difference"/>
+ <stat_bar label="Получены данные UDP" name="bandwidth"/>
+ <stat_bar label="Потери пакетов" name="packet_loss"/>
+ </stat_view>
+ <stat_view label="Расширенный" name="advanced">
+ <stat_view label="Отрисовка" name="render">
+ <stat_bar label="Всего объектов" name="objs"/>
+ <stat_bar label="Новых объектов" name="newobjs"/>
+ <stat_bar label="Частота попаданий в кэш объектов" name="object_cache_hits"/>
+ </stat_view>
+ <stat_view label="Текстура" name="texture">
+ <stat_bar label="Частота попаданий в кэш" name="texture_cache_hits"/>
+ <stat_bar label="Задержка чтения кэша" name="texture_cache_read_latency"/>
+ <stat_bar label="Кол-во" name="numimagesstat"/>
+ <stat_bar label="Необраб. изображений" name="numrawimagesstat"/>
+ </stat_view>
+ <stat_view label="Сеть" name="network">
+ <stat_bar label="Входящие пакеты" name="packetsinstat"/>
+ <stat_bar label="Исходящие пакеты" name="packetsoutstat"/>
+ <stat_bar label="Объекты" name="objectdatareceived"/>
+ <stat_bar label="Текстура" name="texturedatareceived"/>
+ <stat_bar label="Актив" name="assetudpdatareceived"/>
+ <stat_bar label="Слои" name="layersdatareceived"/>
+ <stat_bar label="Действительный ввод" name="messagedatain"/>
+ <stat_bar label="Действительный вывод" name="messagedataout"/>
+ <stat_bar label="Ожидающие операции VFS" name="vfspendingoperations"/>
+ </stat_view>
+ </stat_view>
+ <stat_view label="Симулятор" name="sim">
+ <stat_bar label="Объекты" name="simobjects"/>
+ <stat_bar label="Активные объекты" name="simactiveobjects"/>
+ <stat_bar label="Активные скрипты" name="simactivescripts"/>
+ <stat_bar label="Входящие пакеты" name="siminpps"/>
+ <stat_bar label="Исходящие пакеты" name="simoutpps"/>
+ <stat_bar label="Отложенные загрузки" name="simpendingdownloads"/>
+ <stat_bar label="Отложенные передачи" name="simpendinguploads"/>
+ <stat_bar label="Общий нераспакованный объем (байт)" name="simtotalunackedbytes"/>
+ <stat_view label="Время (мс)" name="simperf">
+ <stat_bar label="Общее время кадра" name="simframemsec"/>
+ <stat_bar label="Чистое время" name="simnetmsec"/>
+ <stat_bar label="Время на физику" name="simsimphysicsmsec"/>
+ <stat_bar label="Время на симуляцию" name="simsimothermsec"/>
+ <stat_bar label="Время на клиент" name="simagentmsec"/>
+ <stat_bar label="Время на изображения" name="simimagesmsec"/>
+ <stat_bar label="Время на скрипт" name="simscriptmsec"/>
+ <stat_bar label="Резервное время" name="simsparemsec"/>
+ <stat_view label="Данные времени (мс)" name="timedetails">
+ <stat_bar label="Шаг физики" name="simsimphysicsstepmsec"/>
+ <stat_bar label="Обновить физ. формы" name="simsimphysicsshapeupdatemsec"/>
+ <stat_bar label="Физика - прочее" name="simsimphysicsothermsec"/>
+ <stat_bar label="Время сна" name="simsleepmsec"/>
+ <stat_bar label="Время ввода/вывода" name="simpumpiomsec"/>
+ </stat_view>
+ </stat_view>
+ </stat_view>
+ </container_view>
+ </scroll_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/ru/floater_stats.xml b/indra/newview/skins/default/xui/ru/floater_stats.xml
index 46426495dc..33a14adca9 100755
--- a/indra/newview/skins/default/xui/ru/floater_stats.xml
+++ b/indra/newview/skins/default/xui/ru/floater_stats.xml
@@ -4,7 +4,7 @@
<container_view name="statistics_view">
<stat_view label="Базовая" name="basic">
<stat_bar label="Кадров/с" name="fps"/>
- <stat_bar label="Ширина канала" name="bandwidth"/>
+ <stat_bar label="Получены данные UDP" name="bandwidth"/>
<stat_bar label="Потери пакетов" name="packet_loss"/>
<stat_bar label="Пинг" name="ping"/>
</stat_view>
@@ -15,6 +15,9 @@
<stat_bar label="Всего объектов" name="objs"/>
<stat_bar label="Новых объектов" name="newobjs"/>
<stat_bar label="Частота попаданий в кэш объектов" name="object_cache_hits"/>
+ <stat_bar label="Выполненные запросы на смыкание" name="occlusion_queries"/>
+ <stat_bar label="Объекты сомкнуты" name="occluded"/>
+ <stat_bar label="Объект разомкнут" name="unoccluded"/>
</stat_view>
<stat_view label="Текстура" name="texture">
<stat_bar label="Частота попаданий в кэш" name="texture_cache_hits"/>
@@ -26,15 +29,32 @@
<stat_bar label="Неформатированная память" name="rawmemstat"/>
<stat_bar label="Ограничение памяти" name="glboundmemstat"/>
</stat_view>
+ <stat_view label="Использование памяти" name="memory">
+ <stat_bar label="LLTrace" name="LLTrace"/>
+ <stat_bar label="Интерфейс пользователя" name="LLView"/>
+ <stat_bar label="Шрифты" name="LLFontFreetype"/>
+ <stat_bar label="Инвентарь" name="LLInventoryObject"/>
+ <stat_bar label="Объекты клиента" name="LLViewerObject"/>
+ <stat_bar label="Данные группы октадеревьев" name="LLViewerOctreeGroup"/>
+ <stat_bar label="Данные октадерева" name="LLViewerOctreeEntry"/>
+ <stat_bar label="Кэш объектов клиента" name="LLVOCacheEntry"/>
+ <stat_bar label="Рисуемые предметы" name="LLDrawable"/>
+ <stat_bar label="Данные лица" name="LLFace"/>
+ <stat_bar label="Информация отрисовки" name="LLDrawInfo"/>
+ <stat_bar label="Данные текстуры" name="LLTexture"/>
+ <stat_bar label="Данные изображения" name="LLImage"/>
+ <stat_bar label="Данные изображения GL" name="LLImageGL"/>
+ <stat_bar label="Вершинные буферы" name="LLVertexBuffer"/>
+ </stat_view>
<stat_view label="Сеть" name="network">
<stat_bar label="Входящие пакеты" name="packetsinstat"/>
<stat_bar label="Исходящие пакеты" name="packetsoutstat"/>
- <stat_bar label="Объекты" name="objectkbitstat"/>
- <stat_bar label="Текстура" name="texturekbitstat"/>
- <stat_bar label="Актив" name="assetkbitstat"/>
- <stat_bar label="Слои" name="layerskbitstat"/>
- <stat_bar label="Действительный ввод" name="actualinkbitstat"/>
- <stat_bar label="Действительный вывод" name="actualoutkbitstat"/>
+ <stat_bar label="Объекты" name="objectdatareceived"/>
+ <stat_bar label="Текстура" name="texturedatareceived"/>
+ <stat_bar label="Актив" name="assetudpdatareceived"/>
+ <stat_bar label="Слои" name="layersdatareceived"/>
+ <stat_bar label="Действительный ввод" name="messagedatain"/>
+ <stat_bar label="Действительный вывод" name="messagedataout"/>
<stat_bar label="Ожидающие операции VFS" name="vfspendingoperations"/>
</stat_view>
</stat_view>
@@ -64,8 +84,8 @@
<stat_bar label="Исходящие пакеты" name="simoutpps"/>
<stat_bar label="Отложенные загрузки" name="simpendingdownloads"/>
<stat_bar label="Отложенные передачи" name="simpendinguploads"/>
- <stat_bar label="Общий нераспакованный объем (байт)" name="simtotalunackedbytes"/>
- <stat_view label="Время (мс)" name="simperf">
+ <stat_bar label="Общий неподтвержденный объем" name="simtotalunackedbytes"/>
+ <stat_view label="Время" name="simperf">
<stat_bar label="Общее время кадра" name="simframemsec"/>
<stat_bar label="Чистое время" name="simnetmsec"/>
<stat_bar label="Время на физику" name="simsimphysicsmsec"/>
@@ -74,7 +94,7 @@
<stat_bar label="Время на изображения" name="simimagesmsec"/>
<stat_bar label="Время на скрипт" name="simscriptmsec"/>
<stat_bar label="Резервное время" name="simsparemsec"/>
- <stat_view label="Данные времени (мс)" name="timedetails">
+ <stat_view label="Данные времени" name="timedetails">
<stat_bar label="Шаг физики" name="simsimphysicsstepmsec"/>
<stat_bar label="Обновить физ. формы" name="simsimphysicsshapeupdatemsec"/>
<stat_bar label="Физика - прочее" name="simsimphysicsothermsec"/>
diff --git a/indra/newview/skins/default/xui/ru/menu_avatar_icon.xml b/indra/newview/skins/default/xui/ru/menu_avatar_icon.xml
index ac2b4be003..049001e8c3 100755
--- a/indra/newview/skins/default/xui/ru/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/ru/menu_avatar_icon.xml
@@ -2,6 +2,7 @@
<menu name="Avatar Icon Menu">
<menu_item_call label="Открыть профиль" name="Show Profile"/>
<menu_item_call label="Отправить сообщение..." name="Send IM"/>
+ <menu_item_call label="Запрос телепортации" name="Request Teleport"/>
<menu_item_call label="Добавить в друзья..." name="Add Friend"/>
<menu_item_call label="Удалить из друзей..." name="Remove Friend"/>
</menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_inventory.xml b/indra/newview/skins/default/xui/ru/menu_inventory.xml
index 37ee19fc1d..308549c254 100755
--- a/indra/newview/skins/default/xui/ru/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/ru/menu_inventory.xml
@@ -70,6 +70,7 @@
<menu_item_call label="Воспроизвести" name="Sound Play"/>
<menu_item_call label="Копировать URL SL" name="url_copy"/>
<menu_item_call label="О закладке" name="About Landmark"/>
+ <menu_item_call label="Показать на карте" name="show_on_map"/>
<menu_item_call label="Проиграть для всех" name="Animation Play"/>
<menu_item_call label="Проиграть для себя" name="Animation Audition"/>
<menu_item_call label="Отправить IM-сообщение" name="Send Instant Message"/>
diff --git a/indra/newview/skins/default/xui/ru/menu_login.xml b/indra/newview/skins/default/xui/ru/menu_login.xml
index 835c4e186e..885f6195b6 100755
--- a/indra/newview/skins/default/xui/ru/menu_login.xml
+++ b/indra/newview/skins/default/xui/ru/menu_login.xml
@@ -5,7 +5,15 @@
<menu_item_call label="Выход из [APP_NAME]" name="Quit"/>
</menu>
<menu label="Справка" name="Help">
- <menu_item_call label="Справка [SECOND_LIFE]" name="Second Life Help"/>
+ <menu_item_call label="Инструкции..." name="How To"/>
+ <menu_item_call label="Краткое руководство" name="Quickstart"/>
+ <menu_item_call label="База знаний" name="Knowledge Base"/>
+ <menu_item_call label="Wiki" name="Wiki"/>
+ <menu_item_call label="Форумы сообщества" name="Community Forums"/>
+ <menu_item_call label="Портал поддержки" name="Support portal"/>
+ <menu_item_call label="Новости [SECOND_LIFE]" name="Second Life News"/>
+ <menu_item_call label="Блоги [SECOND_LIFE]" name="Second Life Blogs"/>
+ <menu_item_call label="Сообщить об ошибке" name="Report Bug"/>
<menu_item_call label="О [APP_NAME]" name="About Second Life"/>
</menu>
<menu_item_check label="Показать меню отладки" name="Show Debug Menu"/>
diff --git a/indra/newview/skins/default/xui/ru/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/ru/menu_teleport_history_item.xml
index 6a22fd00dc..f495d27bf3 100755
--- a/indra/newview/skins/default/xui/ru/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/ru/menu_teleport_history_item.xml
@@ -2,5 +2,5 @@
<context_menu name="Teleport History Item Context Menu">
<menu_item_call label="Телепорт" name="Teleport"/>
<menu_item_call label="Информация" name="More Information"/>
- <menu_item_call label="Копировать в буфер обмена" name="CopyToClipboard"/>
+ <menu_item_call label="Копировать URL SL" name="CopyToClipboard"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/ru/menu_viewer.xml b/indra/newview/skins/default/xui/ru/menu_viewer.xml
index fcb7c4e531..38c31b27b6 100755
--- a/indra/newview/skins/default/xui/ru/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/ru/menu_viewer.xml
@@ -70,11 +70,11 @@
<menu_item_check label="Меню «Дополнительно»" name="Show Advanced Menu"/>
</menu>
<menu label="Солнце" name="Sun">
- <menu_item_call label="Восход" name="Sunrise"/>
- <menu_item_call label="Полдень" name="Noon"/>
- <menu_item_call label="Закат" name="Sunset"/>
- <menu_item_call label="Полночь" name="Midnight"/>
- <menu_item_call label="Использовать настройки региона" name="Use Region Settings"/>
+ <menu_item_check label="Восход" name="Sunrise"/>
+ <menu_item_check label="Полдень" name="Noon"/>
+ <menu_item_check label="Закат" name="Sunset"/>
+ <menu_item_check label="Полночь" name="Midnight"/>
+ <menu_item_check label="Использовать настройки региона" name="Use Region Settings"/>
</menu>
<menu label="Редактор среды" name="Environment Editor">
<menu_item_call label="Настройки среды..." name="Environment Settings"/>
@@ -162,7 +162,6 @@
</menu>
<menu label="Справка" name="Help">
<menu_item_call label="Инструкции..." name="How To"/>
- <menu_item_call label="Справка по [SECOND_LIFE]" name="Second Life Help"/>
<menu_item_call label="Жалоба" name="Report Abuse"/>
<menu_item_call label="Сообщить об ошибке" name="Report Bug"/>
<menu_item_call label="О [APP_NAME]" name="About Second Life"/>
@@ -178,6 +177,7 @@
<menu label="Производительность" name="Performance Tools">
<menu_item_call label="Запаздывание" name="Lag Meter"/>
<menu_item_check label="Статистика" name="Statistics Bar"/>
+ <menu_item_call label="Статистика загрузки сцен" name="Scene Load Statistics"/>
<menu_item_check label="Показать вес отрисовки для аватаров" name="Avatar Rendering Cost"/>
</menu>
<menu label="Подсветка и видимость" name="Highlighting and Visibility">
@@ -240,6 +240,7 @@
<menu_item_check label="Оперативные таймеры" name="Fast Timers"/>
<menu_item_check label="Память" name="Memory"/>
<menu_item_check label="Статистика по сцене" name="Scene Statistics"/>
+ <menu_item_check label="Монитор загрузки сцен" name="Scene Loading Monitor"/>
<menu_item_call label="Консоль отладки извлечения текстур" name="Texture Fetch Debug Console"/>
<menu_item_call label="Данные о регионе на консоль отладки" name="Region Info to Debug Console"/>
<menu_item_call label="Данны о группе на консоль отладки" name="Group Info to Debug Console"/>
@@ -276,6 +277,7 @@
<menu_item_check label="Периодическое замедление кадров" name="Periodic Slow Frame"/>
<menu_item_check label="Тест кадров" name="Frame Test"/>
<menu_item_call label="Профиль кадра" name="Frame Profile"/>
+ <menu_item_call label="Тест" name="Benchmark"/>
</menu>
<menu label="Визуализировать метаданные" name="Render Metadata">
<menu_item_check label="Рамки" name="Bounding Boxes"/>
@@ -294,6 +296,7 @@
<menu_item_check label="Очередь построителя" name="Build Queue"/>
<menu_item_check label="Освещение" name="Lights"/>
<menu_item_check label="Каркас столкновений" name="Collision Skeleton"/>
+ <menu_item_check label="Суставы" name="Joints"/>
<menu_item_check label="Лучи" name="Raycast"/>
<menu_item_check label="Направления ветра" name="Wind Vectors"/>
<menu_item_check label="Сложность визуализации" name="rendercomplexity"/>
@@ -326,6 +329,7 @@
<menu_item_check label="Визуализация присоединенных источников света" name="Render Attached Lights"/>
<menu_item_check label="Визуализация присоединенных частиц" name="Render Attached Particles"/>
<menu_item_check label="Парящие светящиеся объекты" name="Hover Glow Objects"/>
+ <menu_item_call label="Немедленно очистить кэш" name="Cache Clear"/>
</menu>
<menu label="Сеть" name="Network">
<menu_item_check label="Приостановить клиент" name="AgentPause"/>
@@ -358,7 +362,6 @@
<menu_item_call label="Вывод средства фокусировки" name="Dump Focus Holder"/>
<menu_item_call label="Печать информации о выбранных объектах" name="Print Selected Object Info"/>
<menu_item_call label="Печать информации об агенте" name="Print Agent Info"/>
- <menu_item_check label="Консоль отладки региона" name="Region Debug Console"/>
<menu_item_check label="Отладка SelectMgr" name="Debug SelectMgr"/>
<menu_item_check label="Отладка щелчков мышью" name="Debug Clicks"/>
<menu_item_check label="Отладка обзора" name="Debug Views"/>
diff --git a/indra/newview/skins/default/xui/ru/notifications.xml b/indra/newview/skins/default/xui/ru/notifications.xml
index 1dc8202b00..336a97f35a 100755
--- a/indra/newview/skins/default/xui/ru/notifications.xml
+++ b/indra/newview/skins/default/xui/ru/notifications.xml
@@ -114,13 +114,13 @@
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="OutboxImportFailed">
- Ошибка при передаче
+ Не удалось передать, ошибка: «[ERROR_CODE]»
Папки не отправлены в торговый центр из-за ошибки системы или сети. Повторите попытку позже.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="OutboxInitFailed">
- Ошибка инициализации торгового центра
+ Не удалось инициализировать торговый центр, ошибка: «[ERROR_CODE]»
Не удалось инициализировать торговый центр из-за ошибки системы или сети. Повторите попытку позже.
<usetemplate name="okbutton" yestext="OK"/>
@@ -1731,6 +1731,10 @@ http://secondlife.com/download.
Вы действительно хотите телепортироваться в &lt;nolink&gt;[LOCATION]&lt;/nolink&gt;?
<usetemplate ignoretext="Подтверждать телепортацию на закладку" name="okcancelignore" notext="Отмена" yestext="Телепортация"/>
</notification>
+ <notification name="TeleportViaSLAPP">
+ Вы действительно хотите телепортироваться в &lt;nolink&gt;[LOCATION]&lt;/nolink&gt;?
+ <usetemplate ignoretext="Подтверждать телепортацию через SLAPP" name="okcancelignore" notext="Отмена" yestext="Телепортация"/>
+ </notification>
<notification name="TeleportToPick">
Телепортироваться в [PICK]?
<usetemplate ignoretext="Подтверждать телепортацию на место в подборке" name="okcancelignore" notext="Отмена" yestext="Телепортация"/>
@@ -1940,6 +1944,9 @@ http://secondlife.com/download.
<notification name="ProblemAddingEstateManager">
Проблема при добавлении нового менеджера землевладения. Возможно, в одном или нескольких землевладениях список менеджеров уже заполнен.
</notification>
+ <notification name="ProblemAddingEstateBanManager">
+ Невозможно добавить землевладельца или менеджера в список запрета доступа.
+ </notification>
<notification name="ProblemAddingEstateGeneric">
Проблема при добавлении в этот список землевладения. Возможно, в одном или нескольких землевладениях список уже заполнен.
</notification>
@@ -3029,7 +3036,7 @@ http://secondlife.com/download.
Со следующими жителями:
-[RESIDENTS]
+&lt;nolink&gt;[RESIDENTS]&lt;/nolink&gt;
<usetemplate name="okcancelbuttons" notext="Отмена" yestext="OK"/>
</notification>
<notification name="ShareFolderConfirmation">
@@ -3041,7 +3048,7 @@ http://secondlife.com/download.
Со следующими жителями:
-[RESIDENTS]
+&lt;nolink&gt;[RESIDENTS]&lt;/nolink&gt;
<usetemplate name="okcancelbuttons" notext="Отмена" yestext="ОК"/>
</notification>
<notification name="ItemsShared">
@@ -3497,10 +3504,6 @@ http://secondlife.com/download.
<notification name="EjectComingSoon">
Вам запрещено здесь присутствовать; у вас есть [EJECT_TIME] сек, чтобы покинуть это место.
</notification>
- <notification name="NoEnterServerFull">
- Вам нет доступа в этот регион:
-серпер переполнен.
- </notification>
<notification name="SaveBackToInvDisabled">
Сохранение в инвентаре отключено.
</notification>
@@ -3689,6 +3692,9 @@ http://secondlife.com/download.
<notification name="LinkFailedTooMuchPhysics">
Объект использует слишком много ресурсов физики -- динамическое поведение отключено.
</notification>
+ <notification name="EstateManagerFailedllTeleportHome">
+ Объект «[OBJECT_NAME]» по адресу [SLURL] не может телепортировать менеджеров землевладений домой.
+ </notification>
<notification name="TeleportedHomeByObjectOnParcel">
Вы были телепортированы домой объектом «[OBJECT_NAME]» на участке «[PARCEL_NAME]»
</notification>
@@ -3879,13 +3885,18 @@ http://secondlife.com/download.
Выбрано недостаточно арендуемых участков для вступления.
</notification>
<notification name="CantDivideLandMultipleParcelsSelected">
- Нельзя разделить землю.\nВыбрано больше одного участка.\nВыберите меньшую территорию.
+ Невозможно разделить землю.
+Выбрано несколько участков.
+Попробуйте выбрать область поменьше.
</notification>
<notification name="CantDivideLandCantFindParcel">
- Нельзя разделить землю.\nНе удалось найти участок.\nСообщите об этой неполадке: Справка -&gt; Сообщить об ошибке...
+ Невозможно разделить землю.
+Не удается найти участок.
+Сообщите об этом: Справка -&gt; Сообщить об ошибке...
</notification>
<notification name="CantDivideLandWholeParcelSelected">
- Невозможно разделить землю. Выбран весь участок.\nПопробуйте выбрать территорию поменьше.
+ Невозможно разделить землю. Выбран весь участок.
+Попробуйте выбрать область поменьше.
</notification>
<notification name="LandHasBeenDivided">
Земля разделена.
@@ -4025,4 +4036,8 @@ http://secondlife.com/download.
Невозможно переместить файлы. Восстановлен прежний путь.
<usetemplate ignoretext="Невозможно переместить файлы. Восстановлен прежний путь." name="okignore" yestext="OK"/>
</notification>
+ <notification name="ChatHistoryIsBusyAlert">
+ Файл журнала чата занят предыдущей операцией. Повторите попытку через несколько минут или выберите чат с другим лицом.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
</notifications>
diff --git a/indra/newview/skins/default/xui/ru/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/ru/panel_group_info_sidetray.xml
index d8cf1b4756..16aaa71268 100755
--- a/indra/newview/skins/default/xui/ru/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/ru/panel_group_info_sidetray.xml
@@ -20,7 +20,7 @@
<layout_panel name="group_accordions">
<accordion name="groups_accordion">
<accordion_tab name="group_general_tab" title="Общие"/>
- <accordion_tab name="group_roles_tab" title="Роли"/>
+ <accordion_tab name="group_roles_tab" title="Роли и участники"/>
<accordion_tab name="group_notices_tab" title="Уведомления"/>
<accordion_tab name="group_land_tab" title="Земля/активы"/>
</accordion>
diff --git a/indra/newview/skins/default/xui/ru/panel_group_roles.xml b/indra/newview/skins/default/xui/ru/panel_group_roles.xml
index c57f21679f..b497cc5583 100755
--- a/indra/newview/skins/default/xui/ru/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/ru/panel_group_roles.xml
@@ -21,6 +21,7 @@
<name_list.columns label="Участник" name="name"/>
<name_list.columns label="Вклад" name="donated"/>
<name_list.columns label="Статус" name="online"/>
+ <name_list.columns label="Роль" name="title"/>
</name_list>
<button label="Пригласить" name="member_invite"/>
<button label="Выкинуть" name="member_eject"/>
diff --git a/indra/newview/skins/default/xui/ru/panel_region_debug.xml b/indra/newview/skins/default/xui/ru/panel_region_debug.xml
index 4be1e781fa..d294a9e22e 100755
--- a/indra/newview/skins/default/xui/ru/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/ru/panel_region_debug.xml
@@ -28,7 +28,8 @@
<check_box label="С каждого региона этого землевладения" name="return_estate_wide" tool_tip="Возвращаются объекты со всех регионов, образующих это землевладение"/>
<button label="Возврат" name="return_btn"/>
<button label="Самые активные участники столкновений..." name="top_colliders_btn" tool_tip="Список объектов, для которых столкновения наиболее вероятны"/>
- <button label="Список лучших скриптов..." name="top_scripts_btn" tool_tip="Объекты, в которых скрипты выполняются дольше всего"/>
<button label="Перезагрузить регион" name="restart_btn" tool_tip="Отсчитать 2 минуты и перезагрузить регион"/>
+ <button label="Список лучших скриптов..." name="top_scripts_btn" tool_tip="Объекты, в которых скрипты выполняются дольше всего"/>
<button label="Отменить перезапуск" name="cancel_restart_btn" tool_tip="Отменить перезапуск региона"/>
+ <button label="Консоль отладки региона" name="region_debug_console_btn" tool_tip="Открыть консоль отладки региона"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ru/panel_region_general.xml b/indra/newview/skins/default/xui/ru/panel_region_general.xml
index 8559be6c9e..8b4a127d7e 100755
--- a/indra/newview/skins/default/xui/ru/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/ru/panel_region_general.xml
@@ -20,12 +20,12 @@
</text>
<check_box label="Запретить терраформирование" name="block_terraform_check"/>
<check_box label="Запретить полеты" name="block_fly_check"/>
+ <check_box label="Запретить пролет над участком" name="block_fly_over_check" tool_tip="Поднять проверку доступа вверх для предотвращения пролета над участком"/>
<check_box label="Разрешить повреждения" name="allow_damage_check"/>
<check_box label="Запретить толкание" name="restrict_pushobject"/>
<check_box label="Разрешить перепродажу земли" name="allow_land_resell_check"/>
<check_box label="Разрешить объединение/разделение земли" name="allow_parcel_changes_check"/>
<check_box label="Не показывать землю в поиске" name="block_parcel_search_check" tool_tip="Отображать регион и его участки в результатах поиска"/>
- <check_box label="Разрешить меши-объекты" name="mesh_rez_enabled_check" tool_tip="Разрешить жителям выкладывать меши в этом регионе"/>
<spinner label="Лимит агентов" name="agent_limit_spin"/>
<spinner label="Льгота для объекта" name="object_bonus_spin"/>
<text label="Дозволенность" name="access_text">
diff --git a/indra/newview/skins/default/xui/ru/sidepanel_inventory.xml b/indra/newview/skins/default/xui/ru/sidepanel_inventory.xml
index 1741f63074..725b680050 100755
--- a/indra/newview/skins/default/xui/ru/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/ru/sidepanel_inventory.xml
@@ -28,13 +28,13 @@
<button label="Профиль" name="info_btn" tool_tip="Показать профиль объекта"/>
</layout_panel>
<layout_panel name="share_btn_lp">
- <button label="Поделиться" name="share_btn" tool_tip="Поделиться вещью из инвентаря"/>
+ <button label="Поделиться" name="share_btn" tool_tip="Поделиться объектом из инвентаря"/>
</layout_panel>
<layout_panel name="shop_btn_lp">
- <button label="Торговый центр" name="shop_btn" tool_tip="Открыть страницу торгового центра"/>
+ <button label="Купить" name="shop_btn" tool_tip="Открыть страницу торгового центра"/>
<button label="Надеть" name="wear_btn" tool_tip="Надеть выбранный костюм"/>
- <button label="Проиграть" name="play_btn"/>
- <button label="Телепорт" name="teleport_btn" tool_tip="Телепортироваться в выбранную область"/>
+ <button label="Играть" name="play_btn"/>
+ <button label="Телепортация" name="teleport_btn" tool_tip="Телепортироваться в выбранную область"/>
</layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/ru/strings.xml b/indra/newview/skins/default/xui/ru/strings.xml
index 8faf834f8f..be5a8d95eb 100755
--- a/indra/newview/skins/default/xui/ru/strings.xml
+++ b/indra/newview/skins/default/xui/ru/strings.xml
@@ -37,6 +37,45 @@
<string name="StartupRequireDriverUpdate">
Ошибка инициализации графики. Обновите графический драйвер!
</string>
+ <string name="AboutHeader">
+ [APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL])
+[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
+ </string>
+ <string name="AboutCompiler">
+ Использован компилятор [COMPILER], версия [COMPILER_VERSION]
+ </string>
+ <string name="AboutPosition">
+ Вы в точке [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1] в регионе «[REGION]», расположенном на &lt;nolink&gt;[HOSTNAME]&lt;/nolink&gt; ([HOSTIP])
+SLURL: &lt;nolink&gt;[SLURL]&lt;/nolink&gt;
+(глобальные координаты [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1])
+[SERVER_VERSION]
+[SERVER_RELEASE_NOTES_URL]
+ </string>
+ <string name="AboutSystem">
+ ЦП: [CPU]
+Память: [MEMORY_MB] МБ
+Версия ОС: [OS_VERSION]
+Производитель графической платы: [GRAPHICS_CARD_VENDOR]
+Графическая плата: [GRAPHICS_CARD]
+ </string>
+ <string name="AboutDriver">
+ Версия графического драйвера Windows: [GRAPHICS_DRIVER_VERSION]
+ </string>
+ <string name="AboutLibs">
+ Версия OpenGL: [OPENGL_VERSION]
+
+Версия libcurl: [LIBCURL_VERSION]
+Версия декодера J2C: [J2C_VERSION]
+Версия драйвера звука: [AUDIO_DRIVER_VERSION]
+Версия Qt Webkit: [QT_WEBKIT_VERSION]
+Версия голосового сервера: [VOICE_VERSION]
+ </string>
+ <string name="AboutTraffic">
+ Потеряно пакетов: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
+ </string>
+ <string name="ErrorFetchingServerReleaseNotesURL">
+ Ошибка при получении URL-адреса заметок о выпуске сервера.
+ </string>
<string name="ProgressRestoring">
Восстановление...
</string>
@@ -934,15 +973,15 @@ support@secondlife.com.
<string name="ControlYourCamera">
Управлять камерой
</string>
+ <string name="TeleportYourAgent">
+ Телепортировать вас
+ </string>
<string name="NotConnected">
Нет подключения
</string>
<string name="AgentNameSubst">
(Вы)
</string>
- <string name="TeleportYourAgent">
- Телепортировать вас
- </string>
<string name="JoinAnExperience">
Присоединитесь
</string>
@@ -1267,8 +1306,7 @@ support@secondlife.com.
<string name="InventoryInboxNoItems">
Здесь будут показаны ваши покупки из торгового центра. Их можно будет перетащить в ваш инвентарь для использования.
</string>
- <string name="Unconstrained">Без ограничения</string>
- <string name="MarketplaceURL">
+ <string name="MarketplaceURL">
https://marketplace.[MARKETPLACE_DOMAIN_NAME]/
</string>
<string name="MarketplaceURL_CreateStore">
@@ -1297,6 +1335,18 @@ support@secondlife.com.
<string name="InventoryOutboxNoItems">
Перетащите папки в эту область и щелкните «Отправить в торговый центр», чтобы выставить их на продажу в [[MARKETPLACE_DASHBOARD_URL] Торговом центре].
</string>
+ <string name="InventoryOutboxInitializingTitle">
+ Инициализация Торгового центра.
+ </string>
+ <string name="InventoryOutboxInitializing">
+ Мы обращаемся к вашему аккаунту в [[MARKETPLACE_CREATE_STORE_URL] магазине].
+ </string>
+ <string name="InventoryOutboxErrorTitle">
+ Ошибки торгового центра.
+ </string>
+ <string name="InventoryOutboxError">
+ [[MARKETPLACE_CREATE_STORE_URL] Магазин] возвращает ошибки.
+ </string>
<string name="Marketplace Error None">
Ошибок нет
</string>
@@ -1324,6 +1374,9 @@ support@secondlife.com.
<string name="Open landmarks">
Открыть закладки
</string>
+ <string name="Unconstrained">
+ Без ограничения
+ </string>
<string name="no_transfer" value="(не передается)"/>
<string name="no_modify" value="(не изменяется)"/>
<string name="no_copy" value="(не копируется)"/>
@@ -1724,6 +1777,9 @@ support@secondlife.com.
<string name="CompileQueueDownloadedCompiling">
Загружено, компилируется
</string>
+ <string name="CompileQueueServiceUnavailable">
+ Служба компилирования скриптов недоступна
+ </string>
<string name="CompileQueueScriptNotFound">
Скрипт не найден на сервере.
</string>
diff --git a/indra/newview/skins/default/xui/tr/floater_lagmeter.xml b/indra/newview/skins/default/xui/tr/floater_lagmeter.xml
new file mode 100644
index 0000000000..736c50be90
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_lagmeter.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="GECİKME ÖLÇER">
+ <floater.string name="max_title_msg">
+ Gecikme Ölçer
+ </floater.string>
+ <floater.string name="max_width_px">
+ 360
+ </floater.string>
+ <floater.string name="min_title_msg">
+ Gecikme
+ </floater.string>
+ <floater.string name="min_width_px">
+ 90
+ </floater.string>
+ <floater.string name="client_text_msg">
+ İstemci
+ </floater.string>
+ <floater.string name="client_frame_rate_critical_fps">
+ 10
+ </floater.string>
+ <floater.string name="client_frame_rate_warning_fps">
+ 15
+ </floater.string>
+ <floater.string name="client_frame_time_window_bg_msg">
+ Normal, pencere alt zeminde
+ </floater.string>
+ <floater.string name="client_frame_time_critical_msg">
+ İstemci kare hızı [CLIENT_FRAME_RATE_CRITICAL] altında
+ </floater.string>
+ <floater.string name="client_frame_time_warning_msg">
+ İstemci kare hızı [CLIENT_FRAME_RATE_CRITICAL] ile [CLIENT_FRAME_RATE_WARNING] arasınad
+ </floater.string>
+ <floater.string name="client_frame_time_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string name="client_draw_distance_cause_msg">
+ Muhtemel neden: Çizme mesafesi çok yüksek
+ </floater.string>
+ <floater.string name="client_texture_loading_cause_msg">
+ Muhtemel neden: Görüntüler yükleniyor
+ </floater.string>
+ <floater.string name="client_texture_memory_cause_msg">
+ Muhtemel neden: Bellekte çok fazla görüntü
+ </floater.string>
+ <floater.string name="client_complex_objects_cause_msg">
+ Muhtemel neden: Sahnede çok fazla karmaşık nesne
+ </floater.string>
+ <floater.string name="network_text_msg">
+ Ağ
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_pct">
+ 10
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_pct">
+ 5
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_msg">
+ Bağlantı paketlerin % [NETWORK_PACKET_LOSS_CRITICAL]&apos;sinden fazlasını bırakıyor
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_msg">
+ Bağlantı paketlerin % [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]&apos;sini bırakıyor
+ </floater.string>
+ <floater.string name="network_performance_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string name="network_ping_critical_ms">
+ 600
+ </floater.string>
+ <floater.string name="network_ping_warning_ms">
+ 300
+ </floater.string>
+ <floater.string name="network_ping_critical_msg">
+ Bağlantı ping süresi [NETWORK_PING_CRITICAL] ms.den fazla
+ </floater.string>
+ <floater.string name="network_ping_warning_msg">
+ Bağlantı ping süresi [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+ </floater.string>
+ <floater.string name="network_packet_loss_cause_msg">
+ Muhtemel yetersiz bağlantı veya &apos;Bant Genişliği&apos; tercihi çok yüksek.
+ </floater.string>
+ <floater.string name="network_ping_cause_msg">
+ Muhtemel yetersiz bağlantı veya dosya paylaşım uygulaması.
+ </floater.string>
+ <floater.string name="server_text_msg">
+ Sunucu
+ </floater.string>
+ <floater.string name="server_frame_rate_critical_fps">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_rate_warning_fps">
+ 30
+ </floater.string>
+ <floater.string name="server_single_process_max_time_ms">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_time_critical_msg">
+ Simülatör kare hızı [SERVER_FRAME_RATE_CRITICAL] altında
+ </floater.string>
+ <floater.string name="server_frame_time_warning_msg">
+ Simülatör kare hızı [SERVER_FRAME_RATE_CRITICAL] ve [SERVER_FRAME_RATE_WARNING] arasında
+ </floater.string>
+ <floater.string name="server_frame_time_normal_msg">
+ Normal
+ </floater.string>
+ <floater.string name="server_physics_cause_msg">
+ Muhtemel Neden: Çok fazla fiziki nesne
+ </floater.string>
+ <floater.string name="server_scripts_cause_msg">
+ Muhtemel Neden: Çok fazla komut dosyalı nesne
+ </floater.string>
+ <floater.string name="server_net_cause_msg">
+ Muhtemel Neden: Çok fazla ağ trafiği
+ </floater.string>
+ <floater.string name="server_agent_cause_msg">
+ Muhtemel Neden: Bölgede hareket eden çok fazla insan var
+ </floater.string>
+ <floater.string name="server_images_cause_msg">
+ Muhtemel Neden: Çok fazla görüntü hesabı
+ </floater.string>
+ <floater.string name="server_generic_cause_msg">
+ Muhtemel Neden: Simülatör yükü çok ağır
+ </floater.string>
+ <floater.string name="smaller_label">
+ &gt;&gt;
+ </floater.string>
+ <floater.string name="bigger_label">
+ &lt;&lt;
+ </floater.string>
+ <button name="client_lagmeter" tool_tip="İstemci gecikme durumu"/>
+ <text name="client">
+ İstemci
+ </text>
+ <text name="client_text">
+ Normal
+ </text>
+ <button name="network_lagmeter" tool_tip="Ağ gecikme durumu"/>
+ <text name="network">
+ Ağ
+ </text>
+ <text name="network_text">
+ Normal
+ </text>
+ <button name="server_lagmeter" tool_tip="Sunucu gecikme durumu"/>
+ <text name="server">
+ Sunucu
+ </text>
+ <text name="server_text">
+ Normal
+ </text>
+ <button label="&gt;&gt;" name="minimize" tool_tip="Gezdirici büyüklüğünü değiştir"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_region_restarting.xml b/indra/newview/skins/default/xui/tr/floater_region_restarting.xml
new file mode 100644
index 0000000000..1f9ead8bdd
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_region_restarting.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="region_restarting" title="BÖLGEYİ YENİDEN BAŞLAT">
+ <string name="RegionName">
+ Şu anda içinde bulunduğunuz bölge ([NAME]) yeniden başlatılmak üzere.
+
+Bu bölgede kalmaya devam ederseniz oturumunuz sonlandırılacak.
+ </string>
+ <string name="RestartSeconds">
+ Yeniden başlatma için kalan süre
+[SECONDS]
+ </string>
+ <panel name="layout_panel_1">
+ <text name="region_name">
+ Şu anda içinde bulunduğunuz bölge (-Bölgenin uzun adı-) yeniden başlatılmak üzere.
+
+Bu bölgede kalmaya devam ederseniz oturumunuz sonlandırılacak.
+ </text>
+ <text name="restart_seconds">
+ Yeniden başlatma için kalan süre
+ 32767
+ </text>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_scene_load_stats.xml b/indra/newview/skins/default/xui/tr/floater_scene_load_stats.xml
new file mode 100644
index 0000000000..ae0a94595d
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_scene_load_stats.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Scene Load Statistics" title="SAHNE YÜKLEME İSTATİSTİKLERİ">
+ <button label="Duraklat" name="playpause"/>
+ <scroll_container name="statistics_scroll">
+ <container_view name="statistics_view">
+ <stat_view label="Temel" name="basic">
+ <stat_bar label="Çerçeve Piksel Farkı" name="frame difference"/>
+ <stat_bar label="UDP Verileri Alındı" name="bandwidth"/>
+ <stat_bar label="Paket Kaybı" name="packet_loss"/>
+ </stat_view>
+ <stat_view label="Gelişmiş" name="advanced">
+ <stat_view label="İşle" name="render">
+ <stat_bar label="Toplam Nesne" name="objs"/>
+ <stat_bar label="Yeni Nesne" name="newobjs"/>
+ <stat_bar label="Nesne Önbellek İsabet Oranı" name="object_cache_hits"/>
+ </stat_view>
+ <stat_view label="Doku" name="texture">
+ <stat_bar label="Önbellek İsabet Oranı" name="texture_cache_hits"/>
+ <stat_bar label="Önbellek Okuma Gecikme Süresi" name="texture_cache_read_latency"/>
+ <stat_bar label="Sayım" name="numimagesstat"/>
+ <stat_bar label="Ham Sayım" name="numrawimagesstat"/>
+ </stat_view>
+ <stat_view label="Ağ" name="network">
+ <stat_bar label="Gelen Paketler" name="packetsinstat"/>
+ <stat_bar label="Giden Paketler" name="packetsoutstat"/>
+ <stat_bar label="Nesneler" name="objectdatareceived"/>
+ <stat_bar label="Doku" name="texturedatareceived"/>
+ <stat_bar label="Varlık" name="assetudpdatareceived"/>
+ <stat_bar label="Katmanlar" name="layersdatareceived"/>
+ <stat_bar label="Gerçekte Gelen" name="messagedatain"/>
+ <stat_bar label="Gerçekte Giden" name="messagedataout"/>
+ <stat_bar label="VFS Bekleyen İşlemler" name="vfspendingoperations"/>
+ </stat_view>
+ </stat_view>
+ <stat_view label="Simülatör" name="sim">
+ <stat_bar label="Nesneler" name="simobjects"/>
+ <stat_bar label="Etkin Nesneler" name="simactiveobjects"/>
+ <stat_bar label="Etkin Komut Dosyaları" name="simactivescripts"/>
+ <stat_bar label="Gelen Paketler" name="siminpps"/>
+ <stat_bar label="Giden Paketler" name="simoutpps"/>
+ <stat_bar label="Bekleyen Karşıdan Yüklemeler" name="simpendingdownloads"/>
+ <stat_bar label="Bekleyen Karşıya Yüklemeler" name="simpendinguploads"/>
+ <stat_bar label="Toplam Bildirilmiş Bayt" name="simtotalunackedbytes"/>
+ <stat_view label="Zaman (ms)" name="simperf">
+ <stat_bar label="Toplam Çerçeve Süresi" name="simframemsec"/>
+ <stat_bar label="Net Süre" name="simnetmsec"/>
+ <stat_bar label="Fizik Süresi" name="simsimphysicsmsec"/>
+ <stat_bar label="Simülasyon Süresi" name="simsimothermsec"/>
+ <stat_bar label="Aracı Süresi" name="simagentmsec"/>
+ <stat_bar label="Görüntü Süresi" name="simimagesmsec"/>
+ <stat_bar label="Komut Dosyası Süresi" name="simscriptmsec"/>
+ <stat_bar label="Yedek Zaman" name="simsparemsec"/>
+ <stat_view label="Zaman Ayrıntıları (ms)" name="timedetails">
+ <stat_bar label="Fizik Adımı" name="simsimphysicsstepmsec"/>
+ <stat_bar label="Fizik Şekillerini Güncelle" name="simsimphysicsshapeupdatemsec"/>
+ <stat_bar label="Fizik Diğer" name="simsimphysicsothermsec"/>
+ <stat_bar label="Uyku Zamanı" name="simsleepmsec"/>
+ <stat_bar label="Pompa Giriş Çıkış" name="simpumpiomsec"/>
+ </stat_view>
+ </stat_view>
+ </stat_view>
+ </container_view>
+ </scroll_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_stats.xml b/indra/newview/skins/default/xui/tr/floater_stats.xml
index afce87bdaa..2c0c33737f 100755
--- a/indra/newview/skins/default/xui/tr/floater_stats.xml
+++ b/indra/newview/skins/default/xui/tr/floater_stats.xml
@@ -4,17 +4,20 @@
<container_view name="statistics_view">
<stat_view label="Temel" name="basic">
<stat_bar label="FPS" name="fps"/>
- <stat_bar label="Bant genişliği" name="bandwidth"/>
+ <stat_bar label="UDP Verileri Alındı" name="bandwidth"/>
<stat_bar label="Paket Kaybı" name="packet_loss"/>
<stat_bar label="Sim Pingi" name="ping"/>
</stat_view>
<stat_view label="Gelişmiş" name="advanced">
<stat_view label="İşle" name="render">
- <stat_bar label="Çerçeve Başına Çizilen Üçgenler" name="ktrisframe"/>
- <stat_bar label="Saniyede Bir Çizilen Üçgenler" name="ktrissec"/>
+ <stat_bar label="Çerçeve Başına Üçgenler" name="ktrisframe"/>
+ <stat_bar label="Saniye Başına Üçgenler" name="ktrissec"/>
<stat_bar label="Toplam Nesne" name="objs"/>
<stat_bar label="Yeni Nesne" name="newobjs"/>
<stat_bar label="Nesne Önbellek İsabet Oranı" name="object_cache_hits"/>
+ <stat_bar label="Gerçekleştirilen Gölgeleme Sorguları" name="occlusion_queries"/>
+ <stat_bar label="Gölgelenen Nesneler" name="occluded"/>
+ <stat_bar label="Gölgelenmeye Nesneler" name="unoccluded"/>
</stat_view>
<stat_view label="Doku" name="texture">
<stat_bar label="Önbellek İsabet Oranı" name="texture_cache_hits"/>
@@ -26,15 +29,32 @@
<stat_bar label="Ham Bellek" name="rawmemstat"/>
<stat_bar label="Bağlı Doku Belleği" name="glboundmemstat"/>
</stat_view>
+ <stat_view label="Bellek Kullanımı" name="memory">
+ <stat_bar label="LLTrace" name="LLTrace"/>
+ <stat_bar label="KA" name="LLView"/>
+ <stat_bar label="Fontlar" name="LLFontFreetype"/>
+ <stat_bar label="Envanter" name="LLInventoryObject"/>
+ <stat_bar label="Görüntüleyici Nesneleri" name="LLViewerObject"/>
+ <stat_bar label="Gölgeleme Ağacı Grup Verileri" name="LLViewerOctreeGroup"/>
+ <stat_bar label="Gölgeleme Ağacı Verileri" name="LLViewerOctreeEntry"/>
+ <stat_bar label="Görüntüleyici Nesne Önbelleği" name="LLVOCacheEntry"/>
+ <stat_bar label="Çizilebilir nesneler" name="LLDrawable"/>
+ <stat_bar label="Yüz Verileri" name="LLFace"/>
+ <stat_bar label="Çizim Bilgileri" name="LLDrawInfo"/>
+ <stat_bar label="Doku Verileri" name="LLTexture"/>
+ <stat_bar label="Görüntü Verileri" name="LLImage"/>
+ <stat_bar label="GL Görüntü Verileri" name="LLImageGL"/>
+ <stat_bar label="Vertex Tamponları" name="LLVertexBuffer"/>
+ </stat_view>
<stat_view label="Ağ" name="network">
<stat_bar label="Gelen Paketler" name="packetsinstat"/>
<stat_bar label="Giden Paketler" name="packetsoutstat"/>
- <stat_bar label="Nesneler" name="objectkbitstat"/>
- <stat_bar label="Doku" name="texturekbitstat"/>
- <stat_bar label="Varlık" name="assetkbitstat"/>
- <stat_bar label="Katmanlar" name="layerskbitstat"/>
- <stat_bar label="Gerçekte Gelen" name="actualinkbitstat"/>
- <stat_bar label="Gerçekte Giden" name="actualoutkbitstat"/>
+ <stat_bar label="Nesneler" name="objectdatareceived"/>
+ <stat_bar label="Doku" name="texturedatareceived"/>
+ <stat_bar label="Varlık" name="assetudpdatareceived"/>
+ <stat_bar label="Katmanlar" name="layersdatareceived"/>
+ <stat_bar label="Gerçekte Gelen" name="messagedatain"/>
+ <stat_bar label="Gerçekte Giden" name="messagedataout"/>
<stat_bar label="VFS Bekleyen İşlemler" name="vfspendingoperations"/>
</stat_view>
</stat_view>
@@ -64,8 +84,8 @@
<stat_bar label="Giden Paketler" name="simoutpps"/>
<stat_bar label="Bekleyen Karşıdan Yüklemeler" name="simpendingdownloads"/>
<stat_bar label="Bekleyen Karşıya Yüklemeler" name="simpendinguploads"/>
- <stat_bar label="Toplam Bildirilmiş Bayt" name="simtotalunackedbytes"/>
- <stat_view label="Zaman (ms)" name="simperf">
+ <stat_bar label="Toplam Bildirilmiş Veriler" name="simtotalunackedbytes"/>
+ <stat_view label="Süre" name="simperf">
<stat_bar label="Toplam Çerçeve Süresi" name="simframemsec"/>
<stat_bar label="Net Süre" name="simnetmsec"/>
<stat_bar label="Fizik Süresi" name="simsimphysicsmsec"/>
@@ -74,7 +94,7 @@
<stat_bar label="Görüntü Süresi" name="simimagesmsec"/>
<stat_bar label="Komut Dosyası Süresi" name="simscriptmsec"/>
<stat_bar label="Yedek Zaman" name="simsparemsec"/>
- <stat_view label="Zaman Ayrıntıları (ms)" name="timedetails">
+ <stat_view label="Zaman Ayrıntıları" name="timedetails">
<stat_bar label="Fizik Adımı" name="simsimphysicsstepmsec"/>
<stat_bar label="Fizik Şekillerini Güncelle" name="simsimphysicsshapeupdatemsec"/>
<stat_bar label="Fizik Diğer" name="simsimphysicsothermsec"/>
diff --git a/indra/newview/skins/default/xui/tr/menu_avatar_icon.xml b/indra/newview/skins/default/xui/tr/menu_avatar_icon.xml
index d3ef490735..dc3724cfc8 100755
--- a/indra/newview/skins/default/xui/tr/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/tr/menu_avatar_icon.xml
@@ -2,6 +2,7 @@
<menu name="Avatar Icon Menu">
<menu_item_call label="Profili Göster" name="Show Profile"/>
<menu_item_call label="Aİ Gönder..." name="Send IM"/>
+ <menu_item_call label="Işınlanma Talep Et" name="Request Teleport"/>
<menu_item_call label="Arkadaş Ekle..." name="Add Friend"/>
<menu_item_call label="Arkadaşı Çıkar..." name="Remove Friend"/>
</menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_inventory.xml b/indra/newview/skins/default/xui/tr/menu_inventory.xml
index 51049427af..7239c4be06 100755
--- a/indra/newview/skins/default/xui/tr/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/tr/menu_inventory.xml
@@ -70,6 +70,7 @@
<menu_item_call label="Oyna" name="Sound Play"/>
<menu_item_call label="SLurl&apos;i Kopyala" name="url_copy"/>
<menu_item_call label="Yer İmi Hakkında" name="About Landmark"/>
+ <menu_item_call label="Haritada Göster" name="show_on_map"/>
<menu_item_call label="SL Dünyasında Oynat" name="Animation Play"/>
<menu_item_call label="Yerel Olarak Oynat" name="Animation Audition"/>
<menu_item_call label="Anlık İleti Gönder" name="Send Instant Message"/>
diff --git a/indra/newview/skins/default/xui/tr/menu_login.xml b/indra/newview/skins/default/xui/tr/menu_login.xml
index 79c95407e8..ecd29370a5 100755
--- a/indra/newview/skins/default/xui/tr/menu_login.xml
+++ b/indra/newview/skins/default/xui/tr/menu_login.xml
@@ -5,7 +5,15 @@
<menu_item_call label="[APP_NAME]&apos;den Çık" name="Quit"/>
</menu>
<menu label="Yardım" name="Help">
- <menu_item_call label="[SECOND_LIFE] Yardımı" name="Second Life Help"/>
+ <menu_item_call label="Nasıl yapılır..." name="How To"/>
+ <menu_item_call label="Hızlı Başlangıç" name="Quickstart"/>
+ <menu_item_call label="Bilgi Bankası" name="Knowledge Base"/>
+ <menu_item_call label="Wiki" name="Wiki"/>
+ <menu_item_call label="Topluluk Forumları" name="Community Forums"/>
+ <menu_item_call label="Destek porteli" name="Support portal"/>
+ <menu_item_call label="[SECOND_LIFE] Haberler" name="Second Life News"/>
+ <menu_item_call label="[SECOND_LIFE] Bloklar" name="Second Life Blogs"/>
+ <menu_item_call label="Hata Bildir" name="Report Bug"/>
<menu_item_call label="[APP_NAME] Hakkında" name="About Second Life"/>
</menu>
<menu_item_check label="Hata Ayıklama Menüsünü Göster" name="Show Debug Menu"/>
diff --git a/indra/newview/skins/default/xui/tr/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/tr/menu_teleport_history_item.xml
index 93984162e7..d7ff807c3d 100755
--- a/indra/newview/skins/default/xui/tr/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/tr/menu_teleport_history_item.xml
@@ -2,5 +2,5 @@
<context_menu name="Teleport History Item Context Menu">
<menu_item_call label="Işınla" name="Teleport"/>
<menu_item_call label="Ek Bilgi" name="More Information"/>
- <menu_item_call label="Panoya Kopyala" name="CopyToClipboard"/>
+ <menu_item_call label="SLurl&apos;i Kopyala" name="CopyToClipboard"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_viewer.xml b/indra/newview/skins/default/xui/tr/menu_viewer.xml
index 4236f91636..eabea0cc67 100755
--- a/indra/newview/skins/default/xui/tr/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/tr/menu_viewer.xml
@@ -70,11 +70,11 @@
<menu_item_check label="Gelişmiş Menü" name="Show Advanced Menu"/>
</menu>
<menu label="Güneş" name="Sun">
- <menu_item_call label="Gün Doğumu" name="Sunrise"/>
- <menu_item_call label="Gün Ortası" name="Noon"/>
- <menu_item_call label="Gün Batımı" name="Sunset"/>
- <menu_item_call label="Gece Yarısı" name="Midnight"/>
- <menu_item_call label="Bölge Ayarlarını Kullan" name="Use Region Settings"/>
+ <menu_item_check label="Gün Doğumu" name="Sunrise"/>
+ <menu_item_check label="Gün Ortası" name="Noon"/>
+ <menu_item_check label="Gün Batımı" name="Sunset"/>
+ <menu_item_check label="Gece Yarısı" name="Midnight"/>
+ <menu_item_check label="Bölge Ayarlarını Kullan" name="Use Region Settings"/>
</menu>
<menu label="Ortam Düzenleyici" name="Environment Editor">
<menu_item_call label="Ortam Ayarları..." name="Environment Settings"/>
@@ -163,8 +163,6 @@
</menu>
<menu label="Yardım" name="Help">
<menu_item_call label="Nasıl yapılır..." name="How To"/>
- <menu_item_call label="[SECOND_LIFE] Yardımı" name="Second Life Help"/>
- <menu_item_call label="Kullanıcı kılavuzu" name="User’s guide"/>
<menu_item_call label="Bilgi Bankası" name="Knowledge Base"/>
<menu_item_call label="Wiki" name="Wiki"/>
<menu_item_call label="Topluluk Forumları" name="Community Forums"/>
@@ -186,6 +184,7 @@
<menu label="Performans Araçları" name="Performance Tools">
<menu_item_call label="Gecikme Ölçer" name="Lag Meter"/>
<menu_item_check label="İstatistik Çubuğu" name="Statistics Bar"/>
+ <menu_item_call label="Sahne Yükleme İstatistikleri" name="Scene Load Statistics"/>
<menu_item_check label="Avatarlar İçin Çizim Ağırlığını Göster" name="Avatar Rendering Cost"/>
</menu>
<menu label="Vurgulama ve Görünürlük" name="Highlighting and Visibility">
@@ -248,6 +247,7 @@
<menu_item_check label="Hızlı Zamanlayıcılar" name="Fast Timers"/>
<menu_item_check label="Bellek" name="Memory"/>
<menu_item_check label="Sahne İstatistikleri" name="Scene Statistics"/>
+ <menu_item_check label="Sahne Yükleme Ekranı" name="Scene Loading Monitor"/>
<menu_item_call label="Doku Alınması Hata Ayıklama Konsolu" name="Texture Fetch Debug Console"/>
<menu_item_call label="Hata Ayıklama Konsoluna giden Bölge Bilgisi" name="Region Info to Debug Console"/>
<menu_item_call label="Hata Ayıklama Konsoluna giden Grup Bilgisi" name="Group Info to Debug Console"/>
@@ -284,6 +284,7 @@
<menu_item_check label="Düzenli Yavaş Çerçeve" name="Periodic Slow Frame"/>
<menu_item_check label="Çerçeve Testi" name="Frame Test"/>
<menu_item_call label="Çerçeve Profili..." name="Frame Profile"/>
+ <menu_item_call label="Değerlendirme" name="Benchmark"/>
</menu>
<menu label="Meta Verileri İşle" name="Render Metadata">
<menu_item_check label="Sınırlama Kutuları" name="Bounding Boxes"/>
@@ -302,6 +303,7 @@
<menu_item_check label="İnşa Kuyruğu" name="Build Queue"/>
<menu_item_check label="Işıklar" name="Lights"/>
<menu_item_check label="Çarpışma İskeleti" name="Collision Skeleton"/>
+ <menu_item_check label="Eklemler" name="Joints"/>
<menu_item_check label="Işın Yayını" name="Raycast"/>
<menu_item_check label="Rüzgar Vektörleri" name="Wind Vectors"/>
<menu_item_check label="İşleme Karmaşıklığı" name="rendercomplexity"/>
@@ -334,6 +336,7 @@
<menu_item_check label="Eklenmiş Işıkları İşle" name="Render Attached Lights"/>
<menu_item_check label="Eklenmiş Parçacıkları İşle" name="Render Attached Particles"/>
<menu_item_check label="Parıldayan Nesneler Üzerine Gel" name="Hover Glow Objects"/>
+ <menu_item_call label="Önbelleği Hemen Temizle" name="Cache Clear"/>
</menu>
<menu label="Ağ" name="Network">
<menu_item_check label="Aracıyı Durdur" name="AgentPause"/>
@@ -366,7 +369,6 @@
<menu_item_call label="Odaklayıcı Tutucunun Dökümünü Al" name="Dump Focus Holder"/>
<menu_item_call label="Seçilen Nesne Bilgisini Yazdır" name="Print Selected Object Info"/>
<menu_item_call label="Aracı Bilgisini Yazdır" name="Print Agent Info"/>
- <menu_item_check label="Bölge Hata Ayıklama Konsolu" name="Region Debug Console"/>
<menu_item_check label="SelectMgr İçin Hata Ayıklama" name="Debug SelectMgr"/>
<menu_item_check label="Tıklamalar İçin Hata Ayıklama" name="Debug Clicks"/>
<menu_item_check label="Görünümler için Hata Ayıklama" name="Debug Views"/>
diff --git a/indra/newview/skins/default/xui/tr/notifications.xml b/indra/newview/skins/default/xui/tr/notifications.xml
index 492178ab82..a58abca3ac 100755
--- a/indra/newview/skins/default/xui/tr/notifications.xml
+++ b/indra/newview/skins/default/xui/tr/notifications.xml
@@ -114,13 +114,13 @@ Daha fazla bilgi için bkz. [[MARKETPLACE_IMPORTS_URL] hata günlüğü].
<usetemplate name="okbutton" yestext="Tamam"/>
</notification>
<notification name="OutboxImportFailed">
- Aktarım başarılamadı
+ Aktarım &apos;[ERROR_CODE]&apos; hatası nedeniyle başarısız oldu
Bir sistem veya ağ hatası nedeniyle Pazaryerine hiçbir klasör gönderilemedi. Daha sonra tekrar deneyin.
<usetemplate name="okbutton" yestext="Tamam"/>
</notification>
<notification name="OutboxInitFailed">
- Pazaryeri başlatılamadı.
+ Pazaryeri başlatılması &apos;[ERROR_CODE]&apos; hatası nedeniyle başarısız oldu
Bir sistem veya ağ hatası nedeniyle Pazaryeri başlatılamadı. Daha sonra tekrar deneyin.
<usetemplate name="okbutton" yestext="Tamam"/>
@@ -1731,6 +1731,10 @@ Lütfen daha sonra tekrar deneyin.
&lt;nolink&gt;[LOCATION]&lt;/nolink&gt; konumuna ışınlanmak istediğinize emin misiniz?
<usetemplate ignoretext="Bir yer imine ışınlanma istediğimde doğrulama iste" name="okcancelignore" notext="İptal Et" yestext="Işınla"/>
</notification>
+ <notification name="TeleportViaSLAPP">
+ &lt;nolink&gt;[LOCATION]&lt;/nolink&gt; konumuna ışınlanmak istediğinize emin misiniz?
+ <usetemplate ignoretext="SLAPP ile ışınlanma istediğimde doğrulama iste" name="okcancelignore" notext="İptal" yestext="Işınla"/>
+ </notification>
<notification name="TeleportToPick">
[PICK] konumuna ışınlanılsın mı?
<usetemplate ignoretext="Seçme sekmesindeki bir konuma ışınlanma istediğimde doğrulama iste" name="okcancelignore" notext="İptal Et" yestext="Işınla"/>
@@ -1940,6 +1944,9 @@ Binlerce bölgeyi değiştirecek ve alan sunucusunu kesintiye uğratacaktır.
<notification name="ProblemAddingEstateManager">
Yeni bir gayrimenkul yöneticisi eklenirken problem oluştu. Bir veya birden fazla gayrimenkulün yönetici listesi dolu olabilir.
</notification>
+ <notification name="ProblemAddingEstateBanManager">
+ Gayri menkul sahibi ya da yöneticisi yasaklı listesine eklenemedi.
+ </notification>
<notification name="ProblemAddingEstateGeneric">
Bu gayrimenkul listesine eklenirken problem oluştu. Bir veya birden fazla gayrimenkulün listesi dolu olabilir.
</notification>
@@ -3027,9 +3034,9 @@ Ayrıntılar için günlük dosyasına bakın.
&lt;nolink&gt;[ITEMS]&lt;/nolink&gt;
-Paylaşmanın yapılacağı Sakinler:
+Paylaşmanın yapılacağı Second Life Sakinleri:
-[RESIDENTS]
+&lt;nolink&gt;[RESIDENTS]&lt;/nolink&gt;
<usetemplate name="okcancelbuttons" notext="İptal" yestext="Tamam"/>
</notification>
<notification name="ShareFolderConfirmation">
@@ -3041,7 +3048,7 @@ Aşağıdaki öğeleri paylaşmak istediğinize emin misiniz?
Paylaşmanın yapılacağı Second Life Sakinleri:
-[RESIDENTS]
+&lt;nolink&gt;[RESIDENTS]&lt;/nolink&gt;
<usetemplate name="okcancelbuttons" notext="İptal" yestext="Tamam"/>
</notification>
<notification name="ItemsShared">
@@ -3496,10 +3503,6 @@ Lütfen bir dakika sonra tekrar deneyin.
<notification name="EjectComingSoon">
Daha fazla burada olma izniniz yok ve ayrılmak için [EJECT_TIME] saniyeniz var.
</notification>
- <notification name="NoEnterServerFull">
- Bu bölgeye giremezsiniz çünkü
-sunucu dolu.
- </notification>
<notification name="SaveBackToInvDisabled">
Envantere Geri Kaydet devre dışı bırakıldı.
</notification>
@@ -3683,6 +3686,9 @@ sunucu dolu.
<notification name="LinkFailedTooMuchPhysics">
Nesne çok fazla fizik kaynağı kullanıyor -- dinamikleri devre dışı bırakıldı.
</notification>
+ <notification name="EstateManagerFailedllTeleportHome">
+ [SLURL] adresindeki &apos;[OBJECT_NAME]&apos; nesnesi gayri menkul yöneticilerini ana konuma ışınlayamıyor.
+ </notification>
<notification name="TeleportedHomeByObjectOnParcel">
&apos;[PARCEL_NAME]&apos; parseli üzerindeki &apos;[OBJECT_NAME]&apos; nesnesi tarafından ana konuma ışınlandınız
</notification>
@@ -3873,13 +3879,18 @@ sunucu dolu.
Seçimde birleştirilecek yeterli sayıda lease edilmiş parsel yok.
</notification>
<notification name="CantDivideLandMultipleParcelsSelected">
- Arazi bölünemedi.\nBirden fazla parsel seçili durumda.\nDaha küçük bir arazi parçası seçmeyi deneyin.
+ Arazi bölünemiyor.
+Birden fazla parsel seçili.
+Daha küçük bir arazi parçası seçmeyi deneyin.
</notification>
<notification name="CantDivideLandCantFindParcel">
- Arazi bölünemiyor.\nParsel bulunamıyor.\nLütfen Yardım -&gt; Hata Bildir ile bildirin...
+ Arazi bölünemiyor.
+Parsel bulunamıyor.
+Lütfen Yardım -&gt; Hata Bildir... sekmesinden hatayı bildirin
</notification>
<notification name="CantDivideLandWholeParcelSelected">
- Arazi bölünemiyor. Tüm parsel seçilidir.\nDaha küçük bir arazi parçası seçmeyi deneyin.
+ Arazi bölünemiyor. Tüm parsel seçili.
+Daha küçük bir arazi parçası seçmeyi deneyin.
</notification>
<notification name="LandHasBeenDivided">
Arazi bölündü.
@@ -4019,4 +4030,8 @@ sunucu dolu.
Dosyalar taşınamıyor. Önceki yol geri yüklendi.
<usetemplate ignoretext="Dosyalar taşınamıyor. Önceki yol geri yüklendi." name="okignore" yestext="Tamam"/>
</notification>
+ <notification name="ChatHistoryIsBusyAlert">
+ Sohbet geçmişi dosyası önceki işlemi gerçekleştirmekle meşgul. Lütfen bir kaç dakika sonra tekrar deneyin veya başka bir kişiyle sohbet etmeyi deneyin.
+ <usetemplate name="okbutton" yestext="Tamam"/>
+ </notification>
</notifications>
diff --git a/indra/newview/skins/default/xui/tr/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/tr/panel_group_info_sidetray.xml
index 32f39da490..e4697eaa21 100755
--- a/indra/newview/skins/default/xui/tr/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/tr/panel_group_info_sidetray.xml
@@ -20,7 +20,7 @@
<layout_panel name="group_accordions">
<accordion name="groups_accordion">
<accordion_tab name="group_general_tab" title="Genel"/>
- <accordion_tab name="group_roles_tab" title="Roller"/>
+ <accordion_tab name="group_roles_tab" title="Roller ve Üyeler"/>
<accordion_tab name="group_notices_tab" title="Bildirimler"/>
<accordion_tab name="group_land_tab" title="Arazi/Varlıklar"/>
</accordion>
diff --git a/indra/newview/skins/default/xui/tr/panel_group_roles.xml b/indra/newview/skins/default/xui/tr/panel_group_roles.xml
index fb03107da8..ef8b093ddf 100755
--- a/indra/newview/skins/default/xui/tr/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/tr/panel_group_roles.xml
@@ -20,6 +20,7 @@ Ctrl tuşuna basıp adlarına tıklayarak birden fazla Üye seçebilirsiniz.
<name_list.columns label="Üye" name="name"/>
<name_list.columns label="Bağış" name="donated"/>
<name_list.columns label="Durum" name="online"/>
+ <name_list.columns label="Ünvan" name="title"/>
</name_list>
<button label="Davet Et" name="member_invite"/>
<button label="Çıkar" name="member_eject"/>
diff --git a/indra/newview/skins/default/xui/tr/panel_region_debug.xml b/indra/newview/skins/default/xui/tr/panel_region_debug.xml
index 834ece563f..74a0a1569e 100755
--- a/indra/newview/skins/default/xui/tr/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/tr/panel_region_debug.xml
@@ -28,7 +28,8 @@
<check_box label="Bu gayrimenkulu oluşturan bölgelerin tümünde" name="return_estate_wide" tool_tip="Bu gayrimenkulu oluşturan bölgelerin tümündeki nesneler iade edilsin"/>
<button label="İade Et" name="return_btn"/>
<button label="En Çok Çarpışanlar..." name="top_colliders_btn" tool_tip="En çok potansiyel çarpışma yaşayan nesnelerin listesi"/>
- <button label="En Çok Komut Dsy. Çalştr...." name="top_scripts_btn" tool_tip="Komut dosyalarını çalıştırırken en çok zaman harcayan nesnelerin listesi"/>
<button label="Bölgeyi Yeniden Başlat" name="restart_btn" tool_tip="2 dakikalık bir geri sayımdan sonra bölgeyi yeniden başlat"/>
+ <button label="En Çok Komut Dsy. Çalştr...." name="top_scripts_btn" tool_tip="Komut dosyalarını çalıştırırken en çok zaman harcayan nesnelerin listesi"/>
<button label="Yeniden Başlatmayı İptal Et" name="cancel_restart_btn" tool_tip="Bölge yeniden başlatmasını iptal et"/>
+ <button label="Bölge Hata Ayıklama Konsolu" name="region_debug_console_btn" tool_tip="Açık Bölge Hata Ayıklama Konsolu"/>
</panel>
diff --git a/indra/newview/skins/default/xui/tr/panel_region_general.xml b/indra/newview/skins/default/xui/tr/panel_region_general.xml
index 37da0f2cca..e6abef883d 100755
--- a/indra/newview/skins/default/xui/tr/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/tr/panel_region_general.xml
@@ -20,12 +20,12 @@
</text>
<check_box label="Yer Şekillendirmeyi Engelle" name="block_terraform_check"/>
<check_box label="Uçmayı Engelle" name="block_fly_check"/>
+ <check_box label="Parselin Üzerinde Uçmayı Engelle" name="block_fly_over_check" tool_tip="Bir parselin üzerinden uçulmasını engellemek için onay işaretlerini yukarı doğru genişletin"/>
<check_box label="Hasara İzin Ver" name="allow_damage_check"/>
<check_box label="İtmeyi Kısıtla" name="restrict_pushobject"/>
<check_box label="Arazinin Tekrar Satışına İzin Ver" name="allow_land_resell_check"/>
<check_box label="Arazinin Birleşmesine/Bölünmesine İzin Ver" name="allow_parcel_changes_check"/>
<check_box label="Aramada Arazinin Gösterilmesini Engelle" name="block_parcel_search_check" tool_tip="Arama sonuçlarında bu bölge ve parselleri görünsün"/>
- <check_box label="Örgü Nesnelere İzin Ver" name="mesh_rez_enabled_check" tool_tip="Bu bölgede insanların örgü nesneleri oluşturmasına izin verilsin"/>
<spinner label="Aracı Limiti" name="agent_limit_spin"/>
<spinner label="Nesne Bonusu" name="object_bonus_spin"/>
<text label="Erişkinlik" name="access_text">
diff --git a/indra/newview/skins/default/xui/tr/strings.xml b/indra/newview/skins/default/xui/tr/strings.xml
index 31c5d2d310..f575b9e608 100755
--- a/indra/newview/skins/default/xui/tr/strings.xml
+++ b/indra/newview/skins/default/xui/tr/strings.xml
@@ -37,6 +37,45 @@
<string name="StartupRequireDriverUpdate">
Grafik başlatma başarılamadı. Lütfen grafik sürücünüzü güncelleştirin!
</string>
+ <string name="AboutHeader">
+ [APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL])
+[[VIEWER_RELEASE_NOTES_URL] [Sürüm Notları]]
+ </string>
+ <string name="AboutCompiler">
+ [COMPILER] [COMPILER_VERSION] sürümü ile oluşturuldu
+ </string>
+ <string name="AboutPosition">
+ &lt;nolink&gt;[HOSTNAME]&lt;/nolink&gt; ([HOSTIP]) üzerinde bulunan [REGION] içerisinde [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1] konumundasınız
+SLURL: &lt;nolink&gt;[SLURL]&lt;/nolink&gt;
+(küresel koordinatlar [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1])
+[SERVER_VERSION]
+[SERVER_RELEASE_NOTES_URL]
+ </string>
+ <string name="AboutSystem">
+ CPU: [CPU]
+Bellek: [MEMORY_MB] MB
+İşl. Sis. Sürümü: [OS_VERSION]
+Grafik Kartı Üreticisi: [GRAPHICS_CARD_VENDOR]
+Grafik Kartı: [GRAPHICS_CARD]
+ </string>
+ <string name="AboutDriver">
+ Windows Grafik Sürücüsü Sürümü: [GRAPHICS_DRIVER_VERSION]
+ </string>
+ <string name="AboutLibs">
+ OpenGL Sürümü: [OPENGL_VERSION]
+
+libcurl Sürümü: [LIBCURL_VERSION]
+J2C Kod Çözücü Sürümü: [J2C_VERSION]
+Ses Sürücüsü Sürümü: [AUDIO_DRIVER_VERSION]
+Qt Web Kit Sürümü: [QT_WEBKIT_VERSION]
+Ses Sunucusu Sürümü: [VOICE_VERSION]
+ </string>
+ <string name="AboutTraffic">
+ Kaybolan Paketler: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
+ </string>
+ <string name="ErrorFetchingServerReleaseNotesURL">
+ Sunucu sürümü notları URL&apos;si alınırken hata oluştu.
+ </string>
<string name="ProgressRestoring">
Geri yükleniyor...
</string>
@@ -934,15 +973,15 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
<string name="ControlYourCamera">
Kameranızı kontrol etmek
</string>
+ <string name="TeleportYourAgent">
+ Sizi ışınlama
+ </string>
<string name="NotConnected">
Bağlı Değil
</string>
<string name="AgentNameSubst">
(Siz)
</string>
- <string name="TeleportYourAgent">
- Sizi ışınlama
- </string>
<string name="JoinAnExperience">
Bir tecrübeye katıl
</string>
@@ -1267,8 +1306,7 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
<string name="InventoryInboxNoItems">
Pazaryerinda satın aldıklarınız burada görünecektir. Bunları kullanmak için envanterinize sürükleyebilirsiniz.
</string>
- <string name="Unconstrained">Kısıtsız</string>
- <string name="MarketplaceURL">
+ <string name="MarketplaceURL">
https://marketplace.[MARKETPLACE_DOMAIN_NAME]/
</string>
<string name="MarketplaceURL_CreateStore">
@@ -1297,6 +1335,18 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
<string name="InventoryOutboxNoItems">
Bu alana klasörleri sürükleyin ve bunları [[MARKETPLACE_DASHBOARD_URL] Pazaryerinde] satılık olarak duyurmak için &quot;Pazaryerine Gönder&quot; üzerine tıklayın.
</string>
+ <string name="InventoryOutboxInitializingTitle">
+ Pazaryeri Başlatılıyor.
+ </string>
+ <string name="InventoryOutboxInitializing">
+ [[MARKETPLACE_CREATE_STORE_URL] Mağazası] üzerindeki hesabınıza erişiyoruz.
+ </string>
+ <string name="InventoryOutboxErrorTitle">
+ Pazaryeri Hataları
+ </string>
+ <string name="InventoryOutboxError">
+ [[MARKETPLACE_CREATE_STORE_URL] Mağazası] hata döndürüyor.
+ </string>
<string name="Marketplace Error None">
Hata yok
</string>
@@ -1324,6 +1374,9 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
<string name="Open landmarks">
Açık yer imleri
</string>
+ <string name="Unconstrained">
+ Kısıtsız
+ </string>
<string name="no_transfer" value="(aktarım yok)"/>
<string name="no_modify" value="(değiştirme yok)"/>
<string name="no_copy" value="(kopya yok)"/>
@@ -1724,6 +1777,9 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
<string name="CompileQueueDownloadedCompiling">
Karşıdan yüklendi, şimdi derleniyor
</string>
+ <string name="CompileQueueServiceUnavailable">
+ Komut dosyası derleme hizmeti kullanılamıyor
+ </string>
<string name="CompileQueueScriptNotFound">
Komut dosyası sunucuda bulunamadı.
</string>
diff --git a/indra/newview/skins/default/xui/zh/floater_lagmeter.xml b/indra/newview/skins/default/xui/zh/floater_lagmeter.xml
new file mode 100644
index 0000000000..6e58e7332f
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_lagmeter.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="LAG 測量器">
+ <floater.string name="max_title_msg">
+ Lag 測量器
+ </floater.string>
+ <floater.string name="max_width_px">
+ 360
+ </floater.string>
+ <floater.string name="min_title_msg">
+ Lag
+ </floater.string>
+ <floater.string name="min_width_px">
+ 90
+ </floater.string>
+ <floater.string name="client_text_msg">
+ 客戶端
+ </floater.string>
+ <floater.string name="client_frame_rate_critical_fps">
+ 10
+ </floater.string>
+ <floater.string name="client_frame_rate_warning_fps">
+ 15
+ </floater.string>
+ <floater.string name="client_frame_time_window_bg_msg">
+ Normal, window in background
+ </floater.string>
+ <floater.string name="client_frame_time_critical_msg">
+ Client frame rate below [CLIENT_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="client_frame_time_warning_msg">
+ Client frame rate between [CLIENT_FRAME_RATE_CRITICAL] and [CLIENT_FRAME_RATE_WARNING]
+ </floater.string>
+ <floater.string name="client_frame_time_normal_msg">
+ 正常
+ </floater.string>
+ <floater.string name="client_draw_distance_cause_msg">
+ Possible cause: Draw distance set too high
+ </floater.string>
+ <floater.string name="client_texture_loading_cause_msg">
+ Possible cause: Images loading
+ </floater.string>
+ <floater.string name="client_texture_memory_cause_msg">
+ Possible cause: Too many images in memory
+ </floater.string>
+ <floater.string name="client_complex_objects_cause_msg">
+ Possible cause: Too many complex objects in scene
+ </floater.string>
+ <floater.string name="network_text_msg">
+ 網路
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_pct">
+ 10
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_pct">
+ 5
+ </floater.string>
+ <floater.string name="network_packet_loss_critical_msg">
+ Connection is dropping over [NETWORK_PACKET_LOSS_CRITICAL]% of packets
+ </floater.string>
+ <floater.string name="network_packet_loss_warning_msg">
+ Connection is dropping [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]% of packets
+ </floater.string>
+ <floater.string name="network_performance_normal_msg">
+ 正常
+ </floater.string>
+ <floater.string name="network_ping_critical_ms">
+ 600
+ </floater.string>
+ <floater.string name="network_ping_warning_ms">
+ 300
+ </floater.string>
+ <floater.string name="network_ping_critical_msg">
+ Connection ping time is over [NETWORK_PING_CRITICAL] ms
+ </floater.string>
+ <floater.string name="network_ping_warning_msg">
+ Connection ping time is [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+ </floater.string>
+ <floater.string name="network_packet_loss_cause_msg">
+ Possible bad connection or &apos;Bandwidth&apos; pref too high.
+ </floater.string>
+ <floater.string name="network_ping_cause_msg">
+ Possible bad connection or file-sharing app.
+ </floater.string>
+ <floater.string name="server_text_msg">
+ 伺服器
+ </floater.string>
+ <floater.string name="server_frame_rate_critical_fps">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_rate_warning_fps">
+ 30
+ </floater.string>
+ <floater.string name="server_single_process_max_time_ms">
+ 20
+ </floater.string>
+ <floater.string name="server_frame_time_critical_msg">
+ 模擬器 framerate 低於 [SERVER_FRAME_RATE_CRITICAL]
+ </floater.string>
+ <floater.string name="server_frame_time_warning_msg">
+ 模擬器 framerate 介於 [SERVER_FRAME_RATE_CRITICAL] 與 [SERVER_FRAME_RATE_WARNING] 之間
+ </floater.string>
+ <floater.string name="server_frame_time_normal_msg">
+ 正常
+ </floater.string>
+ <floater.string name="server_physics_cause_msg">
+ 可能原因:太多物理物件
+ </floater.string>
+ <floater.string name="server_scripts_cause_msg">
+ 可能原因:太多腳本物件
+ </floater.string>
+ <floater.string name="server_net_cause_msg">
+ 可能原因:太多網路流量
+ </floater.string>
+ <floater.string name="server_agent_cause_msg">
+ 可能原因:地區有太多移動的人
+ </floater.string>
+ <floater.string name="server_images_cause_msg">
+ 可能原因:太多圖像計算
+ </floater.string>
+ <floater.string name="server_generic_cause_msg">
+ 可能原因:模擬器負載過重
+ </floater.string>
+ <floater.string name="smaller_label">
+ &gt;&gt;
+ </floater.string>
+ <floater.string name="bigger_label">
+ &lt;&lt;
+ </floater.string>
+ <button name="client_lagmeter" tool_tip="客戶端 lag 狀態"/>
+ <text name="client">
+ 客戶端
+ </text>
+ <text name="client_text">
+ 正常
+ </text>
+ <button name="network_lagmeter" tool_tip="網路 lag 狀態"/>
+ <text name="network">
+ 網路
+ </text>
+ <text name="network_text">
+ 正常
+ </text>
+ <button name="server_lagmeter" tool_tip="伺服器 lag 狀態"/>
+ <text name="server">
+ 伺服器
+ </text>
+ <text name="server_text">
+ 正常
+ </text>
+ <button label="&gt;&gt;" name="minimize" tool_tip="切換浮動視窗尺寸"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/zh/floater_region_restarting.xml b/indra/newview/skins/default/xui/zh/floater_region_restarting.xml
new file mode 100644
index 0000000000..afac7da203
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_region_restarting.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="region_restarting" title="地區重新啟動中">
+ <string name="RegionName">
+ 你所在的地區([NAME])即將重新啟動。
+
+如果你繼續留在這地區,你將會被登出。
+ </string>
+ <string name="RestartSeconds">
+ 重新啟動倒數秒數:
+[SECONDS]
+ </string>
+ <panel name="layout_panel_1">
+ <text name="region_name">
+ 你所在的地區(-最長地區名-)即將重新啟動。
+
+如果你繼續留在這地區,你將會被登出。
+ </text>
+ <text name="restart_seconds">
+ 重新啟動倒數秒數:
+ 32767
+ </text>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/zh/floater_scene_load_stats.xml b/indra/newview/skins/default/xui/zh/floater_scene_load_stats.xml
new file mode 100644
index 0000000000..1a5c20abeb
--- /dev/null
+++ b/indra/newview/skins/default/xui/zh/floater_scene_load_stats.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Scene Load Statistics" title="場景負載統計資料">
+ <button label="暫停" name="playpause"/>
+ <scroll_container name="statistics_scroll">
+ <container_view name="statistics_view">
+ <stat_view label="基本" name="basic">
+ <stat_bar label="幀像素差" name="frame difference"/>
+ <stat_bar label="已收到UDP資料" name="bandwidth"/>
+ <stat_bar label="封包損失" name="packet_loss"/>
+ </stat_view>
+ <stat_view label="進階" name="advanced">
+ <stat_view label="呈像" name="render">
+ <stat_bar label="物件總計" name="objs"/>
+ <stat_bar label="新物件" name="newobjs"/>
+ <stat_bar label="物件快取讀取率" name="object_cache_hits"/>
+ </stat_view>
+ <stat_view label="材質" name="texture">
+ <stat_bar label="快取讀取率" name="texture_cache_hits"/>
+ <stat_bar label="快取讀取延遲" name="texture_cache_read_latency"/>
+ <stat_bar label="計數" name="numimagesstat"/>
+ <stat_bar label="原始計數" name="numrawimagesstat"/>
+ </stat_view>
+ <stat_view label="網路" name="network">
+ <stat_bar label="進入封包" name="packetsinstat"/>
+ <stat_bar label="出去封包" name="packetsoutstat"/>
+ <stat_bar label="物件" name="objectdatareceived"/>
+ <stat_bar label="材質" name="texturedatareceived"/>
+ <stat_bar label="資產" name="assetudpdatareceived"/>
+ <stat_bar label="層次" name="layersdatareceived"/>
+ <stat_bar label="實入" name="messagedatain"/>
+ <stat_bar label="實出" name="messagedataout"/>
+ <stat_bar label="VFS 待行作業" name="vfspendingoperations"/>
+ </stat_view>
+ </stat_view>
+ <stat_view label="模擬器" name="sim">
+ <stat_bar label="物件" name="simobjects"/>
+ <stat_bar label="使用中物件" name="simactiveobjects"/>
+ <stat_bar label="使用中腳本" name="simactivescripts"/>
+ <stat_bar label="進入封包" name="siminpps"/>
+ <stat_bar label="出去封包" name="simoutpps"/>
+ <stat_bar label="擱置下載" name="simpendingdownloads"/>
+ <stat_bar label="擱置上傳" name="simpendinguploads"/>
+ <stat_bar label="未承認的總位元組數" name="simtotalunackedbytes"/>
+ <stat_view label="時間(毫秒)" name="simperf">
+ <stat_bar label="總幀時間" name="simframemsec"/>
+ <stat_bar label="淨時間" name="simnetmsec"/>
+ <stat_bar label="物理時間" name="simsimphysicsmsec"/>
+ <stat_bar label="模擬時間" name="simsimothermsec"/>
+ <stat_bar label="用戶時間" name="simagentmsec"/>
+ <stat_bar label="圖像時間" name="simimagesmsec"/>
+ <stat_bar label="腳本時間" name="simscriptmsec"/>
+ <stat_bar label="閒置時間" name="simsparemsec"/>
+ <stat_view label="時間細節(毫秒)" name="timedetails">
+ <stat_bar label="物理步驟" name="simsimphysicsstepmsec"/>
+ <stat_bar label="更新物理形狀" name="simsimphysicsshapeupdatemsec"/>
+ <stat_bar label="物理(其他)" name="simsimphysicsothermsec"/>
+ <stat_bar label="睡眠時間" name="simsleepmsec"/>
+ <stat_bar label="基礎網路輸出入" name="simpumpiomsec"/>
+ </stat_view>
+ </stat_view>
+ </stat_view>
+ </container_view>
+ </scroll_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/zh/floater_stats.xml b/indra/newview/skins/default/xui/zh/floater_stats.xml
index 4af5684ec1..282e61e73d 100755
--- a/indra/newview/skins/default/xui/zh/floater_stats.xml
+++ b/indra/newview/skins/default/xui/zh/floater_stats.xml
@@ -4,17 +4,20 @@
<container_view name="statistics_view">
<stat_view label="基本" name="basic">
<stat_bar label="每秒幀數" name="fps"/>
- <stat_bar label="頻寬" name="bandwidth"/>
+ <stat_bar label="已收到UDP資料" name="bandwidth"/>
<stat_bar label="封包損失" name="packet_loss"/>
<stat_bar label="探詢模擬器有無反應" name="ping"/>
</stat_view>
<stat_view label="進階" name="advanced">
<stat_view label="呈像" name="render">
- <stat_bar label="繪出的 KTris(每幀)" name="ktrisframe"/>
- <stat_bar label="繪出的 KTris(每秒)" name="ktrissec"/>
+ <stat_bar label="KTris(每幀)" name="ktrisframe"/>
+ <stat_bar label="KTris(每秒)" name="ktrissec"/>
<stat_bar label="物件總計" name="objs"/>
<stat_bar label="新物件" name="newobjs"/>
<stat_bar label="物件快取讀取率" name="object_cache_hits"/>
+ <stat_bar label="已執行遮蔽查詢" name="occlusion_queries"/>
+ <stat_bar label="物件已遮蔽" name="occluded"/>
+ <stat_bar label="物件已解除遮蔽" name="unoccluded"/>
</stat_view>
<stat_view label="材質" name="texture">
<stat_bar label="快取讀取率" name="texture_cache_hits"/>
@@ -26,15 +29,32 @@
<stat_bar label="原始記憶" name="rawmemstat"/>
<stat_bar label="界限記憶" name="glboundmemstat"/>
</stat_view>
+ <stat_view label="記憶體使用狀況" name="memory">
+ <stat_bar label="LLTrace" name="LLTrace"/>
+ <stat_bar label="使用者界面" name="LLView"/>
+ <stat_bar label="字型" name="LLFontFreetype"/>
+ <stat_bar label="收納區" name="LLInventoryObject"/>
+ <stat_bar label="Viewer物件" name="LLViewerObject"/>
+ <stat_bar label="八叉樹群資料" name="LLViewerOctreeGroup"/>
+ <stat_bar label="八叉樹資料" name="LLViewerOctreeEntry"/>
+ <stat_bar label="Viewer物件快取" name="LLVOCacheEntry"/>
+ <stat_bar label="可繪物件" name="LLDrawable"/>
+ <stat_bar label="臉部資料" name="LLFace"/>
+ <stat_bar label="描繪資訊" name="LLDrawInfo"/>
+ <stat_bar label="材質資料" name="LLTexture"/>
+ <stat_bar label="圖像資料" name="LLImage"/>
+ <stat_bar label="GL圖像資料" name="LLImageGL"/>
+ <stat_bar label="頂點緩衝" name="LLVertexBuffer"/>
+ </stat_view>
<stat_view label="網路" name="network">
<stat_bar label="進入封包" name="packetsinstat"/>
<stat_bar label="出去封包" name="packetsoutstat"/>
- <stat_bar label="物件" name="objectkbitstat"/>
- <stat_bar label="材質" name="texturekbitstat"/>
- <stat_bar label="資產" name="assetkbitstat"/>
- <stat_bar label="層次" name="layerskbitstat"/>
- <stat_bar label="實入" name="actualinkbitstat"/>
- <stat_bar label="實出" name="actualoutkbitstat"/>
+ <stat_bar label="物件" name="objectdatareceived"/>
+ <stat_bar label="材質" name="texturedatareceived"/>
+ <stat_bar label="資產" name="assetudpdatareceived"/>
+ <stat_bar label="層次" name="layersdatareceived"/>
+ <stat_bar label="實入" name="messagedatain"/>
+ <stat_bar label="實出" name="messagedataout"/>
<stat_bar label="VFS 待行作業" name="vfspendingoperations"/>
</stat_view>
</stat_view>
@@ -64,8 +84,8 @@
<stat_bar label="出去封包" name="simoutpps"/>
<stat_bar label="擱置下載" name="simpendingdownloads"/>
<stat_bar label="擱置上傳" name="simpendinguploads"/>
- <stat_bar label="未承認的總位元組數" name="simtotalunackedbytes"/>
- <stat_view label="時間(毫秒)" name="simperf">
+ <stat_bar label="未承認的總資料" name="simtotalunackedbytes"/>
+ <stat_view label="時間" name="simperf">
<stat_bar label="總禎時間" name="simframemsec"/>
<stat_bar label="淨時間" name="simnetmsec"/>
<stat_bar label="物理時間" name="simsimphysicsmsec"/>
@@ -74,7 +94,7 @@
<stat_bar label="圖像時間" name="simimagesmsec"/>
<stat_bar label="腳本時間" name="simscriptmsec"/>
<stat_bar label="閒置時間" name="simsparemsec"/>
- <stat_view label="時間細節(毫秒)" name="timedetails">
+ <stat_view label="時間細節" name="timedetails">
<stat_bar label="物理步驟" name="simsimphysicsstepmsec"/>
<stat_bar label="更新物理形狀" name="simsimphysicsshapeupdatemsec"/>
<stat_bar label="物理(其他)" name="simsimphysicsothermsec"/>
diff --git a/indra/newview/skins/default/xui/zh/menu_avatar_icon.xml b/indra/newview/skins/default/xui/zh/menu_avatar_icon.xml
index ef0986a13b..cefb395256 100755
--- a/indra/newview/skins/default/xui/zh/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/zh/menu_avatar_icon.xml
@@ -2,6 +2,7 @@
<menu name="Avatar Icon Menu">
<menu_item_call label="察看檔案" name="Show Profile"/>
<menu_item_call label="送出 IM..." name="Send IM"/>
+ <menu_item_call label="要求瞬間傳送" name="Request Teleport"/>
<menu_item_call label="加為朋友..." name="Add Friend"/>
<menu_item_call label="移除朋友..." name="Remove Friend"/>
</menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_inventory.xml b/indra/newview/skins/default/xui/zh/menu_inventory.xml
index 7f745ffaa7..478f987035 100755
--- a/indra/newview/skins/default/xui/zh/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/zh/menu_inventory.xml
@@ -70,6 +70,7 @@
<menu_item_call label="播放" name="Sound Play"/>
<menu_item_call label="覆製 SLurl" name="url_copy"/>
<menu_item_call label="添加地標" name="About Landmark"/>
+ <menu_item_call label="顯示在地圖上" name="show_on_map"/>
<menu_item_call label="在虛擬世界播放" name="Animation Play"/>
<menu_item_call label="在本地播放" name="Animation Audition"/>
<menu_item_call label="送出即時訊息" name="Send Instant Message"/>
diff --git a/indra/newview/skins/default/xui/zh/menu_login.xml b/indra/newview/skins/default/xui/zh/menu_login.xml
index 1d3d771efb..4a1e2f4364 100755
--- a/indra/newview/skins/default/xui/zh/menu_login.xml
+++ b/indra/newview/skins/default/xui/zh/menu_login.xml
@@ -5,7 +5,15 @@
<menu_item_call label="退出 [APP_NAME]" name="Quit"/>
</menu>
<menu label="幫助" name="Help">
- <menu_item_call label="[SECOND_LIFE] 幫助" name="Second Life Help"/>
+ <menu_item_call label="簡易教學…" name="How To"/>
+ <menu_item_call label="快速上手" name="Quickstart"/>
+ <menu_item_call label="知識庫" name="Knowledge Base"/>
+ <menu_item_call label="維基" name="Wiki"/>
+ <menu_item_call label="社群論壇" name="Community Forums"/>
+ <menu_item_call label="支援入口" name="Support portal"/>
+ <menu_item_call label="[SECOND_LIFE] 最新消息" name="Second Life News"/>
+ <menu_item_call label="[SECOND_LIFE] 部落格" name="Second Life Blogs"/>
+ <menu_item_call label="回報錯誤" name="Report Bug"/>
<menu_item_call label="關於 [APP_NAME]" name="About Second Life"/>
</menu>
<menu_item_check label="顯示除錯選單" name="Show Debug Menu"/>
diff --git a/indra/newview/skins/default/xui/zh/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/zh/menu_teleport_history_item.xml
index c636e108ad..bf60983896 100755
--- a/indra/newview/skins/default/xui/zh/menu_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/zh/menu_teleport_history_item.xml
@@ -2,5 +2,5 @@
<context_menu name="Teleport History Item Context Menu">
<menu_item_call label="瞬間傳送" name="Teleport"/>
<menu_item_call label="更多資訊" name="More Information"/>
- <menu_item_call label="覆製到剪貼簿" name="CopyToClipboard"/>
+ <menu_item_call label="覆製 SLurl" name="CopyToClipboard"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/zh/menu_viewer.xml b/indra/newview/skins/default/xui/zh/menu_viewer.xml
index b267bda2bb..eb602d8e3b 100755
--- a/indra/newview/skins/default/xui/zh/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/zh/menu_viewer.xml
@@ -70,11 +70,11 @@
<menu_item_check label="進階選單" name="Show Advanced Menu"/>
</menu>
<menu label="太陽" name="Sun">
- <menu_item_call label="日出" name="Sunrise"/>
- <menu_item_call label="中午" name="Noon"/>
- <menu_item_call label="日落" name="Sunset"/>
- <menu_item_call label="午夜" name="Midnight"/>
- <menu_item_call label="使用地區設定" name="Use Region Settings"/>
+ <menu_item_check label="日出" name="Sunrise"/>
+ <menu_item_check label="中午" name="Noon"/>
+ <menu_item_check label="日落" name="Sunset"/>
+ <menu_item_check label="午夜" name="Midnight"/>
+ <menu_item_check label="使用地區設定" name="Use Region Settings"/>
</menu>
<menu label="環境編輯器" name="Environment Editor">
<menu_item_call label="環境設定…" name="Environment Settings"/>
@@ -163,8 +163,6 @@
</menu>
<menu label="幫助" name="Help">
<menu_item_call label="簡易教學…" name="How To"/>
- <menu_item_call label="[SECOND_LIFE] 幫助" name="Second Life Help"/>
- <menu_item_call label="使用者指南" name="User’s guide"/>
<menu_item_call label="知識庫" name="Knowledge Base"/>
<menu_item_call label="維基" name="Wiki"/>
<menu_item_call label="社群論壇" name="Community Forums"/>
@@ -186,6 +184,7 @@
<menu label="效能工具" name="Performance Tools">
<menu_item_call label="Lag 測量器" name="Lag Meter"/>
<menu_item_check label="統計列" name="Statistics Bar"/>
+ <menu_item_call label="場景負載統計資料" name="Scene Load Statistics"/>
<menu_item_check label="顯示化身的繪製重量" name="Avatar Rendering Cost"/>
</menu>
<menu label="高亮顯示與可見度" name="Highlighting and Visibility">
@@ -248,6 +247,7 @@
<menu_item_check label="快速碼錶" name="Fast Timers"/>
<menu_item_check label="記憶體" name="Memory"/>
<menu_item_check label="場景統計資料" name="Scene Statistics"/>
+ <menu_item_check label="場景載入監控器" name="Scene Loading Monitor"/>
<menu_item_call label="材質擷取除錯控制台" name="Texture Fetch Debug Console"/>
<menu_item_call label="地區資訊傳至除錯控制台" name="Region Info to Debug Console"/>
<menu_item_call label="群組資訊至除錯控制台" name="Group Info to Debug Console"/>
@@ -284,6 +284,7 @@
<menu_item_check label="定期出現慢幀率" name="Periodic Slow Frame"/>
<menu_item_check label="畫面測試" name="Frame Test"/>
<menu_item_call label="幀特性" name="Frame Profile"/>
+ <menu_item_call label="標竿測試" name="Benchmark"/>
</menu>
<menu label="呈像的元資料" name="Render Metadata">
<menu_item_check label="外框箱" name="Bounding Boxes"/>
@@ -302,6 +303,7 @@
<menu_item_check label="建製佇列" name="Build Queue"/>
<menu_item_check label="燈光" name="Lights"/>
<menu_item_check label="碰撞骨架" name="Collision Skeleton"/>
+ <menu_item_check label="接點" name="Joints"/>
<menu_item_check label="光線投射" name="Raycast"/>
<menu_item_check label="風力向量" name="Wind Vectors"/>
<menu_item_check label="繪出複雜度" name="rendercomplexity"/>
@@ -334,6 +336,7 @@
<menu_item_check label="使附著燈光呈像" name="Render Attached Lights"/>
<menu_item_check label="使附著例子效果呈像" name="Render Attached Particles"/>
<menu_item_check label="停懸發光物件" name="Hover Glow Objects"/>
+ <menu_item_call label="立即清除快取" name="Cache Clear"/>
</menu>
<menu label="網路" name="Network">
<menu_item_check label="暫停用戶" name="AgentPause"/>
@@ -366,7 +369,6 @@
<menu_item_call label="傾印焦點容器" name="Dump Focus Holder"/>
<menu_item_call label="列印所選物件資訊" name="Print Selected Object Info"/>
<menu_item_call label="列印用戶資訊" name="Print Agent Info"/>
- <menu_item_check label="地區除錯控制台" name="Region Debug Console"/>
<menu_item_check label="除錯 SelectMgr" name="Debug SelectMgr"/>
<menu_item_check label="除錯點按動作" name="Debug Clicks"/>
<menu_item_check label="視角除錯" name="Debug Views"/>
diff --git a/indra/newview/skins/default/xui/zh/notifications.xml b/indra/newview/skins/default/xui/zh/notifications.xml
index 864f20fc15..46cbaa60b1 100755
--- a/indra/newview/skins/default/xui/zh/notifications.xml
+++ b/indra/newview/skins/default/xui/zh/notifications.xml
@@ -114,15 +114,15 @@
<usetemplate name="okbutton" yestext="確定"/>
</notification>
<notification name="OutboxImportFailed">
- 轉移失敗
+ 傳送失敗,錯誤碼 &apos;[ERROR_CODE]&apos;
未將任何資料夾送往第二人生購物市集,系統或網路出錯。 請稍候再試一次。
<usetemplate name="okbutton" yestext="確定"/>
</notification>
<notification name="OutboxInitFailed">
- 第二人生購物市集初始化失敗
+ 購物市集初始化失敗,錯誤碼 &apos;[ERROR_CODE]&apos;
-第二人生購物市集初始化失敗,系統或網路出錯。 請稍候再試一次。
+購物市集初始化失敗,系統或網路出錯。 請稍候再試一次。
<usetemplate name="okbutton" yestext="確定"/>
</notification>
<notification name="CompileQueueSaveText">
@@ -1722,6 +1722,10 @@ SHA1 指紋:[MD5_DIGEST]
你確定要瞬間傳送到&lt;nolink&gt;[LOCATION]&lt;/nolink&gt;?
<usetemplate ignoretext="確認我要瞬間傳送到某個地標" name="okcancelignore" notext="取消" yestext="瞬間傳送"/>
</notification>
+ <notification name="TeleportViaSLAPP">
+ 你確定要瞬間傳送到&lt;nolink&gt;[LOCATION]&lt;/nolink&gt;?
+ <usetemplate ignoretext="確認我要透過SLAPP瞬間傳送" name="okcancelignore" notext="取消" yestext="瞬間傳送"/>
+ </notification>
<notification name="TeleportToPick">
瞬間傳送到 [PICK]?
<usetemplate ignoretext="確認我要瞬間傳送到精選地點的所在位置" name="okcancelignore" notext="取消" yestext="瞬間傳送"/>
@@ -1931,6 +1935,9 @@ SHA1 指紋:[MD5_DIGEST]
<notification name="ProblemAddingEstateManager">
新增領地管理人時出問題。 其中一個領地的管理人清單可能已經額滿。
</notification>
+ <notification name="ProblemAddingEstateBanManager">
+ 無法把領地所有人或管理員加入領地的封鎖名單中。
+ </notification>
<notification name="ProblemAddingEstateGeneric">
新增到這個領地清單時出問題。 其中一個領地的清單可能已滿。
</notification>
@@ -3019,7 +3026,7 @@ SHA1 指紋:[MD5_DIGEST]
居民:
-[RESIDENTS]
+&lt;nolink&gt;[RESIDENTS]&lt;/nolink&gt;
<usetemplate name="okcancelbuttons" notext="取消" yestext="確定"/>
</notification>
<notification name="ShareFolderConfirmation">
@@ -3031,7 +3038,7 @@ SHA1 指紋:[MD5_DIGEST]
居民:
-[RESIDENTS]
+&lt;nolink&gt;[RESIDENTS]&lt;/nolink&gt;
<usetemplate name="okcancelbuttons" notext="取消" yestext="確定"/>
</notification>
<notification name="ItemsShared">
@@ -3487,10 +3494,6 @@ SHA1 指紋:[MD5_DIGEST]
<notification name="EjectComingSoon">
你不再允許待在這裡,必須在 [EJECT_TIME] 秒內離開。
</notification>
- <notification name="NoEnterServerFull">
- 你無法進入這地區,因為
-伺服器滿載。
- </notification>
<notification name="SaveBackToInvDisabled">
「儲存回收納區」功能已被停用。
</notification>
@@ -3680,6 +3683,9 @@ SHA1 指紋:[MD5_DIGEST]
<notification name="LinkFailedTooMuchPhysics">
物件使用了過多物理資源,其動態特性已被停用。
</notification>
+ <notification name="EstateManagerFailedllTeleportHome">
+ 位於[SLURL]的物件&apos;[OBJECT_NAME]&apos;無法將領地管理員瞬間傳送回家。
+ </notification>
<notification name="TeleportedHomeByObjectOnParcel">
你已被 &apos;[PARCEL_NAME]&apos; 地段的物件 &apos;[OBJECT_NAME]&apos; 成功瞬間傳送回家
</notification>
@@ -3870,13 +3876,18 @@ SHA1 指紋:[MD5_DIGEST]
未選取足夠租用地段,無法合併。
</notification>
<notification name="CantDivideLandMultipleParcelsSelected">
- 無法分割土地,\n因為你選取了多個地段,\n請縮小所選土地。
+ 無法分割土地。
+選取了超過一個地段。
+請試著縮小所選的土地。
</notification>
<notification name="CantDivideLandCantFindParcel">
- 無法分割土地。\n找不到地段。\n請到「幫助 &gt; 回報錯誤……」回報問題
+ 無法分割土地。
+找不到地段。
+請到「幫助-&gt;回報錯誤」回報問題
</notification>
<notification name="CantDivideLandWholeParcelSelected">
- 無法分割土地。 選取了整個地段。\n請試著縮小所選的土地。
+ 無法分割土地。 選擇了整個地段。
+請試著縮小所選的土地。
</notification>
<notification name="LandHasBeenDivided">
土地分割成功。
@@ -4016,4 +4027,8 @@ SHA1 指紋:[MD5_DIGEST]
無法移動檔案。 已恢復前一個路徑。
<usetemplate ignoretext="無法移動檔案。 已恢復前一個路徑。" name="okignore" yestext="確定"/>
</notification>
+ <notification name="ChatHistoryIsBusyAlert">
+ 聊天紀錄檔案還在處理前一個動作。 請稍候再試,或請換一個聊天對象。
+ <usetemplate name="okbutton" yestext="確定"/>
+ </notification>
</notifications>
diff --git a/indra/newview/skins/default/xui/zh/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/zh/panel_group_info_sidetray.xml
index f979a4c53e..43e3507961 100755
--- a/indra/newview/skins/default/xui/zh/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/zh/panel_group_info_sidetray.xml
@@ -20,7 +20,7 @@
<layout_panel name="group_accordions">
<accordion name="groups_accordion">
<accordion_tab name="group_general_tab" title="基本資料"/>
- <accordion_tab name="group_roles_tab" title="角色"/>
+ <accordion_tab name="group_roles_tab" title="角色與成員"/>
<accordion_tab name="group_notices_tab" title="通知"/>
<accordion_tab name="group_land_tab" title="土地 / 資產"/>
</accordion>
diff --git a/indra/newview/skins/default/xui/zh/panel_group_roles.xml b/indra/newview/skins/default/xui/zh/panel_group_roles.xml
index 59086c3de2..69ee8451de 100755
--- a/indra/newview/skins/default/xui/zh/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/zh/panel_group_roles.xml
@@ -21,6 +21,7 @@
<name_list.columns label="成員" name="name"/>
<name_list.columns label="捐款" name="donated"/>
<name_list.columns label="狀態" name="online"/>
+ <name_list.columns label="頭銜" name="title"/>
</name_list>
<button label="邀請" name="member_invite"/>
<button label="踢出" name="member_eject"/>
diff --git a/indra/newview/skins/default/xui/zh/panel_region_debug.xml b/indra/newview/skins/default/xui/zh/panel_region_debug.xml
index e5d5e6eaf7..0bb59a7b14 100755
--- a/indra/newview/skins/default/xui/zh/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/zh/panel_region_debug.xml
@@ -28,7 +28,8 @@
<check_box label="於這個領地內的每一個地區" name="return_estate_wide" tool_tip="退回這個領地內全部地區中標記為他的物件"/>
<button label="退回" name="return_btn"/>
<button label="取得最常碰撞的物件..." name="top_colliders_btn" tool_tip="條列出目前運作中最常碰撞的物件清單"/>
- <button label="取得最耗能腳本..." name="top_scripts_btn" tool_tip="條列���目前運作中最耗能的腳本清單"/>
<button label="地區重新啟動" name="restart_btn" tool_tip="給予兩分鐘倒數計時並重新啟動"/>
+ <button label="取得最耗能腳本..." name="top_scripts_btn" tool_tip="條列���目前運作中最耗能的腳本清單"/>
<button label="取消重新啟動" name="cancel_restart_btn" tool_tip="取消地區重新啟動"/>
+ <button label="地區除錯控制台" name="region_debug_console_btn" tool_tip="開啟地區除錯控制台"/>
</panel>
diff --git a/indra/newview/skins/default/xui/zh/panel_region_general.xml b/indra/newview/skins/default/xui/zh/panel_region_general.xml
index f6b2c46354..0ce3b659b2 100755
--- a/indra/newview/skins/default/xui/zh/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/zh/panel_region_general.xml
@@ -20,12 +20,12 @@
</text>
<check_box label="阻止土地變形" name="block_terraform_check"/>
<check_box label="阻止飛行" name="block_fly_check"/>
+ <check_box label="禁止飛越地段" name="block_fly_over_check" tool_tip="將出入管制往上空擴大,一併禁止飛越地段"/>
<check_box label="允許傷害" name="allow_damage_check"/>
<check_box label="限制推撞" name="restrict_pushobject"/>
<check_box label="允許土地轉售" name="allow_land_resell_check"/>
<check_box label="允許土地 合併/分割" name="allow_parcel_changes_check"/>
<check_box label="阻擋土地顯示於搜尋中" name="block_parcel_search_check" tool_tip="讓其他人可以在搜尋結果中看到這個地區與其中的地段"/>
- <check_box label="允許網面物件" name="mesh_rez_enabled_check" tool_tip="允許大家在此地區產生網面物件"/>
<spinner label="人數上限" name="agent_limit_spin"/>
<spinner label="物件紅利" name="object_bonus_spin"/>
<text label="分級" name="access_text">
diff --git a/indra/newview/skins/default/xui/zh/sidepanel_inventory.xml b/indra/newview/skins/default/xui/zh/sidepanel_inventory.xml
index 4034a7154f..54ea7cab22 100755
--- a/indra/newview/skins/default/xui/zh/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/zh/sidepanel_inventory.xml
@@ -25,15 +25,15 @@
<panel name="button_panel">
<layout_stack name="button_panel_ls">
<layout_panel name="info_btn_lp">
- <button label="檔案" name="info_btn" tool_tip="顯示物件檔案"/>
+ <button label="檔案" name="info_btn" tool_tip="顯示物件簡介"/>
</layout_panel>
<layout_panel name="share_btn_lp">
<button label="分享" name="share_btn" tool_tip="分享一個收納區物品"/>
</layout_panel>
<layout_panel name="shop_btn_lp">
- <button label="購物" name="shop_btn" tool_tip="開啟 Marketplace 購物市集網頁"/>
+ <button label="購物" name="shop_btn" tool_tip="開啟購物市集網頁"/>
<button label="穿上" name="wear_btn" tool_tip="穿上所選擇的裝扮"/>
- <button label="播放" name="play_btn"/>
+ <button label="遊戲" name="play_btn"/>
<button label="瞬間傳送" name="teleport_btn" tool_tip="瞬間傳送到所選的區域"/>
</layout_panel>
</layout_stack>
diff --git a/indra/newview/skins/default/xui/zh/strings.xml b/indra/newview/skins/default/xui/zh/strings.xml
index d9fa105ef4..4e636e7816 100755
--- a/indra/newview/skins/default/xui/zh/strings.xml
+++ b/indra/newview/skins/default/xui/zh/strings.xml
@@ -37,6 +37,45 @@
<string name="StartupRequireDriverUpdate">
顯像初始化失敗。 請更新你的顯像卡驅動程式!
</string>
+ <string name="AboutHeader">
+ [APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL])
+[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
+ </string>
+ <string name="AboutCompiler">
+ 以 [COMPILER_VERSION] 版本 [COMPILER] 建置
+ </string>
+ <string name="AboutPosition">
+ 你的方位是 [POSITION_LOCAL_0,number,1], [POSITION_LOCAL_1,number,1], [POSITION_LOCAL_2,number,1],地區名:[REGION],主機:&lt;nolink&gt;[HOSTNAME]&lt;/nolink&gt; ([HOSTIP])
+第二人生URL:&lt;nolink&gt;[SLURL]&lt;/nolink&gt;
+(全域坐標:[POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1])
+[SERVER_VERSION]
+[SERVER_RELEASE_NOTES_URL]
+ </string>
+ <string name="AboutSystem">
+ CPU:[CPU]
+記憶體:[MEMORY_MB] MB
+作業系統版本:[OS_VERSION]
+顯示卡供應商:[GRAPHICS_CARD_VENDOR]
+顯示卡:[GRAPHICS_CARD]
+ </string>
+ <string name="AboutDriver">
+ Windows 顯示驅動程式版本:[GRAPHICS_DRIVER_VERSION]
+ </string>
+ <string name="AboutLibs">
+ OpenGL 版本:[OPENGL_VERSION]
+
+libcurl 版本: [LIBCURL_VERSION]
+J2C 解碼器版本: [J2C_VERSION]
+音效驅動程式版本: [AUDIO_DRIVER_VERSION]
+Qt Webkit 版本: [QT_WEBKIT_VERSION]
+語音伺服器版本: [VOICE_VERSION]
+ </string>
+ <string name="AboutTraffic">
+ 封包丟失:[PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
+ </string>
+ <string name="ErrorFetchingServerReleaseNotesURL">
+ 擷取伺服器版本說明 URL 時出錯。
+ </string>
<string name="ProgressRestoring">
回存中...
</string>
@@ -929,15 +968,15 @@ http://secondlife.com/viewer-access-faq
<string name="ControlYourCamera">
控制你的攝影機
</string>
+ <string name="TeleportYourAgent">
+ 瞬間傳送你本人
+ </string>
<string name="NotConnected">
未聯接
</string>
<string name="AgentNameSubst">
(你)
</string>
- <string name="TeleportYourAgent">
- 瞬間傳送你本人
- </string>
<string name="JoinAnExperience">
加入體驗
</string>
@@ -1291,6 +1330,18 @@ http://secondlife.com/viewer-access-faq
<string name="InventoryOutboxNoItems">
將資料夾拖曳到這個區域,再點按「送往第二人生購物市集」,即可在[[MARKETPLACE_DASHBOARD_URL]第二人生購物市集]登列出售。
</string>
+ <string name="InventoryOutboxInitializingTitle">
+ 正在初始化購物市集。
+ </string>
+ <string name="InventoryOutboxInitializing">
+ 我們正在求取你的[[MARKETPLACE_CREATE_STORE_URL] 購物市集商店]帳戶。
+ </string>
+ <string name="InventoryOutboxErrorTitle">
+ 購物市集出錯。
+ </string>
+ <string name="InventoryOutboxError">
+ [[MARKETPLACE_CREATE_STORE_URL] 購物市集商店]正傳回錯誤。
+ </string>
<string name="Marketplace Error None">
零錯誤
</string>
@@ -1318,6 +1369,9 @@ http://secondlife.com/viewer-access-faq
<string name="Open landmarks">
開啟地標
</string>
+ <string name="Unconstrained">
+ 不受限
+ </string>
<string name="no_transfer" value="(禁止轉讓)"/>
<string name="no_modify" value="(禁止修改)"/>
<string name="no_copy" value="(禁止複製)"/>
@@ -1718,6 +1772,9 @@ http://secondlife.com/viewer-access-faq
<string name="CompileQueueDownloadedCompiling">
已下載,正在編譯中
</string>
+ <string name="CompileQueueServiceUnavailable">
+ 腳本編譯服務無法使用
+ </string>
<string name="CompileQueueScriptNotFound">
伺服器上未發現腳本。
</string>